diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-06-24 21:34:54 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-06-24 21:34:54 +0200 |
commit | 244682dd086233b71e885d2fb1ec0dd3396b94bc (patch) | |
tree | 6a314fbc579bad35bb666ee469d28e2b2872e57c | |
parent | 5c44c2de8045ea0b9787a95053f542b1b3b860d2 (diff) | |
parent | 145a8096d53c20da7898539e521e6d4267ab2f09 (diff) | |
download | ffmpeg-244682dd086233b71e885d2fb1ec0dd3396b94bc.tar.gz |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
log: Only include unistd.h if configure found it
ape: create audio stream before reading tags.
mov: make a length variable larger.
image2: Add "start_number" private option to the demuxer
image2: Add "start_number" private option to the muxer
avconv: remove a forgotten debugging printf.
avconv: use more descriptive names for hardcoded filters.
avconv: remove redundant handling of async.
doc/filters: fix typo.
h264: use asm cabac reader under a generic condition
Conflicts:
ffmpeg.c
libavformat/img2dec.c
libavformat/img2enc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | doc/filters.texi | 2 | ||||
-rw-r--r-- | ffmpeg.c | 58 | ||||
-rw-r--r-- | libavcodec/h264_cabac.c | 6 | ||||
-rw-r--r-- | libavcodec/x86/h264_i386.h | 2 | ||||
-rw-r--r-- | libavformat/ape.c | 12 | ||||
-rw-r--r-- | libavformat/img2dec.c | 5 | ||||
-rw-r--r-- | libavformat/img2enc.c | 3 | ||||
-rw-r--r-- | libavformat/mov.c | 4 | ||||
-rw-r--r-- | libavutil/log.c | 2 |
9 files changed, 52 insertions, 42 deletions
diff --git a/doc/filters.texi b/doc/filters.texi index 0a5bea6299..5fef9d19cd 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -698,7 +698,7 @@ Desired output channel layout. Defaults to stereo. Map channels from inputs to output. The argument is a comma-separated list of mappings, each in the @code{@var{input_idx}.@var{in_channel}-@var{out_channel}} form. @var{input_idx} is the 0-based index of the input stream. @var{in_channel} -can be either the name of the input channel (e.g. FR for front left) or its +can be either the name of the input channel (e.g. FL for front left) or its index in the specified input stream. @var{out_channel} is the name of the output channel. @end table @@ -783,17 +783,13 @@ static int configure_output_video_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterContext *last_filter = out->filter_ctx; int pad_idx = out->pad_idx; int ret; + char name[255]; AVBufferSinkParams *buffersink_params = av_buffersink_params_alloc(); -#if FF_API_OLD_VSINK_API + snprintf(name, sizeof(name), "output stream %d:%d", ost->file_index, ost->index); ret = avfilter_graph_create_filter(&ofilter->filter, avfilter_get_by_name("buffersink"), - "ffmpeg_buffersink", NULL, NULL, fg->graph); -#else - ret = avfilter_graph_create_filter(&ofilter->filter, - avfilter_get_by_name("buffersink"), - "ffmpeg_buffersink", NULL, NULL/*buffersink_params*/, fg->graph); -#endif + name, NULL, NULL/*buffersink_params*/, fg->graph); av_freep(&buffersink_params); if (ret < 0) @@ -807,8 +803,10 @@ static int configure_output_video_filter(FilterGraph *fg, OutputFilter *ofilter, codec->width, codec->height, (unsigned)ost->sws_flags); + snprintf(name, sizeof(name), "scaler for output stream %d:%d", + ost->file_index, ost->index); if ((ret = avfilter_graph_create_filter(&filter, avfilter_get_by_name("scale"), - NULL, args, NULL, fg->graph)) < 0) + name, args, NULL, fg->graph)) < 0) return ret; if ((ret = avfilter_link(last_filter, pad_idx, filter, 0)) < 0) return ret; @@ -819,6 +817,8 @@ static int configure_output_video_filter(FilterGraph *fg, OutputFilter *ofilter, if ((pix_fmts = choose_pix_fmts(ost))) { AVFilterContext *filter; + snprintf(name, sizeof(name), "pixel format for output stream %d:%d", + ost->file_index, ost->index); if ((ret = avfilter_graph_create_filter(&filter, avfilter_get_by_name("format"), "format", pix_fmts, NULL, @@ -838,8 +838,10 @@ static int configure_output_video_filter(FilterGraph *fg, OutputFilter *ofilter, snprintf(args, sizeof(args), "fps=%d/%d", ost->frame_rate.num, ost->frame_rate.den); + snprintf(name, sizeof(name), "fps for output stream %d:%d", + ost->file_index, ost->index); ret = avfilter_graph_create_filter(&fps, avfilter_get_by_name("fps"), - "fps", args, NULL, fg->graph); + name, args, NULL, fg->graph); if (ret < 0) return ret; @@ -863,11 +865,14 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterContext *last_filter = out->filter_ctx; int pad_idx = out->pad_idx; char *sample_fmts, *sample_rates, *channel_layouts; + char name[255]; int ret; + + snprintf(name, sizeof(name), "output stream %d:%d", ost->file_index, ost->index); ret = avfilter_graph_create_filter(&ofilter->filter, avfilter_get_by_name("abuffersink_old"), - "ffmpeg_abuffersink_old", NULL, NULL, fg->graph); + name, NULL, NULL, fg->graph); if (ret < 0) return ret; @@ -930,9 +935,11 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter, av_freep(&sample_rates); av_freep(&channel_layouts); + snprintf(name, sizeof(name), "audio format for output stream %d:%d", + ost->file_index, ost->index); ret = avfilter_graph_create_filter(&format, avfilter_get_by_name("aformat"), - "aformat", args, NULL, fg->graph); + name, args, NULL, fg->graph); if (ret < 0) return ret; @@ -944,15 +951,6 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter, pad_idx = 0; } - if (audio_sync_method > 0 && 0) { - char args[256] = {0}; - - av_strlcatf(args, sizeof(args), "min_comp=0.001:min_hard_comp=%f", audio_drift_threshold); - if (audio_sync_method > 1) - av_strlcatf(args, sizeof(args), ":max_soft_comp=%d", -audio_sync_method); - AUTO_INSERT_FILTER("-async", "aresample", args); - } - if (audio_volume != 256 && 0) { char args[256]; @@ -1008,6 +1006,7 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter, ist->st->r_frame_rate; AVRational sar; AVBPrint args; + char name[255]; int pad_idx = in->pad_idx; int ret; @@ -1025,17 +1024,21 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter, SWS_BILINEAR + ((ist->st->codec->flags&CODEC_FLAG_BITEXACT) ? SWS_BITEXACT:0)); if (fr.num && fr.den) av_bprintf(&args, ":frame_rate=%d/%d", fr.num, fr.den); + snprintf(name, sizeof(name), "graph %d input from stream %d:%d", fg->index, + ist->file_index, ist->st->index); - if ((ret = avfilter_graph_create_filter(&ifilter->filter, filter, in->name, + if ((ret = avfilter_graph_create_filter(&ifilter->filter, filter, name, args.str, NULL, fg->graph)) < 0) return ret; if (ist->framerate.num) { AVFilterContext *setpts; + snprintf(name, sizeof(name), "force CFR for input from stream %d:%d", + ist->file_index, ist->st->index); if ((ret = avfilter_graph_create_filter(&setpts, avfilter_get_by_name("setpts"), - "setpts", "N", NULL, + name, "N", NULL, fg->graph)) < 0) return ret; @@ -1058,7 +1061,7 @@ static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter, AVFilter *filter = avfilter_get_by_name("abuffer"); InputStream *ist = ifilter->ist; int pad_idx = in->pad_idx; - char args[255]; + char args[255], name[255]; int ret; snprintf(args, sizeof(args), "time_base=%d/%d:sample_rate=%d:sample_fmt=%s" @@ -1067,9 +1070,11 @@ static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter, ist->st->codec->sample_rate, av_get_sample_fmt_name(ist->st->codec->sample_fmt), ist->st->codec->channel_layout); + snprintf(name, sizeof(name), "graph %d input from stream %d:%d", fg->index, + ist->file_index, ist->st->index); if ((ret = avfilter_graph_create_filter(&ifilter->filter, filter, - in->name, args, NULL, + name, args, NULL, fg->graph)) < 0) return ret; @@ -1079,9 +1084,11 @@ static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter, av_log(NULL, AV_LOG_INFO, opt_name " is forwarded to lavfi " \ "similarly to -af " filter_name "=%s.\n", arg); \ \ + snprintf(name, sizeof(name), "graph %d %s for input stream %d:%d", \ + fg->index, filter_name, ist->file_index, ist->st->index); \ ret = avfilter_graph_create_filter(&filt_ctx, \ avfilter_get_by_name(filter_name), \ - filter_name, arg, NULL, fg->graph); \ + name, arg, NULL, fg->graph); \ if (ret < 0) \ return ret; \ \ @@ -5260,7 +5267,6 @@ loop_end: } else if (ret < 0) exit_program(1); } - printf("ret %d, stream_spec %s\n", ret, stream_spec); } else { switch (type) { diff --git a/libavcodec/h264_cabac.c b/libavcodec/h264_cabac.c index d85ebf5aa3..a409e951f9 100644 --- a/libavcodec/h264_cabac.c +++ b/libavcodec/h264_cabac.c @@ -1652,14 +1652,14 @@ decode_cabac_residual_internal(H264Context *h, DCTELEM *block, index[coeff_count++] = last;\ } const uint8_t *sig_off = significant_coeff_flag_offset_8x8[MB_FIELD]; -#if ARCH_X86 && HAVE_7REGS - coeff_count= decode_significance_8x8_x86(CC, significant_coeff_ctx_base, index, +#ifdef decode_significance + coeff_count = decode_significance_8x8(CC, significant_coeff_ctx_base, index, last_coeff_ctx_base, sig_off); } else { if (is_dc && chroma422) { // dc 422 DECODE_SIGNIFICANCE(7, sig_coeff_offset_dc[last], sig_coeff_offset_dc[last]); } else { - coeff_count= decode_significance_x86(CC, max_coeff, significant_coeff_ctx_base, index, + coeff_count = decode_significance(CC, max_coeff, significant_coeff_ctx_base, index, last_coeff_ctx_base-significant_coeff_ctx_base); } #else diff --git a/libavcodec/x86/h264_i386.h b/libavcodec/x86/h264_i386.h index 2a502b7c0b..da85f3c088 100644 --- a/libavcodec/x86/h264_i386.h +++ b/libavcodec/x86/h264_i386.h @@ -37,6 +37,7 @@ //FIXME use some macros to avoid duplicating get_cabac (cannot be done yet //as that would make optimization work hard) #if HAVE_7REGS +#define decode_significance decode_significance_x86 static int decode_significance_x86(CABACContext *c, int max_coeff, uint8_t *significant_coeff_ctx_base, int *index, x86_reg last_off){ @@ -105,6 +106,7 @@ static int decode_significance_x86(CABACContext *c, int max_coeff, return coeff_count; } +#define decode_significance_8x8 decode_significance_8x8_x86 static int decode_significance_8x8_x86(CABACContext *c, uint8_t *significant_coeff_ctx_base, int *index, uint8_t *last_coeff_ctx_base, const uint8_t *sig_off){ diff --git a/libavformat/ape.c b/libavformat/ape.c index fff85c4edb..62c94780ec 100644 --- a/libavformat/ape.c +++ b/libavformat/ape.c @@ -315,12 +315,6 @@ static int ape_read_header(AVFormatContext * s) ape_dumpinfo(s, ape); - /* try to read APE tags */ - if (pb->seekable) { - ff_ape_parse_tag(s); - avio_seek(pb, 0, SEEK_SET); - } - av_log(s, AV_LOG_DEBUG, "Decoding file - v%d.%02d, compression level %"PRIu16"\n", ape->fileversion / 1000, (ape->fileversion % 1000) / 10, ape->compressiontype); @@ -357,6 +351,12 @@ static int ape_read_header(AVFormatContext * s) pts += ape->blocksperframe / MAC_SUBFRAME_SIZE; } + /* try to read APE tags */ + if (pb->seekable) { + ff_ape_parse_tag(s); + avio_seek(pb, 0, SEEK_SET); + } + return 0; } diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c index f962ccfb7e..2844ae00c6 100644 --- a/libavformat/img2dec.c +++ b/libavformat/img2dec.c @@ -116,7 +116,7 @@ static int find_image_range(int *pfirst_index, int *plast_index, int range, last_index, range1, first_index; /* find the first image */ - for(first_index = max_start; first_index < max_start + 5; first_index++) { + for (first_index = max_start; first_index < max_start + 5; first_index++) { if (av_get_frame_filename(buf, sizeof(buf), path, first_index) < 0){ *pfirst_index = *plast_index = 1; @@ -252,7 +252,8 @@ static int read_header(AVFormatContext *s1) last_index = s->globstate.gl_pathc - 1; #endif } else { - if (find_image_range(&first_index, &last_index, s->path, s->start_number - 1) < 0) + if (find_image_range(&first_index, &last_index, s->path, + s->start_number - 1) < 0) return AVERROR(ENOENT); } s->img_first = first_index; diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c index 5dc7e1230f..58b4655139 100644 --- a/libavformat/img2enc.c +++ b/libavformat/img2enc.c @@ -27,6 +27,7 @@ #include "avformat.h" #include "avio_internal.h" #include "internal.h" +#include "libavutil/opt.h" typedef struct { const AVClass *class; /**< Class for private options. */ @@ -140,7 +141,6 @@ static const AVOption muxoptions[] = { { NULL }, }; - #if CONFIG_IMAGE2_MUXER static const AVClass img2mux_class = { .class_name = "image2 muxer", @@ -148,6 +148,7 @@ static const AVClass img2mux_class = { .option = muxoptions, .version = LIBAVUTIL_VERSION_INT, }; + AVOutputFormat ff_image2_muxer = { .name = "image2", .long_name = NULL_IF_CONFIG_SMALL("image2 sequence"), diff --git a/libavformat/mov.c b/libavformat/mov.c index d686be6c52..af5b126261 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -175,8 +175,8 @@ static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom) #endif char str[1024], key2[16], language[4] = {0}; const char *key = NULL; - uint16_t str_size, langcode = 0; - uint32_t data_type = 0; + uint16_t langcode = 0; + uint32_t data_type = 0, str_size; int (*parse)(MOVContext*, AVIOContext*, unsigned, const char*) = NULL; switch (atom.type) { diff --git a/libavutil/log.c b/libavutil/log.c index 4464bd3031..155276c769 100644 --- a/libavutil/log.c +++ b/libavutil/log.c @@ -26,7 +26,7 @@ #include "config.h" -#if HAVE_ISATTY +#if HAVE_UNISTD_H #include <unistd.h> #endif #include <stdlib.h> |