* 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>tags/n1.1
| @@ -19,8 +19,8 @@ | |||||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||||
| */ | */ | ||||
| #ifndef AVCODEC_GSMDEC_DATA | |||||
| #define AVCODEC_GSMDEC_DATA | |||||
| #ifndef AVCODEC_GSMDEC_DATA_H | |||||
| #define AVCODEC_GSMDEC_DATA_H | |||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #include "avcodec.h" | #include "avcodec.h" | ||||
| @@ -41,4 +41,4 @@ typedef struct GSMContext { | |||||
| extern const uint16_t ff_gsm_long_term_gain_tab[4]; | extern const uint16_t ff_gsm_long_term_gain_tab[4]; | ||||
| extern const int16_t ff_gsm_dequant_tab[64][8]; | extern const int16_t ff_gsm_dequant_tab[64][8]; | ||||
| #endif /* AVCODEC_GSMDEC_DATA */ | |||||
| #endif /* AVCODEC_GSMDEC_DATA_H */ | |||||
| @@ -19,8 +19,8 @@ | |||||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||||
| */ | */ | ||||
| #ifndef AVCODEC_OPTIONS_TABLE | |||||
| #define AVCODEC_OPTIONS_TABLE | |||||
| #ifndef AVCODEC_OPTIONS_TABLE_H | |||||
| #define AVCODEC_OPTIONS_TABLE_H | |||||
| #include <float.h> | #include <float.h> | ||||
| #include <limits.h> | #include <limits.h> | ||||
| @@ -414,4 +414,4 @@ static const AVOption options[]={ | |||||
| #undef DEFAULT | #undef DEFAULT | ||||
| #undef OFFSET | #undef OFFSET | ||||
| #endif // AVCODEC_OPTIONS_TABLE | |||||
| #endif /* AVCODEC_OPTIONS_TABLE_H */ | |||||
| @@ -51,62 +51,7 @@ static const AVCodecTag codec_au_tags[] = { | |||||
| { AV_CODEC_ID_NONE, 0 }, | { 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) | static int au_probe(AVProbeData *p) | ||||
| { | { | ||||
| @@ -177,7 +122,6 @@ static int au_read_header(AVFormatContext *s) | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| #if CONFIG_AU_DEMUXER | |||||
| AVInputFormat ff_au_demuxer = { | AVInputFormat ff_au_demuxer = { | ||||
| .name = "au", | .name = "au", | ||||
| .long_name = NULL_IF_CONFIG_SMALL("Sun AU"), | .long_name = NULL_IF_CONFIG_SMALL("Sun AU"), | ||||
| @@ -187,9 +131,65 @@ AVInputFormat ff_au_demuxer = { | |||||
| .read_seek = ff_pcm_read_seek, | .read_seek = ff_pcm_read_seek, | ||||
| .codec_tag = (const AVCodecTag* const []){ codec_au_tags, 0 }, | .codec_tag = (const AVCodecTag* const []){ codec_au_tags, 0 }, | ||||
| }; | }; | ||||
| #endif | |||||
| #endif /* CONFIG_AU_DEMUXER */ | |||||
| #if CONFIG_AU_MUXER | #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 = { | AVOutputFormat ff_au_muxer = { | ||||
| .name = "au", | .name = "au", | ||||
| .long_name = NULL_IF_CONFIG_SMALL("Sun AU"), | .long_name = NULL_IF_CONFIG_SMALL("Sun AU"), | ||||
| @@ -202,4 +202,4 @@ AVOutputFormat ff_au_muxer = { | |||||
| .write_trailer = au_write_trailer, | .write_trailer = au_write_trailer, | ||||
| .codec_tag = (const AVCodecTag* const []){ codec_au_tags, 0 }, | .codec_tag = (const AVCodecTag* const []){ codec_au_tags, 0 }, | ||||
| }; | }; | ||||
| #endif //CONFIG_AU_MUXER | |||||
| #endif /* CONFIG_AU_MUXER */ | |||||
| @@ -18,8 +18,8 @@ | |||||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||||
| */ | */ | ||||
| #ifndef AVFORMAT_OPTIONS_TABLE | |||||
| #define AVFORMAT_OPTIONS_TABLE | |||||
| #ifndef AVFORMAT_OPTIONS_TABLE_H | |||||
| #define AVFORMAT_OPTIONS_TABLE_H | |||||
| #include <limits.h> | #include <limits.h> | ||||
| @@ -82,4 +82,4 @@ static const AVOption options[]={ | |||||
| #undef DEFAULT | #undef DEFAULT | ||||
| #undef OFFSET | #undef OFFSET | ||||
| #endif // AVFORMAT_OPTIONS_TABLE | |||||
| #endif /* AVFORMAT_OPTIONS_TABLE_H */ | |||||
| @@ -7,6 +7,9 @@ fate-lossless-meridianaudio: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-p | |||||
| FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, APE, APE) += fate-lossless-monkeysaudio | FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, APE, APE) += fate-lossless-monkeysaudio | ||||
| fate-lossless-monkeysaudio: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.ape -f s16le | fate-lossless-monkeysaudio: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.ape -f s16le | ||||
| FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, RM, RALF) += fate-ralf | |||||
| fate-ralf: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.rmvb -vn -f s16le | |||||
| FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, SHORTEN, SHORTEN) += fate-lossless-shorten | FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, SHORTEN, SHORTEN) += fate-lossless-shorten | ||||
| fate-lossless-shorten: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.shn -f s16le | fate-lossless-shorten: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.shn -f s16le | ||||
| @@ -12,9 +12,6 @@ fate-ra-cook: CMD = pcm -i $(SAMPLES)/real/ra_cook.rm | |||||
| fate-ra-cook: CMP = oneoff | fate-ra-cook: CMP = oneoff | ||||
| fate-ra-cook: REF = $(SAMPLES)/real/ra_cook.pcm | fate-ra-cook: REF = $(SAMPLES)/real/ra_cook.pcm | ||||
| FATE_REAL-$(call DEMDEC, RM, RALF) += fate-ralf | |||||
| fate-ralf: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.rmvb -vn -f s16le | |||||
| FATE_REAL-$(call DEMDEC, RM, RV30) += fate-rv30 | FATE_REAL-$(call DEMDEC, RM, RV30) += fate-rv30 | ||||
| fate-rv30: CMD = framecrc -flags +bitexact -dct fastint -idct simple -i $(SAMPLES)/real/rv30.rm -an | fate-rv30: CMD = framecrc -flags +bitexact -dct fastint -idct simple -i $(SAMPLES)/real/rv30.rm -an | ||||