[FFmpeg-devel] [H264] How to access the DPB?

Gwenole Beauchesne gbeauchesne
Mon Feb 2 14:20:13 CET 2009


Hi,

On Sat, 31 Jan 2009, Stephen Warren wrote:

>> The VA API spec only mentions:
>> VAPictureH264 ReferenceFrames[16];  /* in DPB */
>> and, in my experience, it seems the order of the elements in that
>> array has an importance for VA API, which VDPAU doesn't care much
>> about.
>
> Yes, VDPAU does not care about the order of the entries in the
> referenceFrames[] array. Instead, it uses the frame_idx field (and maybe
> is_long_term in conjunction) as a "sort" key internally, when mapping the
> referenceFrames[] data into the data structures sent to the HW, and/or
> for internal management.

Thanks Stephen. I finally found out that referenceFrames[] in DPB order 
that VA API expects is also the union of short_ref[] and long_ref[]... but 
after execute_ref_pic_marking() for the current picture is done. However, 
for VDPAU, that's before execute_ref_pic_marking() is done.

i.e. VA API & VDPAU expectations differ. Why are you building your 
referenceFrames[] between both (without MMCO and with MMCO) 
execute_ref_pic_marking() calls and not after the whole picture is done? 
e.g. why not call ff_vdpau_h264_set_reference_frames() from 
ff_vdpau_h264_picture_complete()?

Thanks,
Gwenole.




More information about the ffmpeg-devel mailing list