lavc/lavf: use unique private classes.

This is needed by the new AVOptions API.
This commit is contained in:
Anton Khirnov 2011-10-03 19:14:03 +02:00
parent 0ba1e1978d
commit a4ea00d021
3 changed files with 34 additions and 16 deletions

View File

@ -1444,7 +1444,7 @@ static const AVOption options[] = {
}; };
static const AVClass ac3_decoder_class = { static const AVClass ac3_decoder_class = {
.class_name = "(E-)AC3 decoder", .class_name = "AC3 decoder",
.item_name = av_default_item_name, .item_name = av_default_item_name,
.option = options, .option = options,
.version = LIBAVUTIL_VERSION_INT, .version = LIBAVUTIL_VERSION_INT,
@ -1466,6 +1466,12 @@ AVCodec ff_ac3_decoder = {
}; };
#if CONFIG_EAC3_DECODER #if CONFIG_EAC3_DECODER
static const AVClass eac3_decoder_class = {
.class_name = "E-AC3 decoder",
.item_name = av_default_item_name,
.option = options,
.version = LIBAVUTIL_VERSION_INT,
};
AVCodec ff_eac3_decoder = { AVCodec ff_eac3_decoder = {
.name = "eac3", .name = "eac3",
.type = AVMEDIA_TYPE_AUDIO, .type = AVMEDIA_TYPE_AUDIO,
@ -1478,6 +1484,6 @@ AVCodec ff_eac3_decoder = {
.sample_fmts = (const enum AVSampleFormat[]) { .sample_fmts = (const enum AVSampleFormat[]) {
AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE
}, },
.priv_class = &ac3_decoder_class, .priv_class = &eac3_decoder_class,
}; };
#endif #endif

View File

@ -458,15 +458,14 @@ static const AVOption options[] = {
{ NULL }, { NULL },
}; };
/* input */
#if CONFIG_IMAGE2_DEMUXER
static const AVClass img2_class = { static const AVClass img2_class = {
.class_name = "image2 demuxer", .class_name = "image2 demuxer",
.item_name = av_default_item_name, .item_name = av_default_item_name,
.option = options, .option = options,
.version = LIBAVUTIL_VERSION_INT, .version = LIBAVUTIL_VERSION_INT,
}; };
/* input */
#if CONFIG_IMAGE2_DEMUXER
AVInputFormat ff_image2_demuxer = { AVInputFormat ff_image2_demuxer = {
.name = "image2", .name = "image2",
.long_name = NULL_IF_CONFIG_SMALL("image2 sequence"), .long_name = NULL_IF_CONFIG_SMALL("image2 sequence"),
@ -479,13 +478,19 @@ AVInputFormat ff_image2_demuxer = {
}; };
#endif #endif
#if CONFIG_IMAGE2PIPE_DEMUXER #if CONFIG_IMAGE2PIPE_DEMUXER
static const AVClass img2pipe_class = {
.class_name = "image2pipe demuxer",
.item_name = av_default_item_name,
.option = options,
.version = LIBAVUTIL_VERSION_INT,
};
AVInputFormat ff_image2pipe_demuxer = { AVInputFormat ff_image2pipe_demuxer = {
.name = "image2pipe", .name = "image2pipe",
.long_name = NULL_IF_CONFIG_SMALL("piped image2 sequence"), .long_name = NULL_IF_CONFIG_SMALL("piped image2 sequence"),
.priv_data_size = sizeof(VideoData), .priv_data_size = sizeof(VideoData),
.read_header = read_header, .read_header = read_header,
.read_packet = read_packet, .read_packet = read_packet,
.priv_class = &img2_class, .priv_class = &img2pipe_class,
}; };
#endif #endif

View File

@ -48,11 +48,12 @@ static const AVOption options[] = {
{ NULL }, { NULL },
}; };
static const AVClass mov_muxer_class = { #define MOV_CLASS(flavor)\
.class_name = "MOV/3GP/MP4/3G2 muxer", static const AVClass flavor ## _muxer_class = {\
.item_name = av_default_item_name, .class_name = #flavor " muxer",\
.option = options, .item_name = av_default_item_name,\
.version = LIBAVUTIL_VERSION_INT, .option = options,\
.version = LIBAVUTIL_VERSION_INT,\
}; };
//FIXME support 64 bit variant with wide placeholders //FIXME support 64 bit variant with wide placeholders
@ -2338,6 +2339,7 @@ static int mov_write_trailer(AVFormatContext *s)
} }
#if CONFIG_MOV_MUXER #if CONFIG_MOV_MUXER
MOV_CLASS(mov)
AVOutputFormat ff_mov_muxer = { AVOutputFormat ff_mov_muxer = {
.name = "mov", .name = "mov",
.long_name = NULL_IF_CONFIG_SMALL("MOV format"), .long_name = NULL_IF_CONFIG_SMALL("MOV format"),
@ -2358,6 +2360,7 @@ AVOutputFormat ff_mov_muxer = {
}; };
#endif #endif
#if CONFIG_TGP_MUXER #if CONFIG_TGP_MUXER
MOV_CLASS(tgp)
AVOutputFormat ff_tgp_muxer = { AVOutputFormat ff_tgp_muxer = {
.name = "3gp", .name = "3gp",
.long_name = NULL_IF_CONFIG_SMALL("3GP format"), .long_name = NULL_IF_CONFIG_SMALL("3GP format"),
@ -2370,10 +2373,11 @@ AVOutputFormat ff_tgp_muxer = {
.write_trailer = mov_write_trailer, .write_trailer = mov_write_trailer,
.flags = AVFMT_GLOBALHEADER, .flags = AVFMT_GLOBALHEADER,
.codec_tag = (const AVCodecTag* const []){codec_3gp_tags, 0}, .codec_tag = (const AVCodecTag* const []){codec_3gp_tags, 0},
.priv_class = &mov_muxer_class, .priv_class = &tgp_muxer_class,
}; };
#endif #endif
#if CONFIG_MP4_MUXER #if CONFIG_MP4_MUXER
MOV_CLASS(mp4)
AVOutputFormat ff_mp4_muxer = { AVOutputFormat ff_mp4_muxer = {
.name = "mp4", .name = "mp4",
.long_name = NULL_IF_CONFIG_SMALL("MP4 format"), .long_name = NULL_IF_CONFIG_SMALL("MP4 format"),
@ -2391,10 +2395,11 @@ AVOutputFormat ff_mp4_muxer = {
.write_trailer = mov_write_trailer, .write_trailer = mov_write_trailer,
.flags = AVFMT_GLOBALHEADER, .flags = AVFMT_GLOBALHEADER,
.codec_tag = (const AVCodecTag* const []){ff_mp4_obj_type, 0}, .codec_tag = (const AVCodecTag* const []){ff_mp4_obj_type, 0},
.priv_class = &mov_muxer_class, .priv_class = &mp4_muxer_class,
}; };
#endif #endif
#if CONFIG_PSP_MUXER #if CONFIG_PSP_MUXER
MOV_CLASS(psp)
AVOutputFormat ff_psp_muxer = { AVOutputFormat ff_psp_muxer = {
.name = "psp", .name = "psp",
.long_name = NULL_IF_CONFIG_SMALL("PSP MP4 format"), .long_name = NULL_IF_CONFIG_SMALL("PSP MP4 format"),
@ -2411,10 +2416,11 @@ AVOutputFormat ff_psp_muxer = {
.write_trailer = mov_write_trailer, .write_trailer = mov_write_trailer,
.flags = AVFMT_GLOBALHEADER, .flags = AVFMT_GLOBALHEADER,
.codec_tag = (const AVCodecTag* const []){ff_mp4_obj_type, 0}, .codec_tag = (const AVCodecTag* const []){ff_mp4_obj_type, 0},
.priv_class = &mov_muxer_class, .priv_class = &psp_muxer_class,
}; };
#endif #endif
#if CONFIG_TG2_MUXER #if CONFIG_TG2_MUXER
MOV_CLASS(tg2)
AVOutputFormat ff_tg2_muxer = { AVOutputFormat ff_tg2_muxer = {
.name = "3g2", .name = "3g2",
.long_name = NULL_IF_CONFIG_SMALL("3GP2 format"), .long_name = NULL_IF_CONFIG_SMALL("3GP2 format"),
@ -2427,10 +2433,11 @@ AVOutputFormat ff_tg2_muxer = {
.write_trailer = mov_write_trailer, .write_trailer = mov_write_trailer,
.flags = AVFMT_GLOBALHEADER, .flags = AVFMT_GLOBALHEADER,
.codec_tag = (const AVCodecTag* const []){codec_3gp_tags, 0}, .codec_tag = (const AVCodecTag* const []){codec_3gp_tags, 0},
.priv_class = &mov_muxer_class, .priv_class = &tg2_muxer_class,
}; };
#endif #endif
#if CONFIG_IPOD_MUXER #if CONFIG_IPOD_MUXER
MOV_CLASS(ipod)
AVOutputFormat ff_ipod_muxer = { AVOutputFormat ff_ipod_muxer = {
.name = "ipod", .name = "ipod",
.long_name = NULL_IF_CONFIG_SMALL("iPod H.264 MP4 format"), .long_name = NULL_IF_CONFIG_SMALL("iPod H.264 MP4 format"),
@ -2444,6 +2451,6 @@ AVOutputFormat ff_ipod_muxer = {
.write_trailer = mov_write_trailer, .write_trailer = mov_write_trailer,
.flags = AVFMT_GLOBALHEADER, .flags = AVFMT_GLOBALHEADER,
.codec_tag = (const AVCodecTag* const []){codec_ipod_tags, 0}, .codec_tag = (const AVCodecTag* const []){codec_ipod_tags, 0},
.priv_class = &mov_muxer_class, .priv_class = &ipod_muxer_class,
}; };
#endif #endif