aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2009-10-01 15:54:55 +0000
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2009-10-01 15:54:55 +0000
commit681c180dc441bf9fea1bb363c75c5d443f11a53a (patch)
tree14ed455e07bf3f1cae8a1330844cc0679014f385
parent43d7c6118d64a8b2772e2d9e0c13413968e776f1 (diff)
downloadffmpeg-681c180dc441bf9fea1bb363c75c5d443f11a53a.tar.gz
Make avcodec_open set codec_id and codec_type if they haven't been set.
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
-rw-r--r--libavcodec/utils.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 4ab0c350ee..c3df903f1e 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -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;