diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2004-07-02 19:26:51 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2004-07-02 19:26:51 +0000 |
commit | 37cdf93d6edd8887b95d969523b54f699657745b (patch) | |
tree | fe4ef988a13a7661d018eb25d0feccdf9f1c18ce | |
parent | 7c0dc3838482822af5ada6055be393aaf3dea32c (diff) | |
download | ffmpeg-37cdf93d6edd8887b95d969523b54f699657745b.tar.gz |
assert(0) -> retunrn -1
Originally committed as revision 3285 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavformat/flvenc.c | 76 |
1 files changed, 42 insertions, 34 deletions
diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c index 3bef887b0e..7f86036e73 100644 --- a/libavformat/flvenc.c +++ b/libavformat/flvenc.c @@ -34,6 +34,45 @@ static void put_be24(ByteIOContext *pb, int value) put_byte(pb, (value>> 0) & 0xFF ); } +static int get_audio_flags(AVCodecContext *enc){ + int flags = 0x02; + + switch (enc->sample_rate) { + case 44100: + flags |= 0x0C; + break; + case 22050: + flags |= 0x08; + break; + case 11025: + flags |= 0x04; + break; + case 8000: //nellymoser only + case 5512: //not mp3 + flags |= 0x00; + break; + default: + return -1; + } + + if (enc->channels > 1) { + flags |= 0x01; + } + + switch(enc->codec_id){ + case CODEC_ID_MP3: + flags |= 0x20; + break; + case 0: + flags |= enc->codec_tag<<4; + break; + default: + return -1; + } + + return flags; +} + static int flv_write_header(AVFormatContext *s) { ByteIOContext *pb = &s->pb; @@ -60,6 +99,8 @@ static int flv_write_header(AVFormatContext *s) put_be32(pb,11); // size flv->reserved=5; } + if(enc->codec_type == CODEC_TYPE_AUDIO && get_audio_flags(enc)<0) + return -1; } return 0; @@ -99,41 +140,8 @@ static int flv_write_packet(AVFormatContext *s, AVPacket *pkt) flv->hasVideo = 1; } else { assert(enc->codec_type == CODEC_TYPE_AUDIO); - flags = 0x02; - - switch (enc->sample_rate) { - case 44100: - flags |= 0x0C; - break; - case 22050: - flags |= 0x08; - break; - case 11025: - flags |= 0x04; - break; - case 8000: //nellymoser only - case 5512: //not mp3 - flags |= 0x00; - break; - default: - assert(0); - } - - if (enc->channels > 1) { - flags |= 0x01; - } + flags = get_audio_flags(enc); - switch(enc->codec_id){ - case CODEC_ID_MP3: - flags |= 0x20; - break; - case 0: - flags |= enc->codec_tag<<4; - break; - default: - assert(0); - } - assert(size); put_byte(pb, 8); |