[FFmpeg-cvslog] Merge commit '6202e2fede75df92cbc374a3f7d6893d0c5ac721'

Derek Buitenhuis git at videolan.org
Sun Apr 17 19:52:51 CEST 2016


ffmpeg | branch: master | Derek Buitenhuis <derek.buitenhuis at gmail.com> | Sun Apr 17 18:51:58 2016 +0100| [1117d6f4b122aa4189c27e3568154e029dfdcbe7] | committer: Derek Buitenhuis

Merge commit '6202e2fede75df92cbc374a3f7d6893d0c5ac721'

* commit '6202e2fede75df92cbc374a3f7d6893d0c5ac721':
  indeo4: Rework stream analysis report

Merged-by: Derek Buitenhuis <derek.buitenhuis at gmail.com>

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

 libavcodec/indeo4.c |   11 +----------
 libavcodec/ivi.c    |   33 ++++++++++++++++-----------------
 libavcodec/ivi.h    |    4 +---
 3 files changed, 18 insertions(+), 30 deletions(-)

diff --git a/libavcodec/indeo4.c b/libavcodec/indeo4.c
index 0065b52..f91db9f 100644
--- a/libavcodec/indeo4.c
+++ b/libavcodec/indeo4.c
@@ -119,17 +119,13 @@ static int decode_pic_hdr(IVI45DecContext *ctx, AVCodecContext *avctx)
         return AVERROR_INVALIDDATA;
     }
 
-#if IVI4_STREAM_ANALYSER
     if (ctx->frame_type == IVI4_FRAMETYPE_BIDIR)
         ctx->has_b_frames = 1;
-#endif
 
     ctx->transp_status = get_bits1(&ctx->gb);
-#if IVI4_STREAM_ANALYSER
     if (ctx->transp_status) {
         ctx->has_transp = 1;
     }
-#endif
 
     /* unknown bit: Mac decoder ignores this bit, XANIM returns error */
     if (get_bits1(&ctx->gb)) {
@@ -166,9 +162,7 @@ static int decode_pic_hdr(IVI45DecContext *ctx, AVCodecContext *avctx)
     if (get_bits1(&ctx->gb)) {
         pic_conf.tile_height = scale_tile_size(pic_conf.pic_height, get_bits(&ctx->gb, 4));
         pic_conf.tile_width  = scale_tile_size(pic_conf.pic_width,  get_bits(&ctx->gb, 4));
-#if IVI4_STREAM_ANALYSER
         ctx->uses_tiling = 1;
-#endif
     } else {
         pic_conf.tile_height = pic_conf.pic_height;
         pic_conf.tile_width  = pic_conf.pic_width;
@@ -295,10 +289,8 @@ static int decode_band_hdr(IVI45DecContext *ctx, IVIBandDesc *band,
                    band->is_halfpel);
             return AVERROR_INVALIDDATA;
         }
-#if IVI4_STREAM_ANALYSER
         if (!band->is_halfpel)
             ctx->uses_fullpel = 1;
-#endif
 
         band->checksum_present = get_bits1(&ctx->gb);
         if (band->checksum_present)
@@ -334,10 +326,8 @@ static int decode_band_hdr(IVI45DecContext *ctx, IVIBandDesc *band,
                 av_log(avctx, AV_LOG_ERROR, "wrong transform size!\n");
                 return AVERROR_INVALIDDATA;
             }
-#if IVI4_STREAM_ANALYSER
             if ((transform_id >= 0 && transform_id <= 2) || transform_id == 10)
                 ctx->uses_haar = 1;
-#endif
 
             band->inv_transform = transforms[transform_id].inv_trans;
             band->dc_transform  = transforms[transform_id].dc_trans;
@@ -683,6 +673,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
     ctx->is_nonnull_frame = is_nonnull_frame;
 
     ctx->is_indeo4 = 1;
+    ctx->show_indeo4_info = 1;
 
     ctx->dst_buf   = 0;
     ctx->ref_buf   = 1;
diff --git a/libavcodec/ivi.c b/libavcodec/ivi.c
index e779900..a1eab94 100644
--- a/libavcodec/ivi.c
+++ b/libavcodec/ivi.c
@@ -1172,6 +1172,22 @@ int ff_ivi_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
         }
     }
 
