]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/rawdec.h
rawdec: refactor private option for raw video demuxers
[ffmpeg] / libavformat / rawdec.h
index 73bfb4abc45fa1e985dd4f27430fe65b3fb9d975..136f6c2d489318de0a7b5b32d156aba1eb733fc6 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "avformat.h"
 #include "libavutil/log.h"
+#include "libavutil/opt.h"
 
 typedef struct RawAudioDemuxerContext {
     AVClass *class;
@@ -38,7 +39,7 @@ typedef struct FFRawVideoDemuxerContext {
     char *framerate;          /**< String describing framerate, set by a private option. */
 } FFRawVideoDemuxerContext;
 
-extern const AVClass ff_rawvideo_demuxer_class;
+extern const AVOption ff_rawvideo_options[];
 
 int ff_raw_read_header(AVFormatContext *s, AVFormatParameters *ap);
 
@@ -48,7 +49,16 @@ int ff_raw_audio_read_header(AVFormatContext *s, AVFormatParameters *ap);
 
 int ff_raw_video_read_header(AVFormatContext *s, AVFormatParameters *ap);
 
+#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,\
+};
+
 #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),\
@@ -59,7 +69,7 @@ AVInputFormat ff_ ## shortname ## _demuxer = {\
     .flags          = AVFMT_GENERIC_INDEX,\
     .value          = id,\
     .priv_data_size = sizeof(FFRawVideoDemuxerContext),\
-    .priv_class     = &ff_rawvideo_demuxer_class,\
+    .priv_class     = &shortname ## _demuxer_class,\
 };
 
 #endif /* AVFORMAT_RAWDEC_H */