[vlc-devel] [PATCH 1/6] decoder: add code to send 3d metadata to the output modules to be handled

Rémi Denis-Courmont remi at remlab.net
Tue Aug 14 17:05:37 CEST 2018


Le tiistaina 14. elokuuta 2018, 12.56.59 EEST Steve Lhomme a écrit :
> > And I don't think that the latter is even realistic here. We cannot switch
> > (almost) all video output to invalid-pictures just for stereoscopy.
> 
> IMO the current code is not correct either. Why would we need a new vout
> when the orientation changes if it can handle dimension changes
> dynamically (they can all do AFAIK) ?

Indeed. We could also first attempt to update the window size, and then send a 
CHANGE_SOURCE_XXX display control. This could work for orientation, 
stereoscopy, or more generally, for any property that does not affect the 
decoder pool, but potentially affects the allocation of the display pool.

However, if we do that, then some video outputs will require invalid pictures. 
And that has a significant performance disadvantage for video outputs that 
would otherwise not require invalid pictures.

In particular, as long as OpenGL does not support the property, this is not 
viable.

> Same thing for the SAR.

Uh. There is already VOUT_DISPLAY_CHANGE_SOURCE_ASPECT.

> Also testing the other way around I found out that changing the vout
> dynamically like that fails the hardware decoder. In D3D the context is
> created by the vout and shared with the VA, if the vout disappears and
> the VA remains unchanged the new vout will have a different context and
> it won't work (black screen).

If you change the video output behind the back of the decoder, then it won't 
work.

But as far as I understand this patch, this is about the case of the decoder 
proactively changing its output format. In that case, the decoder is 
responsible for using picture buffers from the picture pool of the new video 
output. Nothing else can fix or work around it for the decoder.

-- 
Реми Дёни-Курмон
http://www.remlab.net/





More information about the vlc-devel mailing list