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 @@
* 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 "avcodec.h"
......@@ -41,4 +41,4 @@ typedef struct GSMContext {
extern const uint16_t ff_gsm_long_term_gain_tab[4];
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
*/
#ifndef AVCODEC_OPTIONS_TABLE
#define AVCODEC_OPTIONS_TABLE
#ifndef AVCODEC_OPTIONS_TABLE_H
#define AVCODEC_OPTIONS_TABLE_H
#include <float.h>
#include <limits.h>
......@@ -414,4 +414,4 @@ static const AVOption options[]={
#undef DEFAULT
#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 },
};
#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 */
......@@ -18,8 +18,8 @@
* 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>
......@@ -82,4 +82,4 @@ static const AVOption options[]={
#undef DEFAULT
#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-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-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: 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-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