mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
Merge remote-tracking branch 'qatar/master'
* qatar/master: rtpdec_asf: Set the no_resync_search option for the chained asf demuxer asfdec: Add an option for not searching for the packet markers cosmetics: Clean up the tiffenc pix_fmts declaration to match the style of others cosmetics: Align codec declarations cosmetics: Convert mimic.c to utf-8 avconv: remove an unused function parameter. avconv: remove now pointless variables. avconv: drop support for building without libavfilter. nellymoserenc: fix crash due to memsetting the wrong area. libavformat: Only require first packet to be known for audio/video streams avplay: Don't try to scale timestamps if the tb isn't set Conflicts: Changelog configure ffmpeg.c libavcodec/aacenc.c libavcodec/bmpenc.c libavcodec/dnxhddec.c libavcodec/dnxhdenc.c libavcodec/ffv1.c libavcodec/flacenc.c libavcodec/fraps.c libavcodec/huffyuv.c libavcodec/libopenjpegdec.c libavcodec/mpeg12enc.c libavcodec/mpeg4videodec.c libavcodec/pamenc.c libavcodec/pgssubdec.c libavcodec/pngenc.c libavcodec/qtrleenc.c libavcodec/rawdec.c libavcodec/sgienc.c libavcodec/tiffenc.c libavcodec/v210dec.c libavcodec/wmv2dec.c libavformat/utils.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
6101e5322f
@ -22,6 +22,7 @@ version next:
|
||||
- Metal Gear Solid: The Twin Snakes demuxer
|
||||
- OpenEXR image decoder
|
||||
- removelogo filter
|
||||
- drop support for ffmpeg without libavfilter
|
||||
|
||||
|
||||
version 0.10:
|
||||
|
2
configure
vendored
2
configure
vendored
@ -1704,7 +1704,7 @@ ffplay_select="buffersink_filter rdft"
|
||||
ffprobe_deps="avcodec avformat"
|
||||
ffserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer"
|
||||
ffserver_extralibs='$ldl'
|
||||
ffmpeg_deps="avcodec avformat swscale swresample"
|
||||
ffmpeg_deps="avcodec avfilter avformat swscale swresample"
|
||||
ffmpeg_select="buffersink_filter"
|
||||
|
||||
doc_deps="texi2html"
|
||||
|
102
ffmpeg.c
102
ffmpeg.c
@ -55,14 +55,12 @@
|
||||
|
||||
#include "libavformat/ffm.h" // not public API
|
||||
|
||||
#if CONFIG_AVFILTER
|
||||
# include "libavfilter/avcodec.h"
|
||||
# include "libavfilter/avfilter.h"
|
||||
# include "libavfilter/avfiltergraph.h"
|
||||
# include "libavfilter/buffersink.h"
|
||||
# include "libavfilter/buffersrc.h"
|
||||
# include "libavfilter/vsrc_buffer.h"
|
||||
#endif
|
||||
|
||||
#if HAVE_SYS_RESOURCE_H
|
||||
#include <sys/types.h>
|
||||
@ -245,8 +243,6 @@ typedef struct OutputStream {
|
||||
|
||||
/* video only */
|
||||
int video_resample;
|
||||
AVFrame resample_frame; /* temporary frame for image resampling */
|
||||
struct SwsContext *img_resample_ctx; /* for image resampling */
|
||||
int resample_height;
|
||||
int resample_width;
|
||||
int resample_pix_fmt;
|
||||
@ -274,13 +270,11 @@ typedef struct OutputStream {
|
||||
|
||||
SwrContext *swr;
|
||||
|
||||
#if CONFIG_AVFILTER
|
||||
AVFilterContext *output_video_filter;
|
||||
AVFilterContext *input_video_filter;
|
||||
AVFilterBufferRef *picref;
|
||||
char *avfilter;
|
||||
AVFilterGraph *graph;
|
||||
#endif
|
||||
|
||||
int64_t sws_flags;
|
||||
AVDictionary *opts;
|
||||
@ -405,10 +399,8 @@ typedef struct OptionsContext {
|
||||
int nb_presets;
|
||||
SpecifierOpt *copy_initial_nonkeyframes;
|
||||
int nb_copy_initial_nonkeyframes;
|
||||
#if CONFIG_AVFILTER
|
||||
SpecifierOpt *filters;
|
||||
int nb_filters;
|
||||
#endif
|
||||
} OptionsContext;
|
||||
|
||||
#define MATCH_PER_STREAM_OPT(name, type, outvar, fmtctx, st)\
|
||||
@ -597,8 +589,6 @@ static void filter_release_buffer(AVFilterBuffer *fb)
|
||||
unref_buffer(buf->ist, buf);
|
||||
}
|
||||
|
||||
#if CONFIG_AVFILTER
|
||||
|
||||
static int configure_video_filters(InputStream *ist, OutputStream *ost)
|
||||
{
|
||||
AVFilterContext *last_filter, *filter;
|
||||
@ -693,7 +683,6 @@ static int configure_video_filters(InputStream *ist, OutputStream *ost)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_AVFILTER */
|
||||
|
||||
static void term_exit(void)
|
||||
{
|
||||
@ -863,9 +852,7 @@ void av_noreturn exit_program(int ret)
|
||||
av_freep(&async_buf);
|
||||
allocated_async_buf_size = 0;
|
||||
|
||||
#if CONFIG_AVFILTER
|
||||
avfilter_uninit();
|
||||
#endif
|
||||
avformat_network_deinit();
|
||||
|
||||
if (received_sigterm) {
|
||||
@ -1439,65 +1426,6 @@ static void do_subtitle_out(AVFormatContext *s,
|
||||
}
|
||||
}
|
||||
|
||||
static void do_video_resample(OutputStream *ost,
|
||||
InputStream *ist,
|
||||
AVFrame *in_picture,
|
||||
AVFrame **out_picture)
|
||||
{
|
||||
#if CONFIG_AVFILTER
|
||||
*out_picture = in_picture;
|
||||
#else
|
||||
AVCodecContext *dec = ist->st->codec;
|
||||
AVCodecContext *enc = ost->st->codec;
|
||||
int resample_changed = ost->resample_width != in_picture->width ||
|
||||
ost->resample_height != in_picture->height ||
|
||||
ost->resample_pix_fmt != in_picture->format;
|
||||
|
||||
*out_picture = in_picture;
|
||||
if (resample_changed) {
|
||||
av_log(NULL, AV_LOG_INFO,
|
||||
"Input stream #%d:%d frame changed from size:%dx%d fmt:%s to size:%dx%d fmt:%s / frm size:%dx%d fmt:%s\n",
|
||||
ist->file_index, ist->st->index,
|
||||
ost->resample_width, ost->resample_height, av_get_pix_fmt_name(ost->resample_pix_fmt),
|
||||
dec->width , dec->height , av_get_pix_fmt_name(dec->pix_fmt),
|
||||
in_picture->width, in_picture->height, av_get_pix_fmt_name(in_picture->format));
|
||||
ost->resample_width = in_picture->width;
|
||||
ost->resample_height = in_picture->height;
|
||||
ost->resample_pix_fmt = in_picture->format;
|
||||
}
|
||||
|
||||
ost->video_resample = in_picture->width != enc->width ||
|
||||
in_picture->height != enc->height ||
|
||||
in_picture->format != enc->pix_fmt;
|
||||
|
||||
if (ost->video_resample) {
|
||||
*out_picture = &ost->resample_frame;
|
||||
if (!ost->img_resample_ctx || resample_changed) {
|
||||
/* initialize the destination picture */
|
||||
if (!ost->resample_frame.data[0]) {
|
||||
avcodec_get_frame_defaults(&ost->resample_frame);
|
||||
if (avpicture_alloc((AVPicture *)&ost->resample_frame, enc->pix_fmt,
|
||||
enc->width, enc->height)) {
|
||||
av_log(NULL, AV_LOG_FATAL, "Cannot allocate temp picture, check pix fmt\n");
|
||||
exit_program(1);
|
||||
}
|
||||
}
|
||||
/* initialize a new scaler context */
|
||||
sws_freeContext(ost->img_resample_ctx);
|
||||
ost->img_resample_ctx = sws_getContext(in_picture->width, in_picture->height, in_picture->format,
|
||||
enc->width, enc->height, enc->pix_fmt,
|
||||
ost->sws_flags, NULL, NULL, NULL);
|
||||
if (ost->img_resample_ctx == NULL) {
|
||||
av_log(NULL, AV_LOG_FATAL, "Cannot get resampling context\n");
|
||||
exit_program(1);
|
||||
}
|
||||
}
|
||||
sws_scale(ost->img_resample_ctx, in_picture->data, in_picture->linesize,
|
||||
0, ost->resample_height, (*out_picture)->data, (*out_picture)->linesize);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static double psnr(double d)
|
||||
{
|
||||
return -10.0 * log(d) / log(10.0);
|
||||
@ -1545,7 +1473,6 @@ static void do_video_out(AVFormatContext *s, OutputStream *ost,
|
||||
InputStream *ist, AVFrame *in_picture)
|
||||
{
|
||||
int nb_frames, i, ret, format_video_sync;
|
||||
AVFrame *final_picture;
|
||||
AVCodecContext *enc;
|
||||
double sync_ipts, delta;
|
||||
double duration = 0;
|
||||
@ -1607,8 +1534,6 @@ static void do_video_out(AVFormatContext *s, OutputStream *ost,
|
||||
av_log(NULL, AV_LOG_VERBOSE, "*** %d dup!\n", nb_frames - 1);
|
||||
}
|
||||
|
||||
do_video_resample(ost, ist, in_picture, &final_picture);
|
||||
|
||||
/* duplicates frame if needed */
|
||||
for (i = 0; i < nb_frames; i++) {
|
||||
AVPacket pkt;
|
||||
@ -1623,7 +1548,7 @@ static void do_video_out(AVFormatContext *s, OutputStream *ost,
|
||||
method. */
|
||||
enc->coded_frame->interlaced_frame = in_picture->interlaced_frame;
|
||||
enc->coded_frame->top_field_first = in_picture->top_field_first;
|
||||
pkt.data = (uint8_t *)final_picture;
|
||||
pkt.data = (uint8_t *)in_picture;
|
||||
pkt.size = sizeof(AVPicture);
|
||||
pkt.pts = av_rescale_q(ost->sync_opts, enc->time_base, ost->st->time_base);
|
||||
pkt.flags |= AV_PKT_FLAG_KEY;
|
||||
@ -1633,7 +1558,7 @@ static void do_video_out(AVFormatContext *s, OutputStream *ost,
|
||||
int got_packet;
|
||||
AVFrame big_picture;
|
||||
|
||||
big_picture = *final_picture;
|
||||
big_picture = *in_picture;
|
||||
/* better than nothing: use input picture interlaced
|
||||
settings */
|
||||
big_picture.interlaced_frame = in_picture->interlaced_frame;
|
||||
@ -2157,7 +2082,6 @@ static int transcode_video(InputStream *ist, AVPacket *pkt, int *got_output, int
|
||||
|
||||
pre_process_video_frame(ist, (AVPicture *)decoded_frame, &buffer_to_free);
|
||||
|
||||
#if CONFIG_AVFILTER
|
||||
frame_sample_aspect= av_opt_ptr(avcodec_get_frame_class(), decoded_frame, "sample_aspect_ratio");
|
||||
for(i=0;i<nb_output_streams;i++) {
|
||||
OutputStream *ost = ost = &output_streams[i];
|
||||
@ -2189,7 +2113,6 @@ static int transcode_video(InputStream *ist, AVPacket *pkt, int *got_output, int
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
rate_emu_sleep(ist);
|
||||
|
||||
@ -2199,7 +2122,6 @@ static int transcode_video(InputStream *ist, AVPacket *pkt, int *got_output, int
|
||||
if (!check_output_constraints(ist, ost) || !ost->encoding_needed)
|
||||
continue;
|
||||
|
||||
#if CONFIG_AVFILTER
|
||||
while (av_buffersink_poll_frame(ost->output_video_filter)) {
|
||||
AVRational ist_pts_tb = ost->output_video_filter->inputs[0]->time_base;
|
||||
AVFrame *filtered_frame;
|
||||
@ -2222,9 +2144,6 @@ static int transcode_video(InputStream *ist, AVPacket *pkt, int *got_output, int
|
||||
cont:
|
||||
avfilter_unref_buffer(ost->picref);
|
||||
}
|
||||
#else
|
||||
do_video_out(output_files[ost->file_index].ctx, ost, ist, decoded_frame);
|
||||
#endif
|
||||
}
|
||||
|
||||
fail:
|
||||
@ -2679,12 +2598,10 @@ static int transcode_init(OutputFile *output_files, int nb_output_files,
|
||||
AV_TIME_BASE_Q,
|
||||
codec->time_base);
|
||||
|
||||
#if CONFIG_AVFILTER
|
||||
if (configure_video_filters(ist, ost)) {
|
||||
av_log(NULL, AV_LOG_FATAL, "Error opening filters!\n");
|
||||
exit_program(1);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
case AVMEDIA_TYPE_SUBTITLE:
|
||||
codec->time_base = (AVRational){1, 1000};
|
||||
@ -2924,7 +2841,6 @@ static int transcode(OutputFile *output_files, int nb_output_files,
|
||||
do_pkt_dump = 1;
|
||||
av_log_set_level(AV_LOG_DEBUG);
|
||||
}
|
||||
#if CONFIG_AVFILTER
|
||||
if (key == 'c' || key == 'C'){
|
||||
char buf[4096], target[64], command[256], arg[256] = {0};
|
||||
double time;
|
||||
@ -2957,7 +2873,6 @@ static int transcode(OutputFile *output_files, int nb_output_files,
|
||||
"only %d given in string '%s'\n", n, buf);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (key == 'd' || key == 'D'){
|
||||
int debug=0;
|
||||
if(key == 'D') {
|
||||
@ -3170,9 +3085,7 @@ static int transcode(OutputFile *output_files, int nb_output_files,
|
||||
av_freep(&ost->st->codec->stats_in);
|
||||
avcodec_close(ost->st->codec);
|
||||
}
|
||||
#if CONFIG_AVFILTER
|
||||
avfilter_graph_free(&ost->graph);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* close each decoder */
|
||||
@ -3202,10 +3115,7 @@ static int transcode(OutputFile *output_files, int nb_output_files,
|
||||
av_fifo_free(ost->fifo); /* works even if fifo is not
|
||||
initialized but set to zero */
|
||||
av_freep(&ost->st->codec->subtitle_header);
|
||||
av_free(ost->resample_frame.data[0]);
|
||||
av_free(ost->forced_kf_pts);
|
||||
if (ost->video_resample)
|
||||
sws_freeContext(ost->img_resample_ctx);
|
||||
swr_free(&ost->swr);
|
||||
av_dict_free(&ost->opts);
|
||||
}
|
||||
@ -4141,11 +4051,9 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in
|
||||
ost->top_field_first = -1;
|
||||
MATCH_PER_STREAM_OPT(top_field_first, i, ost->top_field_first, oc, st);
|
||||
|
||||
#if CONFIG_AVFILTER
|
||||
MATCH_PER_STREAM_OPT(filters, str, filters, oc, st);
|
||||
if (filters)
|
||||
ost->avfilter = av_strdup(filters);
|
||||
#endif
|
||||
} else {
|
||||
MATCH_PER_STREAM_OPT(copy_initial_nonkeyframes, i, ost->copy_initial_nonkeyframes, oc ,st);
|
||||
}
|
||||
@ -5080,9 +4988,7 @@ static const OptionDef options[] = {
|
||||
{ "q", HAS_ARG | OPT_EXPERT | OPT_DOUBLE | OPT_SPEC, {.off = OFFSET(qscale)}, "use fixed quality scale (VBR)", "q" },
|
||||
{ "qscale", HAS_ARG | OPT_EXPERT | OPT_FUNC2, {(void*)opt_qscale}, "use fixed quality scale (VBR)", "q" },
|
||||
{ "profile", HAS_ARG | OPT_EXPERT | OPT_FUNC2, {(void*)opt_profile}, "set profile", "profile" },
|
||||
#if CONFIG_AVFILTER
|
||||
{ "filter", HAS_ARG | OPT_STRING | OPT_SPEC, {.off = OFFSET(filters)}, "set stream filterchain", "filter_list" },
|
||||
#endif
|
||||
{ "stats", OPT_BOOL, {&print_stats}, "print progress report during encoding", },
|
||||
{ "attach", HAS_ARG | OPT_FUNC2, {(void*)opt_attach}, "add an attachment to the output file", "filename" },
|
||||
{ "dump_attachment", HAS_ARG | OPT_STRING | OPT_SPEC, {.off = OFFSET(dump_attachment)}, "extract an attachment into a file", "filename" },
|
||||
@ -5119,9 +5025,7 @@ static const OptionDef options[] = {
|
||||
{ "psnr", OPT_BOOL | OPT_EXPERT | OPT_VIDEO, {(void*)&do_psnr}, "calculate PSNR of compressed frames" },
|
||||
{ "vstats", OPT_EXPERT | OPT_VIDEO, {(void*)&opt_vstats}, "dump video coding statistics to file" },
|
||||
{ "vstats_file", HAS_ARG | OPT_EXPERT | OPT_VIDEO, {(void*)opt_vstats_file}, "dump video coding statistics to file", "file" },
|
||||
#if CONFIG_AVFILTER
|
||||
{ "vf", HAS_ARG | OPT_VIDEO | OPT_FUNC2, {(void*)opt_video_filters}, "video filters", "filter list" },
|
||||
#endif
|
||||
{ "intra_matrix", HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_STRING | OPT_SPEC, {.off = OFFSET(intra_matrices)}, "specify intra matrix coeffs", "matrix" },
|
||||
{ "inter_matrix", HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_STRING | OPT_SPEC, {.off = OFFSET(inter_matrices)}, "specify inter matrix coeffs", "matrix" },
|
||||
{ "top", HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_INT| OPT_SPEC, {.off = OFFSET(top_field_first)}, "top=1/bottom=0/auto=-1 field first", "" },
|
||||
@ -5196,9 +5100,7 @@ int main(int argc, char **argv)
|
||||
#if CONFIG_AVDEVICE
|
||||
avdevice_register_all();
|
||||
#endif
|
||||
#if CONFIG_AVFILTER
|
||||
avfilter_register_all();
|
||||
#endif
|
||||
av_register_all();
|
||||
avformat_network_init();
|
||||
|
||||
|
2
ffplay.c
2
ffplay.c
@ -1844,7 +1844,7 @@ static int video_thread(void *arg)
|
||||
frame->opaque = picref;
|
||||
}
|
||||
|
||||
if (av_cmp_q(tb, is->video_st->time_base)) {
|
||||
if (ret >= 0 && av_cmp_q(tb, is->video_st->time_base)) {
|
||||
av_unused int64_t pts1 = pts_int;
|
||||
pts_int = av_rescale_q(pts_int, tb, is->video_st->time_base);
|
||||
av_dlog(NULL, "video_thread(): "
|
||||
|
@ -2803,18 +2803,18 @@ static av_cold int latm_decode_init(AVCodecContext *avctx)
|
||||
|
||||
|
||||
AVCodec ff_aac_decoder = {
|
||||
.name = "aac",
|
||||
.type = AVMEDIA_TYPE_AUDIO,
|
||||
.id = CODEC_ID_AAC,
|
||||
.priv_data_size = sizeof(AACContext),
|
||||
.init = aac_decode_init,
|
||||
.close = aac_decode_close,
|
||||
.decode = aac_decode_frame,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Advanced Audio Coding"),
|
||||
.sample_fmts = (const enum AVSampleFormat[]) {
|
||||
.name = "aac",
|
||||
.type = AVMEDIA_TYPE_AUDIO,
|
||||
.id = CODEC_ID_AAC,
|
||||
.priv_data_size = sizeof(AACContext),
|
||||
.init = aac_decode_init,
|
||||
.close = aac_decode_close,
|
||||
.decode = aac_decode_frame,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Advanced Audio Coding"),
|
||||
.sample_fmts = (const enum AVSampleFormat[]) {
|
||||
AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE
|
||||
},
|
||||
.capabilities = CODEC_CAP_CHANNEL_CONF | CODEC_CAP_DR1,
|
||||
.capabilities = CODEC_CAP_CHANNEL_CONF | CODEC_CAP_DR1,
|
||||
.channel_layouts = aac_channel_layout,
|
||||
};
|
||||
|
||||
@ -2824,18 +2824,18 @@ AVCodec ff_aac_decoder = {
|
||||
To do a more complex LATM demuxing a separate LATM demuxer should be used.
|
||||
*/
|
||||
AVCodec ff_aac_latm_decoder = {
|
||||
.name = "aac_latm",
|
||||
.type = AVMEDIA_TYPE_AUDIO,
|
||||
.id = CODEC_ID_AAC_LATM,
|
||||
.priv_data_size = sizeof(struct LATMContext),
|
||||
.init = latm_decode_init,
|
||||
.close = aac_decode_close,
|
||||
.decode = latm_decode_frame,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("AAC LATM (Advanced Audio Codec LATM syntax)"),
|
||||
.sample_fmts = (const enum AVSampleFormat[]) {
|
||||
.name = "aac_latm",
|
||||
.type = AVMEDIA_TYPE_AUDIO,
|
||||
.id = CODEC_ID_AAC_LATM,
|
||||
.priv_data_size = sizeof(struct LATMContext),
|
||||
.init = latm_decode_init,
|
||||
.close = aac_decode_close,
|
||||
.decode = latm_decode_frame,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("AAC LATM (Advanced Audio Codec LATM syntax)"),
|
||||
.sample_fmts = (const enum AVSampleFormat[]) {
|
||||
AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE
|
||||
},
|
||||
.capabilities = CODEC_CAP_CHANNEL_CONF | CODEC_CAP_DR1,
|
||||
.capabilities = CODEC_CAP_CHANNEL_CONF | CODEC_CAP_DR1,
|
||||
.channel_layouts = aac_channel_layout,
|
||||
.flush = flush,
|
||||
};
|
||||
|
@ -817,8 +817,10 @@ AVCodec ff_aac_encoder = {
|
||||
.encode2 = aac_encode_frame,
|
||||
.close = aac_encode_end,
|
||||
.supported_samplerates = avpriv_mpeg4audio_sample_rates,
|
||||
.capabilities = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY | CODEC_CAP_EXPERIMENTAL,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_FLT,AV_SAMPLE_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Advanced Audio Coding"),
|
||||
.priv_class = &aacenc_class,
|
||||
.capabilities = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY |
|
||||
CODEC_CAP_EXPERIMENTAL,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Advanced Audio Coding"),
|
||||
.priv_class = &aacenc_class,
|
||||
};
|
||||
|
@ -123,5 +123,5 @@ AVCodec ff_aasc_decoder = {
|
||||
.close = aasc_decode_end,
|
||||
.decode = aasc_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Autodesk RLE"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Autodesk RLE"),
|
||||
};
|
||||
|
@ -147,16 +147,17 @@ static av_cold int ac3_fixed_encode_init(AVCodecContext *avctx)
|
||||
|
||||
|
||||
AVCodec ff_ac3_fixed_encoder = {
|
||||
.name = "ac3_fixed",
|
||||
.type = AVMEDIA_TYPE_AUDIO,
|
||||
.id = CODEC_ID_AC3,
|
||||
.priv_data_size = sizeof(AC3EncodeContext),
|
||||
.init = ac3_fixed_encode_init,
|
||||
.encode2 = ff_ac3_fixed_encode_frame,
|
||||
.close = ff_ac3_encode_close,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"),
|
||||
.priv_class = &ac3enc_class,
|
||||
.name = "ac3_fixed",
|
||||
.type = AVMEDIA_TYPE_AUDIO,
|
||||
.id = CODEC_ID_AC3,
|
||||
.priv_data_size = sizeof(AC3EncodeContext),
|
||||
.init = ac3_fixed_encode_init,
|
||||
.encode2 = ff_ac3_fixed_encode_frame,
|
||||
.close = ff_ac3_encode_close,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"),
|
||||
.priv_class = &ac3enc_class,
|
||||
.channel_layouts = ff_ac3_channel_layouts,
|
||||
.defaults = ac3_defaults,
|
||||
};
|
||||
|
@ -145,16 +145,17 @@ static CoefType calc_cpl_coord(CoefSumType energy_ch, CoefSumType energy_cpl)
|
||||
|
||||
#if CONFIG_AC3_ENCODER
|
||||
AVCodec ff_ac3_encoder = {
|
||||
.name = "ac3",
|
||||
.type = AVMEDIA_TYPE_AUDIO,
|
||||
.id = CODEC_ID_AC3,
|
||||
.priv_data_size = sizeof(AC3EncodeContext),
|
||||
.init = ff_ac3_encode_init,
|
||||
.encode2 = ff_ac3_float_encode_frame,
|
||||
.close = ff_ac3_encode_close,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_FLT,AV_SAMPLE_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"),
|
||||
.priv_class = &ac3enc_class,
|
||||
.name = "ac3",
|
||||
.type = AVMEDIA_TYPE_AUDIO,
|
||||
.id = CODEC_ID_AC3,
|
||||
.priv_data_size = sizeof(AC3EncodeContext),
|
||||
.init = ff_ac3_encode_init,
|
||||
.encode2 = ff_ac3_float_encode_frame,
|
||||
.close = ff_ac3_encode_close,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"),
|
||||
.priv_class = &ac3enc_class,
|
||||
.channel_layouts = ff_ac3_channel_layouts,
|
||||
.defaults = ac3_defaults,
|
||||
};
|
||||
|
@ -727,8 +727,8 @@ AVCodec ff_ ## name_ ## _encoder = { \
|
||||
.init = adpcm_encode_init, \
|
||||
.encode2 = adpcm_encode_frame, \
|
||||
.close = adpcm_encode_close, \
|
||||
.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16, \
|
||||
AV_SAMPLE_FMT_NONE}, \
|
||||
.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16, \
|
||||
AV_SAMPLE_FMT_NONE }, \
|
||||
.long_name = NULL_IF_CONFIG_SMALL(long_name_), \
|
||||
}
|
||||
|
||||
|
@ -693,5 +693,5 @@ AVCodec ff_alac_decoder = {
|
||||
.close = alac_decode_close,
|
||||
.decode = alac_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("ALAC (Apple Lossless Audio Codec)"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("ALAC (Apple Lossless Audio Codec)"),
|
||||
};
|
||||
|
@ -1759,7 +1759,7 @@ AVCodec ff_als_decoder = {
|
||||
.init = decode_init,
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.flush = flush,
|
||||
.capabilities = CODEC_CAP_SUBFRAMES | CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("MPEG-4 Audio Lossless Coding (ALS)"),
|
||||
.flush = flush,
|
||||
.capabilities = CODEC_CAP_SUBFRAMES | CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("MPEG-4 Audio Lossless Coding (ALS)"),
|
||||
};
|
||||
|
@ -1064,5 +1064,6 @@ AVCodec ff_amrnb_decoder = {
|
||||
.decode = amrnb_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Adaptive Multi-Rate NarrowBand"),
|
||||
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_FLT,AV_SAMPLE_FMT_NONE},
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
};
|
||||
|
@ -1243,5 +1243,6 @@ AVCodec ff_amrwb_decoder = {
|
||||
.decode = amrwb_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Adaptive Multi-Rate WideBand"),
|
||||
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_FLT,AV_SAMPLE_FMT_NONE},
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
};
|
||||
|
@ -192,5 +192,5 @@ AVCodec ff_anm_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Deluxe Paint Animation"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Deluxe Paint Animation"),
|
||||
};
|
||||
|
@ -993,7 +993,7 @@ AVCodec ff_ape_decoder = {
|
||||
.close = ape_decode_close,
|
||||
.decode = ape_decode_frame,
|
||||
.capabilities = CODEC_CAP_SUBFRAMES | CODEC_CAP_DELAY | CODEC_CAP_DR1,
|
||||
.flush = ape_flush,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Monkey's Audio"),
|
||||
.flush = ape_flush,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Monkey's Audio"),
|
||||
.priv_class = &ape_decoder_class,
|
||||
};
|
||||
|
@ -624,7 +624,7 @@ AVCodec ff_asv1_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name= NULL_IF_CONFIG_SMALL("ASUS V1"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("ASUS V1"),
|
||||
};
|
||||
|
||||
AVCodec ff_asv2_decoder = {
|
||||
@ -636,7 +636,7 @@ AVCodec ff_asv2_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name= NULL_IF_CONFIG_SMALL("ASUS V2"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("ASUS V2"),
|
||||
};
|
||||
|
||||
#if CONFIG_ASV1_ENCODER
|
||||
@ -647,9 +647,8 @@ AVCodec ff_asv1_encoder = {
|
||||
.priv_data_size = sizeof(ASV1Context),
|
||||
.init = encode_init,
|
||||
.encode2 = encode_frame,
|
||||
//encode_end,
|
||||
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
|
||||
.long_name= NULL_IF_CONFIG_SMALL("ASUS V1"),
|
||||
.pix_fmts = (const enum PixelFormat[]){ PIX_FMT_YUV420P, PIX_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("ASUS V1"),
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -661,8 +660,7 @@ AVCodec ff_asv2_encoder = {
|
||||
.priv_data_size = sizeof(ASV1Context),
|
||||
.init = encode_init,
|
||||
.encode2 = encode_frame,
|
||||
//encode_end,
|
||||
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
|
||||
.long_name= NULL_IF_CONFIG_SMALL("ASUS V2"),
|
||||
.pix_fmts = (const enum PixelFormat[]){ PIX_FMT_YUV420P, PIX_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("ASUS V2"),
|
||||
};
|
||||
#endif
|
||||
|
@ -401,13 +401,13 @@ static av_cold int atrac1_decode_init(AVCodecContext *avctx)
|
||||
|
||||
|
||||
AVCodec ff_atrac1_decoder = {
|
||||
.name = "atrac1",
|
||||
.type = AVMEDIA_TYPE_AUDIO,
|
||||
.id = CODEC_ID_ATRAC1,
|
||||
.name = "atrac1",
|
||||
.type = AVMEDIA_TYPE_AUDIO,
|
||||
.id = CODEC_ID_ATRAC1,
|
||||
.priv_data_size = sizeof(AT1Ctx),
|
||||
.init = atrac1_decode_init,
|
||||
.close = atrac1_decode_end,
|
||||
.decode = atrac1_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Atrac 1 (Adaptive TRansform Acoustic Coding)"),
|
||||
.init = atrac1_decode_init,
|
||||
.close = atrac1_decode_end,
|
||||
.decode = atrac1_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Atrac 1 (Adaptive TRansform Acoustic Coding)"),
|
||||
};
|
||||
|
@ -1066,13 +1066,13 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx)
|
||||
|
||||
AVCodec ff_atrac3_decoder =
|
||||
{
|
||||
.name = "atrac3",
|
||||
.type = AVMEDIA_TYPE_AUDIO,
|
||||
.id = CODEC_ID_ATRAC3,
|
||||
.name = "atrac3",
|
||||
.type = AVMEDIA_TYPE_AUDIO,
|
||||
.id = CODEC_ID_ATRAC3,
|
||||
.priv_data_size = sizeof(ATRAC3Context),
|
||||
.init = atrac3_decode_init,
|
||||
.close = atrac3_decode_close,
|
||||
.decode = atrac3_decode_frame,
|
||||
.capabilities = CODEC_CAP_SUBFRAMES | CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Atrac 3 (Adaptive TRansform Acoustic Coding 3)"),
|
||||
.init = atrac3_decode_init,
|
||||
.close = atrac3_decode_close,
|
||||
.decode = atrac3_decode_frame,
|
||||
.capabilities = CODEC_CAP_SUBFRAMES | CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Atrac 3 (Adaptive TRansform Acoustic Coding 3)"),
|
||||
};
|
||||
|
@ -132,5 +132,5 @@ AVCodec ff_aura2_decoder = {
|
||||
.close = aura_decode_end,
|
||||
.decode = aura_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Auravision Aura 2"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Auravision Aura 2"),
|
||||
};
|
||||
|
@ -183,5 +183,5 @@ AVCodec ff_avs_decoder = {
|
||||
.decode = avs_decode_frame,
|
||||
.close = avs_decode_end,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("AVS (Audio Video Standard) video"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("AVS (Audio Video Standard) video"),
|
||||
};
|
||||
|
@ -153,13 +153,13 @@ static av_cold int bethsoftvid_decode_end(AVCodecContext *avctx)
|
||||
}
|
||||
|
||||
AVCodec ff_bethsoftvid_decoder = {
|
||||
.name = "bethsoftvid",
|
||||
.type = AVMEDIA_TYPE_VIDEO,
|
||||
.id = CODEC_ID_BETHSOFTVID,
|
||||
.name = "bethsoftvid",
|
||||
.type = AVMEDIA_TYPE_VIDEO,
|
||||
.id = CODEC_ID_BETHSOFTVID,
|
||||
.priv_data_size = sizeof(BethsoftvidContext),
|
||||
.init = bethsoftvid_decode_init,
|
||||
.close = bethsoftvid_decode_end,
|
||||
.decode = bethsoftvid_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Bethesda VID video"),
|
||||
.init = bethsoftvid_decode_init,
|
||||
.close = bethsoftvid_decode_end,
|
||||
.decode = bethsoftvid_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Bethesda VID video"),
|
||||
};
|
||||
|
@ -189,13 +189,13 @@ static av_cold int bfi_decode_close(AVCodecContext * avctx)
|
||||
}
|
||||
|
||||
AVCodec ff_bfi_decoder = {
|
||||
.name = "bfi",
|
||||
.type = AVMEDIA_TYPE_VIDEO,
|
||||
.id = CODEC_ID_BFI,
|
||||
.name = "bfi",
|
||||
.type = AVMEDIA_TYPE_VIDEO,
|
||||
.id = CODEC_ID_BFI,
|
||||
.priv_data_size = sizeof(BFIContext),
|
||||
.init = bfi_decode_init,
|
||||
.close = bfi_decode_close,
|
||||
.decode = bfi_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Brute Force & Ignorance"),
|
||||
.init = bfi_decode_init,
|
||||
.close = bfi_decode_close,
|
||||
.decode = bfi_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Brute Force & Ignorance"),
|
||||
};
|
||||
|
@ -1335,5 +1335,5 @@ AVCodec ff_bink_decoder = {
|
||||
.init = decode_init,
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Bink video"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Bink video"),
|
||||
};
|
||||
|
@ -367,7 +367,7 @@ AVCodec ff_binkaudio_rdft_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DELAY | CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Bink Audio (RDFT)")
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Bink Audio (RDFT)")
|
||||
};
|
||||
|
||||
AVCodec ff_binkaudio_dct_decoder = {
|
||||
@ -379,5 +379,5 @@ AVCodec ff_binkaudio_dct_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DELAY | CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Bink Audio (DCT)")
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Bink Audio (DCT)")
|
||||
};
|
||||
|
@ -356,5 +356,5 @@ AVCodec ff_bmp_decoder = {
|
||||
.close = bmp_decode_end,
|
||||
.decode = bmp_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("BMP image"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("BMP image"),
|
||||
};
|
||||
|
@ -172,11 +172,12 @@ AVCodec ff_bmp_encoder = {
|
||||
.priv_data_size = sizeof(BMPContext),
|
||||
.init = bmp_encode_init,
|
||||
.encode2 = bmp_encode_frame,
|
||||
.pix_fmts = (const enum PixelFormat[]){
|
||||
.pix_fmts = (const enum PixelFormat[]){
|
||||
PIX_FMT_BGRA, PIX_FMT_BGR24,
|
||||
PIX_FMT_RGB565, PIX_FMT_RGB555, PIX_FMT_RGB444,
|
||||
PIX_FMT_RGB8, PIX_FMT_BGR8, PIX_FMT_RGB4_BYTE, PIX_FMT_BGR4_BYTE, PIX_FMT_GRAY8, PIX_FMT_PAL8,
|
||||
PIX_FMT_MONOBLACK,
|
||||
PIX_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("BMP image"),
|
||||
PIX_FMT_NONE
|
||||
},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("BMP image"),
|
||||
};
|
||||
|
@ -257,5 +257,5 @@ AVCodec ff_c93_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Interplay C93"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Interplay C93"),
|
||||
};
|
||||
|
@ -738,6 +738,6 @@ AVCodec ff_cavs_decoder = {
|
||||
.close = ff_cavs_end,
|
||||
.decode = cavs_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1 | CODEC_CAP_DELAY,
|
||||
.flush= cavs_flush,
|
||||
.long_name= NULL_IF_CONFIG_SMALL("Chinese AVS video (AVS1-P2, JiZhun profile)"),
|
||||
.flush = cavs_flush,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Chinese AVS video (AVS1-P2, JiZhun profile)"),
|
||||
};
|
||||
|
@ -376,5 +376,5 @@ AVCodec ff_cdgraphics_decoder = {
|
||||
.close = cdg_decode_end,
|
||||
.decode = cdg_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("CD Graphics video"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("CD Graphics video"),
|
||||
};
|
||||
|
@ -481,5 +481,5 @@ AVCodec ff_cinepak_decoder = {
|
||||
.close = cinepak_decode_end,
|
||||
.decode = cinepak_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Cinepak"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Cinepak"),
|
||||
};
|
||||
|
@ -264,5 +264,5 @@ AVCodec ff_cscd_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("CamStudio"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("CamStudio"),
|
||||
};
|
||||
|
@ -188,7 +188,7 @@ AVCodec ff_aura_decoder = {
|
||||
.close = cyuv_decode_end,
|
||||
.decode = cyuv_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Auravision AURA"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Auravision AURA"),
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -202,6 +202,6 @@ AVCodec ff_cyuv_decoder = {
|
||||
.close = cyuv_decode_end,
|
||||
.decode = cyuv_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Creative YUV (CYUV)"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Creative YUV (CYUV)"),
|
||||
};
|
||||
#endif
|
||||
|
@ -379,5 +379,5 @@ AVCodec ff_dfa_decoder = {
|
||||
.close = dfa_decode_end,
|
||||
.decode = dfa_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Chronomaster DFA"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Chronomaster DFA"),
|
||||
};
|
||||
|
@ -429,5 +429,5 @@ AVCodec ff_dnxhd_decoder = {
|
||||
.close = dnxhd_decode_close,
|
||||
.decode = dnxhd_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("VC3/DNxHD"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("VC3/DNxHD"),
|
||||
};
|
||||
|
@ -1007,9 +1007,11 @@ AVCodec ff_dnxhd_encoder = {
|
||||
.init = dnxhd_encode_init,
|
||||
.encode2 = dnxhd_encode_picture,
|
||||
.close = dnxhd_encode_end,
|
||||
.capabilities = CODEC_CAP_SLICE_THREADS,
|
||||
.pix_fmts = (const enum PixelFormat[]){PIX_FMT_YUV422P, PIX_FMT_YUV422P10, PIX_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("VC3/DNxHD"),
|
||||
.priv_class = &class,
|
||||
.capabilities = CODEC_CAP_SLICE_THREADS,
|
||||
.pix_fmts = (const enum PixelFormat[]){ PIX_FMT_YUV422P,
|
||||
PIX_FMT_YUV422P10,
|
||||
PIX_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("VC3/DNxHD"),
|
||||
.priv_class = &class,
|
||||
.defaults = dnxhd_defaults,
|
||||
};
|
||||
|
@ -241,5 +241,5 @@ AVCodec ff_dpx_decoder = {
|
||||
.init = decode_init,
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("DPX image"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("DPX image"),
|
||||
};
|
||||
|
@ -382,7 +382,7 @@ AVCodec ff_dsicinvideo_decoder = {
|
||||
.close = cinvideo_decode_end,
|
||||
.decode = cinvideo_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN video"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN video"),
|
||||
};
|
||||
|
||||
AVCodec ff_dsicinaudio_decoder = {
|
||||
@ -393,5 +393,5 @@ AVCodec ff_dsicinaudio_decoder = {
|
||||
.init = cinaudio_decode_init,
|
||||
.decode = cinaudio_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN audio"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN audio"),
|
||||
};
|
||||
|
@ -957,8 +957,10 @@ AVCodec ff_dvvideo_encoder = {
|
||||
.priv_data_size = sizeof(DVVideoContext),
|
||||
.init = dvvideo_init_encoder,
|
||||
.encode2 = dvvideo_encode_frame,
|
||||
.capabilities = CODEC_CAP_SLICE_THREADS,
|
||||
.pix_fmts = (const enum PixelFormat[]) {PIX_FMT_YUV411P, PIX_FMT_YUV422P, PIX_FMT_YUV420P, PIX_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
|
||||
.capabilities = CODEC_CAP_SLICE_THREADS,
|
||||
.pix_fmts = (const enum PixelFormat[]) {
|
||||
PIX_FMT_YUV411P, PIX_FMT_YUV422P, PIX_FMT_YUV420P, PIX_FMT_NONE
|
||||
},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
|
||||
};
|
||||
#endif // CONFIG_DVVIDEO_ENCODER
|
||||
|
@ -467,5 +467,5 @@ AVCodec ff_dvbsub_encoder = {
|
||||
.id = CODEC_ID_DVB_SUBTITLE,
|
||||
.priv_data_size = sizeof(DVBSubtitleContext),
|
||||
.encode = dvbsub_encode,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("DVB subtitles"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("DVB subtitles"),
|
||||
};
|
||||
|
@ -1538,5 +1538,5 @@ AVCodec ff_dvbsub_decoder = {
|
||||
.init = dvbsub_init_decoder,
|
||||
.close = dvbsub_close_decoder,
|
||||
.decode = dvbsub_decode,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("DVB subtitles"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("DVB subtitles"),
|
||||
};
|
||||
|
@ -381,6 +381,6 @@ AVCodec ff_dvvideo_decoder = {
|
||||
.close = dvvideo_close,
|
||||
.decode = dvvideo_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1 | CODEC_CAP_SLICE_THREADS,
|
||||
.max_lowres = 3,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
|
||||
.max_lowres = 3,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
|
||||
};
|
||||
|
@ -564,5 +564,5 @@ AVCodec ff_dvdsub_decoder = {
|
||||
.priv_data_size = sizeof(DVDSubContext),
|
||||
.init = dvdsub_init,
|
||||
.decode = dvdsub_decode,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("DVD subtitles"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("DVD subtitles"),
|
||||
};
|
||||
|
@ -220,5 +220,5 @@ AVCodec ff_dvdsub_encoder = {
|
||||
.type = AVMEDIA_TYPE_SUBTITLE,
|
||||
.id = CODEC_ID_DVD_SUBTITLE,
|
||||
.encode = dvdsub_encode,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("DVD subtitles"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("DVD subtitles"),
|
||||
};
|
||||
|
@ -327,5 +327,5 @@ AVCodec ff_dxa_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Feeble Files/ScummVM DXA"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Feeble Files/ScummVM DXA"),
|
||||
};
|
||||
|
@ -254,7 +254,8 @@ AVCodec ff_eac3_encoder = {
|
||||
.init = ff_ac3_encode_init,
|
||||
.encode2 = ff_ac3_float_encode_frame,
|
||||
.close = ff_ac3_encode_close,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_FLT,AV_SAMPLE_FMT_NONE},
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("ATSC A/52 E-AC-3"),
|
||||
.priv_class = &eac3enc_class,
|
||||
.channel_layouts = ff_ac3_channel_layouts,
|
||||
|
@ -227,5 +227,5 @@ AVCodec ff_eacmv_decoder = {
|
||||
.close = cmv_decode_end,
|
||||
.decode = cmv_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Electronic Arts CMV video"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Electronic Arts CMV video"),
|
||||
};
|
||||
|
@ -329,5 +329,5 @@ AVCodec ff_eamad_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Electronic Arts Madcow Video")
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Electronic Arts Madcow Video")
|
||||
};
|
||||
|
@ -252,5 +252,5 @@ AVCodec ff_eatgq_decoder = {
|
||||
.close = tgq_decode_end,
|
||||
.decode = tgq_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TGQ video"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TGQ video"),
|
||||
};
|
||||
|
@ -349,5 +349,5 @@ AVCodec ff_eatgv_decoder = {
|
||||
.init = tgv_decode_init,
|
||||
.close = tgv_decode_end,
|
||||
.decode = tgv_decode_frame,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TGV video"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TGV video"),
|
||||
};
|
||||
|
@ -167,5 +167,5 @@ AVCodec ff_eatqi_decoder = {
|
||||
.close = tqi_decode_end,
|
||||
.decode = tqi_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TQI Video"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TQI Video"),
|
||||
};
|
||||
|
@ -374,5 +374,5 @@ AVCodec ff_escape124_decoder = {
|
||||
.close = escape124_decode_close,
|
||||
.decode = escape124_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Escape 124"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Escape 124"),
|
||||
};
|
||||
|
@ -1851,8 +1851,9 @@ AVCodec ff_ffv1_decoder = {
|
||||
.init = decode_init,
|
||||
.close = common_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1 /*| CODEC_CAP_DRAW_HORIZ_BAND*/ | CODEC_CAP_SLICE_THREADS,
|
||||
.long_name= NULL_IF_CONFIG_SMALL("FFmpeg video codec #1"),
|
||||
.capabilities = CODEC_CAP_DR1 /*| CODEC_CAP_DRAW_HORIZ_BAND*/ |
|
||||
CODEC_CAP_SLICE_THREADS,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("FFmpeg video codec #1"),
|
||||
};
|
||||
|
||||
#if CONFIG_FFV1_ENCODER
|
||||
@ -1864,8 +1865,8 @@ AVCodec ff_ffv1_encoder = {
|
||||
.init = encode_init,
|
||||
.encode2 = encode_frame,
|
||||
.close = common_end,
|
||||
.capabilities = CODEC_CAP_SLICE_THREADS,
|
||||
.capabilities = CODEC_CAP_SLICE_THREADS,
|
||||
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_YUVA420P, PIX_FMT_YUV444P, PIX_FMT_YUVA444P, PIX_FMT_YUV440P, PIX_FMT_YUV422P, PIX_FMT_YUV411P, PIX_FMT_YUV410P, PIX_FMT_0RGB32, PIX_FMT_RGB32, PIX_FMT_YUV420P16, PIX_FMT_YUV422P16, PIX_FMT_YUV444P16, PIX_FMT_YUV444P9, PIX_FMT_YUV422P9, PIX_FMT_YUV420P9, PIX_FMT_YUV420P10, PIX_FMT_YUV422P10, PIX_FMT_YUV444P10, PIX_FMT_GRAY16, PIX_FMT_GRAY8, PIX_FMT_NONE},
|
||||
.long_name= NULL_IF_CONFIG_SMALL("FFmpeg video codec #1"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("FFmpeg video codec #1"),
|
||||
};
|
||||
#endif
|
||||
|
@ -689,5 +689,5 @@ AVCodec ff_flac_decoder = {
|
||||
.close = flac_decode_close,
|
||||
.decode = flac_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name= NULL_IF_CONFIG_SMALL("FLAC (Free Lossless Audio Codec)"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("FLAC (Free Lossless Audio Codec)"),
|
||||
};
|
||||
|
@ -1326,8 +1326,9 @@ AVCodec ff_flac_encoder = {
|
||||
.init = flac_encode_init,
|
||||
.encode2 = flac_encode_frame,
|
||||
.close = flac_encode_close,
|
||||
.capabilities = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY | CODEC_CAP_LOSSLESS,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("FLAC (Free Lossless Audio Codec)"),
|
||||
.priv_class = &flac_encoder_class,
|
||||
.capabilities = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY | CODEC_CAP_LOSSLESS,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("FLAC (Free Lossless Audio Codec)"),
|
||||
.priv_class = &flac_encoder_class,
|
||||
};
|
||||
|
@ -462,7 +462,7 @@ AVCodec ff_flashsv_decoder = {
|
||||
.close = flashsv_decode_end,
|
||||
.decode = flashsv_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.pix_fmts = (const enum PixelFormat[]){PIX_FMT_BGR24, PIX_FMT_NONE},
|
||||
.pix_fmts = (const enum PixelFormat[]){ PIX_FMT_BGR24, PIX_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Flash Screen Video v1"),
|
||||
};
|
||||
#endif /* CONFIG_FLASHSV_DECODER */
|
||||
@ -525,7 +525,7 @@ AVCodec ff_flashsv2_decoder = {
|
||||
.close = flashsv2_decode_end,
|
||||
.decode = flashsv_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.pix_fmts = (const enum PixelFormat[]){PIX_FMT_BGR24, PIX_FMT_NONE},
|
||||
.pix_fmts = (const enum PixelFormat[]){ PIX_FMT_BGR24, PIX_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Flash Screen Video v2"),
|
||||
};
|
||||
#endif /* CONFIG_FLASHSV2_DECODER */
|
||||
|
@ -283,6 +283,6 @@ AVCodec ff_flashsv_encoder = {
|
||||
.init = flashsv_encode_init,
|
||||
.encode2 = flashsv_encode_frame,
|
||||
.close = flashsv_encode_end,
|
||||
.pix_fmts = (const enum PixelFormat[]){PIX_FMT_BGR24, PIX_FMT_NONE},
|
||||
.pix_fmts = (const enum PixelFormat[]){ PIX_FMT_BGR24, PIX_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Flash Screen Video"),
|
||||
};
|
||||
|
@ -803,5 +803,5 @@ AVCodec ff_flic_decoder = {
|
||||
.close = flic_decode_end,
|
||||
.decode = flic_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Autodesk Animator Flic video"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Autodesk Animator Flic video"),
|
||||
};
|
||||
|
@ -127,7 +127,7 @@ AVCodec ff_flv_decoder = {
|
||||
.close = ff_h263_decode_end,
|
||||
.decode = ff_h263_decode_frame,
|
||||
.capabilities = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
|
||||
.max_lowres= 3,
|
||||
.long_name= NULL_IF_CONFIG_SMALL("Flash Video (FLV) / Sorenson Spark / Sorenson H.263"),
|
||||
.pix_fmts= ff_pixfmt_list_420,
|
||||
.max_lowres = 3,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Flash Video (FLV) / Sorenson Spark / Sorenson H.263"),
|
||||
.pix_fmts = ff_pixfmt_list_420,
|
||||
};
|
||||
|
@ -94,7 +94,7 @@ AVCodec ff_flv_encoder = {
|
||||
.init = ff_MPV_encode_init,
|
||||
.encode2 = ff_MPV_encode_picture,
|
||||
.close = ff_MPV_encode_end,
|
||||
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
|
||||
.long_name= NULL_IF_CONFIG_SMALL("Flash Video (FLV) / Sorenson Spark / Sorenson H.263"),
|
||||
.pix_fmts = (const enum PixelFormat[]){ PIX_FMT_YUV420P, PIX_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Flash Video (FLV) / Sorenson Spark / Sorenson H.263"),
|
||||
.priv_class = &flv_class,
|
||||
};
|
||||
|
@ -322,5 +322,5 @@ AVCodec ff_fraps_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Fraps"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Fraps"),
|
||||
};
|
||||
|
@ -120,5 +120,5 @@ AVCodec ff_frwu_decoder = {
|
||||
.close = decode_close,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Forward Uncompressed"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Forward Uncompressed"),
|
||||
};
|
||||
|
@ -398,5 +398,6 @@ AVCodec ff_adpcm_g722_encoder = {
|
||||
.encode2 = g722_encode_frame,
|
||||
.capabilities = CODEC_CAP_SMALL_LAST_FRAME,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("G.722 ADPCM"),
|
||||
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
};
|
||||
|
@ -404,9 +404,10 @@ AVCodec ff_adpcm_g726_encoder = {
|
||||
#if FF_API_OLD_ENCODE_AUDIO
|
||||
.close = g726_encode_close,
|
||||
#endif
|
||||
.capabilities = CODEC_CAP_SMALL_LAST_FRAME,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("G.726 ADPCM"),
|
||||
.capabilities = CODEC_CAP_SMALL_LAST_FRAME,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("G.726 ADPCM"),
|
||||
.priv_class = &class,
|
||||
.defaults = defaults,
|
||||
};
|
||||
@ -494,6 +495,6 @@ AVCodec ff_adpcm_g726_decoder = {
|
||||
.decode = g726_decode_frame,
|
||||
.flush = g726_decode_flush,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("G.726 ADPCM"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("G.726 ADPCM"),
|
||||
};
|
||||
#endif
|
||||
|
@ -199,6 +199,9 @@ AVCodec ff_gif_encoder = {
|
||||
.init = gif_encode_init,
|
||||
.encode2 = gif_encode_frame,
|
||||
.close = gif_encode_close,
|
||||
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_RGB8, PIX_FMT_BGR8, PIX_FMT_RGB4_BYTE, PIX_FMT_BGR4_BYTE, PIX_FMT_GRAY8, PIX_FMT_PAL8, PIX_FMT_NONE},
|
||||
.long_name= NULL_IF_CONFIG_SMALL("GIF (Graphics Interchange Format)"),
|
||||
.pix_fmts = (const enum PixelFormat[]){
|
||||
PIX_FMT_RGB8, PIX_FMT_BGR8, PIX_FMT_RGB4_BYTE, PIX_FMT_BGR4_BYTE,
|
||||
PIX_FMT_GRAY8, PIX_FMT_PAL8, PIX_FMT_NONE
|
||||
},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("GIF (Graphics Interchange Format)"),
|
||||
};
|
||||
|
@ -334,5 +334,5 @@ AVCodec ff_gif_decoder = {
|
||||
.close = gif_decode_close,
|
||||
.decode = gif_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("GIF (Graphics Interchange Format)"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("GIF (Graphics Interchange Format)"),
|
||||
};
|
||||
|
@ -114,7 +114,7 @@ AVCodec ff_gsm_decoder = {
|
||||
.decode = gsm_decode_frame,
|
||||
.flush = gsm_flush,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("GSM"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("GSM"),
|
||||
};
|
||||
|
||||
AVCodec ff_gsm_ms_decoder = {
|
||||
@ -126,5 +126,5 @@ AVCodec ff_gsm_ms_decoder = {
|
||||
.decode = gsm_decode_frame,
|
||||
.flush = gsm_flush,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("GSM Microsoft variant"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("GSM Microsoft variant"),
|
||||
};
|
||||
|
@ -655,6 +655,6 @@ AVCodec ff_h261_decoder = {
|
||||
.close = h261_decode_end,
|
||||
.decode = h261_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.max_lowres = 3,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("H.261"),
|
||||
.max_lowres = 3,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("H.261"),
|
||||
};
|
||||
|
@ -331,7 +331,7 @@ AVCodec ff_h261_encoder = {
|
||||
.init = ff_MPV_encode_init,
|
||||
.encode2 = ff_MPV_encode_picture,
|
||||
.close = ff_MPV_encode_end,
|
||||
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
|
||||
.long_name= NULL_IF_CONFIG_SMALL("H.261"),
|
||||
.pix_fmts = (const enum PixelFormat[]){ PIX_FMT_YUV420P, PIX_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("H.261"),
|
||||
.priv_class = &h261_class,
|
||||
};
|
||||
|
@ -753,9 +753,10 @@ AVCodec ff_h263_decoder = {
|
||||
.init = ff_h263_decode_init,
|
||||
.close = ff_h263_decode_end,
|
||||
.decode = ff_h263_decode_frame,
|
||||
.capabilities = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY,
|
||||
.flush= ff_mpeg_flush,
|
||||
.max_lowres= 3,
|
||||
.long_name= NULL_IF_CONFIG_SMALL("H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2"),
|
||||
.pix_fmts= ff_hwaccel_pixfmt_list_420,
|
||||
.capabilities = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 |
|
||||
CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY,
|
||||
.flush = ff_mpeg_flush,
|
||||
.max_lowres = 3,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2"),
|
||||
.pix_fmts = ff_hwaccel_pixfmt_list_420,
|
||||
};
|
||||
|
@ -1511,31 +1511,33 @@ static av_cold int encode_end(AVCodecContext *avctx)
|
||||
|
||||
#if CONFIG_HUFFYUV_DECODER
|
||||
AVCodec ff_huffyuv_decoder = {
|
||||
.name = "huffyuv",
|
||||
.type = AVMEDIA_TYPE_VIDEO,
|
||||
.id = CODEC_ID_HUFFYUV,
|
||||
.priv_data_size = sizeof(HYuvContext),
|
||||
.init = decode_init,
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
|
||||
.name = "huffyuv",
|
||||
.type = AVMEDIA_TYPE_VIDEO,
|
||||
.id = CODEC_ID_HUFFYUV,
|
||||
.priv_data_size = sizeof(HYuvContext),
|
||||
.init = decode_init,
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND |
|
||||
CODEC_CAP_FRAME_THREADS,
|
||||
.init_thread_copy = ONLY_IF_THREADS_ENABLED(decode_init_thread_copy),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Huffyuv / HuffYUV"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Huffyuv / HuffYUV"),
|
||||
};
|
||||
#endif
|
||||
|
||||
#if CONFIG_FFVHUFF_DECODER
|
||||
AVCodec ff_ffvhuff_decoder = {
|
||||
.name = "ffvhuff",
|
||||
.type = AVMEDIA_TYPE_VIDEO,
|
||||
.id = CODEC_ID_FFVHUFF,
|
||||
.priv_data_size = sizeof(HYuvContext),
|
||||
.init = decode_init,
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
|
||||
.name = "ffvhuff",
|
||||
.type = AVMEDIA_TYPE_VIDEO,
|
||||
.id = CODEC_ID_FFVHUFF,
|
||||
.priv_data_size = sizeof(HYuvContext),
|
||||
.init = decode_init,
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND |
|
||||
CODEC_CAP_FRAME_THREADS,
|
||||
.init_thread_copy = ONLY_IF_THREADS_ENABLED(decode_init_thread_copy),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Huffyuv FFmpeg variant"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Huffyuv FFmpeg variant"),
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -1548,8 +1550,10 @@ AVCodec ff_huffyuv_encoder = {
|
||||
.init = encode_init,
|
||||
.encode2 = encode_frame,
|
||||
.close = encode_end,
|
||||
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV422P, PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Huffyuv / HuffYUV"),
|
||||
.pix_fmts = (const enum PixelFormat[]){
|
||||
PIX_FMT_YUV422P, PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_NONE
|
||||
},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Huffyuv / HuffYUV"),
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -1562,7 +1566,9 @@ AVCodec ff_ffvhuff_encoder = {
|
||||
.init = encode_init,
|
||||
.encode2 = encode_frame,
|
||||
.close = encode_end,
|
||||
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Huffyuv FFmpeg variant"),
|
||||
.pix_fmts = (const enum PixelFormat[]){
|
||||
PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_NONE
|
||||
},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Huffyuv FFmpeg variant"),
|
||||
};
|
||||
#endif
|
||||
|
@ -263,5 +263,5 @@ AVCodec ff_idcin_decoder = {
|
||||
.close = idcin_decode_end,
|
||||
.decode = idcin_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("id Quake II CIN video"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("id Quake II CIN video"),
|
||||
};
|
||||
|
@ -683,7 +683,7 @@ AVCodec ff_iff_ilbm_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame_ilbm,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("IFF ILBM"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("IFF ILBM"),
|
||||
};
|
||||
|
||||
AVCodec ff_iff_byterun1_decoder = {
|
||||
@ -695,5 +695,5 @@ AVCodec ff_iff_byterun1_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame_byterun1,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("IFF ByteRun1"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("IFF ByteRun1"),
|
||||
};
|
||||
|
@ -846,13 +846,13 @@ static av_cold int imc_decode_close(AVCodecContext * avctx)
|
||||
|
||||
|
||||
AVCodec ff_imc_decoder = {
|
||||
.name = "imc",
|
||||
.type = AVMEDIA_TYPE_AUDIO,
|
||||
.id = CODEC_ID_IMC,
|
||||
.name = "imc",
|
||||
.type = AVMEDIA_TYPE_AUDIO,
|
||||
.id = CODEC_ID_IMC,
|
||||
.priv_data_size = sizeof(IMCContext),
|
||||
.init = imc_decode_init,
|
||||
.close = imc_decode_close,
|
||||
.decode = imc_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("IMC (Intel Music Coder)"),
|
||||
.init = imc_decode_init,
|
||||
.close = imc_decode_close,
|
||||
.decode = imc_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("IMC (Intel Music Coder)"),
|
||||
};
|
||||
|
@ -237,5 +237,5 @@ AVCodec ff_indeo2_decoder = {
|
||||
.close = ir2_decode_end,
|
||||
.decode = ir2_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Intel Indeo 2"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Intel Indeo 2"),
|
||||
};
|
||||
|
@ -133,6 +133,6 @@ AVCodec ff_h263i_decoder = {
|
||||
.close = ff_h263_decode_end,
|
||||
.decode = ff_h263_decode_frame,
|
||||
.capabilities = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Intel H.263"),
|
||||
.pix_fmts= ff_pixfmt_list_420,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Intel H.263"),
|
||||
.pix_fmts = ff_pixfmt_list_420,
|
||||
};
|
||||
|
@ -1026,5 +1026,5 @@ AVCodec ff_interplay_video_decoder = {
|
||||
.close = ipvideo_decode_end,
|
||||
.decode = ipvideo_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1 | CODEC_CAP_PARAM_CHANGE,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Interplay MVE video"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Interplay MVE video"),
|
||||
};
|
||||
|
@ -376,5 +376,5 @@ AVCodec ff_jpegls_decoder = {
|
||||
.close = ff_mjpeg_decode_end,
|
||||
.decode = ff_mjpeg_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("JPEG-LS"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("JPEG-LS"),
|
||||
};
|
||||
|
@ -399,6 +399,9 @@ AVCodec ff_jpegls_encoder = { //FIXME avoid MPV_* lossless JPEG should not need
|
||||
.priv_data_size = sizeof(JpeglsContext),
|
||||
.init = encode_init_ls,
|
||||
.encode2 = encode_picture_ls,
|
||||
.pix_fmts = (const enum PixelFormat[]){PIX_FMT_BGR24, PIX_FMT_RGB24, PIX_FMT_GRAY8, PIX_FMT_GRAY16, PIX_FMT_NONE},
|
||||
.pix_fmts = (const enum PixelFormat[]){
|
||||
PIX_FMT_BGR24, PIX_FMT_RGB24, PIX_FMT_GRAY8, PIX_FMT_GRAY16,
|
||||
PIX_FMT_NONE
|
||||
},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("JPEG-LS"),
|
||||
};
|
||||
|
@ -189,5 +189,5 @@ AVCodec ff_kgv1_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.flush = decode_flush,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Kega Game Video"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Kega Game Video"),
|
||||
};
|
||||
|
@ -446,5 +446,5 @@ AVCodec ff_kmvc_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Karl Morton's video codec"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Karl Morton's video codec"),
|
||||
};
|
||||
|
@ -632,5 +632,5 @@ AVCodec ff_lagarith_decoder = {
|
||||
.close = lag_decode_end,
|
||||
.decode = lag_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Lagarith lossless"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Lagarith lossless"),
|
||||
};
|
||||
|
@ -651,7 +651,7 @@ AVCodec ff_mszh_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("LCL (LossLess Codec Library) MSZH"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("LCL (LossLess Codec Library) MSZH"),
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -665,6 +665,6 @@ AVCodec ff_zlib_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("LCL (LossLess Codec Library) ZLIB"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("LCL (LossLess Codec Library) ZLIB"),
|
||||
};
|
||||
#endif
|
||||
|
@ -188,6 +188,6 @@ AVCodec ff_zlib_encoder = {
|
||||
.init = encode_init,
|
||||
.encode2 = encode_frame,
|
||||
.close = encode_end,
|
||||
.pix_fmts = (const enum PixelFormat[]) { PIX_FMT_BGR24, PIX_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("LCL (LossLess Codec Library) ZLIB"),
|
||||
.pix_fmts = (const enum PixelFormat[]) { PIX_FMT_BGR24, PIX_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("LCL (LossLess Codec Library) ZLIB"),
|
||||
};
|
||||
|
@ -203,6 +203,6 @@ AVCodec ff_libdirac_decoder = {
|
||||
.close = libdirac_decode_close,
|
||||
.decode = libdirac_decode_frame,
|
||||
.capabilities = CODEC_CAP_DELAY,
|
||||
.flush = libdirac_flush,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libdirac Dirac 2.2"),
|
||||
.flush = libdirac_flush,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libdirac Dirac 2.2"),
|
||||
};
|
||||
|
@ -229,8 +229,9 @@ AVCodec ff_libfaac_encoder = {
|
||||
.init = Faac_encode_init,
|
||||
.encode2 = Faac_encode_frame,
|
||||
.close = Faac_encode_close,
|
||||
.capabilities = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libfaac AAC (Advanced Audio Codec)"),
|
||||
.profiles = NULL_IF_CONFIG_SMALL(profiles),
|
||||
.capabilities = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libfaac AAC (Advanced Audio Codec)"),
|
||||
.profiles = NULL_IF_CONFIG_SMALL(profiles),
|
||||
};
|
||||
|
@ -124,8 +124,9 @@ AVCodec ff_libgsm_encoder = {
|
||||
.init = libgsm_encode_init,
|
||||
.encode2 = libgsm_encode_frame,
|
||||
.close = libgsm_encode_close,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libgsm GSM"),
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libgsm GSM"),
|
||||
};
|
||||
|
||||
AVCodec ff_libgsm_ms_encoder = {
|
||||
@ -135,8 +136,9 @@ AVCodec ff_libgsm_ms_encoder = {
|
||||
.init = libgsm_encode_init,
|
||||
.encode2 = libgsm_encode_frame,
|
||||
.close = libgsm_encode_close,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libgsm GSM Microsoft variant"),
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libgsm GSM Microsoft variant"),
|
||||
};
|
||||
|
||||
typedef struct LibGSMDecodeContext {
|
||||
@ -245,7 +247,7 @@ AVCodec ff_libgsm_decoder = {
|
||||
.decode = libgsm_decode_frame,
|
||||
.flush = libgsm_flush,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libgsm GSM"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libgsm GSM"),
|
||||
};
|
||||
|
||||
AVCodec ff_libgsm_ms_decoder = {
|
||||
@ -258,5 +260,5 @@ AVCodec ff_libgsm_ms_decoder = {
|
||||
.decode = libgsm_decode_frame,
|
||||
.flush = libgsm_flush,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libgsm GSM Microsoft variant"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libgsm GSM Microsoft variant"),
|
||||
};
|
||||
|
@ -180,7 +180,7 @@ AVCodec ff_libopencore_amrnb_decoder = {
|
||||
.close = amr_nb_decode_close,
|
||||
.decode = amr_nb_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("OpenCORE Adaptive Multi-Rate (AMR) Narrow-Band"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("OpenCORE Adaptive Multi-Rate (AMR) Narrow-Band"),
|
||||
};
|
||||
|
||||
static av_cold int amr_nb_encode_init(AVCodecContext *avctx)
|
||||
@ -295,9 +295,10 @@ AVCodec ff_libopencore_amrnb_encoder = {
|
||||
.encode2 = amr_nb_encode_frame,
|
||||
.close = amr_nb_encode_close,
|
||||
.capabilities = CODEC_CAP_DELAY | CODEC_CAP_SMALL_LAST_FRAME,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("OpenCORE Adaptive Multi-Rate (AMR) Narrow-Band"),
|
||||
.priv_class = &class,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("OpenCORE Adaptive Multi-Rate (AMR) Narrow-Band"),
|
||||
.priv_class = &class,
|
||||
};
|
||||
|
||||
#endif
|
||||
@ -383,7 +384,7 @@ AVCodec ff_libopencore_amrwb_decoder = {
|
||||
.close = amr_wb_decode_close,
|
||||
.decode = amr_wb_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("OpenCORE Adaptive Multi-Rate (AMR) Wide-Band"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("OpenCORE Adaptive Multi-Rate (AMR) Wide-Band"),
|
||||
};
|
||||
|
||||
#endif /* CONFIG_LIBOPENCORE_AMRWB */
|
||||
|
@ -360,15 +360,15 @@ static av_cold int libopenjpeg_decode_close(AVCodecContext *avctx)
|
||||
|
||||
|
||||
AVCodec ff_libopenjpeg_decoder = {
|
||||
.name = "libopenjpeg",
|
||||
.type = AVMEDIA_TYPE_VIDEO,
|
||||
.id = CODEC_ID_JPEG2000,
|
||||
.priv_data_size = sizeof(LibOpenJPEGContext),
|
||||
.init = libopenjpeg_decode_init,
|
||||
.close = libopenjpeg_decode_close,
|
||||
.decode = libopenjpeg_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS,
|
||||
.max_lowres = 5,
|
||||
.name = "libopenjpeg",
|
||||
.type = AVMEDIA_TYPE_VIDEO,
|
||||
.id = CODEC_ID_JPEG2000,
|
||||
.priv_data_size = sizeof(LibOpenJPEGContext),
|
||||
.init = libopenjpeg_decode_init,
|
||||
.close = libopenjpeg_decode_close,
|
||||
.decode = libopenjpeg_decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS,
|
||||
.max_lowres = 5,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("OpenJPEG JPEG 2000"),
|
||||
.init_thread_copy = ONLY_IF_THREADS_ENABLED(libopenjpeg_decode_init_thread_copy)
|
||||
.init_thread_copy = ONLY_IF_THREADS_ENABLED(libopenjpeg_decode_init_thread_copy),
|
||||
};
|
||||
|
@ -353,6 +353,6 @@ AVCodec ff_libschroedinger_decoder = {
|
||||
.close = libschroedinger_decode_close,
|
||||
.decode = libschroedinger_decode_frame,
|
||||
.capabilities = CODEC_CAP_DELAY,
|
||||
.flush = libschroedinger_flush,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libschroedinger Dirac 2.2"),
|
||||
.flush = libschroedinger_flush,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libschroedinger Dirac 2.2"),
|
||||
};
|
||||
|
@ -446,7 +446,9 @@ AVCodec ff_libschroedinger_encoder = {
|
||||
.init = libschroedinger_encode_init,
|
||||
.encode2 = libschroedinger_encode_frame,
|
||||
.close = libschroedinger_encode_close,
|
||||
.capabilities = CODEC_CAP_DELAY,
|
||||
.pix_fmts = (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_YUV444P, PIX_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libschroedinger Dirac 2.2"),
|
||||
.capabilities = CODEC_CAP_DELAY,
|
||||
.pix_fmts = (const enum PixelFormat[]){
|
||||
PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_YUV444P, PIX_FMT_NONE
|
||||
},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libschroedinger Dirac 2.2"),
|
||||
};
|
||||
|
@ -168,5 +168,5 @@ AVCodec ff_libspeex_decoder = {
|
||||
.decode = libspeex_decode_frame,
|
||||
.flush = libspeex_decode_flush,
|
||||
.capabilities = CODEC_CAP_SUBFRAMES | CODEC_CAP_DELAY | CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libspeex Speex"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libspeex Speex"),
|
||||
};
|
||||
|
@ -330,7 +330,8 @@ AVCodec ff_libspeex_encoder = {
|
||||
.encode2 = encode_frame,
|
||||
.close = encode_close,
|
||||
.capabilities = CODEC_CAP_DELAY,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE },
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libspeex Speex"),
|
||||
.priv_class = &class,
|
||||
.defaults = defaults,
|
||||
|
@ -359,14 +359,16 @@ static av_cold int encode_close(AVCodecContext* avc_context)
|
||||
|
||||
/** AVCodec struct exposed to libavcodec */
|
||||
AVCodec ff_libtheora_encoder = {
|
||||
.name = "libtheora",
|
||||
.type = AVMEDIA_TYPE_VIDEO,
|
||||
.id = CODEC_ID_THEORA,
|
||||
.name = "libtheora",
|
||||
.type = AVMEDIA_TYPE_VIDEO,
|
||||
.id = CODEC_ID_THEORA,
|
||||
.priv_data_size = sizeof(TheoraContext),
|
||||
.init = encode_init,
|
||||
.close = encode_close,
|
||||
.encode2 = encode_frame,
|
||||
.capabilities = CODEC_CAP_DELAY, // needed to get the statsfile summary
|
||||
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_YUV444P, PIX_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libtheora Theora"),
|
||||
.init = encode_init,
|
||||
.close = encode_close,
|
||||
.encode2 = encode_frame,
|
||||
.capabilities = CODEC_CAP_DELAY, // needed to get the statsfile summary
|
||||
.pix_fmts = (const enum PixelFormat[]){
|
||||
PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_YUV444P, PIX_FMT_NONE
|
||||
},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libtheora Theora"),
|
||||
};
|
||||
|
@ -195,6 +195,7 @@ AVCodec ff_libvo_aacenc_encoder = {
|
||||
.close = aac_encode_close,
|
||||
.supported_samplerates = avpriv_mpeg4audio_sample_rates,
|
||||
.capabilities = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Android VisualOn AAC"),
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Android VisualOn AAC"),
|
||||
};
|
||||
|
@ -146,8 +146,9 @@ AVCodec ff_libvo_amrwbenc_encoder = {
|
||||
.init = amr_wb_encode_init,
|
||||
.encode2 = amr_wb_encode_frame,
|
||||
.close = amr_wb_encode_close,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Android VisualOn Adaptive Multi-Rate "
|
||||
"(AMR) Wide-Band"),
|
||||
.priv_class = &class,
|
||||
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
|
||||
AV_SAMPLE_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("Android VisualOn Adaptive "
|
||||
"Multi-Rate (AMR) Wide-Band"),
|
||||
.priv_class = &class,
|
||||
};
|
||||
|
@ -600,8 +600,8 @@ AVCodec ff_libvpx_encoder = {
|
||||
.encode2 = vp8_encode,
|
||||
.close = vp8_free,
|
||||
.capabilities = CODEC_CAP_DELAY | CODEC_CAP_AUTO_THREADS,
|
||||
.pix_fmts = (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libvpx VP8"),
|
||||
.priv_class = &class,
|
||||
.pix_fmts = (const enum PixelFormat[]){ PIX_FMT_YUV420P, PIX_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libvpx VP8"),
|
||||
.priv_class = &class,
|
||||
.defaults = defaults,
|
||||
};
|
||||
|
@ -638,17 +638,17 @@ static const AVCodecDefault x264_defaults[] = {
|
||||
};
|
||||
|
||||
AVCodec ff_libx264_encoder = {
|
||||
.name = "libx264",
|
||||
.type = AVMEDIA_TYPE_VIDEO,
|
||||
.id = CODEC_ID_H264,
|
||||
.priv_data_size = sizeof(X264Context),
|
||||
.init = X264_init,
|
||||
.encode2 = X264_frame,
|
||||
.close = X264_close,
|
||||
.capabilities = CODEC_CAP_DELAY | CODEC_CAP_AUTO_THREADS,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),
|
||||
.priv_class = &class,
|
||||
.defaults = x264_defaults,
|
||||
.name = "libx264",
|
||||
.type = AVMEDIA_TYPE_VIDEO,
|
||||
.id = CODEC_ID_H264,
|
||||
.priv_data_size = sizeof(X264Context),
|
||||
.init = X264_init,
|
||||
.encode2 = X264_frame,
|
||||
.close = X264_close,
|
||||
.capabilities = CODEC_CAP_DELAY | CODEC_CAP_AUTO_THREADS,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),
|
||||
.priv_class = &class,
|
||||
.defaults = x264_defaults,
|
||||
.init_static_data = X264_init_static,
|
||||
};
|
||||
|
||||
|
@ -788,8 +788,8 @@ AVCodec ff_libxvid_encoder = {
|
||||
.init = xvid_encode_init,
|
||||
.encode2 = xvid_encode_frame,
|
||||
.close = xvid_encode_close,
|
||||
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
|
||||
.long_name= NULL_IF_CONFIG_SMALL("libxvidcore MPEG-4 part 2"),
|
||||
.pix_fmts = (const enum PixelFormat[]){ PIX_FMT_YUV420P, PIX_FMT_NONE },
|
||||
.long_name = NULL_IF_CONFIG_SMALL("libxvidcore MPEG-4 part 2"),
|
||||
};
|
||||
|
||||
#endif /* CONFIG_LIBXVID_ENCODER */
|
||||
|
@ -299,5 +299,5 @@ AVCodec ff_loco_decoder = {
|
||||
.close = decode_end,
|
||||
.decode = decode_frame,
|
||||
.capabilities = CODEC_CAP_DR1,
|
||||
.long_name = NULL_IF_CONFIG_SMALL("LOCO"),
|
||||
.long_name = NULL_IF_CONFIG_SMALL("LOCO"),
|
||||
};
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user