mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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>
This commit is contained in:
commit
94ecbe23c5
@ -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 */
|
||||
|
118
libavformat/au.c
118
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 */
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user