changeset 6430:d3a51b32b769 libavformat

move ingenient demuxer to its own file
author aurel
date Sun, 29 Aug 2010 19:16:04 +0000
parents 3e32902d7025
children b36b683626e6
files Makefile ingenientdec.c raw.c raw.h
diffstat 4 files changed, 85 insertions(+), 64 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Sun Aug 29 19:00:40 2010 +0000
+++ b/Makefile	Sun Aug 29 19:16:04 2010 +0000
@@ -97,7 +97,7 @@
 OBJS-$(CONFIG_IMAGE2_MUXER)              += img2.o
 OBJS-$(CONFIG_IMAGE2PIPE_DEMUXER)        += img2.o
 OBJS-$(CONFIG_IMAGE2PIPE_MUXER)          += img2.o
-OBJS-$(CONFIG_INGENIENT_DEMUXER)         += raw.o
+OBJS-$(CONFIG_INGENIENT_DEMUXER)         += ingenientdec.o raw.o
 OBJS-$(CONFIG_IPMOVIE_DEMUXER)           += ipmovie.o
 OBJS-$(CONFIG_ISS_DEMUXER)               += iss.o
 OBJS-$(CONFIG_IV8_DEMUXER)               += iv8.o
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ingenientdec.c	Sun Aug 29 19:16:04 2010 +0000
@@ -0,0 +1,71 @@
+/*
+ * RAW Ingenient MJPEG demuxer
+ * Copyright (c) 2005 Alex Beregszaszi
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "avformat.h"
+#include "raw.h"
+
+// http://www.artificis.hu/files/texts/ingenient.txt
+static int ingenient_read_packet(AVFormatContext *s, AVPacket *pkt)
+{
+    int ret, size, w, h, unk1, unk2;
+
+    if (get_le32(s->pb) != MKTAG('M', 'J', 'P', 'G'))
+        return AVERROR(EIO); // FIXME
+
+    size = get_le32(s->pb);
+
+    w = get_le16(s->pb);
+    h = get_le16(s->pb);
+
+    url_fskip(s->pb, 8); // zero + size (padded?)
+    url_fskip(s->pb, 2);
+    unk1 = get_le16(s->pb);
+    unk2 = get_le16(s->pb);
+    url_fskip(s->pb, 22); // ASCII timestamp
+
+    av_log(s, AV_LOG_DEBUG, "Ingenient packet: size=%d, width=%d, height=%d, unk1=%d unk2=%d\n",
+        size, w, h, unk1, unk2);
+
+    if (av_new_packet(pkt, size) < 0)
+        return AVERROR(ENOMEM);
+
+    pkt->pos = url_ftell(s->pb);
+    pkt->stream_index = 0;
+    ret = get_buffer(s->pb, pkt->data, size);
+    if (ret < 0) {
+        av_free_packet(pkt);
+        return ret;
+    }
+    pkt->size = ret;
+    return ret;
+}
+
+AVInputFormat ingenient_demuxer = {
+    "ingenient",
+    NULL_IF_CONFIG_SMALL("raw Ingenient MJPEG"),
+    0,
+    NULL,
+    ff_raw_video_read_header,
+    ingenient_read_packet,
+    .flags= AVFMT_GENERIC_INDEX,
+    .extensions = "cgi", // FIXME
+    .value = CODEC_ID_MJPEG,
+};
--- a/raw.c	Sun Aug 29 19:00:40 2010 +0000
+++ b/raw.c	Sun Aug 29 19:16:04 2010 +0000
@@ -162,44 +162,6 @@
 }
 #endif
 
-#if CONFIG_INGENIENT_DEMUXER
-// http://www.artificis.hu/files/texts/ingenient.txt
-static int ingenient_read_packet(AVFormatContext *s, AVPacket *pkt)
-{
-    int ret, size, w, h, unk1, unk2;
-
-    if (get_le32(s->pb) != MKTAG('M', 'J', 'P', 'G'))
-        return AVERROR(EIO); // FIXME
-
-    size = get_le32(s->pb);
-
-    w = get_le16(s->pb);
-    h = get_le16(s->pb);
-
-    url_fskip(s->pb, 8); // zero + size (padded?)
-    url_fskip(s->pb, 2);
-    unk1 = get_le16(s->pb);
-    unk2 = get_le16(s->pb);
-    url_fskip(s->pb, 22); // ASCII timestamp
-
-    av_log(s, AV_LOG_DEBUG, "Ingenient packet: size=%d, width=%d, height=%d, unk1=%d unk2=%d\n",
-        size, w, h, unk1, unk2);
-
-    if (av_new_packet(pkt, size) < 0)
-        return AVERROR(ENOMEM);
-
-    pkt->pos = url_ftell(s->pb);
-    pkt->stream_index = 0;
-    ret = get_buffer(s->pb, pkt->data, size);
-    if (ret < 0) {
-        av_free_packet(pkt);
-        return ret;
-    }
-    pkt->size = ret;
-    return ret;
-}
-#endif
-
 #if CONFIG_DEMUXERS
 int pcm_read_seek(AVFormatContext *s,
                   int stream_index, int64_t timestamp, int flags)
@@ -248,7 +210,7 @@
 }
 
 /* MPEG-1/H.263 input */
