]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/rawdec.h
doxy: Clarify what avpriv_set_pts_info does
[ffmpeg] / libavformat / rawdec.h
index 0b0cf1beef135717eb3162b1ccae0de6b70f701d..a5487784c94bb59db7b9f34dc3b68511c63b725a 100644 (file)
@@ -2,20 +2,20 @@
  * RAW demuxers
  * Copyright (C) 2007  Aurelien Jacobs <aurel@gnuage.org>
  *
- * This file is part of FFmpeg.
+ * This file is part of Libav.
  *
- * FFmpeg is free software; you can redistribute it and/or
+ * Libav 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,
+ * Libav 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
+ * License along with Libav; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
 #define AVFORMAT_RAWDEC_H
 
 #include "avformat.h"
+#include "libavutil/log.h"
+#include "libavutil/opt.h"
 
-int ff_raw_read_header(AVFormatContext *s, AVFormatParameters *ap);
+typedef struct FFRawVideoDemuxerContext {
+    const AVClass *class;     /**< Class for private options. */
+    char *video_size;         /**< String describing video size, set by a private option. */
+    char *pixel_format;       /**< Set by a private option. */
+    char *framerate;          /**< String describing framerate, set by a private option. */
+} FFRawVideoDemuxerContext;
+
+extern const AVOption ff_rawvideo_options[];
 
 int ff_raw_read_partial_packet(AVFormatContext *s, AVPacket *pkt);
 
-int ff_raw_audio_read_header(AVFormatContext *s, AVFormatParameters *ap);
+int ff_raw_audio_read_header(AVFormatContext *s);
+
+int ff_raw_video_read_header(AVFormatContext *s);
+
+#define FF_RAWVIDEO_DEMUXER_CLASS(name)\
+static const AVClass name ## _demuxer_class = {\
+    .class_name = #name " demuxer",\
+    .item_name  = av_default_item_name,\
+    .option     = ff_rawvideo_options,\
+    .version    = LIBAVUTIL_VERSION_INT,\
+};
 
-int ff_raw_video_read_header(AVFormatContext *s, AVFormatParameters *ap);
+#define FF_DEF_RAWVIDEO_DEMUXER(shortname, longname, probe, ext, id)\
+FF_RAWVIDEO_DEMUXER_CLASS(shortname)\
+AVInputFormat ff_ ## shortname ## _demuxer = {\
+    .name           = #shortname,\
+    .long_name      = NULL_IF_CONFIG_SMALL(longname),\
+    .read_probe     = probe,\
+    .read_header    = ff_raw_video_read_header,\
+    .read_packet    = ff_raw_read_partial_packet,\
+    .extensions     = ext,\
+    .flags          = AVFMT_GENERIC_INDEX,\
+    .raw_codec_id   = id,\
+    .priv_data_size = sizeof(FFRawVideoDemuxerContext),\
+    .priv_class     = &shortname ## _demuxer_class,\
+};
 
 #endif /* AVFORMAT_RAWDEC_H */