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

Gwenolé Beauchesne gbeauchesne
Sat Jan 31 11:39:57 CET 2009


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).

I had a look at MPC-HC, the FFmpeg+MPlayer fork that supports DXVA,  
and they do maintain a DPB themselves. Since VA API (Intel  
implementation) is very similar to DXVA, I fear I would have to  
maintain an equivalent thing, which I really would like to avoid...

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.


More information about the ffmpeg-devel mailing list