[Libva] reference frame array in mplayer vaapi
Xiang, Haihao
haihao.xiang at intel.com
Wed Apr 7 18:56:23 PDT 2010
On Wed, 2010-04-07 at 17:15 +0800, Xiang, Haihao wrote:
> On Mon, 2010-03-29 at 18:58 +0800, Gwenole Beauchesne wrote:
> > Hi,
> >
> > On Mon, 29 Mar 2010, Xiang, Haihao wrote:
> >
> > > The reference frame array in mplayer-vaapi-20090828 is filled with h->ref_list however this array in mplayer-vaapi-20100224 is
> > > filled with h->short_ref/h->long_ref except GMA500. My test against the branch i965_h264 on libva shows that
> > > mplayer-vaapi-20090828 is right for us. Here I don’t understand your comments about GMA500 workaround in mplayer-vaapi-2010024.
> > > Why is filling reference frame array with h->ref_list wrong?
> >
> > Because this is RefPicList{0,1} and does not fully represent the DPB. This
> > also caused problems for other clips. Besides, FFmpeg's DPB is limited to
> > pictures marked as "used for reference", and capped to num_ref_frames as
> > reported in the bitstream.
> >
> > h->short_ref/h->long_ref is what other HW accelerators use and work for
> > them. In my old testing with MPC-HC, this also works with the GMA500
> > driver for Windows 7.
>
> So it is possible that a picture is in slice_param->RefPicList0/1, but it isn't in pic_param->ReferenceFrames, right?
By my understanding, I think it is impossible. However, I got the
following parameters when I played a movie:
(gdb) p slice_param->RefPicList0
$32 = {{picture_id = 67108879, frame_idx = 15, flags = 8, TopFieldOrderCnt = 30, BottomFieldOrderCnt = 30}, {picture_id = 67108877, frame_idx = 13, flags = 8,
TopFieldOrderCnt = 26, BottomFieldOrderCnt = 26}, {picture_id = 67108878, frame_idx = 1, flags = 16, TopFieldOrderCnt = 28, BottomFieldOrderCnt = 28}, {
picture_id = 4294967295, frame_idx = 0, flags = 1, TopFieldOrderCnt = 0, BottomFieldOrderCnt = 0} <repeats 29 times>}
(gdb) p pic_param->ReferenceFrames
$33 = {{picture_id = 67108879, frame_idx = 15, flags = 8, TopFieldOrderCnt = 30, BottomFieldOrderCnt = 30}, {picture_id = 67108877, frame_idx = 13, flags = 8,
TopFieldOrderCnt = 26, BottomFieldOrderCnt = 26}, {picture_id = 4294967295, frame_idx = 12, flags = 1, TopFieldOrderCnt = 0, BottomFieldOrderCnt = 0}, {
picture_id = 4294967295, frame_idx = 0, flags = 1, TopFieldOrderCnt = 0, BottomFieldOrderCnt = 0} <repeats 13 times>}
Picture 67108878 is in RefPicList0 but I can't find it in
pic_param->ReferenceFrames.
Is it a bug of mplayer_vaapi?
Thanks
Haihao
More information about the Libva
mailing list