vout: update format after filters
The vout is created first, based on the input format. Then filters
(filter_t) could be added, possibly producing pictures in a different
format.
input ---> filters ---> MISMATCH [I420] vout
I420 RGBA
To avoid a mismatch between the output of the last filter and the
expected format of the vout input, a converter was added when necessary
to compensate:
input ---> filters ---> converter ---> [I420] vout
I420 RGBA I420
But this was often a waste, and it caused problems for opaque formats.
Instead, request the vout to adapt itself to the actual format produced
by the last filter. If it can, we can avoid an additional converter.
input ---> filters ---> MISMATCH [I420] vout
I420 RGBA
input ---> filters ------------------> [RGBA] vout
I420 RGBA
If the vout does not support the new format (or does not accept to
update its format), a converter is still added like before.
Co-authored-by:
Alexandre Janniaux <ajanni@videolabs.io>
Showing
- include/vlc_vout_display.h 12 additions, 0 deletionsinclude/vlc_vout_display.h
- modules/video_output/caopengllayer.m 1 addition, 1 deletionmodules/video_output/caopengllayer.m
- modules/video_output/macosx.m 1 addition, 1 deletionmodules/video_output/macosx.m
- src/video_output/display.c 29 additions, 0 deletionssrc/video_output/display.c
- src/video_output/video_output.c 18 additions, 7 deletionssrc/video_output/video_output.c
- src/video_output/vout_wrapper.h 2 additions, 0 deletionssrc/video_output/vout_wrapper.h
Loading
Please register or sign in to comment