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

Stephen Warren swarren
Sat Jan 31 17:13:14 CET 2009

Gwenol? Beauchesne wrote:
> How one does access the decoded picture buffer?
> VDPAU uses an union of H264Context::short_ref[] and long_ref[].
> Likewise for VA API but in reverse order to preserve this
> constraint:
> the oldest reference picture at the lowest array index (temporal
> order). Though this strategy improved the visual experience for
> certain streams (NeroAVC improved, not fully fixed), it still fails
> for others ("300" movie trailer we have locally). Most of other
> streams work though (with ReferenceFrames[] filled in either
> order).
>  ...
> 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.


More information about the ffmpeg-devel mailing list