diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-09-07 13:16:04 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-09-07 13:16:04 +0200 |
commit | a7fbc7d7b7eabc74ceb1970a995c56043315e433 (patch) | |
tree | c675d7354b68ac5349fd0e068bb32108c7a47fda /libavformat | |
parent | 91141f2a13bcb36b849335d1d10c01b596d773bb (diff) | |
download | ffmpeg-a7fbc7d7b7eabc74ceb1970a995c56043315e433.tar.gz |
lavf: factor codec id forcing out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/utils.c | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c index 01b5cc512b..5b7618fe84 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -712,6 +712,21 @@ no_packet: } } +static void force_codec_ids(AVFormatContext *s, AVStream *st) +{ + switch(st->codec->codec_type){ + case AVMEDIA_TYPE_VIDEO: + if(s->video_codec_id) st->codec->codec_id= s->video_codec_id; + break; + case AVMEDIA_TYPE_AUDIO: + if(s->audio_codec_id) st->codec->codec_id= s->audio_codec_id; + break; + case AVMEDIA_TYPE_SUBTITLE: + if(s->subtitle_codec_id)st->codec->codec_id= s->subtitle_codec_id; + break; + } +} + int ff_read_packet(AVFormatContext *s, AVPacket *pkt) { int ret, i; @@ -765,17 +780,8 @@ int ff_read_packet(AVFormatContext *s, AVPacket *pkt) st= s->streams[pkt->stream_index]; - switch(st->codec->codec_type){ - case AVMEDIA_TYPE_VIDEO: - if(s->video_codec_id) st->codec->codec_id= s->video_codec_id; - break; - case AVMEDIA_TYPE_AUDIO: - if(s->audio_codec_id) st->codec->codec_id= s->audio_codec_id; - break; - case AVMEDIA_TYPE_SUBTITLE: - if(s->subtitle_codec_id)st->codec->codec_id= s->subtitle_codec_id; - break; - } + force_codec_ids(s, st); + /* TODO: audio: time filter; video: frame reordering (pts != dts) */ if (s->use_wallclock_as_timestamps) pkt->dts = pkt->pts = av_rescale_q(av_gettime(), AV_TIME_BASE_Q, st->time_base); |