tiffenc: Check zlib support for deflate option during initialization
authorVittorio Giovara <vittorio.giovara@gmail.com>
Mon, 27 Jun 2016 00:08:54 +0000 (20:08 -0400)
committerVittorio Giovara <vittorio.giovara@gmail.com>
Wed, 29 Jun 2016 19:25:42 +0000 (15:25 -0400)
This converts a misleading error about an option not found to a more
meaningful one.

libavcodec/tiffenc.c

index 24312f0..8791c54 100644 (file)
@@ -492,6 +492,16 @@ fail:
 
 static av_cold int encode_init(AVCodecContext *avctx)
 {
+#if !CONFIG_ZLIB
+    TiffEncoderContext *s = avctx->priv_data;
+
+    if (s->compr == TIFF_DEFLATE) {
+        av_log(avctx, AV_LOG_ERROR,
+               "Deflate compression needs zlib compiled in\n");
+        return AVERROR(ENOSYS);
+    }
+#endif
+
 #if FF_API_CODED_FRAME
 FF_DISABLE_DEPRECATION_WARNINGS
     avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
@@ -509,9 +519,7 @@ static const AVOption options[] = {
     { "packbits",         NULL, 0,             AV_OPT_TYPE_CONST, { .i64 = TIFF_PACKBITS }, 0,        0,            VE, "compression_algo" },
     { "raw",              NULL, 0,             AV_OPT_TYPE_CONST, { .i64 = TIFF_RAW      }, 0,        0,            VE, "compression_algo" },
     { "lzw",              NULL, 0,             AV_OPT_TYPE_CONST, { .i64 = TIFF_LZW      }, 0,        0,            VE, "compression_algo" },
-#if CONFIG_ZLIB
     { "deflate",          NULL, 0,             AV_OPT_TYPE_CONST, { .i64 = TIFF_DEFLATE  }, 0,        0,            VE, "compression_algo" },
-#endif
     { NULL },
 };