]> git.sesse.net Git - ffmpeg/commitdiff
Make avcodec_open set codec_id and codec_type if they haven't been set.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Thu, 1 Oct 2009 15:54:55 +0000 (15:54 +0000)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Thu, 1 Oct 2009 15:54:55 +0000 (15:54 +0000)
This fixes the API breakage introduced by the check that avctx codec id and type
match the opened codec and should make (almost?) all applications work again.

Originally committed as revision 20125 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/utils.c

index 4ab0c350ee4438bfa3184790da0b84a528a556c8..c3df903f1e161c2e3829aa84c3780778747e5817 100644 (file)
@@ -480,6 +480,11 @@ int attribute_align_arg avcodec_open(AVCodecContext *avctx, AVCodec *codec)
     }
 
     avctx->codec = codec;
+    if ((avctx->codec_type == CODEC_TYPE_UNKNOWN || avctx->codec_type == codec->type) &&
+        avctx->codec_id == CODEC_ID_NONE) {
+        avctx->codec_type = codec->type;
+        avctx->codec_id   = codec->id;
+    }
     if(avctx->codec_id != codec->id || avctx->codec_type != codec->type){
         av_log(avctx, AV_LOG_ERROR, "codec type or id mismatches\n");
         goto free_and_end;