# HG changeset patch # User michael # Date 1088796411 0 # Node ID c0849ef998e74c42246a11efd2d18977ed487694 # Parent aeb69a5f37564ad27b2da4d82a7fd736c4f346aa assert(0) -> retunrn -1 diff -r aeb69a5f3756 -r c0849ef998e7 flvenc.c --- a/flvenc.c Wed Jun 30 19:24:43 2004 +0000 +++ b/flvenc.c Fri Jul 02 19:26:51 2004 +0000 @@ -34,6 +34,45 @@ 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 @@ 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 @@ 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);