Commit 94ecbe23 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit 'c35f0e84'

* commit 'c35f0e84':
  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: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 95015634 c35f0e84
...@@ -19,8 +19,8 @@ ...@@ -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 #ifndef AVCODEC_GSMDEC_DATA_H
#define AVCODEC_GSMDEC_DATA #define AVCODEC_GSMDEC_DATA_H
#include <stdint.h> #include <stdint.h>
#include "avcodec.h" #include "avcodec.h"
...@@ -41,4 +41,4 @@ typedef struct GSMContext { ...@@ -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 @@ ...@@ -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 #ifndef AVCODEC_OPTIONS_TABLE_H
#define AVCODEC_OPTIONS_TABLE #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[]={ ...@@ -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[] = { ...@@ -51,62 +51,7 @@ static const AVCodecTag codec_au_tags[] = {
{ AV_CODEC_ID_NONE, 0 }, { AV_CODEC_ID_NONE, 0 },
}; };
#if CONFIG_AU_MUXER #if CONFIG_AU_DEMUXER
/* 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 */
static int au_probe(AVProbeData *p) static int au_probe(AVProbeData *p)
{ {
...@@ -177,7 +122,6 @@ static int au_read_header(AVFormatContext *s) ...@@ -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 = { ...@@ -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 = { ...@@ -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 @@ ...@@ -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 #ifndef AVFORMAT_OPTIONS_TABLE_H
#define AVFORMAT_OPTIONS_TABLE #define AVFORMAT_OPTIONS_TABLE_H
#include <limits.h> #include <limits.h>
...@@ -82,4 +82,4 @@ static const AVOption options[]={ ...@@ -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 ...@@ -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 ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment