[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