summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-09-07 13:16:04 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-09-07 13:16:04 +0200
commita7fbc7d7b7eabc74ceb1970a995c56043315e433 (patch)
treec675d7354b68ac5349fd0e068bb32108c7a47fda /libavformat
parent91141f2a13bcb36b849335d1d10c01b596d773bb (diff)
lavf: factor codec id forcing out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/utils.c28
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);