Bug 81414

Summary: mpeg4: add vop_time_increment to VAPictureParameterBufferMPEG4 structure
Product: libva Reporter: Fabrice Bellet <fabrice>
Component: vdpauAssignee: Gwenole Beauchesne <gb.devel>
Status: NEW --- QA Contact:
Severity: normal    
Priority: medium CC: fabrice
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Fabrice Bellet 2014-07-16 07:57:53 UTC
Hi!

I use the following setup : gstreamer-vaapi -> libva -> vdpau-driver -> radeonsi. I noticed that vop_time_increment_resolution was passed to the vdpau-driver, but not time_increment itself. Then in vdpau-driver/src/vdpau_decode.c, translate_VASliceDataBuffer(), when we regenerate the data of the slice header, we have this line, around 545 :

put_bits(&pb, time_incr, 0);            /* time increment */

which sets this value to zero, because time_incr here is computed as the number of bits needed depending of time_increment_resolution, not the time_increment value itself. This causes an effect in the decoded stream where some squares appear too late in the image, some kind of a "mosaic" effect in fast moving areas.

is adding this supplementary field to the struct the best solution ?

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.