summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2004-07-02 19:26:51 +0000
committerMichael Niedermayer <michaelni@gmx.at>2004-07-02 19:26:51 +0000
commit37cdf93d6edd8887b95d969523b54f699657745b (patch)
treefe4ef988a13a7661d018eb25d0feccdf9f1c18ce /libavformat
parent7c0dc3838482822af5ada6055be393aaf3dea32c (diff)
assert(0) -> retunrn -1
Originally committed as revision 3285 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/flvenc.c76
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);