[FFmpeg-cvslog] libavcodec/libx265: add a flag to output ROI warnings only once.

Guo, Yejun git at videolan.org
Wed Sep 25 01:17:19 EEST 2019


ffmpeg | branch: master | Guo, Yejun <yejun.guo at intel.com> | Mon Sep 23 10:02:35 2019 +0800| [85e338ab0da63cc9f319d657ee2eefe4d6f32094] | committer: Mark Thompson

libavcodec/libx265: add a flag to output ROI warnings only once.

Signed-off-by: Guo, Yejun <yejun.guo at intel.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=85e338ab0da63cc9f319d657ee2eefe4d6f32094
---

 libavcodec/libx265.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c
index 665b780643..4e7507728f 100644
--- a/libavcodec/libx265.c
+++ b/libavcodec/libx265.c
@@ -47,6 +47,12 @@ typedef struct libx265Context {
     char *tune;
     char *profile;
     char *x265_opts;
+
+    /**
+     * If the encoder does not support ROI then warn the first time we
+     * encounter a frame with ROI side data.
+     */
+    int roi_warned;
 } libx265Context;
 
 static int is_keyframe(NalUnitType naltype)
@@ -310,7 +316,10 @@ static av_cold int libx265_encode_set_roi(libx265Context *ctx, const AVFrame *fr
     AVFrameSideData *sd = av_frame_get_side_data(frame, AV_FRAME_DATA_REGIONS_OF_INTEREST);
     if (sd) {
         if (ctx->params->rc.aqMode == X265_AQ_NONE) {
-            av_log(ctx, AV_LOG_WARNING, "Adaptive quantization must be enabled to use ROI encoding, skipping ROI.\n");
+            if (!ctx->roi_warned) {
+                ctx->roi_warned = 1;
+                av_log(ctx, AV_LOG_WARNING, "Adaptive quantization must be enabled to use ROI encoding, skipping ROI.\n");
+            }
         } else {
             /* 8x8 block when qg-size is 8, 16*16 block otherwise. */
             int mb_size = (ctx->params->rc.qgSize == 8) ? 8 : 16;



More information about the ffmpeg-cvslog mailing list