Commit 51c3861e authored by Peter Ross's avatar Peter Ross

Add D-Cinema audio muxer

Originally committed as revision 14531 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent bb89b0bc
...@@ -127,6 +127,7 @@ version <next> ...@@ -127,6 +127,7 @@ version <next>
- Motion Pixels Video decoder - Motion Pixels Video decoder
- Motion Pixels MVI demuxer - Motion Pixels MVI demuxer
- removed animated GIF decoder/demuxer - removed animated GIF decoder/demuxer
- D-Cinema audio muxer
version 0.4.9-pre1: version 0.4.9-pre1:
......
...@@ -33,6 +33,7 @@ OBJS-$(CONFIG_BFI_DEMUXER) += bfi.o ...@@ -33,6 +33,7 @@ OBJS-$(CONFIG_BFI_DEMUXER) += bfi.o
OBJS-$(CONFIG_C93_DEMUXER) += c93.o vocdec.o voc.o OBJS-$(CONFIG_C93_DEMUXER) += c93.o vocdec.o voc.o
OBJS-$(CONFIG_CRC_MUXER) += crcenc.o OBJS-$(CONFIG_CRC_MUXER) += crcenc.o
OBJS-$(CONFIG_DAUD_DEMUXER) += daud.o OBJS-$(CONFIG_DAUD_DEMUXER) += daud.o
OBJS-$(CONFIG_DAUD_MUXER) += daud.o
OBJS-$(CONFIG_DIRAC_DEMUXER) += raw.o OBJS-$(CONFIG_DIRAC_DEMUXER) += raw.o
OBJS-$(CONFIG_DIRAC_MUXER) += raw.o OBJS-$(CONFIG_DIRAC_MUXER) += raw.o
OBJS-$(CONFIG_DSICIN_DEMUXER) += dsicin.o OBJS-$(CONFIG_DSICIN_DEMUXER) += dsicin.o
......
...@@ -68,7 +68,7 @@ void av_register_all(void) ...@@ -68,7 +68,7 @@ void av_register_all(void)
REGISTER_DEMUXER (BFI, bfi); REGISTER_DEMUXER (BFI, bfi);
REGISTER_DEMUXER (C93, c93); REGISTER_DEMUXER (C93, c93);
REGISTER_MUXER (CRC, crc); REGISTER_MUXER (CRC, crc);
REGISTER_DEMUXER (DAUD, daud); REGISTER_MUXDEMUX (DAUD, daud);
REGISTER_MUXDEMUX (DIRAC, dirac); REGISTER_MUXDEMUX (DIRAC, dirac);
REGISTER_DEMUXER (DSICIN, dsicin); REGISTER_DEMUXER (DSICIN, dsicin);
REGISTER_MUXDEMUX (DTS, dts); REGISTER_MUXDEMUX (DTS, dts);
......
...@@ -47,6 +47,24 @@ static int daud_packet(AVFormatContext *s, AVPacket *pkt) { ...@@ -47,6 +47,24 @@ static int daud_packet(AVFormatContext *s, AVPacket *pkt) {
return ret; return ret;
} }
static int daud_write_header(struct AVFormatContext *s)
{
AVCodecContext *codec = s->streams[0]->codec;
if (codec->channels!=6 || codec->sample_rate!=96000)
return -1;
return 0;
}
static int daud_write_packet(struct AVFormatContext *s, AVPacket *pkt)
{
put_be16(s->pb, pkt->size);
put_be16(s->pb, 0x8010); // unknown
put_buffer(s->pb, pkt->data, pkt->size);
put_flush_packet(s->pb);
return 0;
}
#if CONFIG_DAUD_DEMUXER
AVInputFormat daud_demuxer = { AVInputFormat daud_demuxer = {
"daud", "daud",
NULL_IF_CONFIG_SMALL("D-Cinema audio format"), NULL_IF_CONFIG_SMALL("D-Cinema audio format"),
...@@ -58,3 +76,20 @@ AVInputFormat daud_demuxer = { ...@@ -58,3 +76,20 @@ AVInputFormat daud_demuxer = {
NULL, NULL,
.extensions = "302", .extensions = "302",
}; };
#endif
#ifdef CONFIG_DAUD_MUXER
AVOutputFormat daud_muxer =
{
"daud",
NULL_IF_CONFIG_SMALL("D-Cinema audio format"),
NULL,
"302",
0,
CODEC_ID_PCM_S24DAUD,
CODEC_ID_NONE,
daud_write_header,
daud_write_packet,
.flags= AVFMT_NOTIMESTAMPS,
};
#endif
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