Mercurial > libavformat.hg
changeset 2691:002ab6bbf9db libavformat
factorize stream creation
author | michael |
---|---|
date | Wed, 31 Oct 2007 21:35:50 +0000 |
parents | 0a8f2dc62d01 |
children | d320b2990d7e |
files | flvdec.c |
diffstat | 1 files changed, 11 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/flvdec.c Wed Oct 31 11:35:10 2007 +0000 +++ b/flvdec.c Wed Oct 31 21:35:50 2007 +0000 @@ -224,11 +224,19 @@ return 0; } +static AVStream *create_stream(AVFormatContext *s, int is_audio){ + AVStream *st = av_new_stream(s, is_audio); + if (!st) + return NULL; + st->codec->codec_type = is_audio ? CODEC_TYPE_AUDIO : CODEC_TYPE_VIDEO; + av_set_pts_info(st, 24, 1, 1000); /* 24 bit pts in ms */ + return st; +} + static int flv_read_header(AVFormatContext *s, AVFormatParameters *ap) { int offset, flags; - AVStream *st; url_fskip(&s->pb, 4); flags = get_byte(&s->pb); @@ -240,18 +248,12 @@ } if(flags & FLV_HEADER_FLAG_HASVIDEO){ - st = av_new_stream(s, 0); - if (!st) + if(!create_stream(s, 0)) return AVERROR(ENOMEM); - st->codec->codec_type = CODEC_TYPE_VIDEO; - av_set_pts_info(st, 24, 1, 1000); /* 24 bit pts in ms */ } if(flags & FLV_HEADER_FLAG_HASAUDIO){ - st = av_new_stream(s, 1); - if (!st) + if(!create_stream(s, 1)) return AVERROR(ENOMEM); - st->codec->codec_type = CODEC_TYPE_AUDIO; - av_set_pts_info(st, 24, 1, 1000); /* 24 bit pts in ms */ } offset = get_be32(&s->pb);