[vlc-devel] resons for removing vout module

Julian Scheel julian at jusst.de
Thu Aug 8 17:05:21 CEST 2013


I am  at investigating the omxil module and the possibilities to allow a 
direct rendering path for it.
As of now I am at the point that I understand that, when b_direct is set 
for omxil.c out port and vout.c in port it tries to enable direct 
rendering. Due to the default buffer count in at least the Broadcom OMX 
implementation being 3, the picture pool allocated by the vout will 
contain only 3 pictures. This leads to vout_InitWrapper() in 
vout_wrapper.c deciding that it's not enough (for my test stream, mpeg 2 
ts, a minimum of 14 would be required) and creates some intermediate 
buffer in system memory.
To avoid this and actually allow direct rendering I modified vout.c to 
increase nBufferCountActual to at least 14. This works well and 14 
buffers are allocated properly then. The vout_wrapper will not fail 
anymore, but then something strange happens. When the decoder detects 
the actual resolution of the video and does a port reconfigure, the
omxil_vout module is removed from the chain:

[0x975d20] omxil decoder debug: OmxEventHandler 
(OMX_EventPortSettingsChanged, 131, 0)
[0x975d20] omxil decoder debug: OmxEventHandler (OMX_EventCmdComplete, 
OMX_CommandPortDisable, 131)
[0x975d20] omxil decoder debug: OmxEventHandler (OMX_EventCmdComplete, 
OMX_CommandPortEnable, 131)
[0x975d20] omxil decoder debug: -> input 130 (0 streams) (20:1:81920 
buffers) (0,16) enabled
[0x975d20] omxil decoder debug:   -> video MPEG-1/2 Video 0x0 at 0.00 (2,0) 
(0,0) (0,0,0,0)
[0x975d20] omxil decoder debug: -> output 131 (0 streams) (1:1:635904 
buffers) (0,16) enabled
[0x975d20] omxil decoder debug:   -> video Planar 4:2:0 YUV 
720x576 at 25.00 (0,20) (736,576) (0,0,720,576)
[0xbad778] main vout display debug: removing module "omxil_vout"

So far I am unable to understand why this would happen. And as it does 
not happen if direct rendering is disabled, why it would not happen in 
this case.

Could someone with a deeper knowledge of the VLC internal vout system 
give me a hint?

Attached are the minimal changes required to trigger this issue on a 
raspberry pi.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: dr-testing.diff
Type: text/x-patch
Size: 2036 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20130808/72f0bba6/attachment.bin>

More information about the vlc-devel mailing list