diff options
author | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-04-17 18:51:58 +0100 |
---|---|---|
committer | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-04-17 18:51:58 +0100 |
commit | 1117d6f4b122aa4189c27e3568154e029dfdcbe7 (patch) | |
tree | a42e3d85e5cbf7eedb3505e8ea9126b7caf2c6d4 /libavcodec | |
parent | 98e3153fa3a190df5c0a2173e134f81299606819 (diff) | |
parent | 6202e2fede75df92cbc374a3f7d6893d0c5ac721 (diff) | |
download | ffmpeg-1117d6f4b122aa4189c27e3568154e029dfdcbe7.tar.gz |
Merge commit '6202e2fede75df92cbc374a3f7d6893d0c5ac721'
* commit '6202e2fede75df92cbc374a3f7d6893d0c5ac721':
indeo4: Rework stream analysis report
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/indeo4.c | 11 | ||||
-rw-r--r-- | libavcodec/ivi.c | 33 | ||||
-rw-r--r-- | libavcodec/ivi.h | 4 |
3 files changed, 18 insertions, 30 deletions
diff --git a/libavcodec/indeo4.c b/libavcodec/indeo4.c index 0065b52c75..f91db9ff2a 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 e7799003e6..a1eab941d2 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 abe43462a1..6969d6e7b6 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); |