X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Frawdec.h;h=85e0790c86e8a18dc183163dd25ba491500aef07;hb=8287c201536e52f2765cfa9a70551814a6f36ebb;hp=a464bbb4328b7b5fe68902ed8d82d210d667fb0d;hpb=2d62e06ff6a9f3dbd78136c1dc4a315a727c6f00;p=ffmpeg diff --git a/libavformat/rawdec.h b/libavformat/rawdec.h index a464bbb4328..85e0790c86e 100644 --- a/libavformat/rawdec.h +++ b/libavformat/rawdec.h @@ -28,12 +28,19 @@ typedef struct FFRawVideoDemuxerContext { const AVClass *class; /**< Class for private options. */ + int raw_packet_size; char *video_size; /**< String describing video size, set by a private option. */ char *pixel_format; /**< Set by a private option. */ AVRational framerate; /**< AVRational describing framerate, set by a private option. */ } FFRawVideoDemuxerContext; +typedef struct FFRawDemuxerContext { + const AVClass *class; /**< Class for private options. */ + int raw_packet_size; +} FFRawDemuxerContext; + extern const AVOption ff_rawvideo_options[]; +extern const AVOption ff_raw_options[]; int ff_raw_read_partial_packet(AVFormatContext *s, AVPacket *pkt); @@ -41,8 +48,18 @@ int ff_raw_audio_read_header(AVFormatContext *s); int ff_raw_video_read_header(AVFormatContext *s); +int ff_raw_subtitle_read_header(AVFormatContext *s); + int ff_raw_data_read_header(AVFormatContext *s); +#define FF_RAW_DEMUXER_CLASS(name)\ +static const AVClass name ## _demuxer_class = {\ + .class_name = #name " demuxer",\ + .item_name = av_default_item_name,\ + .option = ff_raw_options,\ + .version = LIBAVUTIL_VERSION_INT,\ +}; + #define FF_RAWVIDEO_DEMUXER_CLASS(name)\ static const AVClass name ## _demuxer_class = {\ .class_name = #name " demuxer",\ @@ -73,7 +90,7 @@ FF_DEF_RAWVIDEO_DEMUXER2(shortname, longname, probe, ext, id, AVFMT_GENERIC_INDE static const AVClass name ## _demuxer_class = {\ .class_name = #name " demuxer",\ .item_name = av_default_item_name,\ - .option = NULL,\ + .option = ff_raw_options,\ .version = LIBAVUTIL_VERSION_INT,\ }; @@ -83,12 +100,12 @@ AVInputFormat ff_ ## shortname ## _demuxer = {\ .name = #shortname,\ .long_name = NULL_IF_CONFIG_SMALL(longname),\ .read_probe = probe,\ - .read_header = ff_raw_data_read_header,\ + .read_header = ff_raw_subtitle_read_header,\ .read_packet = ff_raw_read_partial_packet,\ .extensions = ext,\ .flags = flag,\ .raw_codec_id = id,\ - .priv_data_size = 0,\ + .priv_data_size = sizeof(FFRawDemuxerContext),\ .priv_class = &shortname ## _demuxer_class,\ };