avcodec/pngdec: allow for some code path optimizations.
authorBenoit Fouet <benoit.fouet@free.fr>
Fri, 28 Nov 2014 13:03:08 +0000 (14:03 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 28 Nov 2014 14:51:31 +0000 (15:51 +0100)
Use 'if (CONFIG_APNG_DECODER)' where needed, so that the compiler can
optimize out some portion of code.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/pngdec.c

index da852c4..a330d36 100644 (file)
@@ -949,7 +949,7 @@ static int decode_frame_common(AVCodecContext *avctx, PNGDecContext *s,
     for (;;) {
         length = bytestream2_get_bytes_left(&s->gb);
         if (length <= 0) {
-            if (avctx->codec_id == AV_CODEC_ID_APNG && length == 0) {
+            if (CONFIG_APNG_DECODER && avctx->codec_id == AV_CODEC_ID_APNG && length == 0) {
                 if (!(s->state & PNG_IDAT))
                     return 0;
                 else
@@ -984,14 +984,14 @@ static int decode_frame_common(AVCodecContext *avctx, PNGDecContext *s,
                 goto fail;
             break;
         case MKTAG('f', 'c', 'T', 'L'):
-            if (avctx->codec_id != AV_CODEC_ID_APNG)
+            if (!CONFIG_APNG_DECODER || avctx->codec_id != AV_CODEC_ID_APNG)
                 goto skip_tag;
             if ((ret = decode_fctl_chunk(avctx, s, length)) < 0)
                 goto fail;
             decode_next_dat = 1;
             break;
         case MKTAG('f', 'd', 'A', 'T'):
-            if (avctx->codec_id != AV_CODEC_ID_APNG)
+            if (!CONFIG_APNG_DECODER || avctx->codec_id != AV_CODEC_ID_APNG)
                 goto skip_tag;
             if (!decode_next_dat)
                 goto fail;
@@ -999,7 +999,7 @@ static int decode_frame_common(AVCodecContext *avctx, PNGDecContext *s,
             length -= 4;
             /* fallthrough */
         case MKTAG('I', 'D', 'A', 'T'):
-            if (avctx->codec_id == AV_CODEC_ID_APNG && !decode_next_dat)
+            if (CONFIG_APNG_DECODER && avctx->codec_id == AV_CODEC_ID_APNG && !decode_next_dat)
                 goto skip_tag;
             if (decode_idat_chunk(avctx, s, length, p) < 0)
                 goto fail;