summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2003-08-18 09:20:02 +0000
committerMichael Niedermayer <michaelni@gmx.at>2003-08-18 09:20:02 +0000
commitbd5a60201e0fc253d55cef919a6d69de6efcbd1a (patch)
tree0486ceb8fe35878801d283c80da1e360e8e1bb29 /libavformat
parentf8188626331ba132abc7b11aadb15eaac09ac7aa (diff)
use codec_tag for encoding too
Originally committed as revision 2125 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/asf.c14
-rw-r--r--libavformat/au.c9
-rw-r--r--libavformat/wav.c10
3 files changed, 22 insertions, 11 deletions
diff --git a/libavformat/asf.c b/libavformat/asf.c
index 1712f8f22d..c05f28e35e 100644
--- a/libavformat/asf.c
+++ b/libavformat/asf.c
@@ -411,13 +411,23 @@ static int asf_write_header1(AVFormatContext *s, int64_t file_size, int64_t data
put_le16(pb, asf->streams[n].num);
put_str16(pb, p ? p->name : enc->codec_name);
put_le16(pb, 0); /* no parameters */
+
+
/* id */
if (enc->codec_type == CODEC_TYPE_AUDIO) {
put_le16(pb, 2);
- put_le16(pb, codec_get_tag(codec_wav_tags, enc->codec_id));
+ if(!enc->codec_tag)
+ enc->codec_tag = codec_get_tag(codec_wav_tags, enc->codec_id);
+ if(!enc->codec_tag)
+ return -1;
+ put_le16(pb, enc->codec_tag);
} else {
put_le16(pb, 4);
- put_le32(pb, codec_get_tag(codec_bmp_tags, enc->codec_id));
+ if(!enc->codec_tag)
+ enc->codec_tag = codec_get_tag(codec_bmp_tags, enc->codec_id);
+ if(!enc->codec_tag)
+ return -1;
+ put_le32(pb, enc->codec_tag);
}
}
end_header(pb, hpos);
diff --git a/libavformat/au.c b/libavformat/au.c
index 4a8353c444..b560437d51 100644
--- a/libavformat/au.c
+++ b/libavformat/au.c
@@ -42,15 +42,14 @@ static const CodecTag codec_au_tags[] = {
/* AUDIO_FILE header */
static int put_au_header(ByteIOContext *pb, AVCodecContext *enc)
{
- int tag;
-
- tag = codec_get_tag(codec_au_tags, enc->codec_id);
- if (tag == 0)
+ if(!enc->codec_tag)
+ enc->codec_tag = codec_get_tag(codec_au_tags, enc->codec_id);
+ if(!enc->codec_tag)
return -1;
put_tag(pb, ".snd"); /* magic number */
put_be32(pb, 24); /* header size */
put_be32(pb, AU_UNKOWN_SIZE); /* data size */
- put_be32(pb, (uint32_t)tag); /* codec ID */
+ put_be32(pb, (uint32_t)enc->codec_tag); /* codec ID */
put_be32(pb, enc->sample_rate);
put_be32(pb, (uint32_t)enc->channels);
return 0;
diff --git a/libavformat/wav.c b/libavformat/wav.c
index f8dd6c442e..df4203f067 100644
--- a/libavformat/wav.c
+++ b/libavformat/wav.c
@@ -38,13 +38,15 @@ const CodecTag codec_wav_tags[] = {
/* returns the size or -1 on error */
int put_wav_header(ByteIOContext *pb, AVCodecContext *enc)
{
- int tag, bps, blkalign, bytespersec;
+ int bps, blkalign, bytespersec;
int hdrsize = 18;
- tag = codec_get_tag(codec_wav_tags, enc->codec_id);
- if (tag == 0)
+ if(!enc->codec_tag)
+ enc->codec_tag = codec_get_tag(codec_wav_tags, enc->codec_id);
+ if(!enc->codec_tag)
return -1;
- put_le16(pb, tag);
+
+ put_le16(pb, enc->codec_tag);
put_le16(pb, enc->channels);
put_le32(pb, enc->sample_rate);
if (enc->codec_id == CODEC_ID_PCM_U8 ||