+    if (ctx->show_indeo4_info) {
+        if (ctx->is_scalable)
+            av_log(avctx, AV_LOG_DEBUG, "This video uses scalability mode\n");
+        if (ctx->uses_tiling)
+            av_log(avctx, AV_LOG_DEBUG, "This video uses local decoding\n");
+        if (ctx->has_b_frames)
+            av_log(avctx, AV_LOG_DEBUG, "This video contains B-frames\n");
+        if (ctx->has_transp)
+            av_log(avctx, AV_LOG_DEBUG, "Transparency mode is enabled\n");
+        if (ctx->uses_haar)
+            av_log(avctx, AV_LOG_DEBUG, "This video uses Haar transform\n");
+        if (ctx->uses_fullpel)
+            av_log(avctx, AV_LOG_DEBUG, "This video uses fullpel motion vectors\n");
+        ctx->show_indeo4_info = 0;
+    }
+
     return buf_size;
 }
 
@@ -1187,23 +1203,6 @@ av_cold int ff_ivi_decode_close(AVCodecContext *avctx)
     if (ctx->mb_vlc.cust_tab.table)
         ff_free_vlc(&ctx->mb_vlc.cust_tab);
 
-#if IVI4_STREAM_ANALYSER
-    if (ctx->is_indeo4) {
-    if (ctx->is_scalable)
-        av_log(avctx, AV_LOG_ERROR, "This video uses scalability mode!\n");
-    if (ctx->uses_tiling)
-        av_log(avctx, AV_LOG_ERROR, "This video uses local decoding!\n");
-    if (ctx->has_b_frames)
-        av_log(avctx, AV_LOG_ERROR, "This video contains B-frames!\n");
-    if (ctx->has_transp)
-        av_log(avctx, AV_LOG_ERROR, "Transparency mode is enabled!\n");
-    if (ctx->uses_haar)
-        av_log(avctx, AV_LOG_ERROR, "This video uses Haar transform!\n");
-    if (ctx->uses_fullpel)
-        av_log(avctx, AV_LOG_ERROR, "This video uses fullpel motion vectors!\n");
-    }
-#endif
-
     av_frame_free(&ctx->p_frame);
 
     return 0;
diff --git a/libavcodec/ivi.h b/libavcodec/ivi.h
index abe4346..6969d6e 100644
--- a/libavcodec/ivi.h
+++ b/libavcodec/ivi.h
@@ -47,7 +47,6 @@ enum {
 };
 
 #define IVI_VLC_BITS 13 ///< max number of bits of the ivi's huffman codes
-#define IVI4_STREAM_ANALYSER    0
 #define IVI5_IS_PROTECTED       0x20
 
 /**
@@ -250,13 +249,12 @@ typedef struct IVI45DecContext {
     uint8_t         gop_flags;
     uint32_t        lock_word;
 
-#if IVI4_STREAM_ANALYSER
+    int             show_indeo4_info;
     uint8_t         has_b_frames;
     uint8_t         has_transp;
     uint8_t         uses_tiling;
     uint8_t         uses_haar;
     uint8_t         uses_fullpel;
-#endif
 
     int             (*decode_pic_hdr)  (struct IVI45DecContext *ctx, AVCodecContext *avctx);
     int             (*decode_band_hdr) (struct IVI45DecContext *ctx, IVIBandDesc *band, AVCodecContext *avctx);


======================================================================

diff --cc libavcodec/indeo4.c
index 0065b52,4ec09dc..f91db9f
--- a/libavcodec/indeo4.c
+++ b/libavcodec/indeo4.c
@@@ -330,14 -320,8 +322,12 @@@ static int decode_band_hdr(IVI45DecCont
                  return AVERROR_PATCHWELCOME;
              }
  
 +            if (transform_id < 10 && band->blk_size < 8) {
 +                av_log(avctx, AV_LOG_ERROR, "wrong transform size!\n");
 +                return AVERROR_INVALIDDATA;
 +            }
- #if IVI4_STREAM_ANALYSER
              if ((transform_id >= 0 && transform_id <= 2) || transform_id == 10)
                  ctx->uses_haar = 1;
- #endif
  
              band->inv_transform = transforms[transform_id].inv_trans;
              band->dc_transform  = transforms[transform_id].dc_trans;



More information about the ffmpeg-cvslog mailing list