lavc: translate non-flag-based er options into flag-based ef options at codec open
authorDustin Brody <libav@parsoma.net>
Sat, 22 Oct 2011 12:44:15 +0000 (08:44 -0400)
committerAnton Khirnov <anton@khirnov.net>
Sat, 22 Oct 2011 12:49:22 +0000 (14:49 +0200)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
libavcodec/utils.c

index 3e49262..35c9eeb 100644 (file)
@@ -576,6 +576,16 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, AVCodec *codec, AVD
         goto free_and_end;
     }
     avctx->frame_number = 0;
+#if FF_API_ER
+
+    av_log(avctx, AV_LOG_DEBUG, "err{or,}_recognition separate: %d; %d\n",
+           avctx->error_recognition, avctx->err_recognition);
+    /* FF_ER_CAREFUL (==1) implies AV_EF_CRCCHECK (== 1<<1 - 1),
+       FF_ER_COMPLIANT (==2) implies AV_EF_{CRCCHECK,BITSTREAM} (== 1<<2 - 1), et cetera} */
+    avctx->err_recognition |= (1<<(avctx->error_recognition-(avctx->error_recognition>=FF_ER_VERY_AGGRESSIVE))) - 1;
+    av_log(avctx, AV_LOG_DEBUG, "err{or,}_recognition combined: %d; %d\n",
+           avctx->error_recognition, avctx->err_recognition);
+#endif
 
     if (HAVE_THREADS && !avctx->thread_opaque) {
         ret = ff_thread_init(avctx);