Message ID | 20230103125952.2707824-10-fei.w.wang@intel.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel,v3,01/11] lavc/hevc_ps: remove profile limitation of pps_range_extensions() | 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 | fail | Make fate failed |
> -----Original Message----- > From: Wang, Fei W <fei.w.wang@intel.com> > Sent: Tuesday, January 3, 2023 9:00 PM > To: ffmpeg-devel@ffmpeg.org > Cc: Linjie Fu <linjie.fu@intel.com>; Linjie Fu <linjie.justin.fu@gmail.com>; Wang, > Fei W <fei.w.wang@intel.com> > Subject: [FFmpeg-devel][PATCH v3 10/11] lavc/vaapi_hevc: Set correct rps type > for scc > > From: Linjie Fu <linjie.fu@intel.com> > > According to 8.1.3 and 8.3.2. > > Signed-off-by: Linjie Fu <linjie.justin.fu@gmail.com> > Signed-off-by: Fei Wang <fei.w.wang@intel.com> > --- > libavcodec/vaapi_hevc.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/libavcodec/vaapi_hevc.c b/libavcodec/vaapi_hevc.c index > c10617a81a..29c75e88f0 100644 > --- a/libavcodec/vaapi_hevc.c > +++ b/libavcodec/vaapi_hevc.c > @@ -71,6 +71,7 @@ static void fill_vaapi_pic(VAPictureHEVC *va_pic, const > HEVCFrame *pic, int rps_ static int find_frame_rps_type(const HEVCContext *h, > const HEVCFrame *pic) { > VASurfaceID pic_surf = ff_vaapi_get_surface_id(pic->frame); > + const HEVCFrame *current_picture = h->ref; > int i; > > for (i = 0; i < h->rps[ST_CURR_BEF].nb_refs; i++) { @@ -88,6 +89,9 @@ static > int find_frame_rps_type(const HEVCContext *h, const HEVCFrame *pic) > return VA_PICTURE_HEVC_RPS_LT_CURR; > } > > + if (h->ps.pps->pps_curr_pic_ref_enabled_flag && current_picture->poc == > pic->poc) > + return VA_PICTURE_HEVC_LONG_TERM_REFERENCE; > + FATE test report fail in patchwork: https://patchwork.ffmpeg.org/project/ffmpeg/patch/20230103125952.2707824-10-fei.w.wang@intel.com/ make: *** [fate-hevc-conformance-PS_A_VIDYO_3] Error 1 cpu_flags(raw) = 0x000813DB cpu_flags_str(raw) = mmx mmxext sse sse2 sse3 ssse3 sse4.1 sse4.2 cmov aesni cpu_flags(effective) = 0x000813DB cpu_flags_str(effective) = mmx mmxext sse sse2 sse3 ssse3 sse4.1 sse4.2 cmov aesni threads = 1 (cpu_count = 5) make: Target 'fate' not remade because of errors. Checked locally, no this problem. The patch only change vaapi hevc decoder, should not cause the FATE fail(Only native decoder will be used in FATE?). Assume wrong report in patchwork. Thanks Fei > return 0; > } > > -- > 2.25.1
diff --git a/libavcodec/vaapi_hevc.c b/libavcodec/vaapi_hevc.c index c10617a81a..29c75e88f0 100644 --- a/libavcodec/vaapi_hevc.c +++ b/libavcodec/vaapi_hevc.c @@ -71,6 +71,7 @@ static void fill_vaapi_pic(VAPictureHEVC *va_pic, const HEVCFrame *pic, int rps_ static int find_frame_rps_type(const HEVCContext *h, const HEVCFrame *pic) { VASurfaceID pic_surf = ff_vaapi_get_surface_id(pic->frame); + const HEVCFrame *current_picture = h->ref; int i; for (i = 0; i < h->rps[ST_CURR_BEF].nb_refs; i++) { @@ -88,6 +89,9 @@ static int find_frame_rps_type(const HEVCContext *h, const HEVCFrame *pic) return VA_PICTURE_HEVC_RPS_LT_CURR; } + if (h->ps.pps->pps_curr_pic_ref_enabled_flag && current_picture->poc == pic->poc) + return VA_PICTURE_HEVC_LONG_TERM_REFERENCE; + return 0; }