[FFmpeg-cvslog] Merge commit '44b44441203177690305c294be6eff8d9c668954'
ffmpeg | branch: master | Hendrik Leppkes | Tue Aug 18 09:01:35 2015 +0200| [9c22aedd265ef38dc240d107171eb846fdef744a] | committer: Hendrik Leppkes Merge commit '44b1203177690305c294be6eff8d9c668954' * commit '44b1203177690305c294be6eff8d9c668954': x86inc: Various minor backports from x264 Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9c22aedd265ef38dc240d107171eb846fdef744a --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] movenc: Add a new flag for writing global sidx indexes for dash
ffmpeg | branch: master | Martin Storsjö | Sun Aug 9 23:11:55 2015 +0300| [26ac22e5e7394346e9d59f800e7d4e91f4518d33] | committer: Martin Storsjö movenc: Add a new flag for writing global sidx indexes for dash The double meaning of the faststart flag (moving a moov atom to the start of files, making them streamable, for non-fragmented files, vs inserting a global sidx index at the start of files for fragmented files) is confusing - see 40ed1cbf1 for explanation of its origins. Since the second meaning of the flag hasn't been part of any libav release yet, just rename it to get rid of the confusion without any extra deprecation (which wouldn't get rid of the potential confusion, of users adding -movflags faststart even for fragmented files, where it isn't needed for making them "streamable"). This gets back the old behaviour, where -movflags faststart doesn't have any effect for fragmented files. Signed-off-by: Martin Storsjö > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=26ac22e5e7394346e9d59f800e7d4e91f4518d33 --- libavformat/movenc.c | 15 --- libavformat/movenc.h |1 + 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index bb2504f..ee2f089 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -62,6 +62,7 @@ static const AVOption options[] = { { "dash", "Write DASH compatible fragmented MP4", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_DASH}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" }, { "frag_discont", "Signal that the next fragment is discontinuous from earlier ones", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_FRAG_DISCONT}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" }, { "delay_moov", "Delay writing the initial moov until the first fragment is cut, or until the first fragment flush", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_DELAY_MOOV}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" }, +{ "global_sidx", "Write a global sidx index at the start of the file", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_GLOBAL_SIDX}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" }, FF_RTP_FLAG_OPTS(MOVMuxContext, rtp_flags), { "skip_iods", "Skip writing iods atom.", offsetof(MOVMuxContext, iods_skip), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM}, { "iods_audio_profile", "iods audio profile atom.", offsetof(MOVMuxContext, iods_audio_profile), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 255, AV_OPT_FLAG_ENCODING_PARAM}, @@ -2836,7 +2837,7 @@ static int mov_write_moof_tag(AVIOContext *pb, MOVMuxContext *mov, int tracks, mov_write_moof_tag_internal(avio_buf, mov, tracks, 0); moof_size = ffio_close_null_buf(avio_buf); -if (mov->flags & FF_MOV_FLAG_DASH && !(mov->flags & FF_MOV_FLAG_FASTSTART)) +if (mov->flags & FF_MOV_FLAG_DASH && !(mov->flags & FF_MOV_FLAG_GLOBAL_SIDX)) mov_write_sidx_tags(pb, mov, tracks, moof_size + 8 + mdat_size); if ((ret = mov_add_tfra_entries(pb, mov, tracks, moof_size + 8 + mdat_size)) < 0) @@ -2976,7 +2977,7 @@ static int mov_write_ftyp_tag(AVIOContext *pb, AVFormatContext *s) else if (mov->mode == MODE_MP4) ffio_wfourcc(pb, "mp41"); -if (mov->flags & FF_MOV_FLAG_DASH && mov->flags & FF_MOV_FLAG_FASTSTART) +if (mov->flags & FF_MOV_FLAG_DASH && mov->flags & FF_MOV_FLAG_GLOBAL_SIDX) ffio_wfourcc(pb, "dash"); return update_size(pb, pos); @@ -3228,7 +3229,7 @@ static int mov_flush_fragment(AVFormatContext *s) mov_write_moov_tag(s->pb, mov, s); if (mov->flags & FF_MOV_FLAG_DELAY_MOOV) { -if (mov->flags & FF_MOV_FLAG_FASTSTART) +if (mov->flags & FF_MOV_FLAG_GLOBAL_SIDX) mov->reserved_header_pos = avio_tell(s->pb); avio_flush(s->pb); mov->moov_written = 1; @@ -3242,7 +3243,7 @@ static int mov_flush_fragment(AVFormatContext *s) avio_write(s->pb, buf, buf_size); av_free(buf); -if (mov->flags & FF_MOV_FLAG_FASTSTART) +if (mov->flags & FF_MOV_FLAG_GLOBAL_SIDX) mov->reserved_header_pos = avio_tell(s->pb); mov->moov_written = 1; @@ -3481,7 +3482,7 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt) * in sidx/tfrf/tfxd tags; make sure the sidx pts and duration match up with * the next fragment. This means the cts of the first sample must * be the same in all fragments. */ -if ((mov->flags & FF_MOV_FLAG_DASH && !(mov->flags & FF_MOV_FLAG_FASTSTART)) || +if ((mov->flags & FF_MOV_FLAG_DASH && !(mov->flags & FF_MOV_FLAG_GLOBAL_SIDX)) || mov->mode == MODE_ISM) pkt->pts = pkt->dts + trk->end_pts - trk->cluster[trk->entry].dts; } else { @@ -4048,7 +4049,7 @@ static int mov_write_header(AVFormatContext *s) !(mov->flags & FF_MOV_FLAG_DELAY_MOOV)) { mov_wr
[FFmpeg-cvslog] x86inc: Various minor backports from x264
ffmpeg | branch: master | Henrik Gramner | Tue Aug 11 20:56:24 2015 +0200| [44b1203177690305c294be6eff8d9c668954] | committer: Anton Khirnov x86inc: Various minor backports from x264 Signed-off-by: Anton Khirnov > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=44b1203177690305c294be6eff8d9c668954 --- libavutil/x86/x86inc.asm | 32 +--- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm index a519fd5..6ad9785 100644 --- a/libavutil/x86/x86inc.asm +++ b/libavutil/x86/x86inc.asm @@ -1,7 +1,7 @@ ;* ;* x86inc.asm: x264asm abstraction layer ;* -;* Copyright (C) 2005-2013 x264 project +;* Copyright (C) 2005-2015 x264 project ;* ;* Authors: Loren Merritt ;* Anton Mitrofanov @@ -67,6 +67,15 @@ %endif %endif +%define FORMAT_ELF 0 +%ifidn __OUTPUT_FORMAT__,elf +%define FORMAT_ELF 1 +%elifidn __OUTPUT_FORMAT__,elf32 +%define FORMAT_ELF 1 +%elifidn __OUTPUT_FORMAT__,elf64 +%define FORMAT_ELF 1 +%endif + %ifdef PREFIX %define mangle(x) _ %+ x %else @@ -688,7 +697,7 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, CAT_XDEFINE cglobaled_, %2, 1 %endif %xdefine current_function %2 -%ifidn __OUTPUT_FORMAT__,elf +%if FORMAT_ELF global %2:function %%VISIBILITY %else global %2 @@ -714,14 +723,16 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, ; like cextern, but without the prefix %macro cextern_naked 1 -%xdefine %1 mangle(%1) +%ifdef PREFIX +%xdefine %1 mangle(%1) +%endif CAT_XDEFINE cglobaled_, %1, 1 extern %1 %endmacro %macro const 1-2+ %xdefine %1 mangle(private_prefix %+ _ %+ %1) -%ifidn __OUTPUT_FORMAT__,elf +%if FORMAT_ELF global %1:data hidden %else global %1 @@ -729,10 +740,9 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, %1: %2 %endmacro -; This is needed for ELF, otherwise the GNU linker assumes the stack is -; executable by default. -%ifidn __OUTPUT_FORMAT__,elf -[section .note.GNU-stack noalloc noexec nowrite progbits] +; This is needed for ELF, otherwise the GNU linker assumes the stack is executable by default. +%if FORMAT_ELF +[SECTION .note.GNU-stack noalloc noexec nowrite progbits] %endif ; cpuflags @@ -751,8 +761,8 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, %assign cpuflags_avx (1<<11)| cpuflags_sse42 %assign cpuflags_xop (1<<12)| cpuflags_avx %assign cpuflags_fma4 (1<<13)| cpuflags_avx -%assign cpuflags_avx2 (1<<14)| cpuflags_avx -%assign cpuflags_fma3 (1<<15)| cpuflags_avx +%assign cpuflags_fma3 (1<<14)| cpuflags_avx +%assign cpuflags_avx2 (1<<15)| cpuflags_fma3 %assign cpuflags_cache32 (1<<16) %assign cpuflags_cache64 (1<<17) @@ -801,7 +811,7 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, %endif %endif -%if cpuflag(sse2) +%if ARCH_X86_64 || cpuflag(sse2) CPUNOP amdnop %else CPUNOP basicnop ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '26ac22e5e7394346e9d59f800e7d4e91f4518d33'
ffmpeg | branch: master | Hendrik Leppkes | Tue Aug 18 08:50:22 2015 +0200| [1907e19d0ce2ad752912d73b798ebf4494aa1b1c] | committer: Hendrik Leppkes Merge commit '26ac22e5e7394346e9d59f800e7d4e91f4518d33' * commit '26ac22e5e7394346e9d59f800e7d4e91f4518d33': movenc: Add a new flag for writing global sidx indexes for dash Conflicts: libavformat/movenc.c libavformat/movenc.h Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1907e19d0ce2ad752912d73b798ebf4494aa1b1c --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] configure: arm: Assume softfp ABI on darwin
ffmpeg | branch: master | Martin Storsjö | Fri Aug 14 09:47:21 2015 +0300| [cb2dbe2c762dae44d890aa26620bcdd9022fd0f3] | committer: Martin Storsjö configure: arm: Assume softfp ABI on darwin Don't try to detect the float ABI by checking at the toolchain name or by trying to assemble and link files with eabi_attributes. This fixes the float ABI detection when building using clang with -fembed-bitcode, where the current eabi_attributes check accidentally passes. This issue was pointed out by James Howe . CC: libav-sta...@libav.org Signed-off-by: Martin Storsjö > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cb2dbe2c762dae44d890aa26620bcdd9022fd0f3 --- configure |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 2c3e77a..1334480 100755 --- a/configure +++ b/configure @@ -4015,7 +4015,7 @@ elif enabled arm; then enable vfp_args elif check_cpp_condition stddef.h "defined _M_ARM_FP && _M_ARM_FP >= 30"; then enable vfp_args -elif ! check_cpp_condition stddef.h "defined __ARM_PCS || defined __SOFTFP__"; then +elif ! check_cpp_condition stddef.h "defined __ARM_PCS || defined __SOFTFP__" && [ $target_os != darwin ]; then case "${cross_prefix:-$cc}" in *hardfloat*) enable vfp_args; fpabi=vfp ;; *) check_ld
[FFmpeg-cvslog] Merge commit 'cb2dbe2c762dae44d890aa26620bcdd9022fd0f3'
ffmpeg | branch: master | Hendrik Leppkes | Tue Aug 18 09:02:01 2015 +0200| [fdca9350139bae44623b90a7db4d8116c3487372] | committer: Hendrik Leppkes Merge commit 'cb2dbe2c762dae44d890aa26620bcdd9022fd0f3' * commit 'cb2dbe2c762dae44d890aa26620bcdd9022fd0f3': configure: arm: Assume softfp ABI on darwin Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fdca9350139bae44623b90a7db4d8116c3487372 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] libfdk-aacdec: Bump the max number of channels to 8
ffmpeg | branch: master | Martin Storsjö | Fri Aug 14 10:55:54 2015 +0300| [87de6ddb7b7674e329d5c96677bd8685bc7f7855] | committer: Martin Storsjö libfdk-aacdec: Bump the max number of channels to 8 In the latest version of fdk-aac, the decoder can output up to 8 channels; take this into account when preallocating buffers that need to fit the output from any packet. CC: libav-sta...@libav.org Signed-off-by: Martin Storsjö > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=87de6ddb7b7674e329d5c96677bd8685bc7f7855 --- libavcodec/libfdk-aacdec.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/libfdk-aacdec.c b/libavcodec/libfdk-aacdec.c index e893ee3..30dd59f 100644 --- a/libavcodec/libfdk-aacdec.c +++ b/libavcodec/libfdk-aacdec.c @@ -54,7 +54,7 @@ typedef struct FDKAACDecContext { #define DMX_ANC_BUFFSIZE 128 -#define DECODER_MAX_CHANNELS 6 +#define DECODER_MAX_CHANNELS 8 #define DECODER_BUFFSIZE 2048 * sizeof(INT_PCM) #define OFFSET(x) offsetof(FDKAACDecContext, x) ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '87de6ddb7b7674e329d5c96677bd8685bc7f7855'
ffmpeg | branch: master | Hendrik Leppkes | Tue Aug 18 09:02:15 2015 +0200| [9dc30d08114068ccfe65e89c3c46deee3e6a2289] | committer: Hendrik Leppkes Merge commit '87de6ddb7b7674e329d5c96677bd8685bc7f7855' * commit '87de6ddb7b7674e329d5c96677bd8685bc7f7855': libfdk-aacdec: Bump the max number of channels to 8 Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9dc30d08114068ccfe65e89c3c46deee3e6a2289 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] libfdk-aacdec: Clean up properly if the init fails
ffmpeg | branch: master | Martin Storsjö | Fri Aug 14 11:33:03 2015 +0300| [f34b152eb7b7e8d2aee57c710a072cf74173fbe1] | committer: Martin Storsjö libfdk-aacdec: Clean up properly if the init fails Previously most of the error paths leaked. Also add FF_CODEC_CAP_INIT_THREADSAFE while adding caps_internal; this decoder wrapper doesn't have any static data that is initialized. Signed-off-by: Martin Storsjö > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f34b152eb7b7e8d2aee57c710a072cf74173fbe1 --- libavcodec/libfdk-aacdec.c | 17 ++--- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/libavcodec/libfdk-aacdec.c b/libavcodec/libfdk-aacdec.c index 9f896ef..5ac8fb7 100644 --- a/libavcodec/libfdk-aacdec.c +++ b/libavcodec/libfdk-aacdec.c @@ -256,13 +256,11 @@ static av_cold int fdk_aac_decode_init(AVCodecContext *avctx) s->anc_buffer = av_malloc(DMX_ANC_BUFFSIZE); if (!s->anc_buffer) { av_log(avctx, AV_LOG_ERROR, "Unable to allocate ancillary buffer for the decoder\n"); - ret = AVERROR(ENOMEM); - goto fail; + return AVERROR(ENOMEM); } if (aacDecoder_AncDataInit(s->handle, s->anc_buffer, DMX_ANC_BUFFSIZE)) { av_log(avctx, AV_LOG_ERROR, "Unable to register downmix ancillary buffer in the decoder\n"); - ret = AVERROR_UNKNOWN; - goto fail; + return AVERROR_UNKNOWN; } } } @@ -307,15 +305,10 @@ static av_cold int fdk_aac_decode_init(AVCodecContext *avctx) s->decoder_buffer_size = DECODER_BUFFSIZE * DECODER_MAX_CHANNELS; s->decoder_buffer = av_malloc(s->decoder_buffer_size); -if (!s->decoder_buffer) { -ret = AVERROR(ENOMEM); -goto fail; -} +if (!s->decoder_buffer) +return AVERROR(ENOMEM); return 0; -fail: -fdk_aac_decode_close(avctx); -return ret; } static int fdk_aac_decode_frame(AVCodecContext *avctx, void *data, @@ -389,4 +382,6 @@ AVCodec ff_libfdk_aac_decoder = { .flush = fdk_aac_decode_flush, .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .priv_class = &fdk_aac_dec_class, +.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | + FF_CODEC_CAP_INIT_CLEANUP, }; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] libfdk-aacdec: Always decode into an intermediate buffer
ffmpeg | branch: master | Martin Storsjö | Fri Aug 14 11:05:30 2015 +0300| [1b90433f79de857550d4d8c35c89fbe954920594] | committer: Martin Storsjö libfdk-aacdec: Always decode into an intermediate buffer For ADTS streams, the output format (number of channels, frame size) can change at any point (with the latest version of fdk-aac, the decoder seems to change format after a handful of frames, not outputting the right format immediately, for cases that worked fine with the earlier version of the lib). Previously, the decoder decoded straight into the output frame once the number of channels and frame size was known. This obviously does not work if the number of channels or frame size changes. The alternative would be to allocate the AVFrame with the maximum number of channels and frame size, and change them afterward decoding into it, but that may cause confusion to users e.g. of the get_buffer callback. This solution should be more robust. CC: libav-sta...@libav.org Signed-off-by: Martin Storsjö > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1b90433f79de857550d4d8c35c89fbe954920594 --- libavcodec/libfdk-aacdec.c | 68 1 file changed, 18 insertions(+), 50 deletions(-) diff --git a/libavcodec/libfdk-aacdec.c b/libavcodec/libfdk-aacdec.c index 30dd59f..9f896ef 100644 --- a/libavcodec/libfdk-aacdec.c +++ b/libavcodec/libfdk-aacdec.c @@ -41,8 +41,8 @@ enum ConcealMethod { typedef struct FDKAACDecContext { const AVClass *class; HANDLE_AACDECODER handle; -int initialized; uint8_t *decoder_buffer; +int decoder_buffer_size; uint8_t *anc_buffer; enum ConcealMethod conceal_method; int drc_level; @@ -305,6 +305,13 @@ static av_cold int fdk_aac_decode_init(AVCodecContext *avctx) avctx->sample_fmt = AV_SAMPLE_FMT_S16; +s->decoder_buffer_size = DECODER_BUFFSIZE * DECODER_MAX_CHANNELS; +s->decoder_buffer = av_malloc(s->decoder_buffer_size); +if (!s->decoder_buffer) { +ret = AVERROR(ENOMEM); +goto fail; +} + return 0; fail: fdk_aac_decode_close(avctx); @@ -319,8 +326,6 @@ static int fdk_aac_decode_frame(AVCodecContext *avctx, void *data, int ret; AAC_DECODER_ERROR err; UINT valid = avpkt->size; -uint8_t *buf, *tmpptr = NULL; -int buf_size; err = aacDecoder_Fill(s->handle, &avpkt->data, &avpkt->size, &valid); if (err != AAC_DEC_OK) { @@ -328,33 +333,7 @@ static int fdk_aac_decode_frame(AVCodecContext *avctx, void *data, return AVERROR_INVALIDDATA; } -if (s->initialized) { -frame->nb_samples = avctx->frame_size; -if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) { -av_log(avctx, AV_LOG_ERROR, "ff_get_buffer() failed\n"); -return ret; -} - -if (s->anc_buffer) { -buf_size = DECODER_BUFFSIZE * DECODER_MAX_CHANNELS; -buf = s->decoder_buffer; -} else { -buf = frame->extended_data[0]; -buf_size = avctx->channels * frame->nb_samples * - av_get_bytes_per_sample(avctx->sample_fmt); -} -} else { -buf_size = DECODER_BUFFSIZE * DECODER_MAX_CHANNELS; - -if (!s->decoder_buffer) -s->decoder_buffer = av_malloc(buf_size); -if (!s->decoder_buffer) -return AVERROR(ENOMEM); - -buf = tmpptr = s->decoder_buffer; -} - -err = aacDecoder_DecodeFrame(s->handle, (INT_PCM *) buf, buf_size, 0); +err = aacDecoder_DecodeFrame(s->handle, (INT_PCM *) s->decoder_buffer, s->decoder_buffer_size, 0); if (err == AAC_DEC_NOT_ENOUGH_BITS) { ret = avpkt->size - valid; goto end; @@ -366,28 +345,17 @@ static int fdk_aac_decode_frame(AVCodecContext *avctx, void *data, goto end; } -if (!s->initialized) { -if ((ret = get_stream_info(avctx)) < 0) -goto end; -s->initialized = 1; -frame->nb_samples = avctx->frame_size; -} - -if (tmpptr) { -frame->nb_samples = avctx->frame_size; -if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) { -av_log(avctx, AV_LOG_ERROR, "ff_get_buffer() failed\n"); -goto end; -} -} -if (s->decoder_buffer) { -memcpy(frame->extended_data[0], buf, - avctx->channels * avctx->frame_size * - av_get_bytes_per_sample(avctx->sample_fmt)); +if ((ret = get_stream_info(avctx)) < 0) +goto end; +frame->nb_samples = avctx->frame_size; -if (!s->anc_buffer) -av_freep(&s->decoder_buffer); +if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) { +av_log(avctx, AV_LOG_ERROR, "ff_get_buffer() failed\n"); +goto end; } +memcpy(frame->extended_data[0], s->decoder_buffer, + avctx->channels * avctx->frame_size * + av_get_bytes_per_sample(avctx->sample_fmt)); *got_frame_ptr = 1; ret = a
[FFmpeg-cvslog] Merge commit 'f34b152eb7b7e8d2aee57c710a072cf74173fbe1'
ffmpeg | branch: master | Hendrik Leppkes | Tue Aug 18 09:09:55 2015 +0200| [e721cb8d8b5c64c4d9786928f6c629cb93611d74] | committer: Hendrik Leppkes Merge commit 'f34b152eb7b7e8d2aee57c710a072cf74173fbe1' * commit 'f34b152eb7b7e8d2aee57c710a072cf74173fbe1': libfdk-aacdec: Clean up properly if the init fails Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e721cb8d8b5c64c4d9786928f6c629cb93611d74 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '1b90433f79de857550d4d8c35c89fbe954920594'
ffmpeg | branch: master | Hendrik Leppkes | Tue Aug 18 09:05:54 2015 +0200| [4cf4831ae7e2b6ccbea9c2d65605a3722aeac9c2] | committer: Hendrik Leppkes Merge commit '1b90433f79de857550d4d8c35c89fbe954920594' * commit '1b90433f79de857550d4d8c35c89fbe954920594': libfdk-aacdec: Always decode into an intermediate buffer Conflicts: libavcodec/libfdk-aacdec.c Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4cf4831ae7e2b6ccbea9c2d65605a3722aeac9c2 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] vp7: bound checking in vp7_decode_frame_header
ffmpeg | branch: master | Federico Tomassetti | Thu Aug 13 15:35:53 2015 +0200| [7bf9647264308d2df74b2b50669f2d02a7ecc90b] | committer: Luca Barbato vp7: bound checking in vp7_decode_frame_header CC: libav-sta...@libav.org > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7bf9647264308d2df74b2b50669f2d02a7ecc90b --- libavcodec/vp8.c |8 1 file changed, 8 insertions(+) diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c index f11076a..55ebae6 100644 --- a/libavcodec/vp8.c +++ b/libavcodec/vp8.c @@ -480,6 +480,10 @@ static int vp7_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_si int width = s->avctx->width; int height = s->avctx->height; +if (buf_size < 4) { +return AVERROR_INVALIDDATA; +} + s->profile = (buf[0] >> 1) & 7; if (s->profile > 1) { avpriv_request_sample(s->avctx, "Unknown profile %d", s->profile); @@ -493,6 +497,10 @@ static int vp7_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_si buf += 4 - s->profile; buf_size -= 4 - s->profile; +if (buf_size < part1_size) { +return AVERROR_INVALIDDATA; +} + memcpy(s->put_pixels_tab, s->vp8dsp.put_vp8_epel_pixels_tab, sizeof(s->put_pixels_tab)); ff_vp56_init_range_decoder(c, buf, part1_size); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '7bf9647264308d2df74b2b50669f2d02a7ecc90b'
ffmpeg | branch: master | Hendrik Leppkes | Tue Aug 18 09:14:08 2015 +0200| [983fa5a1a922b5436befd26cc1b301a35c5765d8] | committer: Hendrik Leppkes Merge commit '7bf9647264308d2df74b2b50669f2d02a7ecc90b' * commit '7bf9647264308d2df74b2b50669f2d02a7ecc90b': vp7: bound checking in vp7_decode_frame_header Only partially merged, see 46f72ea507afee6adb0d2324848159063d0e7afc Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=983fa5a1a922b5436befd26cc1b301a35c5765d8 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] hlsenc: Use AV_TIME_BASE units for all the computations
ffmpeg | branch: master | Luca Barbato | Fri Aug 14 22:01:45 2015 +0200| [72839fce6457fdb5d51b4a5381ac52914ee66389] | committer: Luca Barbato hlsenc: Use AV_TIME_BASE units for all the computations Do not risk mixing different timebases. CC: libav-sta...@libav.org Signed-off-by: Luca Barbato > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=72839fce6457fdb5d51b4a5381ac52914ee66389 --- libavformat/hlsenc.c | 28 +++- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index 21c9526..c9116fa 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -33,7 +33,7 @@ typedef struct ListEntry { char name[1024]; -int duration; +int64_t duration; // segment duration in AV_TIME_BASE units struct ListEntry *next; } ListEntry; @@ -50,9 +50,10 @@ typedef struct HLSContext { int allowcache; int64_t recording_time; int has_video; +// The following timestamps are in AV_TIME_BASE units. int64_t start_pts; int64_t end_pts; -int64_t duration; // last segment duration computed so far, in seconds +int64_t duration; // last segment duration computed so far. int nb_entries; ListEntry *list; ListEntry *end_list; @@ -85,7 +86,7 @@ static int hls_mux_init(AVFormatContext *s) return 0; } -static int append_entry(HLSContext *hls, uint64_t duration) +static int append_entry(HLSContext *hls, int64_t duration) { ListEntry *en = av_malloc(sizeof(*en)); @@ -131,7 +132,7 @@ static int hls_window(AVFormatContext *s, int last) { HLSContext *hls = s->priv_data; ListEntry *en; -int target_duration = 0; +int64_t target_duration = 0; int ret = 0; AVIOContext *out = NULL; char temp_filename[1024]; @@ -152,14 +153,16 @@ static int hls_window(AVFormatContext *s, int last) if (hls->allowcache == 0 || hls->allowcache == 1) { avio_printf(out, "#EXT-X-ALLOW-CACHE:%s\n", hls->allowcache == 0 ? "NO" : "YES"); } -avio_printf(out, "#EXT-X-TARGETDURATION:%d\n", target_duration); +avio_printf(out, "#EXT-X-TARGETDURATION:%"PRId64"\n", +av_rescale(target_duration, 1, AV_TIME_BASE)); avio_printf(out, "#EXT-X-MEDIA-SEQUENCE:%"PRId64"\n", sequence); av_log(s, AV_LOG_VERBOSE, "EXT-X-MEDIA-SEQUENCE:%"PRId64"\n", sequence); for (en = hls->list; en; en = en->next) { -avio_printf(out, "#EXTINF:%d,\n", en->duration); +avio_printf(out, "#EXTINF:%"PRId64",\n", +av_rescale(en->duration, 1, AV_TIME_BASE)); if (hls->baseurl) avio_printf(out, "%s", hls->baseurl); avio_printf(out, "%s\n", en->name); @@ -265,11 +268,12 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt) AVFormatContext *oc = hls->avf; AVStream *st = s->streams[pkt->stream_index]; int64_t end_pts = hls->recording_time * hls->number; +int64_t pts = av_rescale_q(pkt->pts, st->time_base, AV_TIME_BASE_Q); int ret, can_split = 1; if (hls->start_pts == AV_NOPTS_VALUE) { -hls->start_pts = pkt->pts; -hls->end_pts = pkt->pts; +hls->start_pts = pts; +hls->end_pts = pts; } if (hls->has_video) { @@ -279,16 +283,14 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt) if (pkt->pts == AV_NOPTS_VALUE) can_split = 0; else -hls->duration = av_rescale(pkt->pts - hls->end_pts, - st->time_base.num, st->time_base.den); +hls->duration = pts - hls->end_pts; -if (can_split && av_compare_ts(pkt->pts - hls->start_pts, st->time_base, - end_pts, AV_TIME_BASE_Q) >= 0) { +if (can_split && pts - hls->start_pts >= end_pts) { ret = append_entry(hls, hls->duration); if (ret) return ret; -hls->end_pts = pkt->pts; +hls->end_pts = pts; hls->duration = 0; av_write_frame(oc, NULL); /* Flush any buffered data */ ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '72839fce6457fdb5d51b4a5381ac52914ee66389'
ffmpeg | branch: master | Hendrik Leppkes | Tue Aug 18 09:22:41 2015 +0200| [316825f3e9d5f27ed31650928daba3f18bf06600] | committer: Hendrik Leppkes Merge commit '72839fce6457fdb5d51b4a5381ac52914ee66389' * commit '72839fce6457fdb5d51b4a5381ac52914ee66389': hlsenc: Use AV_TIME_BASE units for all the computations Not merged, duration/time computation is handled quite differently in ffmpeg's hlsenc Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=316825f3e9d5f27ed31650928daba3f18bf06600 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '58c3720a3cc71142b5d48d8ccdc9213f9a66cd33'
ffmpeg | branch: master | Hendrik Leppkes | Tue Aug 18 09:34:53 2015 +0200| [4b6b03ba23ddf5478235fb7bae2d1fe3e952] | committer: Hendrik Leppkes Merge commit '58c3720a3cc71142b5d48d8ccdc9213f9a66cd33' * commit '58c3720a3cc71142b5d48d8ccdc9213f9a66cd33': fate: Make sure a corner-case for ASF is covered Adjusted fate ref to match the different timebase of the ffasf demuxer Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4b6b03ba23ddf5478235fb7bae2d1fe3e952 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] fate: Make sure a corner-case for ASF is covered
ffmpeg | branch: master | Alexandra Hájková | Fri Aug 14 11:42:26 2015 +0200| [58c3720a3cc71142b5d48d8ccdc9213f9a66cd33] | committer: Luca Barbato fate: Make sure a corner-case for ASF is covered Test the demuxer for the case when the replicated data length in a sample is 0. Sample-ID: https://samples.libav.org/mplayer-bugs/bug821/bug821-2.asf Signed-off-by: Luca Barbato > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=58c3720a3cc71142b5d48d8ccdc9213f9a66cd33 --- tests/fate/microsoft.mak|5 + tests/ref/fate/asf-repldata | 15 +++ 2 files changed, 20 insertions(+) diff --git a/tests/fate/microsoft.mak b/tests/fate/microsoft.mak index 10bbb30..6f83d2e 100644 --- a/tests/fate/microsoft.mak +++ b/tests/fate/microsoft.mak @@ -61,3 +61,8 @@ fate-vc1-ism: CMD = framecrc -i $(TARGET_SAMPLES)/isom/vc1-wmapro.ism -an FATE_SAMPLES_AVCONV-$(CONFIG_VC1_DECODER) += $(FATE_VC1-yes) fate-vc1: $(FATE_VC1-yes) + +FATE_ASF_REPLDATA += fate-asf-repldata +fate-asf-repldata: CMD = framecrc -i $(TARGET_SAMPLES)/asf/bug821-2.asf + +FATE_SAMPLES_AVCONV-$(call DEMDEC, ASF, MPEG4) += $(FATE_ASF_REPLDATA) diff --git a/tests/ref/fate/asf-repldata b/tests/ref/fate/asf-repldata new file mode 100644 index 000..6a1dbae --- /dev/null +++ b/tests/ref/fate/asf-repldata @@ -0,0 +1,15 @@ +#tb 0: 1/1000 +0, 0, 0,0, 460800, 0x85b053af +0,122,122,0, 460800, 0xfbdbb291 +0,245,245,0, 460800, 0x1389b3d9 +0,367,367,0, 460800, 0xc81e8326 +0,490,490,0, 460800, 0xb0028333 +0,612,612,0, 460800, 0x002b8619 +0,735,735,0, 460800, 0xeb808d70 +0,857,857,0, 460800, 0xe8288d27 +0,980,980,0, 460800, 0xcfbe8bcc +0, 1102, 1102,0, 460800, 0x682b8d38 +0, 1224, 1224,0, 460800, 0x5879cd04 +0, 1347, 1347,0, 460800, 0x88a6a3e6 +0, 1469, 1469,0, 460800, 0xc491db72 +0, 1592, 1592,0, 460800, 0xb779d5cc ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '317cfaa5e09755ed0b34af512ec687963a67bdbf'
ffmpeg | branch: master | Hendrik Leppkes | Tue Aug 18 09:35:56 2015 +0200| [649b2e4c8308c478d6c9fb892191121f12e3c0d3] | committer: Hendrik Leppkes Merge commit '317cfaa5e09755ed0b34af512ec687963a67bdbf' * commit '317cfaa5e09755ed0b34af512ec687963a67bdbf': asfdec: prevent the memory leak in the asf_read_metada_obj Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=649b2e4c8308c478d6c9fb892191121f12e3c0d3 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] asfdec: prevent the memory leak in the asf_read_metada_obj
ffmpeg | branch: master | Alexandra Hájková | Thu Aug 13 10:16:20 2015 +0200| [317cfaa5e09755ed0b34af512ec687963a67bdbf] | committer: Luca Barbato asfdec: prevent the memory leak in the asf_read_metada_obj also do not return the error code but just break reading metadata object in the case of the aspect ratio reading failure Signed-off-by: Luca Barbato > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=317cfaa5e09755ed0b34af512ec687963a67bdbf --- libavformat/asfdec.c |6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c index 93e8c3c..4b04227 100644 --- a/libavformat/asfdec.c +++ b/libavformat/asfdec.c @@ -590,8 +590,10 @@ static int asf_read_metadata_obj(AVFormatContext *s, const GUIDParseTable *g) buflen); if (!strcmp(name, "AspectRatioX") || !strcmp(name, "AspectRatioY")) { ret = asf_store_aspect_ratio(s, st_num, name, type); -if (ret < 0) -return ret; +if (ret < 0) { +av_freep(&name); +break; +} } else { if (st_num < ASF_MAX_STREAMS) { if ((ret = process_metadata(s, name, name_len, val_len, type, ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] configure: Use pkg-config for libkvazaar.
ffmpeg | branch: master | Arttu Ylä-Outinen | Tue Aug 18 09:04:41 2015 +0300| [b807f7e286642ea5303ad30ba7003beb1e65a862] | committer: Michael Niedermayer configure: Use pkg-config for libkvazaar. Signed-off-by: Arttu Ylä-Outinen Liked-by: wm4 Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b807f7e286642ea5303ad30ba7003beb1e65a862 --- configure |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index a6c57d0..49d4ff3 100755 --- a/configure +++ b/configure @@ -5226,7 +5226,7 @@ enabled libgsm&& { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do check_lib "${gsm_hdr}" gsm_create -lgsm && break; done || die "ERROR: libgsm not found"; } enabled libilbc && require libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc -enabled libkvazaar&& require2 libkvazaar kvazaar.h kvz_api_get -lkvazaar +enabled libkvazaar&& require_pkg_config kvazaar kvazaar.h kvz_api_get enabled libmfx&& require_pkg_config libmfx "mfx/mfxvideo.h" MFXInit enabled libmodplug&& require_pkg_config libmodplug libmodplug/modplug.h ModPlug_Load enabled libmp3lame&& require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Move ff_dlog from lavc to lavu.
ffmpeg | branch: master | Ronald S. Bultje | Mon Aug 17 20:27:25 2015 -0400| [70a19c482a62bbbcda5a1115cfcd6a708f598fbc] | committer: Ronald S. Bultje Move ff_dlog from lavc to lavu. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=70a19c482a62bbbcda5a1115cfcd6a708f598fbc --- libavcodec/internal.h |6 -- libavutil/internal.h |6 ++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libavcodec/internal.h b/libavcodec/internal.h index 0daf669..f93a196 100644 --- a/libavcodec/internal.h +++ b/libavcodec/internal.h @@ -48,12 +48,6 @@ #define FF_CODEC_CAP_INIT_CLEANUP (1 << 1) -#ifdef DEBUG -# define ff_dlog(ctx, ...) av_log(ctx, AV_LOG_DEBUG, __VA_ARGS__) -#else -# define ff_dlog(ctx, ...) do { if (0) av_log(ctx, AV_LOG_DEBUG, __VA_ARGS__); } while (0) -#endif - #ifdef TRACE # define ff_tlog(ctx, ...) av_log(ctx, AV_LOG_TRACE, __VA_ARGS__) #else diff --git a/libavutil/internal.h b/libavutil/internal.h index a46b2b1..047f742 100644 --- a/libavutil/internal.h +++ b/libavutil/internal.h @@ -250,6 +250,12 @@ void avpriv_request_sample(void *avc, #define SIZE_SPECIFIER "zu" #endif +#ifdef DEBUG +# define ff_dlog(ctx, ...) av_log(ctx, AV_LOG_DEBUG, __VA_ARGS__) +#else +# define ff_dlog(ctx, ...) do { if (0) av_log(ctx, AV_LOG_DEBUG, __VA_ARGS__); } while (0) +#endif + /** * A wrapper for open() setting O_CLOEXEC. */ ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avfilter/vf_scale: Set scale2ref ref output timebase
ffmpeg | branch: master | Michael Niedermayer | Tue Aug 18 15:06:10 2015 +0200| [db0f8f3f9d9f7d440b1e4a0b416bf6c7b6390bd0] | committer: Michael Niedermayer avfilter/vf_scale: Set scale2ref ref output timebase Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=db0f8f3f9d9f7d440b1e4a0b416bf6c7b6390bd0 --- libavfilter/vf_scale.c |1 + 1 file changed, 1 insertion(+) diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c index 702adc4..07d5217 100644 --- a/libavfilter/vf_scale.c +++ b/libavfilter/vf_scale.c @@ -428,6 +428,7 @@ static int config_props_ref(AVFilterLink *outlink) outlink->w = inlink->w; outlink->h = inlink->h; outlink->sample_aspect_ratio = inlink->sample_aspect_ratio; +outlink->time_base = inlink->time_base; return 0; } ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] scale2ref: override request_frame() and correctly connect them to the corresponding inputs
ffmpeg | branch: master | Michael Niedermayer | Tue Aug 18 15:10:30 2015 +0200| [22f85543ed92f4c6453b110137834151dee0d7eb] | committer: Michael Niedermayer scale2ref: override request_frame() and correctly connect them to the corresponding inputs Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=22f85543ed92f4c6453b110137834151dee0d7eb --- libavfilter/vf_scale.c | 12 1 file changed, 12 insertions(+) diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c index 07d5217..9698bfb 100644 --- a/libavfilter/vf_scale.c +++ b/libavfilter/vf_scale.c @@ -433,6 +433,16 @@ static int config_props_ref(AVFilterLink *outlink) return 0; } +static int request_frame(AVFilterLink *outlink) +{ +return ff_request_frame(outlink->src->inputs[0]); +} + +static int request_frame_ref(AVFilterLink *outlink) +{ +return ff_request_frame(outlink->src->inputs[1]); +} + static int scale_slice(AVFilterLink *link, AVFrame *out_buf, AVFrame *cur_pic, struct SwsContext *sws, int y, int h, int mul, int field) { ScaleContext *scale = link->dst->priv; @@ -697,11 +707,13 @@ static const AVFilterPad avfilter_vf_scale2ref_outputs[] = { .name = "default", .type = AVMEDIA_TYPE_VIDEO, .config_props = config_props, +.request_frame= request_frame, }, { .name = "ref", .type = AVMEDIA_TYPE_VIDEO, .config_props = config_props_ref, +.request_frame= request_frame_ref, }, { NULL } }; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] lavfi: add error message to help users convert to new lavfi syntax.
ffmpeg | branch: master | Ronald S. Bultje | Mon Aug 17 20:04:57 2015 -0400| [ad7d972e08dddb1788ac6a434d1be314febcb09d] | committer: Ronald S. Bultje lavfi: add error message to help users convert to new lavfi syntax. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ad7d972e08dddb1788ac6a434d1be314febcb09d --- libavfilter/avfilter.c | 13 - libavfilter/version.h |3 +++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 700baa2..6475f29 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -895,7 +895,7 @@ int avfilter_init_str(AVFilterContext *filter, const char *args) return AVERROR(EINVAL); } -#if FF_API_OLD_FILTER_OPTS +#if FF_API_OLD_FILTER_OPTS || FF_API_OLD_FILTER_OPTS_ERROR if ( !strcmp(filter->filter->name, "format") || !strcmp(filter->filter->name, "noformat") || !strcmp(filter->filter->name, "frei0r") || @@ -955,12 +955,23 @@ int avfilter_init_str(AVFilterContext *filter, const char *args) while ((p = strchr(p, ':'))) *p++ = '|'; +#if FF_API_OLD_FILTER_OPTS if (deprecated) av_log(filter, AV_LOG_WARNING, "This syntax is deprecated. Use " "'|' to separate the list items.\n"); av_log(filter, AV_LOG_DEBUG, "compat: called with args=[%s]\n", copy); ret = process_options(filter, &options, copy); +#else +if (deprecated) { +av_log(filter, AV_LOG_ERROR, "This syntax is deprecated. Use " + "'|' to separate the list items ('%s' instead of '%s')\n", + copy, args); +ret = AVERROR(EINVAL); +} else { +ret = process_options(filter, &options, copy); +} +#endif av_freep(©); if (ret < 0) diff --git a/libavfilter/version.h b/libavfilter/version.h index 90a6dc0..6fc4145 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -61,6 +61,9 @@ #ifndef FF_API_OLD_FILTER_OPTS #define FF_API_OLD_FILTER_OPTS (LIBAVFILTER_VERSION_MAJOR < 6) #endif +#ifndef FF_API_OLD_FILTER_OPTS_ERROR +#define FF_API_OLD_FILTER_OPTS_ERROR(LIBAVFILTER_VERSION_MAJOR < 7) +#endif #ifndef FF_API_AVFILTER_OPEN #define FF_API_AVFILTER_OPEN(LIBAVFILTER_VERSION_MAJOR < 6) #endif ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Replace av_dlog with ff_dlog.
ffmpeg | branch: master | Ronald S. Bultje | Mon Aug 17 20:45:35 2015 -0400| [229843aa359ae0c9519977d7fa952688db63f559] | committer: Ronald S. Bultje Replace av_dlog with ff_dlog. ff_dlog checks compilability, and is non-public. av_dlog is deprecated and no longer exists if FF_API_DLOG=0. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=229843aa359ae0c9519977d7fa952688db63f559 --- ffmpeg.c |2 +- libavcodec/ccaption_dec.c| 13 +++-- libavcodec/libzvbi-teletextdec.c |7 --- libavcodec/proresdec2.c |9 + libavdevice/lavfi.c |7 --- libavdevice/v4l.c|3 ++- libavfilter/src_movie.c |3 ++- libavfilter/vf_histeq.c |5 +++-- libavfilter/vf_palettegen.c |5 +++-- libavfilter/vf_paletteuse.c |3 ++- libavfilter/vsrc_cellauto.c |3 ++- libavfilter/vsrc_life.c |3 ++- libavformat/avienc.c |5 +++-- libavformat/ffmdec.c |9 + libavformat/ftp.c| 23 --- libavformat/mov.c|3 ++- libavformat/mpegts.c |3 ++- libavformat/segment.c|3 ++- libavformat/swfdec.c |3 ++- 19 files changed, 65 insertions(+), 47 deletions(-) diff --git a/ffmpeg.c b/ffmpeg.c index 07ce4af..c8f8678 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -1151,7 +1151,7 @@ static void do_video_out(AVFormatContext *s, ost->forced_keyframes_expr_const_values[FKF_T] = pts_time; res = av_expr_eval(ost->forced_keyframes_pexpr, ost->forced_keyframes_expr_const_values, NULL); -av_dlog(NULL, "force_key_frame: n:%f n_forced:%f prev_forced_n:%f t:%f prev_forced_t:%f -> res:%f\n", +ff_dlog(NULL, "force_key_frame: n:%f n_forced:%f prev_forced_n:%f t:%f prev_forced_t:%f -> res:%f\n", ost->forced_keyframes_expr_const_values[FKF_N], ost->forced_keyframes_expr_const_values[FKF_N_FORCED], ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_N], diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c index 264d21c..9f67caa 100644 --- a/libavcodec/ccaption_dec.c +++ b/libavcodec/ccaption_dec.c @@ -21,6 +21,7 @@ #include "avcodec.h" #include "ass.h" +#include "libavutil/internal.h" #include "libavutil/opt.h" #define SCREEN_ROWS 15 @@ -451,9 +452,9 @@ static void handle_char(CCaptionSubContext *ctx, char hi, char lo, int64_t pts) ctx->prev_cmd[0] = 0; ctx->prev_cmd[1] = 0; if (lo) - av_dlog(ctx, "(%c,%c)\n",hi,lo); + ff_dlog(ctx, "(%c,%c)\n",hi,lo); else - av_dlog(ctx, "(%c)\n",hi); + ff_dlog(ctx, "(%c)\n",hi); } static int process_cc608(CCaptionSubContext *ctx, int64_t pts, uint8_t hi, uint8_t lo) @@ -493,21 +494,21 @@ static int process_cc608(CCaptionSubContext *ctx, int64_t pts, uint8_t hi, uint8 ret = handle_edm(ctx, pts); } else if ( COR3(hi, 0x14, 0x15, 0x1C) && lo == 0x2D ) { /* carriage return */ -av_dlog(ctx, "carriage return\n"); +ff_dlog(ctx, "carriage return\n"); reap_screen(ctx, pts); roll_up(ctx); ctx->screen_changed = 1; ctx->cursor_column = 0; } else if ( COR3(hi, 0x14, 0x15, 0x1C) && lo == 0x2F ) { /* end of caption */ -av_dlog(ctx, "handle_eoc\n"); +ff_dlog(ctx, "handle_eoc\n"); ret = handle_eoc(ctx, pts); } else if (hi>=0x20) { /* Standard characters (always in pairs) */ handle_char(ctx, hi, lo, pts); } else { /* Ignoring all other non data code */ -av_dlog(ctx, "Unknown command 0x%hhx 0x%hhx\n", hi, lo); +ff_dlog(ctx, "Unknown command 0x%hhx 0x%hhx\n", hi, lo); } /* set prev command */ @@ -553,7 +554,7 @@ static int decode(AVCodecContext *avctx, void *data, int *got_sub, AVPacket *avp { int start_time = av_rescale_q(ctx->start_time, avctx->time_base, (AVRational){ 1, 100 }); int end_time = av_rescale_q(ctx->end_time, avctx->time_base, (AVRational){ 1, 100 }); -av_dlog(ctx, "cdp writing data (%s)\n",ctx->buffer.str); +ff_dlog(ctx, "cdp writing data (%s)\n",ctx->buffer.str); ret = ff_ass_add_rect_bprint(sub, &ctx->buffer, start_time, end_time - start_time); if (ret < 0) return ret; diff --git a/libavcodec/libzvbi-teletextdec.c b/libavcodec/libzvbi-teletextdec.c index 32d983c..3733d88 100644 --- a/libavcodec/libzvbi-teletextdec.c +++ b/libavcodec/libzvbi-teletextdec.c @@ -22,6 +22,7 @@ #include "libavcodec/ass.h" #include "libavutil/opt.h" #include "libavutil/bprint.h" +#include "libavutil/internal.h" #include "libavutil/intreadwrite.h" #include "libavutil/log.h" @@ -274,7 +275,7 @@ static int gen_sub_bitmap(TeletextContext *ctx, AVSubtitl
[FFmpeg-cvslog] FF_OPT_TYPE_* -> AV_OPT_TYPE_*.
ffmpeg | branch: master | Ronald S. Bultje | Sun Aug 16 19:34:13 2015 -0400| [6471040f5650ad8c06e8fe285325b41db5bef75e] | committer: Ronald S. Bultje FF_OPT_TYPE_* -> AV_OPT_TYPE_*. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6471040f5650ad8c06e8fe285325b41db5bef75e --- libavcodec/dvbsubdec.c |6 +++--- libavcodec/frwu.c|2 +- libavcodec/h264.c|4 ++-- libavcodec/libvpxenc.c |6 +++--- libavcodec/mpeg4videodec.c |4 ++-- libavcodec/s302m.c | 10 +- libavcodec/v210dec.c |2 +- libavformat/hls.c|2 +- libavformat/mov.c|6 +++--- libavformat/tedcaptionsdec.c |2 +- 10 files changed, 22 insertions(+), 22 deletions(-) diff --git a/libavcodec/dvbsubdec.c b/libavcodec/dvbsubdec.c index ec7c146..ab6054e 100644 --- a/libavcodec/dvbsubdec.c +++ b/libavcodec/dvbsubdec.c @@ -1718,9 +1718,9 @@ end: #define DS AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_SUBTITLE_PARAM static const AVOption options[] = { -{"compute_edt", "compute end of time using pts or timeout", offsetof(DVBSubContext, compute_edt), FF_OPT_TYPE_INT, {.i64 = 0}, 0, 1, DS}, -{"compute_clut", "compute clut when not available(-1) or always(1) or never(0)", offsetof(DVBSubContext, compute_clut), FF_OPT_TYPE_INT, {.i64 = -1}, -1, 1, DS}, -{"dvb_substream", "", offsetof(DVBSubContext, substream), FF_OPT_TYPE_INT, {.i64 = -1}, -1, 63, DS}, +{"compute_edt", "compute end of time using pts or timeout", offsetof(DVBSubContext, compute_edt), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, DS}, +{"compute_clut", "compute clut when not available(-1) or always(1) or never(0)", offsetof(DVBSubContext, compute_clut), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 1, DS}, +{"dvb_substream", "", offsetof(DVBSubContext, substream), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 63, DS}, {NULL} }; static const AVClass dvbsubdec_class = { diff --git a/libavcodec/frwu.c b/libavcodec/frwu.c index db4c1ba..1aabefe 100644 --- a/libavcodec/frwu.c +++ b/libavcodec/frwu.c @@ -103,7 +103,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, } static const AVOption frwu_options[] = { -{"change_field_order", "Change field order", offsetof(FRWUContext, change_field_order), FF_OPT_TYPE_INT, +{"change_field_order", "Change field order", offsetof(FRWUContext, change_field_order), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_VIDEO_PARAM}, {NULL} }; diff --git a/libavcodec/h264.c b/libavcodec/h264.c index c4ab3fa..d55231c 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -1943,8 +1943,8 @@ static av_cold int h264_decode_end(AVCodecContext *avctx) #define OFFSET(x) offsetof(H264Context, x) #define VD AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM static const AVOption h264_options[] = { -{"is_avc", "is avc", offsetof(H264Context, is_avc), FF_OPT_TYPE_INT, {.i64 = 0}, 0, 1, 0}, -{"nal_length_size", "nal_length_size", offsetof(H264Context, nal_length_size), FF_OPT_TYPE_INT, {.i64 = 0}, 0, 4, 0}, +{"is_avc", "is avc", offsetof(H264Context, is_avc), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, 0}, +{"nal_length_size", "nal_length_size", offsetof(H264Context, nal_length_size), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 4, 0}, { "enable_er", "Enable error resilience on damaged frames (unsafe)", OFFSET(enable_er), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, VD }, { NULL }, }; diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 3db617d..58e8f5d 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -985,9 +985,9 @@ static int vp8_encode(AVCodecContext *avctx, AVPacket *pkt, #define LEGACY_OPTIONS \ {"speed", "", offsetof(VP8Context, cpu_used), AV_OPT_TYPE_INT, {.i64 = 1}, -16, 16, VE}, \ {"quality", "", offsetof(VP8Context, deadline), AV_OPT_TYPE_INT, {.i64 = VPX_DL_GOOD_QUALITY}, INT_MIN, INT_MAX, VE, "quality"}, \ -{"vp8flags", "", offsetof(VP8Context, flags), FF_OPT_TYPE_FLAGS, {.i64 = 0}, 0, UINT_MAX, VE, "flags"}, \ -{"error_resilient", "enable error resilience", 0, FF_OPT_TYPE_CONST, {.dbl = VP8F_ERROR_RESILIENT}, INT_MIN, INT_MAX, VE, "flags"}, \ -{"altref", "enable use of alternate reference frames (VP8/2-pass only)", 0, FF_OPT_TYPE_CONST, {.dbl = VP8F_AUTO_ALT_REF}, INT_MIN, INT_MAX, VE, "flags"}, \ +{"vp8flags", "", offsetof(VP8Context, flags), AV_OPT_TYPE_FLAGS, {.i64 = 0}, 0, UINT_MAX, VE, "flags"}, \ +{"error_resilient", "enable error resilience", 0, AV_OPT_TYPE_CONST, {.dbl = VP8F_ERROR_RESILIENT}, INT_MIN, INT_MAX, VE, "flags"}, \ +{"altref", "enable use of alternate reference frames (VP8/2-pass only)", 0, AV_OPT_TYPE_CONST, {.dbl = VP8F_AUTO_ALT_REF}, INT_MIN, INT_MAX, VE, "flags"}, \ {"arnr_max_frames", "altref noise reduction max frame count", offsetof(VP8Context, arnr_max_frames), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 15, VE}, \ {"arnr_strength", "al
[FFmpeg-cvslog] libvpxenc: make flags i64 instead of dbl.
ffmpeg | branch: master | Ronald S. Bultje | Mon Aug 17 17:10:56 2015 -0400| [b07d2a250955ef03b63db125c581faf48d206cbd] | committer: Ronald S. Bultje libvpxenc: make flags i64 instead of dbl. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b07d2a250955ef03b63db125c581faf48d206cbd --- libavcodec/libvpxenc.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 58e8f5d..5f39783 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -986,8 +986,8 @@ static int vp8_encode(AVCodecContext *avctx, AVPacket *pkt, {"speed", "", offsetof(VP8Context, cpu_used), AV_OPT_TYPE_INT, {.i64 = 1}, -16, 16, VE}, \ {"quality", "", offsetof(VP8Context, deadline), AV_OPT_TYPE_INT, {.i64 = VPX_DL_GOOD_QUALITY}, INT_MIN, INT_MAX, VE, "quality"}, \ {"vp8flags", "", offsetof(VP8Context, flags), AV_OPT_TYPE_FLAGS, {.i64 = 0}, 0, UINT_MAX, VE, "flags"}, \ -{"error_resilient", "enable error resilience", 0, AV_OPT_TYPE_CONST, {.dbl = VP8F_ERROR_RESILIENT}, INT_MIN, INT_MAX, VE, "flags"}, \ -{"altref", "enable use of alternate reference frames (VP8/2-pass only)", 0, AV_OPT_TYPE_CONST, {.dbl = VP8F_AUTO_ALT_REF}, INT_MIN, INT_MAX, VE, "flags"}, \ +{"error_resilient", "enable error resilience", 0, AV_OPT_TYPE_CONST, {.i64 = VP8F_ERROR_RESILIENT}, INT_MIN, INT_MAX, VE, "flags"}, \ +{"altref", "enable use of alternate reference frames (VP8/2-pass only)", 0, AV_OPT_TYPE_CONST, {.i64 = VP8F_AUTO_ALT_REF}, INT_MIN, INT_MAX, VE, "flags"}, \ {"arnr_max_frames", "altref noise reduction max frame count", offsetof(VP8Context, arnr_max_frames), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 15, VE}, \ {"arnr_strength", "altref noise reduction filter strength", offsetof(VP8Context, arnr_strength), AV_OPT_TYPE_INT, {.i64 = 3}, 0, 6, VE}, \ {"arnr_type", "altref noise reduction filter type", offsetof(VP8Context, arnr_type), AV_OPT_TYPE_INT, {.i64 = 3}, 1, 3, VE}, \ ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] options: mark av_get_{int, double, q} as deprecated.
ffmpeg | branch: master | Ronald S. Bultje | Sun Aug 16 16:11:13 2015 -0400| [ad45121d562d99c07ab8f77b01ba4bc610dbe0c0] | committer: Ronald S. Bultje options: mark av_get_{int,double,q} as deprecated. Convert last users to av_opt_get_*() counterparts. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ad45121d562d99c07ab8f77b01ba4bc610dbe0c0 --- libavfilter/af_aresample.c | 17 + libavfilter/x86/vf_spp.c |4 +++- libavutil/opt.h|3 +++ 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c index 6cb765d..f6fdd08 100644 --- a/libavfilter/af_aresample.c +++ b/libavfilter/af_aresample.c @@ -80,9 +80,8 @@ static av_cold void uninit(AVFilterContext *ctx) static int query_formats(AVFilterContext *ctx) { AResampleContext *aresample = ctx->priv; -int out_rate = av_get_int(aresample->swr, "osr", NULL); -uint64_t out_layout= av_get_int(aresample->swr, "ocl", NULL); -enum AVSampleFormat out_format = av_get_int(aresample->swr, "osf", NULL); +enum AVSampleFormat out_format; +int64_t out_rate, out_layout; AVFilterLink *inlink = ctx->inputs[0]; AVFilterLink *outlink = ctx->outputs[0]; @@ -91,6 +90,9 @@ static int query_formats(AVFilterContext *ctx) AVFilterFormats*in_samplerates, *out_samplerates; AVFilterChannelLayouts *in_layouts, *out_layouts; +av_opt_get_sample_fmt(aresample->swr, "osf", 0, &out_format); +av_opt_get_int(aresample->swr, "osr", 0, &out_rate); +av_opt_get_int(aresample->swr, "ocl", 0, &out_layout); in_formats = ff_all_formats(AVMEDIA_TYPE_AUDIO); if (!in_formats) @@ -144,8 +146,7 @@ static int config_output(AVFilterLink *outlink) AVFilterContext *ctx = outlink->src; AVFilterLink *inlink = ctx->inputs[0]; AResampleContext *aresample = ctx->priv; -int out_rate; -uint64_t out_layout; +int64_t out_rate, out_layout; enum AVSampleFormat out_format; char inchl_buf[128], outchl_buf[128]; @@ -164,9 +165,9 @@ static int config_output(AVFilterLink *outlink) if (ret < 0) return ret; -out_rate = av_get_int(aresample->swr, "osr", NULL); -out_layout = av_get_int(aresample->swr, "ocl", NULL); -out_format = av_get_int(aresample->swr, "osf", NULL); +av_opt_get_int(aresample->swr, "osr", 0, &out_rate); +av_opt_get_int(aresample->swr, "ocl", 0, &out_layout); +av_opt_get_sample_fmt(aresample->swr, "osf", 0, &out_format); outlink->time_base = (AVRational) {1, out_rate}; av_assert0(outlink->sample_rate == out_rate); diff --git a/libavfilter/x86/vf_spp.c b/libavfilter/x86/vf_spp.c index 1cfb9e8..45a9eb0 100644 --- a/libavfilter/x86/vf_spp.c +++ b/libavfilter/x86/vf_spp.c @@ -223,8 +223,10 @@ av_cold void ff_spp_init_x86(SPPContext *s) int cpu_flags = av_get_cpu_flags(); if (cpu_flags & AV_CPU_FLAG_MMX) { +int64_t bps; s->store_slice = store_slice_mmx; -if (av_get_int(s->dct, "bits_per_sample", NULL) <= 8) { +av_opt_get_int(s->dct, "bits_per_sample", 0, &bps); +if (bps <= 8) { switch (s->mode) { case 0: s->requantize = hardthresh_mmx; break; case 1: s->requantize = softthresh_mmx; break; diff --git a/libavutil/opt.h b/libavutil/opt.h index 0bc0d30..481d096 100644 --- a/libavutil/opt.h +++ b/libavutil/opt.h @@ -413,8 +413,11 @@ attribute_deprecated const AVOption *av_set_double(void *obj, const char *name, attribute_deprecated const AVOption *av_set_q(void *obj, const char *name, AVRational n); attribute_deprecated const AVOption *av_set_int(void *obj, const char *name, int64_t n); +attribute_deprecated double av_get_double(void *obj, const char *name, const AVOption **o_out); +attribute_deprecated AVRational av_get_q(void *obj, const char *name, const AVOption **o_out); +attribute_deprecated int64_t av_get_int(void *obj, const char *name, const AVOption **o_out); attribute_deprecated const char *av_get_string(void *obj, const char *name, const AVOption **o_out, char *buf, int buf_len); attribute_deprecated const AVOption *av_next_option(FF_CONST_AVUTIL55 void *obj, const AVOption *last); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] lavc: fix compilation with FF_API_XVMC.
ffmpeg | branch: master | Ronald S. Bultje | Mon Aug 17 07:40:01 2015 -0400| [e3b7298aedd449ff71d445abda6617f2d841289a] | committer: Ronald S. Bultje lavc: fix compilation with FF_API_XVMC. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e3b7298aedd449ff71d445abda6617f2d841289a --- libavcodec/blockdsp.c |4 libavcodec/blockdsp.h |4 libavcodec/x86/blockdsp_init.c |4 3 files changed, 12 deletions(-) diff --git a/libavcodec/blockdsp.c b/libavcodec/blockdsp.c index 8480f0b..42e177b 100644 --- a/libavcodec/blockdsp.c +++ b/libavcodec/blockdsp.c @@ -72,11 +72,7 @@ av_cold void ff_blockdsp_init(BlockDSPContext *c, AVCodecContext *avctx) if (ARCH_PPC) ff_blockdsp_init_ppc(c, high_bit_depth); if (ARCH_X86) -#if FF_API_XVMC ff_blockdsp_init_x86(c, high_bit_depth, avctx); -#else -ff_blockdsp_init_x86(c, high_bit_depth); -#endif /* FF_API_XVMC */ if (ARCH_MIPS) ff_blockdsp_init_mips(c, high_bit_depth); } diff --git a/libavcodec/blockdsp.h b/libavcodec/blockdsp.h index 32ea107..654ecdc 100644 --- a/libavcodec/blockdsp.h +++ b/libavcodec/blockdsp.h @@ -43,12 +43,8 @@ void ff_blockdsp_init(BlockDSPContext *c, AVCodecContext *avctx); void ff_blockdsp_init_alpha(BlockDSPContext *c, unsigned high_bit_depth); void ff_blockdsp_init_arm(BlockDSPContext *c, unsigned high_bit_depth); void ff_blockdsp_init_ppc(BlockDSPContext *c, unsigned high_bit_depth); -#if FF_API_XVMC void ff_blockdsp_init_x86(BlockDSPContext *c, unsigned high_bit_depth, AVCodecContext *avctx); -#else -void ff_blockdsp_init_x86(BlockDSPContext *c, unsigned high_bit_depth); -#endif /* FF_API_XVMC */ void ff_blockdsp_init_mips(BlockDSPContext *c, unsigned high_bit_depth); #endif /* AVCODEC_BLOCKDSP_H */ diff --git a/libavcodec/x86/blockdsp_init.c b/libavcodec/x86/blockdsp_init.c index 7780184..825e29f 100644 --- a/libavcodec/x86/blockdsp_init.c +++ b/libavcodec/x86/blockdsp_init.c @@ -31,12 +31,8 @@ void ff_clear_block_sse(int16_t *block); void ff_clear_blocks_mmx(int16_t *blocks); void ff_clear_blocks_sse(int16_t *blocks); -#if FF_API_XVMC av_cold void ff_blockdsp_init_x86(BlockDSPContext *c, unsigned high_bit_depth, AVCodecContext *avctx) -#else -av_cold void ff_blockdsp_init_x86(BlockDSPContext *c, unsigned high_bit_depth) -#endif /* FF_API_XVMC */ { #if HAVE_YASM int cpu_flags = av_get_cpu_flags(); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Undeprecate av_opt_set_defaults2().
ffmpeg | branch: master | Ronald S. Bultje | Sun Aug 16 19:40:48 2015 -0400| [3285005347b2980fc078d4b5777844070bb6113b] | committer: Ronald S. Bultje Undeprecate av_opt_set_defaults2(). > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3285005347b2980fc078d4b5777844070bb6113b --- libavutil/opt.c |5 + libavutil/opt.h | 12 +--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/libavutil/opt.c b/libavutil/opt.c index 62db1b5..580586e 100644 --- a/libavutil/opt.c +++ b/libavutil/opt.c @@ -1177,20 +1177,17 @@ int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags) void av_opt_set_defaults(void *s) { -#if FF_API_OLD_AVOPTIONS av_opt_set_defaults2(s, 0, 0); } void av_opt_set_defaults2(void *s, int mask, int flags) { -#endif const AVOption *opt = NULL; while ((opt = av_opt_next(s, opt))) { void *dst = ((uint8_t*)s) + opt->offset; -#if FF_API_OLD_AVOPTIONS + if ((opt->flags & mask) != flags) continue; -#endif if (opt->flags & AV_OPT_FLAG_READONLY) continue; diff --git a/libavutil/opt.h b/libavutil/opt.h index 481d096..4f2b46e 100644 --- a/libavutil/opt.h +++ b/libavutil/opt.h @@ -441,10 +441,16 @@ int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags); */ void av_opt_set_defaults(void *s); -#if FF_API_OLD_AVOPTIONS -attribute_deprecated +/** + * Set the values of all AVOption fields to their default values. Only these + * AVOption fields for which (opt->flags & mask) == flags will have their + * default applied to s. + * + * @param s an AVOption-enabled struct (its first member must be a pointer to AVClass) + * @param mask combination of AV_OPT_FLAG_* + * @param flags combination of AV_OPT_FLAG_* + */ void av_opt_set_defaults2(void *s, int mask, int flags); -#endif /** * Parse the key/value pairs list in opts. For each key/value pair ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] configure: force -mconsole when linking SDL under MinGW
ffmpeg | branch: master | Stephen Hutchinson | Tue Aug 18 12:00:06 2015 -0400| [c5308eea29216c218b61599dc83911d2c1afe716] | committer: Michael Niedermayer configure: force -mconsole when linking SDL under MinGW When building SDL with MinGW, it sets -mwindows with the assumption that the application is a GUI application. If this is linked without passing -mconsole to configure via --extra-ldflags, stdout will be silenced from cmd.exe while running FFmpeg. The -mwindows flag that causes this behavior is included in the sdl_libs variable, so append -mconsole there rather than create an sdl_ldflags case just to insert it (especially if -mconsole must come *after* -mwindows in order to be effective). Reviewed-by: Timothy Gu Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c5308eea29216c218b61599dc83911d2c1afe716 --- configure |3 +++ 1 file changed, 3 insertions(+) diff --git a/configure b/configure index 49d4ff3..bc2160d 100755 --- a/configure +++ b/configure @@ -5376,6 +5376,9 @@ if ! disabled sdl; then disable sdl fi fi +if test $target_os = "mingw32"; then +sdl_libs="$sdl_libs -mconsole" +fi fi enabled sdl && add_cflags $sdl_cflags && add_extralibs $sdl_libs ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
ffmpeg-cvslog@ffmpeg.org
ffmpeg | branch: master | Ronald S. Bultje | Mon Aug 17 20:44:53 2015 -0400| [9468207e1cbacdf5e67fbab51e141796065eb146] | committer: Ronald S. Bultje mpeg4video: use ff_dlog instead of av_log under debug&FF_DEBUG_PTS. This fixes compilation with FF_API_UNUSED_MEMBERS=0. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9468207e1cbacdf5e67fbab51e141796065eb146 --- libavcodec/mpeg4videodec.c |5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c index 55ce5d8..3cb0c38 100644 --- a/libavcodec/mpeg4videodec.c +++ b/libavcodec/mpeg4videodec.c @@ -22,6 +22,7 @@ #define UNCHECKED_BITSTREAM_READER 1 +#include "libavutil/internal.h" #include "libavutil/opt.h" #include "error_resilience.h" #include "idctdsp.h" @@ -2320,9 +2321,7 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb) pts = ROUNDED_DIV(s->time, s->avctx->framerate.den); else pts = AV_NOPTS_VALUE; -if (s->avctx->debug&FF_DEBUG_PTS) -av_log(s->avctx, AV_LOG_DEBUG, "MPEG4 PTS: %"PRId64"\n", - pts); +ff_dlog(s->avctx, "MPEG4 PTS: %"PRId64"\n", pts); check_marker(gb, "before vop_coded"); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Prepare for removal of obsolete FF_IDCT_* members.
ffmpeg | branch: master | Ronald S. Bultje | Sun Aug 16 19:37:46 2015 -0400| [7a629186ba0481f4aef1d9590d0e55b3bc5f4ed0] | committer: Ronald S. Bultje Prepare for removal of obsolete FF_IDCT_* members. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7a629186ba0481f4aef1d9590d0e55b3bc5f4ed0 --- libavcodec/avcodec.h |2 -- libavcodec/avdct.c |2 ++ libavcodec/options_table.h |2 -- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index f09d8f4..41f373b 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -2947,9 +2947,7 @@ typedef struct AVCodecContext { int dct_algo; #define FF_DCT_AUTO0 #define FF_DCT_FASTINT 1 -#if FF_API_UNUSED_MEMBERS #define FF_DCT_INT 2 -#endif /* FF_API_UNUSED_MEMBERS */ #define FF_DCT_MMX 3 #define FF_DCT_ALTIVEC 5 #define FF_DCT_FAAN6 diff --git a/libavcodec/avdct.c b/libavcodec/avdct.c index f92c691..3b622ba 100644 --- a/libavcodec/avdct.c +++ b/libavcodec/avdct.c @@ -58,7 +58,9 @@ static const AVOption avdct_options[] = { #if FF_API_ARCH_ALPHA {"simplealpha", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEALPHA }, INT_MIN, INT_MAX, V|E|D, "idct"}, #endif +#if FF_API_UNUSED_MEMBERS {"ipp", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_IPP }, INT_MIN, INT_MAX, V|E|D, "idct"}, +#endif {"xvid", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_XVID }, INT_MIN, INT_MAX, V|E|D, "idct"}, {"xvidmmx", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_XVID }, INT_MIN, INT_MAX, V|E|D, "idct"}, {"faani", "floating point AAN IDCT (experimental / for debugging)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_FAAN }, INT_MIN, INT_MAX, V|D|E, "idct"}, diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h index 0fc343a..93d4f77 100644 --- a/libavcodec/options_table.h +++ b/libavcodec/options_table.h @@ -201,9 +201,7 @@ static const AVOption avcodec_options[] = { {"dct", "DCT algorithm", OFFSET(dct_algo), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, V|E, "dct"}, {"auto", "autoselect a good one (default)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_AUTO }, INT_MIN, INT_MAX, V|E, "dct"}, {"fastint", "fast integer", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_FASTINT }, INT_MIN, INT_MAX, V|E, "dct"}, -#if FF_API_UNUSED_MEMBERS {"int", "accurate integer", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_INT }, INT_MIN, INT_MAX, V|E, "dct"}, -#endif /* FF_API_UNUSED_MEMBERS */ {"mmx", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_MMX }, INT_MIN, INT_MAX, V|E, "dct"}, {"altivec", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_ALTIVEC }, INT_MIN, INT_MAX, V|E, "dct"}, {"faan", "floating point AAN DCT", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_FAAN }, INT_MIN, INT_MAX, V|E, "dct"}, ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] lavu: disable wrong value check in get_version() upon api bump.
ffmpeg | branch: master | Ronald S. Bultje | Sun Aug 16 19:41:17 2015 -0400| [87068ea5c5c800ff9bf1c3fa83665f63b07a7951] | committer: Ronald S. Bultje lavu: disable wrong value check in get_version() upon api bump. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=87068ea5c5c800ff9bf1c3fa83665f63b07a7951 --- libavutil/utils.c |2 ++ 1 file changed, 2 insertions(+) diff --git a/libavutil/utils.c b/libavutil/utils.c index 2e3b1e0..e337c83 100644 --- a/libavutil/utils.c +++ b/libavutil/utils.c @@ -41,7 +41,9 @@ unsigned avutil_version(void) if (checks_done) return LIBAVUTIL_VERSION_INT; +#if FF_API_VDPAU av_assert0(AV_PIX_FMT_VDA_VLD == 81); //check if the pix fmt enum has not had anything inserted or removed by mistake +#endif av_assert0(AV_SAMPLE_FMT_DBLP == 9); av_assert0(AVMEDIA_TYPE_ATTACHMENT == 4); av_assert0(AV_PICTURE_TYPE_BI == 7); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] lavc: put remaining bits of vdpau-in-decoder under FF_API_CAP_VDPAU.
ffmpeg | branch: master | Ronald S. Bultje | Sun Aug 16 19:35:59 2015 -0400| [030b5a4f777b59066f1766030db082a53682994d] | committer: Ronald S. Bultje lavc: put remaining bits of vdpau-in-decoder under FF_API_CAP_VDPAU. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=030b5a4f777b59066f1766030db082a53682994d --- libavcodec/error_resilience.c |2 ++ libavcodec/h263dec.c |2 ++ libavcodec/h264.c |4 libavcodec/h264_picture.c |4 libavcodec/h264_slice.c | 16 libavcodec/mpeg12dec.c| 20 +--- libavcodec/mpegpicture.c |6 +- libavcodec/mpegvideo.c| 11 +-- libavcodec/utils.c|2 ++ libavcodec/vc1dec.c | 28 +--- 10 files changed, 78 insertions(+), 17 deletions(-) diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c index b3b46d1..2c741a4 100644 --- a/libavcodec/error_resilience.c +++ b/libavcodec/error_resilience.c @@ -777,7 +777,9 @@ void ff_er_frame_start(ERContext *s) static int er_supported(ERContext *s) { if(s->avctx->hwaccel && s->avctx->hwaccel->decode_slice || +#if FF_API_CAP_VDPAU s->avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU || +#endif !s->cur_pic.f || s->cur_pic.field_picture ) diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index 7fa7090..8f28a94 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -603,10 +603,12 @@ retry: if (!s->divx_packed && !avctx->hwaccel) ff_thread_finish_setup(avctx); +#if FF_API_CAP_VDPAU if (CONFIG_MPEG4_VDPAU_DECODER && (s->avctx->codec->capabilities & AV_CODEC_CAP_HWACCEL_VDPAU)) { ff_vdpau_mpeg4_decode_picture(avctx->priv_data, s->gb.buffer, s->gb.buffer_end - s->gb.buffer); goto frame_end; } +#endif if (avctx->hwaccel) { ret = avctx->hwaccel->start_frame(avctx, s->gb.buffer, diff --git a/libavcodec/h264.c b/libavcodec/h264.c index d55231c..1b29c8c 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -1561,9 +1561,11 @@ again: if (h->avctx->hwaccel && (ret = h->avctx->hwaccel->start_frame(h->avctx, buf, buf_size)) < 0) goto end; +#if FF_API_CAP_VDPAU if (CONFIG_H264_VDPAU_DECODER && h->avctx->codec->capabilities & AV_CODEC_CAP_HWACCEL_VDPAU) ff_vdpau_h264_picture_start(h); +#endif } if (sl->redundant_pic_count == 0) { @@ -1573,6 +1575,7 @@ again: consumed); if (ret < 0) goto end; +#if FF_API_CAP_VDPAU } else if (CONFIG_H264_VDPAU_DECODER && h->avctx->codec->capabilities & AV_CODEC_CAP_HWACCEL_VDPAU) { ff_vdpau_add_data_chunk(h->cur_pic_ptr->f->data[0], @@ -1581,6 +1584,7 @@ again: ff_vdpau_add_data_chunk(h->cur_pic_ptr->f->data[0], &buf[buf_index - consumed], consumed); +#endif } else context_count++; } diff --git a/libavcodec/h264_picture.c b/libavcodec/h264_picture.c index 04bbf02..731d780 100644 --- a/libavcodec/h264_picture.c +++ b/libavcodec/h264_picture.c @@ -157,9 +157,11 @@ int ff_h264_field_end(H264Context *h, H264SliceContext *sl, int in_setup) int err = 0; h->mb_y = 0; +#if FF_API_CAP_VDPAU if (CONFIG_H264_VDPAU_DECODER && h->avctx->codec->capabilities & AV_CODEC_CAP_HWACCEL_VDPAU) ff_vdpau_h264_set_reference_frames(h); +#endif if (in_setup || !(avctx->active_thread_type & FF_THREAD_FRAME)) { if (!h->droppable) { @@ -178,9 +180,11 @@ int ff_h264_field_end(H264Context *h, H264SliceContext *sl, int in_setup) "hardware accelerator failed to decode picture\n"); } +#if FF_API_CAP_VDPAU if (CONFIG_H264_VDPAU_DECODER && h->avctx->codec->capabilities & AV_CODEC_CAP_HWACCEL_VDPAU) ff_vdpau_h264_picture_complete(h); +#endif #if CONFIG_ERROR_RESILIENCE av_assert0(sl == h->slice_ctx); diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index 48f501b..e330489 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -612,8 +612,11 @@ static int h264_frame_start(H264Context *h) if ((ret = alloc_picture(h, pic)) < 0) return ret; -if(!h->frame_recovered && !h->avctx->hwaccel && - !(h->avctx->codec->capabilities & AV_CODEC_CAP_HWACCEL_VDPAU)) +if(!h->frame_recovered && !h->avctx->hwaccel +#if FF_API_CAP_VDPAU + && !(h->avctx->codec->capabilit
[FFmpeg-cvslog] lavc: move vdpau decoders under FF_API_VDPAU.
ffmpeg | branch: master | wm4 | Mon Aug 17 17:05:34 2015 -0400| [a383f226f02b969b72d6b286af21d0fcd38ca98a] | committer: Ronald S. Bultje lavc: move vdpau decoders under FF_API_VDPAU. Signed-off-by: Ronald S. Bultje > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a383f226f02b969b72d6b286af21d0fcd38ca98a --- libavcodec/allcodecs.c | 10 ++ libavcodec/h264.c |2 +- libavcodec/mpeg12dec.c |8 libavcodec/mpeg4videodec.c |2 +- libavcodec/vc1dec.c|4 ++-- libavcodec/vdpau.c |8 6 files changed, 22 insertions(+), 12 deletions(-) diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c index 04a83d4..d4ae497 100644 --- a/libavcodec/allcodecs.c +++ b/libavcodec/allcodecs.c @@ -190,7 +190,9 @@ void avcodec_register_all(void) REGISTER_DECODER(H264_MMAL, h264_mmal); REGISTER_DECODER(H264_QSV, h264_qsv); REGISTER_DECODER(H264_VDA, h264_vda); +#if FF_API_VDPAU REGISTER_DECODER(H264_VDPAU,h264_vdpau); +#endif REGISTER_ENCDEC (HAP, hap); REGISTER_DECODER(HEVC, hevc); REGISTER_DECODER(HEVC_QSV, hevc_qsv); @@ -227,10 +229,14 @@ void avcodec_register_all(void) REGISTER_ENCDEC (MPEG2VIDEO,mpeg2video); REGISTER_ENCDEC (MPEG4, mpeg4); REGISTER_DECODER(MPEG4_CRYSTALHD, mpeg4_crystalhd); +#if FF_API_VDPAU REGISTER_DECODER(MPEG4_VDPAU, mpeg4_vdpau); +#endif REGISTER_DECODER(MPEGVIDEO, mpegvideo); +#if FF_API_VDPAU REGISTER_DECODER(MPEG_VDPAU,mpeg_vdpau); REGISTER_DECODER(MPEG1_VDPAU, mpeg1_vdpau); +#endif REGISTER_DECODER(MPEG2_CRYSTALHD, mpeg2_crystalhd); REGISTER_DECODER(MPEG2_QSV, mpeg2_qsv); REGISTER_DECODER(MSA1, msa1); @@ -311,7 +317,9 @@ void avcodec_register_all(void) REGISTER_DECODER(VBLE, vble); REGISTER_DECODER(VC1, vc1); REGISTER_DECODER(VC1_CRYSTALHD, vc1_crystalhd); +#if FF_API_VDPAU REGISTER_DECODER(VC1_VDPAU, vc1_vdpau); +#endif REGISTER_DECODER(VC1IMAGE, vc1image); REGISTER_DECODER(VC1_QSV, vc1_qsv); REGISTER_DECODER(VCR1, vcr1); @@ -331,7 +339,9 @@ void avcodec_register_all(void) REGISTER_ENCDEC (WMV2, wmv2); REGISTER_DECODER(WMV3, wmv3); REGISTER_DECODER(WMV3_CRYSTALHD,wmv3_crystalhd); +#if FF_API_VDPAU REGISTER_DECODER(WMV3_VDPAU,wmv3_vdpau); +#endif REGISTER_DECODER(WMV3IMAGE, wmv3image); REGISTER_DECODER(WNV1, wnv1); REGISTER_DECODER(XAN_WC3, xan_wc3); diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 1b29c8c..907943e 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -1996,7 +1996,7 @@ AVCodec ff_h264_decoder = { .priv_class= &h264_class, }; -#if CONFIG_H264_VDPAU_DECODER +#if CONFIG_H264_VDPAU_DECODER && FF_API_VDPAU static const AVClass h264_vdpau_class = { .class_name = "H264 VDPAU Decoder", .item_name = av_default_item_name, diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index bd8ccfd..4f60a1c 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -1186,7 +1186,7 @@ static const enum AVPixelFormat mpeg1_hwaccel_pixfmt_list_420[] = { #if CONFIG_MPEG1_XVMC_HWACCEL AV_PIX_FMT_XVMC, #endif -#if CONFIG_MPEG1_VDPAU_DECODER +#if CONFIG_MPEG1_VDPAU_DECODER && FF_API_VDPAU AV_PIX_FMT_VDPAU_MPEG1, #endif #if CONFIG_MPEG1_VDPAU_HWACCEL @@ -1200,7 +1200,7 @@ static const enum AVPixelFormat mpeg2_hwaccel_pixfmt_list_420[] = { #if CONFIG_MPEG2_XVMC_HWACCEL AV_PIX_FMT_XVMC, #endif -#if CONFIG_MPEG_VDPAU_DECODER +#if CONFIG_MPEG_VDPAU_DECODER && FF_API_VDPAU AV_PIX_FMT_VDPAU_MPEG2, #endif #if CONFIG_MPEG2_VDPAU_HWACCEL @@ -2954,7 +2954,7 @@ AVCodec ff_mpeg_xvmc_decoder = { #endif #endif /* FF_API_XVMC */ -#if CONFIG_MPEG_VDPAU_DECODER +#if CONFIG_MPEG_VDPAU_DECODER && FF_API_VDPAU AVCodec ff_mpeg_vdpau_decoder = { .name = "mpegvideo_vdpau", .long_name = NULL_IF_CONFIG_SMALL("MPEG-1/2 video (VDPAU acceleration)"), @@ -2970,7 +2970,7 @@ AVCodec ff_mpeg_vdpau_decoder = { }; #endif -#if CONFIG_MPEG1_VDPAU_DECODER +#if CONFIG_MPEG1_VDPAU_DECODER && FF_API_VDPAU AVCodec ff_mpeg1_vdpau_decoder = { .name = "mpeg1video_vdpau", .long_name = NULL_IF_CONFIG_SMALL("MPEG-1 video (VDPAU acceleration)"), diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c index 3cb0c38..f15747f 100644 --- a/libavcodec/mpeg4videodec.c +++ b/libavcodec/mpeg4videodec.c @@ -2789,7 +2789,7 @@ AVCodec ff_mpeg4_decoder = { }; -#if CONFIG_MPEG4_VDPAU_DECODER +#if CONFIG_MPEG4_VDPAU_DECODER && FF_API_VDPAU static const AVClass mpeg4_vdpau_class = { "MPEG4 Video VDPAU Decoder", av_default_item_name, diff --git a/libavcodec/vc1dec.c b
[FFmpeg-cvslog] libx264: Add option to force IDR frames
ffmpeg | branch: master | Derek Buitenhuis | Tue Aug 18 17:39:01 2015 -0300| [c981b1145a857c8f962c93b8eecb1c613b20ffe9] | committer: James Almer libx264: Add option to force IDR frames Currently, when forcing an I frame, via API, or via the ffmpeg cli, using -force_key_frames, we still let x264 decide what sort of keyframe to user. In some cases, it is useful to be able to force an IDR frame, e.g. for cutting streams. Signed-off-by: Derek Buitenhuis > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c981b1145a857c8f962c93b8eecb1c613b20ffe9 --- libavcodec/libx264.c |5 - libavcodec/version.h |2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index c017685..a54743e 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -82,6 +82,7 @@ typedef struct X264Context { int nal_hrd; int avcintra_class; int motion_est; +int forced_idr; char *x264_params; } X264Context; @@ -270,7 +271,8 @@ static int X264_frame(AVCodecContext *ctx, AVPacket *pkt, const AVFrame *frame, x4->pic.i_pts = frame->pts; x4->pic.i_type = -frame->pict_type == AV_PICTURE_TYPE_I ? X264_TYPE_KEYFRAME : +frame->pict_type == AV_PICTURE_TYPE_I ? +(x4->forced_idr >= 0 ? X264_TYPE_IDR : X264_TYPE_KEYFRAME) : frame->pict_type == AV_PICTURE_TYPE_P ? X264_TYPE_P : frame->pict_type == AV_PICTURE_TYPE_B ? X264_TYPE_B : X264_TYPE_AUTO; @@ -875,6 +877,7 @@ static const AVOption options[] = { { "umh", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = X264_ME_UMH }, INT_MIN, INT_MAX, VE, "motion-est" }, { "esa", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = X264_ME_ESA }, INT_MIN, INT_MAX, VE, "motion-est" }, { "tesa", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = X264_ME_TESA }, INT_MIN, INT_MAX, VE, "motion-est" }, +{ "forced-idr", "If forcing keyframes, force them as IDR frames.", OFFSET(forced_idr), AV_OPT_TYPE_INT,{ .i64 = -1 }, -1, 1, VE }, { "x264-params", "Override the x264 configuration using a :-separated list of key=value parameters", OFFSET(x264_params), AV_OPT_TYPE_STRING, { 0 }, 0, 0, VE }, { NULL }, }; diff --git a/libavcodec/version.h b/libavcodec/version.h index 1b37a9e..2e7cf40 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -30,7 +30,7 @@ #define LIBAVCODEC_VERSION_MAJOR 56 #define LIBAVCODEC_VERSION_MINOR 57 -#define LIBAVCODEC_VERSION_MICRO 100 +#define LIBAVCODEC_VERSION_MICRO 101 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \ ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] swscale: Fixed typos
ffmpeg | branch: master | Pedro Arthur | Tue Aug 18 15:06:49 2015 -0300| [4545906f60380e69c388792050ac40b484b3042f] | committer: Michael Niedermayer swscale: Fixed typos Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4545906f60380e69c388792050ac40b484b3042f --- libswscale/swscale_internal.h |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h index bf6be18..4e1cfc1 100644 --- a/libswscale/swscale_internal.h +++ b/libswscale/swscale_internal.h @@ -1015,7 +1015,7 @@ int ff_free_filters(SwsContext *c); function for applying ring buffer logic into slice s It checks if the slice can hold more @lum lines, if yes do nothing otherwise remove @lum least used lines. - It applyes the same procedure for @chr lines. + It applies the same procedure for @chr lines. */ int ff_rotate_slice(SwsSlice *s, int lum, int chr); @@ -1025,7 +1025,7 @@ int ff_init_desc_fmt_convert(SwsFilterDescriptor *desc, SwsSlice * src, SwsSlice /// initializes lum horizontal scaling descriptor int ff_init_desc_hscale(SwsFilterDescriptor *desc, SwsSlice *src, SwsSlice *dst, uint16_t *filter, int * filter_pos, int filter_size, int xInc); -/// initializes chr prixel format conversion descriptor +/// initializes chr pixel format conversion descriptor int ff_init_desc_cfmt_convert(SwsFilterDescriptor *desc, SwsSlice * src, SwsSlice *dst, uint32_t *pal); /// initializes chr horizontal scaling descriptor ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] swscale: add license headers and copyrights
ffmpeg | branch: master | Pedro Arthur | Tue Aug 18 15:06:49 2015 -0300| [0f3687d6fb87d186d4d9468c2e256af6de4d2c78] | committer: Michael Niedermayer swscale: add license headers and copyrights Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0f3687d6fb87d186d4d9468c2e256af6de4d2c78 --- libswscale/hscale.c | 20 libswscale/slice.c | 20 2 files changed, 40 insertions(+) diff --git a/libswscale/hscale.c b/libswscale/hscale.c index c8543a2..ca09576 100644 --- a/libswscale/hscale.c +++ b/libswscale/hscale.c @@ -1,3 +1,23 @@ +/* + * Copyright (C) 2015 Pedro Arthur + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + #include "swscale_internal.h" static int lum_h_scale(SwsContext *c, SwsFilterDescriptor *desc, int sliceY, int sliceH) diff --git a/libswscale/slice.c b/libswscale/slice.c index 242367d..611e4e6 100644 --- a/libswscale/slice.c +++ b/libswscale/slice.c @@ -1,3 +1,23 @@ +/* + * Copyright (C) 2015 Pedro Arthur + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + #include "swscale_internal.h" static void free_lines(SwsSlice *s) ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] swscale: fixed compiler warnings
ffmpeg | branch: master | Pedro Arthur | Tue Aug 18 15:06:49 2015 -0300| [ed80dec621f621794e9d7ec7c1769bbf9a58a500] | committer: Michael Niedermayer swscale: fixed compiler warnings Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ed80dec621f621794e9d7ec7c1769bbf9a58a500 --- libswscale/swscale.c | 24 libswscale/swscale_internal.h |2 ++ libswscale/x86/swscale.c | 15 +++ 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/libswscale/swscale.c b/libswscale/swscale.c index e5bab9c..03019d4 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -321,35 +321,45 @@ static int swscale(SwsContext *c, const uint8_t *src[], { /* load a few things into local vars to make the code more readable? * and faster */ +#ifndef NEW_FILTER const int srcW = c->srcW; +#endif const int dstW = c->dstW; const int dstH = c->dstH; const int chrDstW= c->chrDstW; +#ifndef NEW_FILTER const int chrSrcW= c->chrSrcW; const int lumXInc= c->lumXInc; const int chrXInc= c->chrXInc; +#endif const enum AVPixelFormat dstFormat = c->dstFormat; const int flags = c->flags; int32_t *vLumFilterPos = c->vLumFilterPos; int32_t *vChrFilterPos = c->vChrFilterPos; +#ifndef NEW_FILTER int32_t *hLumFilterPos = c->hLumFilterPos; int32_t *hChrFilterPos = c->hChrFilterPos; int16_t *hLumFilter = c->hLumFilter; int16_t *hChrFilter = c->hChrFilter; +#endif int32_t *lumMmxFilter= c->lumMmxFilter; int32_t *chrMmxFilter= c->chrMmxFilter; const int vLumFilterSize = c->vLumFilterSize; const int vChrFilterSize = c->vChrFilterSize; +#ifndef NEW_FILTER const int hLumFilterSize = c->hLumFilterSize; const int hChrFilterSize = c->hChrFilterSize; int16_t **lumPixBuf = c->lumPixBuf; int16_t **chrUPixBuf = c->chrUPixBuf; int16_t **chrVPixBuf = c->chrVPixBuf; +#endif int16_t **alpPixBuf = c->alpPixBuf; const int vLumBufSize= c->vLumBufSize; const int vChrBufSize= c->vChrBufSize; +#ifndef NEW_FILTER uint8_t *formatConvBuffer= c->formatConvBuffer; uint32_t *pal= c->pal_yuv; +#endif yuv2planar1_fn yuv2plane1= c->yuv2plane1; yuv2planarX_fn yuv2planeX= c->yuv2planeX; yuv2interleavedX_fn yuv2nv12cX = c->yuv2nv12cX; @@ -369,9 +379,8 @@ static int swscale(SwsContext *c, const uint8_t *src[], int chrBufIndex = c->chrBufIndex; int lastInLumBuf = c->lastInLumBuf; int lastInChrBuf = c->lastInChrBuf; -int perform_gamma = c->is_internal_gamma; +//int perform_gamma = c->is_internal_gamma; -int numDesc = c->numDesc; int lumStart = 0; int lumEnd = c->descIndex[0]; int chrStart = lumEnd; @@ -382,10 +391,11 @@ static int swscale(SwsContext *c, const uint8_t *src[], int hasLumHoles = 1; int hasChrHoles = 1; - +#ifndef NEW_FILTER if (!usePal(c->srcFormat)) { pal = c->input_rgb2yuv_table; } +#endif if (isPacked(c->srcFormat)) { src[0] = @@ -450,8 +460,6 @@ static int swscale(SwsContext *c, const uint8_t *src[], } lastDstY = dstY; -#define NEW_FILTER 1 - ff_init_slice_from_src(src_slice, (uint8_t**)src, srcStride, c->srcW, srcSliceY, srcSliceH, chrSrcSliceY, chrSrcSliceH); @@ -532,7 +540,7 @@ static int swscale(SwsContext *c, const uint8_t *src[], lastLumSrcY, lastChrSrcY); } -#if NEW_FILTER +#ifdef NEW_FILTER posY = dst_slice->plane[0].sliceY + dst_slice->plane[0].sliceH; if (posY <= lastLumSrcY && !hasLumHoles) { firstPosY = FFMAX(firstLumSrcY, posY); @@ -645,7 +653,7 @@ static int swscale(SwsContext *c, const uint8_t *src[], } { -#if NEW_FILTER +#ifdef NEW_FILTER const int16_t **lumSrcPtr = (const int16_t **)(void*) dst_slice->plane[0].line + firstLumSrcY - dst_slice->plane[0].sliceY; const int16_t **chrUSrcPtr = (const int16_t **)(void*) dst_slice->plane[1].line + firstChrSrcY - dst_slice->plane[1].sliceY; const int16_t **chrVSrcPtr = (const int16_t **)(void*) dst_slice->plane[2].line + firstChrSrcY - dst_slice->plane[2].sliceY; @@ -722,7 +730,7 @@ static int swscale(SwsContext *c, const uint8_t *src[], } } } else if (yuv2packedX) { -#if !NEW_FILTER +#ifndef NEW_FILTER av_assert1(lumSrcPtr + vLumFilterSize - 1 < (const int16_t **)lumPixBuf + vLumBufSize * 2); av_assert1(chrUS
[FFmpeg-cvslog] doc/indevs: fix fbdev typos
ffmpeg | branch: master | Lou Logan | Tue Aug 18 12:55:15 2015 -0800| [5d410a1db2bfc88dbf4410f7a1a43dd81cb04333] | committer: Lou Logan doc/indevs: fix fbdev typos Fixes ticket #4784 as found by rodarmor. Signed-off-by: Lou Logan Signed-off-by: Ronald S. Bultje > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5d410a1db2bfc88dbf4410f7a1a43dd81cb04333 --- doc/indevs.texi |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/indevs.texi b/doc/indevs.texi index d5415bb..6f47504 100644 --- a/doc/indevs.texi +++ b/doc/indevs.texi @@ -444,12 +444,12 @@ Documentation/fb/framebuffer.txt included in the Linux source tree. To record from the framebuffer device @file{/dev/fb0} with @command{ffmpeg}: @example -ffmpeg -f fbdev -r 10 -i /dev/fb0 out.avi +ffmpeg -f fbdev -framerate 10 -i /dev/fb0 out.avi @end example You can take a single screenshot image with the command: @example -ffmpeg -f fbdev -frames:v 1 -r 1 -i /dev/fb0 screenshot.jpeg +ffmpeg -f fbdev -framerate 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg @end example See also @url{http://linux-fbdev.sourceforge.net/}, and fbset(1). ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] fate: Force simple idct for fate-asf-repldata
ffmpeg | branch: master | Michael Niedermayer | Wed Aug 19 03:07:12 2015 +0200| [c1507db61760483e45ca9d512238181f333a2281] | committer: Michael Niedermayer fate: Force simple idct for fate-asf-repldata otherwise it can fail when a different idct is used on some platform Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c1507db61760483e45ca9d512238181f333a2281 --- tests/fate/microsoft.mak|2 +- tests/ref/fate/asf-repldata | 28 ++-- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/tests/fate/microsoft.mak b/tests/fate/microsoft.mak index ead1b34..1c793df 100644 --- a/tests/fate/microsoft.mak +++ b/tests/fate/microsoft.mak @@ -67,7 +67,7 @@ FATE_MICROSOFT-$(CONFIG_VC1_DECODER) += $(FATE_VC1-yes) fate-vc1: $(FATE_VC1-yes) FATE_ASF_REPLDATA += fate-asf-repldata -fate-asf-repldata: CMD = framecrc -i $(TARGET_SAMPLES)/asf/bug821-2.asf +fate-asf-repldata: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/asf/bug821-2.asf FATE_MICROSOFT-$(call DEMDEC, ASF, MPEG4) += $(FATE_ASF_REPLDATA) diff --git a/tests/ref/fate/asf-repldata b/tests/ref/fate/asf-repldata index efd5457..e46b565 100644 --- a/tests/ref/fate/asf-repldata +++ b/tests/ref/fate/asf-repldata @@ -1,15 +1,15 @@ #tb 0: 6/49 -0, 0, 0,1, 460800, 0x85b053af -0, 1, 1,1, 460800, 0xfbdbb291 -0, 2, 2,1, 460800, 0x1389b3d9 -0, 3, 3,1, 460800, 0xc81e8326 -0, 4, 4,1, 460800, 0xb0028333 -0, 5, 5,1, 460800, 0x002b8619 -0, 6, 6,1, 460800, 0xeb808d70 -0, 7, 7,1, 460800, 0xe8288d27 -0, 8, 8,1, 460800, 0xcfbe8bcc -0, 9, 9,1, 460800, 0x682b8d38 -0, 10, 10,1, 460800, 0x5879cd04 -0, 11, 11,1, 460800, 0x88a6a3e6 -0, 12, 12,1, 460800, 0xc491db72 -0, 13, 13,1, 460800, 0xb779d5cc \ No newline at end of file +0, 0, 0,1, 460800, 0x1f8b53b0 +0, 1, 1,1, 460800, 0x95b6b292 +0, 2, 2,1, 460800, 0xad55b3da +0, 3, 3,1, 460800, 0x61f98327 +0, 4, 4,1, 460800, 0x49dd8334 +0, 5, 5,1, 460800, 0x99f7861a +0, 6, 6,1, 460800, 0x855b8d71 +0, 7, 7,1, 460800, 0x82038d28 +0, 8, 8,1, 460800, 0x69998bcd +0, 9, 9,1, 460800, 0x02068d39 +0, 10, 10,1, 460800, 0xf245cd05 +0, 11, 11,1, 460800, 0x2281a3e7 +0, 12, 12,1, 460800, 0x5f01db74 +0, 13, 13,1, 460800, 0x51e9d5ce ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] lavfi: fix compilation with FF_API_OLD_FILTER_OPTS=0.
ffmpeg | branch: master | Ronald S. Bultje | Sun Aug 16 22:26:16 2015 -0400| [6495c4c68713f352b164f47501d274d8da2edaf5] | committer: Ronald S. Bultje lavfi: fix compilation with FF_API_OLD_FILTER_OPTS=0. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6495c4c68713f352b164f47501d274d8da2edaf5 --- ffmpeg_filter.c |2 +- libavfilter/avfilter.c |3 ++- libavfilter/vf_aspect.c |2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ffmpeg_filter.c b/ffmpeg_filter.c index 6a59f05..10b2f5f 100644 --- a/ffmpeg_filter.c +++ b/ffmpeg_filter.c @@ -544,7 +544,7 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter, av_get_default_channel_layout(ost->audio_channels_mapped)); for (i = 0; i < ost->audio_channels_mapped; i++) if (ost->audio_channels_map[i] != -1) -av_bprintf(&pan_buf, ":c%d=c%d", i, ost->audio_channels_map[i]); +av_bprintf(&pan_buf, "|c%d=c%d", i, ost->audio_channels_map[i]); AUTO_INSERT_FILTER("-map_channel", "pan", pan_buf.str); av_bprint_finalize(&pan_buf, NULL); diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 6475f29..4d833f0 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -976,8 +976,9 @@ int avfilter_init_str(AVFilterContext *filter, const char *args) if (ret < 0) goto fail; +} else #endif -} else { +{ ret = process_options(filter, &options, args); if (ret < 0) goto fail; diff --git a/libavfilter/vf_aspect.c b/libavfilter/vf_aspect.c index 84dbee9..bf30824 100644 --- a/libavfilter/vf_aspect.c +++ b/libavfilter/vf_aspect.c @@ -69,10 +69,10 @@ typedef struct AspectContext { static av_cold int init(AVFilterContext *ctx) { +#if FF_API_OLD_FILTER_OPTS AspectContext *s = ctx->priv; int ret; -#if FF_API_OLD_FILTER_OPTS if (s->ratio_expr && s->aspect_den > 0) { double num; av_log(ctx, AV_LOG_WARNING, ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog