summaryrefslogtreecommitdiff
path: root/libavformat/rawdec.h
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2011-09-14 14:03:55 +0200
committerAnton Khirnov <anton@khirnov.net>2011-09-17 06:43:09 +0200
commit85d982f1e2c3efb8d5622caea162cede3f6c0e21 (patch)
treec00eae3f3d7781e8fb1eb173fb3a86a0cfd21e73 /libavformat/rawdec.h
parent34d2bf30a082d489487493df40496cc18ca4300b (diff)
rawdec: refactor private option for raw video demuxers
pixel_format/video_size only apply to 'rawvideo' (==uncompressed) demuxer and make no sense for the other raw (== containerless) demuxers. Keep only the framerate option for those. Also use unique classes for all raw video demuxers
Diffstat (limited to 'libavformat/rawdec.h')
-rw-r--r--libavformat/rawdec.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/libavformat/rawdec.h b/libavformat/rawdec.h
index 73bfb4abc4..136f6c2d48 100644
--- a/libavformat/rawdec.h
+++ b/libavformat/rawdec.h
@@ -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 */