[Mesa-dev] [PATCH 2/7] st/vdpau: don't try to create video buffer when the format is FORMAT_NONE

Christian König christian.koenig at amd.com
Mon Aug 19 09:52:46 PDT 2013


Am 19.08.2013 18:17, schrieb Emil Velikov:
> On 19/08/13 17:09, Christian König wrote:
>> Am 19.08.2013 18:00, schrieb Emil Velikov:
>>> Not seen in the wild yet, but seems like a reasonable thing to do.
>>> [suggested by Christian]
>>>
>>> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
>> Reviewed-by: Christian König <christian.koenig at amd.com>
>>
>> Do you have commit access? And by the way I have enough on my to do list
>> for the VDPAU state tracker if you're bored.
>>
> I do not have commit access, so please feel free to push if things look
> good. Bug in the nouveau vdpau driver hinted me to look this way,
> although I would not mind doing a few more things when I have some time
> (after 27 August).

Patches are committed, thanks for the help.

I have a something like 50% done implementation of NV_vdpau_interop, but 
no time to finish it. The patch can be found here:
http://cgit.freedesktop.org/~deathsimple/mesa/commit/?id=39f64342ca6400fb4bf163232848c23e0a192b92

If you want to work on something I suggest to start with implementing 
some piglit tests for VDPAU interop which should work with the NVidia 
binary driver.

An alternative is to dig into advanced deinterlacing, something like 
YADIF (https://trac.handbrake.fr/wiki/yadif) in shaders for example.

Cheers,
Christian.

> Cheers,
> Emil
>
>> Cheers,
>> Christian.
>>
>>> ---
>>>    src/gallium/state_trackers/vdpau/surface.c | 5 ++++-
>>>    1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/src/gallium/state_trackers/vdpau/surface.c
>>> b/src/gallium/state_trackers/vdpau/surface.c
>>> index ab4d725..8e39d68 100644
>>> --- a/src/gallium/state_trackers/vdpau/surface.c
>>> +++ b/src/gallium/state_trackers/vdpau/surface.c
>>> @@ -88,7 +88,10 @@ vlVdpVideoSurfaceCreate(VdpDevice device,
>>> VdpChromaType chroma_type,
>>>          PIPE_VIDEO_ENTRYPOINT_BITSTREAM,
>>>          PIPE_VIDEO_CAP_PREFERS_INTERLACED
>>>       );
>>> -   p_surf->video_buffer = pipe->create_video_buffer(pipe,
>>> &p_surf->templat);
>>> +   if (p_surf->templat.buffer_format != PIPE_FORMAT_NONE)
>>> +      p_surf->video_buffer = pipe->create_video_buffer(pipe,
>>> &p_surf->templat);
>>> +
>>> +   /* do not mandate early allocation of a video buffer */
>>>       vlVdpVideoSurfaceClear(p_surf);
>>>       pipe_mutex_unlock(dev->mutex);
>>>    
>>
>




More information about the mesa-dev mailing list