summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>2008-10-24 01:42:57 +0000
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>2008-10-24 01:42:57 +0000
commitbd09e8a7df91c6e2c506a3c2d7b2805da75a91e4 (patch)
treefad87c793fa595e4433deefc43a7d8682075506b
parentda396bf84e53ee5bd46c69df6511cd5cbfb73e7a (diff)
raw dnxhd de/muxer
Originally committed as revision 15674 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavformat/Makefile2
-rw-r--r--libavformat/allformats.c1
-rw-r--r--libavformat/avformat.h2
-rw-r--r--libavformat/raw.c39
4 files changed, 43 insertions, 1 deletions
diff --git a/libavformat/Makefile b/libavformat/Makefile
index 1537a24aa6..de5cae2ab7 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -38,6 +38,8 @@ 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_DNXHD_DEMUXER) += raw.o
+OBJS-$(CONFIG_DNXHD_MUXER) += raw.o
OBJS-$(CONFIG_DSICIN_DEMUXER) += dsicin.o
OBJS-$(CONFIG_DTS_DEMUXER) += raw.o
OBJS-$(CONFIG_DTS_MUXER) += raw.o
diff --git a/libavformat/allformats.c b/libavformat/allformats.c
index 41cdcfb316..8c0cd5df66 100644
--- a/libavformat/allformats.c
+++ b/libavformat/allformats.c
@@ -72,6 +72,7 @@ void av_register_all(void)
REGISTER_MUXER (CRC, crc);
REGISTER_MUXDEMUX (DAUD, daud);
REGISTER_MUXDEMUX (DIRAC, dirac);
+ REGISTER_MUXDEMUX (DNXHD, dnxhd);
REGISTER_DEMUXER (DSICIN, dsicin);
REGISTER_MUXDEMUX (DTS, dts);
REGISTER_MUXDEMUX (DV, dv);
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index d8e0b0a356..78e78788aa 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -22,7 +22,7 @@
#define AVFORMAT_AVFORMAT_H
#define LIBAVFORMAT_VERSION_MAJOR 52
-#define LIBAVFORMAT_VERSION_MINOR 22
+#define LIBAVFORMAT_VERSION_MINOR 23
#define LIBAVFORMAT_VERSION_MICRO 1
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
diff --git a/libavformat/raw.c b/libavformat/raw.c
index 6c6ea27ddf..f2a886c5ab 100644
--- a/libavformat/raw.c
+++ b/libavformat/raw.c
@@ -505,6 +505,17 @@ static int dirac_probe(AVProbeData *p)
}
#endif
+#ifdef CONFIG_DNXHD_DEMUXER
+static int dnxhd_probe(AVProbeData *p)
+{
+ static const uint8_t header[] = {0x00,0x00,0x02,0x80,0x01};
+ if (!memcmp(p->buf, header, 5))
+ return AVPROBE_SCORE_MAX;
+ else
+ return 0;
+}
+#endif
+
#if defined(CONFIG_AC3_DEMUXER) || defined(CONFIG_EAC3_DEMUXER)
static int ac3_eac3_probe(AVProbeData *p, enum CodecID expected_codec_id)
{
@@ -640,6 +651,34 @@ AVOutputFormat dirac_muxer = {
};
#endif
+#ifdef CONFIG_DNXHD_DEMUXER
+AVInputFormat dnxhd_demuxer = {
+ "dnxhd",
+ NULL_IF_CONFIG_SMALL("raw DNxHD (SMPTE VC-3)"),
+ 0,
+ dnxhd_probe,
+ video_read_header,
+ raw_read_partial_packet,
+ .flags= AVFMT_GENERIC_INDEX,
+ .value = CODEC_ID_DNXHD,
+};
+#endif
+
+#ifdef CONFIG_DNXHD_MUXER
+AVOutputFormat dnxhd_muxer = {
+ "dnxhd",
+ NULL_IF_CONFIG_SMALL("raw DNxHD (SMPTE VC-3)"),
+ NULL,
+ "dnxhd",
+ 0,
+ CODEC_ID_NONE,
+ CODEC_ID_DNXHD,
+ NULL,
+ raw_write_packet,
+ .flags= AVFMT_NOTIMESTAMPS,
+};
+#endif
+
#ifdef CONFIG_DTS_DEMUXER
AVInputFormat dts_demuxer = {
"dts",