- Thread starter
- #111
Ive been running with this a bit now and the status is as follows:
Cyberlink : Works, but some image enhancement features are disabled
Intervideo : Sort of works when DXVA is manually disabled, but a green line is drawn on the right side of screen.
DScaler : No go.
PureVideo : Not tested yet.
My plan is to wrap up the current implementation this weekend. Then i will try to see if i can avoid disabling DXVA in any way. Im currently considering the following approaches:
Screenshot/grab based
Dont particular like this one, but one could grab a few frames as screenshots or maybe via the VMR(anyone know how to do this?) and get bounds based on those. These could then be applied the same way the aspect ratios apply.
Good: Simple, can move analysis code to C#
Bad : Will have to work on the upscaled image.
Seperate filter graph
One simple way way too avoid messing with the DXVA is the following:
1. User requests crop
2. Set up a video only playback graph for the currently playing source, using a software video decoder set to weave deinterlacing for example, instead of a VMR at the end, just place the autocropper filter.
3. Seek to the same position as the currently playing.
4. Get bounds from filter
5. Stop and discard the extra graph
5. Apply bounds from MP side ( in the same way aspects ratios apply ).
Good: Only small changes to the filter
Bad : Cumbersome to implement. There might be some practical issues.
'Injection'
Instead of having my filter in the graph all the time, i will investigate whether or not its feasible to use the following approach:
1. User requests crop
2. Pause graph
3. Insert AutoCrop filter
4. Start graph
5. After X frames, stop graph and get bounding box from autocropper
6. Remove autocropper.
7. Integrate the bounding box as a new aspect ratio
etc.
Good: No changes in filter
Bad: Unlikely that decoderes can handle switching back and forth between hardware and software rendering.
Cyberlink : Works, but some image enhancement features are disabled
Intervideo : Sort of works when DXVA is manually disabled, but a green line is drawn on the right side of screen.
DScaler : No go.
PureVideo : Not tested yet.
My plan is to wrap up the current implementation this weekend. Then i will try to see if i can avoid disabling DXVA in any way. Im currently considering the following approaches:
Screenshot/grab based
Dont particular like this one, but one could grab a few frames as screenshots or maybe via the VMR(anyone know how to do this?) and get bounds based on those. These could then be applied the same way the aspect ratios apply.
Good: Simple, can move analysis code to C#
Bad : Will have to work on the upscaled image.
Seperate filter graph
One simple way way too avoid messing with the DXVA is the following:
1. User requests crop
2. Set up a video only playback graph for the currently playing source, using a software video decoder set to weave deinterlacing for example, instead of a VMR at the end, just place the autocropper filter.
3. Seek to the same position as the currently playing.
4. Get bounds from filter
5. Stop and discard the extra graph
5. Apply bounds from MP side ( in the same way aspects ratios apply ).
Good: Only small changes to the filter
Bad : Cumbersome to implement. There might be some practical issues.
'Injection'
Instead of having my filter in the graph all the time, i will investigate whether or not its feasible to use the following approach:
1. User requests crop
2. Pause graph
3. Insert AutoCrop filter
4. Start graph
5. After X frames, stop graph and get bounding box from autocropper
6. Remove autocropper.
7. Integrate the bounding box as a new aspect ratio
etc.
Good: No changes in filter
Bad: Unlikely that decoderes can handle switching back and forth between hardware and software rendering.