[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