Re: [libav-devel] [PATCH] indeo4: Rework stream analysis report

2016-03-22 Thread Vittorio Giovara
On Tue, Mar 22, 2016 at 8:43 AM, Diego Biurrun  wrote:
> On Sat, Mar 19, 2016 at 05:07:37PM -0400, Vittorio Giovara wrote:
>> * Change log level from error to debug
>> * Print report  after the first decoded frame, not at the end of decoding
>> * Drop macro guard and use a context variable instead
>>
>> Signed-off-by: Vittorio Giovara 
>> ---
>>  libavcodec/indeo4.c | 11 +--
>>  libavcodec/ivi.c| 33 -
>>  libavcodec/ivi.h|  4 +---
>>  3 files changed, 18 insertions(+), 30 deletions(-)
>
> Did you benchmark this?

I haven't but the log is done only once (and only at debug level), so
it should not have noticeable effect.
-- 
Vittorio
___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


Re: [libav-devel] [PATCH] indeo4: Rework stream analysis report

2016-03-22 Thread Luca Barbato
On 19/03/16 22:07, Vittorio Giovara wrote:
> * Change log level from error to debug
> * Print report  after the first decoded frame, not at the end of decoding
> * Drop macro guard and use a context variable instead
> 
> Signed-off-by: Vittorio Giovara 
> ---
>  libavcodec/indeo4.c | 11 +--
>  libavcodec/ivi.c| 33 -
>  libavcodec/ivi.h|  4 +---
>  3 files changed, 18 insertions(+), 30 deletions(-)
> 

Seems Ok to me.

___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


Re: [libav-devel] [PATCH] indeo4: Rework stream analysis report

2016-03-22 Thread Diego Biurrun
On Sat, Mar 19, 2016 at 05:07:37PM -0400, Vittorio Giovara wrote:
> * Change log level from error to debug
> * Print report  after the first decoded frame, not at the end of decoding
> * Drop macro guard and use a context variable instead
> 
> Signed-off-by: Vittorio Giovara 
> ---
>  libavcodec/indeo4.c | 11 +--
>  libavcodec/ivi.c| 33 -
>  libavcodec/ivi.h|  4 +---
>  3 files changed, 18 insertions(+), 30 deletions(-)

Did you benchmark this?

Diego
___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


[libav-devel] [PATCH] indeo4: Rework stream analysis report

2016-03-19 Thread Vittorio Giovara
* Change log level from error to debug
* Print report  after the first decoded frame, not at the end of decoding
* Drop macro guard and use a context variable instead

Signed-off-by: Vittorio Giovara 
---
 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 64ed8cd..4ec09dc 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(>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(>gb)) {
@@ -166,9 +162,7 @@ static int decode_pic_hdr(IVI45DecContext *ctx, 
AVCodecContext *avctx)
 if (get_bits1(>gb)) {
 pic_conf.tile_height = scale_tile_size(pic_conf.pic_height, 
get_bits(>gb, 4));
 pic_conf.tile_width  = scale_tile_size(pic_conf.pic_width,  
get_bits(>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;
@@ -293,10 +287,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(>gb);
 if (band->checksum_present)
@@ -328,10 +320,8 @@ static int decode_band_hdr(IVI45DecContext *ctx, 
IVIBandDesc *band,
 return AVERROR_PATCHWELCOME;
 }
 
-#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;
@@ -640,6 +630,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 9762eeb..caa3fe6 100644
--- a/libavcodec/ivi.c
+++ b/libavcodec/ivi.c
@@ -1133,6 +1133,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;
 }
 
@@ -1148,23 +1164,6 @@ av_cold int ff_ivi_decode_close(AVCodecContext *avctx)
 if (ctx->mb_vlc.cust_tab.table)
 ff_free_vlc(>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(>p_frame);
 
 return 0;
diff --git a/libavcodec/ivi.h b/libavcodec/ivi.h
index 5dadd9f..c403739 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_ANALYSER0
 #define IVI5_IS_PROTECTED   0x20
 
 /**
@@ -249,13 +248,12 @@ typedef struct IVI45DecContext {
 uint8_t gop_flags;
 uint32_tlock_word;
 
-#if IVI4_STREAM_ANALYSER
+int show_indeo4_info;