Message ID | 20240227034835.897-2-tong1.wu@intel.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel,1/2] avcodec/vaapi_encode_h264: use is_reference to fill reference_pic_flag | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
On Di, 2024-02-27 at 11:48 +0800, tong1.wu-at-intel.com@ffmpeg.org wrote: > From: Tong Wu <tong1.wu@intel.com> > > This codec supports FLAG_B_PICTURE_REFERENCES. We need to fill > reference_pic_flag with pic->is_reference. > > Signed-off-by: Tong Wu <tong1.wu@intel.com> > --- > libavcodec/vaapi_encode_h265.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c > index c4aabbf5ed..b5d3468152 100644 > --- a/libavcodec/vaapi_encode_h265.c > +++ b/libavcodec/vaapi_encode_h265.c > @@ -949,22 +949,22 @@ static int > vaapi_encode_h265_init_picture_params(AVCodecContext *avctx, > case PICTURE_TYPE_IDR: > vpic->pic_fields.bits.idr_pic_flag = 1; > vpic->pic_fields.bits.coding_type = 1; > - vpic->pic_fields.bits.reference_pic_flag = 1; > + vpic->pic_fields.bits.reference_pic_flag = pic->is_reference; > break; > case PICTURE_TYPE_I: > vpic->pic_fields.bits.idr_pic_flag = 0; > vpic->pic_fields.bits.coding_type = 1; > - vpic->pic_fields.bits.reference_pic_flag = 1; > + vpic->pic_fields.bits.reference_pic_flag = pic->is_reference; > break; > case PICTURE_TYPE_P: > vpic->pic_fields.bits.idr_pic_flag = 0; > vpic->pic_fields.bits.coding_type = 2; > - vpic->pic_fields.bits.reference_pic_flag = 1; > + vpic->pic_fields.bits.reference_pic_flag = pic->is_reference; > break; > case PICTURE_TYPE_B: > vpic->pic_fields.bits.idr_pic_flag = 0; > vpic->pic_fields.bits.coding_type = 3; > - vpic->pic_fields.bits.reference_pic_flag = 0; > + vpic->pic_fields.bits.reference_pic_flag = pic->is_reference; Better to move the assignment out of the switch statement. Thanks Haihao > break; > default: > av_assert0(0 && "invalid picture type");
>Subject: Re: [FFmpeg-devel] [PATCH 2/2] avcodec/vaapi_encode_h265: use >is_reference to fill reference_pic_flag > >On Di, 2024-02-27 at 11:48 +0800, tong1.wu-at-intel.com@ffmpeg.org wrote: >> From: Tong Wu <tong1.wu@intel.com> >> >> This codec supports FLAG_B_PICTURE_REFERENCES. We need to fill >> reference_pic_flag with pic->is_reference. >> >> Signed-off-by: Tong Wu <tong1.wu@intel.com> >> --- >> libavcodec/vaapi_encode_h265.c | 8 ++++---- >> 1 file changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/libavcodec/vaapi_encode_h265.c >b/libavcodec/vaapi_encode_h265.c >> index c4aabbf5ed..b5d3468152 100644 >> --- a/libavcodec/vaapi_encode_h265.c >> +++ b/libavcodec/vaapi_encode_h265.c >> @@ -949,22 +949,22 @@ static int >> vaapi_encode_h265_init_picture_params(AVCodecContext *avctx, >> case PICTURE_TYPE_IDR: >> vpic->pic_fields.bits.idr_pic_flag = 1; >> vpic->pic_fields.bits.coding_type = 1; >> - vpic->pic_fields.bits.reference_pic_flag = 1; >> + vpic->pic_fields.bits.reference_pic_flag = pic->is_reference; >> break; >> case PICTURE_TYPE_I: >> vpic->pic_fields.bits.idr_pic_flag = 0; >> vpic->pic_fields.bits.coding_type = 1; >> - vpic->pic_fields.bits.reference_pic_flag = 1; >> + vpic->pic_fields.bits.reference_pic_flag = pic->is_reference; >> break; >> case PICTURE_TYPE_P: >> vpic->pic_fields.bits.idr_pic_flag = 0; >> vpic->pic_fields.bits.coding_type = 2; >> - vpic->pic_fields.bits.reference_pic_flag = 1; >> + vpic->pic_fields.bits.reference_pic_flag = pic->is_reference; >> break; >> case PICTURE_TYPE_B: >> vpic->pic_fields.bits.idr_pic_flag = 0; >> vpic->pic_fields.bits.coding_type = 3; >> - vpic->pic_fields.bits.reference_pic_flag = 0; >> + vpic->pic_fields.bits.reference_pic_flag = pic->is_reference; > >Better to move the assignment out of the switch statement. Sorry I misunderstood. Please see patch V3. > >Thanks >Haihao > >> break; >> default: >> av_assert0(0 && "invalid picture type");
diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c index c4aabbf5ed..b5d3468152 100644 --- a/libavcodec/vaapi_encode_h265.c +++ b/libavcodec/vaapi_encode_h265.c @@ -949,22 +949,22 @@ static int vaapi_encode_h265_init_picture_params(AVCodecContext *avctx, case PICTURE_TYPE_IDR: vpic->pic_fields.bits.idr_pic_flag = 1; vpic->pic_fields.bits.coding_type = 1; - vpic->pic_fields.bits.reference_pic_flag = 1; + vpic->pic_fields.bits.reference_pic_flag = pic->is_reference; break; case PICTURE_TYPE_I: vpic->pic_fields.bits.idr_pic_flag = 0; vpic->pic_fields.bits.coding_type = 1; - vpic->pic_fields.bits.reference_pic_flag = 1; + vpic->pic_fields.bits.reference_pic_flag = pic->is_reference; break; case PICTURE_TYPE_P: vpic->pic_fields.bits.idr_pic_flag = 0; vpic->pic_fields.bits.coding_type = 2; - vpic->pic_fields.bits.reference_pic_flag = 1; + vpic->pic_fields.bits.reference_pic_flag = pic->is_reference; break; case PICTURE_TYPE_B: vpic->pic_fields.bits.idr_pic_flag = 0; vpic->pic_fields.bits.coding_type = 3; - vpic->pic_fields.bits.reference_pic_flag = 0; + vpic->pic_fields.bits.reference_pic_flag = pic->is_reference; break; default: av_assert0(0 && "invalid picture type");