-static int video_read_header(AVFormatContext *s,
+int ff_raw_video_read_header(AVFormatContext *s,
                              AVFormatParameters *ap)
 {
     AVStream *st;
@@ -642,7 +604,7 @@
     NULL_IF_CONFIG_SMALL("raw Dirac"),
     0,
     dirac_probe,
-    video_read_header,
+    ff_raw_video_read_header,
     ff_raw_read_partial_packet,
     .flags= AVFMT_GENERIC_INDEX,
     .value = CODEC_ID_DIRAC,
@@ -670,7 +632,7 @@
     NULL_IF_CONFIG_SMALL("raw DNxHD (SMPTE VC-3)"),
     0,
     dnxhd_probe,
-    video_read_header,
+    ff_raw_video_read_header,
     ff_raw_read_partial_packet,
     .flags= AVFMT_GENERIC_INDEX,
     .value = CODEC_ID_DNXHD,
@@ -756,7 +718,7 @@
     NULL_IF_CONFIG_SMALL("raw H.261"),
     0,
     h261_probe,
-    video_read_header,
+    ff_raw_video_read_header,
     ff_raw_read_partial_packet,
     .flags= AVFMT_GENERIC_INDEX,
     .extensions = "h261",
@@ -785,7 +747,7 @@
     NULL_IF_CONFIG_SMALL("raw H.263"),
     0,
     h263_probe,
-    video_read_header,
+    ff_raw_video_read_header,
     ff_raw_read_partial_packet,
     .flags= AVFMT_GENERIC_INDEX,
 //    .extensions = "h263", //FIXME remove after writing mpeg4_probe
@@ -814,7 +776,7 @@
     NULL_IF_CONFIG_SMALL("raw H.264 video format"),
     0,
     h264_probe,
-    video_read_header,
+    ff_raw_video_read_header,
     ff_raw_read_partial_packet,
     .flags= AVFMT_GENERIC_INDEX,
     .extensions = "h26l,h264,264", //FIXME remove after writing mpeg4_probe
@@ -852,27 +814,13 @@
 };
 #endif
 
-#if CONFIG_INGENIENT_DEMUXER
-AVInputFormat ingenient_demuxer = {
-    "ingenient",
-    NULL_IF_CONFIG_SMALL("raw Ingenient MJPEG"),
-    0,
-    NULL,
-    video_read_header,
-    ingenient_read_packet,
-    .flags= AVFMT_GENERIC_INDEX,
-    .extensions = "cgi", // FIXME
-    .value = CODEC_ID_MJPEG,
-};
-#endif
-
 #if CONFIG_M4V_DEMUXER
 AVInputFormat m4v_demuxer = {
     "m4v",
     NULL_IF_CONFIG_SMALL("raw MPEG-4 video format"),
     0,
     mpeg4video_probe, /** probing for MPEG-4 data */
-    video_read_header,
+    ff_raw_video_read_header,
     ff_raw_read_partial_packet,
     .flags= AVFMT_GENERIC_INDEX,
     .extensions = "m4v",
@@ -901,7 +849,7 @@
     NULL_IF_CONFIG_SMALL("raw MJPEG video"),
     0,
     NULL,
-    video_read_header,
+    ff_raw_video_read_header,
     ff_raw_read_partial_packet,
     .flags= AVFMT_GENERIC_INDEX,
     .extensions = "mjpg,mjpeg",
@@ -1030,7 +978,7 @@
     NULL_IF_CONFIG_SMALL("raw MPEG video"),
     0,
     mpegvideo_probe,
-    video_read_header,
+    ff_raw_video_read_header,
     ff_raw_read_partial_packet,
     .flags= AVFMT_GENERIC_INDEX,
     .value = CODEC_ID_MPEG1VIDEO,
@@ -1043,7 +991,7 @@
     NULL_IF_CONFIG_SMALL("raw Chinese AVS video"),
     0,
     cavsvideo_probe,
-    video_read_header,
+    ff_raw_video_read_header,
     ff_raw_read_partial_packet,
     .flags= AVFMT_GENERIC_INDEX,
     .value = CODEC_ID_CAVS,
@@ -1114,7 +1062,7 @@
     NULL_IF_CONFIG_SMALL("raw VC-1"),
     0,
     NULL /* vc1_probe */,
-    video_read_header,
+    ff_raw_video_read_header,
     ff_raw_read_partial_packet,
     .extensions = "vc1",
     .value = CODEC_ID_VC1,
--- a/raw.h	Sun Aug 29 19:00:40 2010 +0000
+++ b/raw.h	Sun Aug 29 19:16:04 2010 +0000
@@ -33,4 +33,6 @@
 
 int ff_raw_audio_read_header(AVFormatContext *s, AVFormatParameters *ap);
 
+int ff_raw_video_read_header(AVFormatContext *s, AVFormatParameters *ap);
+
 #endif /* AVFORMAT_RAW_H */