[FFmpeg-cvslog] r14531 - in trunk: Changelog libavformat/Makefile libavformat/allformats.c libavformat/daud.c
pross
subversion
Mon Aug 4 09:35:07 CEST 2008
Author: pross
Date: Mon Aug 4 09:35:07 2008
New Revision: 14531
Log:
Add D-Cinema audio muxer
Modified:
trunk/Changelog
trunk/libavformat/Makefile
trunk/libavformat/allformats.c
trunk/libavformat/daud.c
Modified: trunk/Changelog
==============================================================================
--- trunk/Changelog (original)
+++ trunk/Changelog Mon Aug 4 09:35:07 2008
@@ -127,6 +127,7 @@ version <next>
- Motion Pixels Video decoder
- Motion Pixels MVI demuxer
- removed animated GIF decoder/demuxer
+- D-Cinema audio muxer
version 0.4.9-pre1:
Modified: trunk/libavformat/Makefile
==============================================================================
--- trunk/libavformat/Makefile (original)
+++ trunk/libavformat/Makefile Mon Aug 4 09:35:07 2008
@@ -33,6 +33,7 @@ OBJS-$(CONFIG_BFI_DEMUXER)
OBJS-$(CONFIG_C93_DEMUXER) += c93.o vocdec.o voc.o
OBJS-$(CONFIG_CRC_MUXER) += crcenc.o
OBJS-$(CONFIG_DAUD_DEMUXER) += daud.o
+OBJS-$(CONFIG_DAUD_MUXER) += daud.o
OBJS-$(CONFIG_DIRAC_DEMUXER) += raw.o
OBJS-$(CONFIG_DIRAC_MUXER) += raw.o
OBJS-$(CONFIG_DSICIN_DEMUXER) += dsicin.o
Modified: trunk/libavformat/allformats.c
==============================================================================
--- trunk/libavformat/allformats.c (original)
+++ trunk/libavformat/allformats.c Mon Aug 4 09:35:07 2008
@@ -68,7 +68,7 @@ void av_register_all(void)
REGISTER_DEMUXER (BFI, bfi);
REGISTER_DEMUXER (C93, c93);
REGISTER_MUXER (CRC, crc);
- REGISTER_DEMUXER (DAUD, daud);
+ REGISTER_MUXDEMUX (DAUD, daud);
REGISTER_MUXDEMUX (DIRAC, dirac);
REGISTER_DEMUXER (DSICIN, dsicin);
REGISTER_MUXDEMUX (DTS, dts);
Modified: trunk/libavformat/daud.c
==============================================================================
--- trunk/libavformat/daud.c (original)
+++ trunk/libavformat/daud.c Mon Aug 4 09:35:07 2008
@@ -47,6 +47,24 @@ static int daud_packet(AVFormatContext *
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 = {
"daud",
NULL_IF_CONFIG_SMALL("D-Cinema audio format"),
@@ -58,3 +76,20 @@ AVInputFormat daud_demuxer = {
NULL,
.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
More information about the ffmpeg-cvslog
mailing list