diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-12-18 14:27:59 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-12-18 14:27:59 +0100 |
commit | 94ecbe23c52b699a8f2bda1cf71fb4efbf28679a (patch) | |
tree | 240b05c733a4d256ffbffa74f80fa3dcea49fc81 /libavformat/au.c | |
parent | 95015634f5017897a61f4883bc217b0f7efbc40c (diff) | |
parent | c35f0e8495e34c2082dcde805e9323c9f6a4cb0a (diff) | |
download | ffmpeg-94ecbe23c52b699a8f2bda1cf71fb4efbf28679a.tar.gz |
Merge commit 'c35f0e8495e34c2082dcde805e9323c9f6a4cb0a'
* commit 'c35f0e8495e34c2082dcde805e9323c9f6a4cb0a':
au: Reorder code so that both muxer and demuxer are under #ifdefs
fate: Move RALF test into lossless audio group
cosmetics: Use consistent names for multiple inclusion guards.
Conflicts:
libavformat/au.c
tests/fate/lossless-audio.mak
tests/fate/real.mak
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/au.c')
-rw-r--r-- | libavformat/au.c | 118 |
1 files changed, 59 insertions, 59 deletions
diff --git a/libavformat/au.c b/libavformat/au.c index 9f95334fc1..0bf935469d 100644 --- a/libavformat/au.c +++ b/libavformat/au.c @@ -51,62 +51,7 @@ static const AVCodecTag codec_au_tags[] = { { AV_CODEC_ID_NONE, 0 }, }; -#if CONFIG_AU_MUXER -/* AUDIO_FILE header */ -static int put_au_header(AVIOContext *pb, AVCodecContext *enc) -{ - if(!enc->codec_tag) - return -1; - ffio_wfourcc(pb, ".snd"); /* magic number */ - avio_wb32(pb, AU_HEADER_SIZE); /* header size */ - avio_wb32(pb, AU_UNKNOWN_SIZE); /* data size */ - avio_wb32(pb, (uint32_t)enc->codec_tag); /* codec ID */ - avio_wb32(pb, enc->sample_rate); - avio_wb32(pb, (uint32_t)enc->channels); - avio_wb64(pb, 0); /* annotation field */ - return 0; -} - -static int au_write_header(AVFormatContext *s) -{ - AVIOContext *pb = s->pb; - - /* format header */ - if (put_au_header(pb, s->streams[0]->codec) < 0) { - return -1; - } - - avio_flush(pb); - - return 0; -} - -static int au_write_packet(AVFormatContext *s, AVPacket *pkt) -{ - AVIOContext *pb = s->pb; - avio_write(pb, pkt->data, pkt->size); - return 0; -} - -static int au_write_trailer(AVFormatContext *s) -{ - AVIOContext *pb = s->pb; - int64_t file_size; - - if (s->pb->seekable) { - - /* update file size */ - file_size = avio_tell(pb); - avio_seek(pb, 8, SEEK_SET); - avio_wb32(pb, (uint32_t)(file_size - AU_HEADER_SIZE)); - avio_seek(pb, file_size, SEEK_SET); - - avio_flush(pb); - } - - return 0; -} -#endif /* CONFIG_AU_MUXER */ +#if CONFIG_AU_DEMUXER static int au_probe(AVProbeData *p) { @@ -177,7 +122,6 @@ static int au_read_header(AVFormatContext *s) return 0; } -#if CONFIG_AU_DEMUXER AVInputFormat ff_au_demuxer = { .name = "au", .long_name = NULL_IF_CONFIG_SMALL("Sun AU"), @@ -187,9 +131,65 @@ AVInputFormat ff_au_demuxer = { .read_seek = ff_pcm_read_seek, .codec_tag = (const AVCodecTag* const []){ codec_au_tags, 0 }, }; -#endif +#endif /* CONFIG_AU_DEMUXER */ #if CONFIG_AU_MUXER + +/* AUDIO_FILE header */ +static int put_au_header(AVIOContext *pb, AVCodecContext *enc) +{ + if(!enc->codec_tag) + return -1; + ffio_wfourcc(pb, ".snd"); /* magic number */ + avio_wb32(pb, AU_HEADER_SIZE); /* header size */ + avio_wb32(pb, AU_UNKNOWN_SIZE); /* data size */ + avio_wb32(pb, (uint32_t)enc->codec_tag); /* codec ID */ + avio_wb32(pb, enc->sample_rate); + avio_wb32(pb, (uint32_t)enc->channels); + avio_wb64(pb, 0); /* annotation field */ + return 0; +} + +static int au_write_header(AVFormatContext *s) +{ + AVIOContext *pb = s->pb; + + /* format header */ + if (put_au_header(pb, s->streams[0]->codec) < 0) { + return -1; + } + + avio_flush(pb); + + return 0; +} + +static int au_write_packet(AVFormatContext *s, AVPacket *pkt) +{ + AVIOContext *pb = s->pb; + avio_write(pb, pkt->data, pkt->size); + return 0; +} + +static int au_write_trailer(AVFormatContext *s) +{ + AVIOContext *pb = s->pb; + int64_t file_size; + + if (s->pb->seekable) { + + /* update file size */ + file_size = avio_tell(pb); + avio_seek(pb, 8, SEEK_SET); + avio_wb32(pb, (uint32_t)(file_size - AU_HEADER_SIZE)); + avio_seek(pb, file_size, SEEK_SET); + + avio_flush(pb); + } + + return 0; +} + AVOutputFormat ff_au_muxer = { .name = "au", .long_name = NULL_IF_CONFIG_SMALL("Sun AU"), @@ -202,4 +202,4 @@ AVOutputFormat ff_au_muxer = { .write_trailer = au_write_trailer, .codec_tag = (const AVCodecTag* const []){ codec_au_tags, 0 }, }; -#endif //CONFIG_AU_MUXER +#endif /* CONFIG_AU_MUXER */ |