Skip to content
Snippets Groups Projects
Commit 8d41fe28 authored by Baptiste Coudurier's avatar Baptiste Coudurier
Browse files

simplify by not writing unneeded codec name to fix segfault when stream copy

Originally committed as revision 6643 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 086b05cd
No related branches found
No related tags found
No related merge requests found
...@@ -180,7 +180,6 @@ static int aiff_write_header(AVFormatContext *s) ...@@ -180,7 +180,6 @@ static int aiff_write_header(AVFormatContext *s)
ByteIOContext *pb = &s->pb; ByteIOContext *pb = &s->pb;
AVCodecContext *enc = s->streams[0]->codec; AVCodecContext *enc = s->streams[0]->codec;
AVExtFloat sample_rate; AVExtFloat sample_rate;
int coder_len;
/* First verify if format is ok */ /* First verify if format is ok */
enc->codec_tag = codec_get_tag(codec_aiff_tags, enc->codec_id); enc->codec_tag = codec_get_tag(codec_aiff_tags, enc->codec_id);
...@@ -189,8 +188,6 @@ static int aiff_write_header(AVFormatContext *s) ...@@ -189,8 +188,6 @@ static int aiff_write_header(AVFormatContext *s)
return -1; return -1;
} }
coder_len = strlen(enc->codec->name);
/* FORM AIFF header */ /* FORM AIFF header */
put_tag(pb, "FORM"); put_tag(pb, "FORM");
aiff->form = url_ftell(pb); aiff->form = url_ftell(pb);
...@@ -204,10 +201,7 @@ static int aiff_write_header(AVFormatContext *s) ...@@ -204,10 +201,7 @@ static int aiff_write_header(AVFormatContext *s)
/* Common chunk */ /* Common chunk */
put_tag(pb, "COMM"); put_tag(pb, "COMM");
if (coder_len & 1) /* Common chunk is of var size */ put_be32(pb, 24); /* size */
put_be32(pb, 23+coder_len);
else
put_be32(pb, 24+coder_len);
put_be16(pb, enc->channels); /* Number of channels */ put_be16(pb, enc->channels); /* Number of channels */
aiff->frames = url_ftell(pb); aiff->frames = url_ftell(pb);
...@@ -221,14 +215,7 @@ static int aiff_write_header(AVFormatContext *s) ...@@ -221,14 +215,7 @@ static int aiff_write_header(AVFormatContext *s)
put_buffer(pb, (uint8_t*)&sample_rate, sizeof(sample_rate)); put_buffer(pb, (uint8_t*)&sample_rate, sizeof(sample_rate));
put_le32(pb, enc->codec_tag); put_le32(pb, enc->codec_tag);
if (coder_len & 1) { put_be16(pb, 0);
put_byte(pb, coder_len);
put_buffer(pb, (const uint8_t*)enc->codec->name, coder_len);
} else {
put_byte(pb, coder_len+1);
put_buffer(pb, (const uint8_t*)enc->codec->name, coder_len);
put_byte(pb, 0);
}
/* Sound data chunk */ /* Sound data chunk */
put_tag(pb, "SSND"); put_tag(pb, "SSND");
......
...@@ -65,8 +65,8 @@ e2a6d6fae17394dfe87cb5bb8ae11837 *./data/b-libav.al ...@@ -65,8 +65,8 @@ e2a6d6fae17394dfe87cb5bb8ae11837 *./data/b-libav.al
272b91d8fc31ed43b08246d182719751 *./data/b-libav.mmf 272b91d8fc31ed43b08246d182719751 *./data/b-libav.mmf
22609 ./data/b-libav.mmf 22609 ./data/b-libav.mmf
./data/b-libav.mmf CRC=0x03633476 ./data/b-libav.mmf CRC=0x03633476
a324baee6d76c53ab7c74616cfc31616 *./data/b-libav.aif c8cf5bac13fb7862bcbce76977328f92 *./data/b-libav.aif
89168 ./data/b-libav.aif 89160 ./data/b-libav.aif
./data/b-libav.aif CRC=0x2a09519c ./data/b-libav.aif CRC=0x2a09519c
8d117c49d6b210abe783d1b0b897cec7 *./data/b-libav.voc 8d117c49d6b210abe783d1b0b897cec7 *./data/b-libav.voc
32768 ./data/b-libav.voc 32768 ./data/b-libav.voc
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment