[FFmpeg-cvslog] Merge commit 'd154bdd3d053128c908a994bb26e14bbc17f0e53'
ffmpeg | branch: master | James Almer | Wed Oct 4 01:05:56 2017 -0300| [84b3f53acadced2dd31f6be95b491b25183b8c22] | committer: James Almer Merge commit 'd154bdd3d053128c908a994bb26e14bbc17f0e53' * commit 'd154bdd3d053128c908a994bb26e14bbc17f0e53': configure: Simplify dlopen check Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=84b3f53acadced2dd31f6be95b491b25183b8c22 --- configure | 44 ++-- 1 file changed, 14 insertions(+), 30 deletions(-) diff --git a/configure b/configure index ae0eddac6c..0d86c4cb2a 100755 --- a/configure +++ b/configure @@ -2004,7 +2004,6 @@ SYSTEM_FUNCS=" CommandLineToArgvW CoTaskMemFree CryptGenRandom -dlopen fcntl flt_lim fork @@ -2645,7 +2644,7 @@ zmbv_encoder_select="zlib" # hardware accelerators crystalhd_deps="libcrystalhd_libcrystalhd_if_h" -cuda_deps_any="dlopen LoadLibrary" +cuda_deps_any="libdl LoadLibrary" cuvid_deps="cuda" d3d11va_deps="d3d11_h dxva_h ID3D11VideoDecoder ID3D11VideoContext" dxva2_deps="dxva2api_h DXVA2_ConfigPictureDecode ole32" @@ -2778,8 +2777,7 @@ wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel" wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel" # hardware-accelerated codecs -omx_deps="dlopen pthreads" -omx_extralibs='$ldl' +omx_deps="libdl pthreads" omx_rpi_select="omx" qsvdec_select="qsv" qsvenc_select="qsv" @@ -2792,7 +2790,7 @@ scale_cuda_filter_deps="cuda_sdk" thumbnail_cuda_filter_deps="cuda_sdk" nvenc_deps="cuda" -nvenc_deps_any="dlopen LoadLibrary" +nvenc_deps_any="libdl LoadLibrary" nvenc_encoder_deps="nvenc" h263_v4l2m2m_decoder_deps="v4l2_m2m h263_v4l2_m2m" @@ -2908,7 +2906,7 @@ ac3_at_decoder_select="ac3_parser" adpcm_ima_qt_at_decoder_deps="audiotoolbox" alac_at_decoder_deps="audiotoolbox" amr_nb_at_decoder_deps="audiotoolbox" -avisynth_deps_any="dlopen LoadLibrary" +avisynth_deps_any="libdl LoadLibrary" avisynth_demuxer_deps="avisynth" avisynth_demuxer_select="riffdec" eac3_at_decoder_deps="audiotoolbox" @@ -3083,13 +3081,13 @@ avfoundation_indev_deps="avfoundation pthreads" avfoundation_indev_extralibs="-framework Foundation -framework CoreVideo -framework CoreMedia" bktr_indev_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h" caca_outdev_deps="libcaca" -decklink_indev_deps="decklink threads" +decklink_indev_deps="decklink threads libdl" decklink_indev_extralibs="-lstdc++" -decklink_outdev_deps="decklink threads" +decklink_outdev_deps="decklink threads libdl" decklink_outdev_extralibs="-lstdc++" -libndi_newtek_indev_deps="libndi_newtek" +libndi_newtek_indev_deps="libndi_newtek libdl" libndi_newtek_indev_extralibs="-lndi" -libndi_newtek_outdev_deps="libndi_newtek" +libndi_newtek_outdev_deps="libndi_newtek libdl" libndi_newtek_outdev_extralibs="-lndi" dshow_indev_deps="IBaseFilter" dshow_indev_extralibs="-lpsapi -lole32 -lstrmiids -luuid -loleaut32 -lshlwapi" @@ -3209,15 +3207,15 @@ firequalizer_filter_deps="avcodec" firequalizer_filter_select="rdft" flite_filter_deps="libflite" framerate_filter_select="pixelutils" -frei0r_filter_deps="frei0r dlopen" -frei0r_src_filter_deps="frei0r dlopen" +frei0r_filter_deps="frei0r libdl" +frei0r_src_filter_deps="frei0r libdl" fspp_filter_deps="gpl" geq_filter_deps="gpl" histeq_filter_deps="gpl" hqdn3d_filter_deps="gpl" interlace_filter_deps="gpl" kerndeint_filter_deps="gpl" -ladspa_filter_deps="ladspa dlopen" +ladspa_filter_deps="ladspa libdl" mcdeint_filter_deps="avcodec gpl" movie_filter_deps="avcodec avformat" mpdecimate_filter_deps="gpl" @@ -5640,23 +5638,6 @@ check_code cc arm_neon.h "int16x8_t test = vdupq_n_s16(0)" && enable intrinsics_ check_ldflags -Wl,--as-needed check_ldflags -Wl,-z,noexecstack -if check_func dlopen && check_func dlsym; then -ldl= -elif check_func dlopen -ldl && check_func dlsym -ldl; then -ldl=-ldl -fi - -avisynth_demuxer_extralibs='$ldl' -cuda_extralibs='$ldl' -decklink_outdev_extralibs="$decklink_outdev_extralibs $ldl" -decklink_indev_extralibs="$decklink_indev_extralibs $ldl" -libndi_newtek_outdev_extralibs="$libndi_newtek_outdev_extralibs $ldl" -libndi_newtek_indev_extralibs="$libndi_newtek_indev_extralibs $ldl" -frei0r_filter_extralibs='$ldl' -frei0r_src_filter_extralibs='$ldl' -ladspa_filter_extralibs='$ldl' -nvenc_extralibs='$ldl' - if ! disabled network; then check_func getaddrinfo $network_extralibs check_func inet_aton $network_extralibs @@ -5889,6 +5870,9 @@ enabled zlib && check_lib zlib zlib.h zlibVersion -lz enabled bzlib && check_lib bzlib bzlib.h BZ2_bzlibVersion-lbz2 enabled lzma && check_lib lzma lzma.h lzma_version_number -llzma +# On some systems dynamic loading requires no extra linker flags +check_lib libdl dlfcn.h dlopen || { check_func dlsym -ldl && check_lib libdl dlfcn.h dlopen -ldl; } + check_lib libm math.h sin -lm && LIBM="-lm" atan2f_args=2 ==
[FFmpeg-cvslog] configure: Simplify dlopen check
ffmpeg | branch: master | Diego Biurrun | Tue Jan 24 13:57:52 2017 +0100| [d154bdd3d053128c908a994bb26e14bbc17f0e53] | committer: Diego Biurrun configure: Simplify dlopen check > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d154bdd3d053128c908a994bb26e14bbc17f0e53 --- configure | 26 +- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/configure b/configure index eb7b6c75f8..85ce5f581f 100755 --- a/configure +++ b/configure @@ -1612,7 +1612,6 @@ SYSTEM_FUNCS=" CommandLineToArgvW CoTaskMemFree CryptGenRandom -dlopen fcntl flt_lim fork @@ -,10 +2221,8 @@ wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel" wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel" # hardware-accelerated codecs -nvenc_deps_any="dlopen LoadLibrary" -nvenc_extralibs='$ldl' -omx_deps="dlopen pthreads" -omx_extralibs='$ldl' +nvenc_deps_any="libdl LoadLibrary" +omx_deps="libdl pthreads" omx_rpi_select="omx" qsvdec_select="qsv" qsvenc_select="qsv" @@ -2284,7 +2281,7 @@ mjpeg2jpeg_bsf_select="jpegtables" # external libraries avisynth_deps="LoadLibrary" -avxsynth_deps="dlopen" +avxsynth_deps="libdl" avisynth_demuxer_deps_any="avisynth avxsynth" avisynth_demuxer_select="riffdec" libdcadec_decoder_deps="libdcadec" @@ -2477,10 +2474,8 @@ deinterlace_vaapi_filter_deps="vaapi" delogo_filter_deps="gpl" drawtext_filter_deps="libfreetype" drawtext_filter_suggest="libfontconfig" -frei0r_filter_deps="frei0r dlopen" -frei0r_filter_extralibs='$ldl' -frei0r_src_filter_deps="frei0r dlopen" -frei0r_src_filter_extralibs='$ldl' +frei0r_filter_deps="frei0r libdl" +frei0r_src_filter_deps="frei0r libdl" hdcd_filter_deps="libhdcd" hqdn3d_filter_deps="gpl" interlace_filter_deps="gpl" @@ -4469,12 +4464,6 @@ check_code cc arm_neon.h "int16x8_t test = vdupq_n_s16(0)" && enable intrinsics_ check_ldflags -Wl,--as-needed -if check_func dlopen; then -ldl= -elif check_func dlopen -ldl; then -ldl=-ldl -fi - if ! disabled network; then check_func getaddrinfo $network_extralibs check_func inet_aton $network_extralibs @@ -4646,6 +4635,9 @@ enabled pthreads && disabled zlib || check_lib zlib zlib.h zlibVersion -lz disabled bzlib || check_lib bzlib bzlib.h BZ2_bzlibVersion -lbz2 +# On some systems dynamic loading requires no extra linker flags +check_lib libdl dlfcn.h dlopen || check_lib libdl dlfcn.h dlopen -ldl + check_lib libm math.h sin -lm && LIBM="-lm" atan2f_args=2 @@ -4658,7 +4650,7 @@ done # these are off by default, so fail if requested and not available enabled avisynth && require_header avisynth/avisynth_c.h -enabled avxsynth && require avxsynth "avxsynth/avxsynth_c.h dlfcn.h" dlopen -ldl +enabled avxsynth && require_header avxsynth/avxsynth_c.h enabled cuda && require cuda cuda.h cuInit -lcuda enabled frei0r&& require_header frei0r.h enabled gnutls&& require_pkg_config gnutls gnutls gnutls/gnutls.h gnutls_global_init ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'd7b2bb5391bf55e8f9421bff7feb4c1fddfac4bf'
ffmpeg | branch: master | James Almer | Wed Oct 4 01:03:29 2017 -0300| [ade77f9c13951ccf15709a91a377b9d970607bf5] | committer: James Almer Merge commit 'd7b2bb5391bf55e8f9421bff7feb4c1fddfac4bf' * commit 'd7b2bb5391bf55e8f9421bff7feb4c1fddfac4bf': h264_sei: Check actual presence of picture timing SEI message This commit is a noop, see 6a37abc59af4d87d4c55f7d812ac62d4d6a7464b Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ade77f9c13951ccf15709a91a377b9d970607bf5 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '21cca00dfeaec08ca93cf94ed33f4311cf1d8c84'
ffmpeg | branch: master | James Almer | Tue Oct 3 23:49:37 2017 -0300| [63b9fd75db40e576f9a4d6747b3ba54d1877c90d] | committer: James Almer Merge commit '21cca00dfeaec08ca93cf94ed33f4311cf1d8c84' * commit '21cca00dfeaec08ca93cf94ed33f4311cf1d8c84': build: Explicitly disable external libraries when not explicitly enabled This commit is a noop. Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=63b9fd75db40e576f9a4d6747b3ba54d1877c90d --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] build: Explicitly disable external libraries when not explicitly enabled
ffmpeg | branch: master | Diego Biurrun | Fri Feb 24 14:00:24 2017 +0100| [21cca00dfeaec08ca93cf94ed33f4311cf1d8c84] | committer: Diego Biurrun build: Explicitly disable external libraries when not explicitly enabled Leaving those variables in an undefined state allows them getting implicitly enabled when they are declared as weak dependencies of other components. In that case, the library check is not run and required linker flags are not added, resulting in a failing build. Fixes linking when enabling libfreetype without libfontconfig. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=21cca00dfeaec08ca93cf94ed33f4311cf1d8c84 --- configure | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 24e9fc337f..eb7b6c75f8 100755 --- a/configure +++ b/configure @@ -1296,7 +1296,6 @@ EXTERNAL_LIBRARY_LIST=" $EXTERNAL_LIBRARY_VERSION3_LIST avisynth avxsynth -bzlib frei0r gnutls libbs2b @@ -1327,6 +1326,10 @@ EXTERNAL_LIBRARY_LIST=" libxcb libxcb_shm libxcb_xfixes +" + +SYSTEM_LIBRARY_LIST=" +bzlib zlib " @@ -1388,6 +1391,7 @@ CONFIG_LIST=" $LIBRARY_LIST $PROGRAM_LIST $SUBSYSTEM_LIST +$SYSTEM_LIBRARY_LIST neon_clobber_test pic pod2man @@ -2574,6 +2578,9 @@ enable valgrind_backtrace # By default, enable only those hwaccels that have no external dependencies. enable d3d11va dxva2 vda vdpau +# Avoid external, non-system, libraries getting enabled by dependency resolution +disable $EXTERNAL_LIBRARY_LIST + # build settings SHFLAGS='-shared -Wl,-soname,$$(@F)' LIBPREF="lib" ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] h264_sei: Check actual presence of picture timing SEI message
ffmpeg | branch: master | Michael Niedermayer | Wed Feb 15 11:34:52 2017 -0500| [d7b2bb5391bf55e8f9421bff7feb4c1fddfac4bf] | committer: Vittorio Giovara h264_sei: Check actual presence of picture timing SEI message Signed-off-by: Michael Niedermayer Signed-off-by: Vittorio Giovara > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d7b2bb5391bf55e8f9421bff7feb4c1fddfac4bf --- libavcodec/h264_parser.c | 4 ++-- libavcodec/h264_sei.c| 3 +++ libavcodec/h264_sei.h| 1 + libavcodec/h264_slice.c | 5 +++-- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c index 6de37c0b55..22153bd4e0 100644 --- a/libavcodec/h264_parser.c +++ b/libavcodec/h264_parser.c @@ -402,7 +402,7 @@ static inline int parse_nal_units(AVCodecParserContext *s, } } -if (sps->pic_struct_present_flag) { +if (sps->pic_struct_present_flag && p->sei.picture_timing.present) { switch (p->sei.picture_timing.pic_struct) { case SEI_PIC_STRUCT_TOP_FIELD: case SEI_PIC_STRUCT_BOTTOM_FIELD: @@ -433,7 +433,7 @@ static inline int parse_nal_units(AVCodecParserContext *s, if (p->picture_structure == PICT_FRAME) { s->picture_structure = AV_PICTURE_STRUCTURE_FRAME; -if (sps->pic_struct_present_flag) { +if (sps->pic_struct_present_flag && p->sei.picture_timing.present) { switch (p->sei.picture_timing.pic_struct) { case SEI_PIC_STRUCT_TOP_BOTTOM: case SEI_PIC_STRUCT_TOP_BOTTOM_TOP: diff --git a/libavcodec/h264_sei.c b/libavcodec/h264_sei.c index 4bf001ae07..17f89cec61 100644 --- a/libavcodec/h264_sei.c +++ b/libavcodec/h264_sei.c @@ -44,6 +44,7 @@ void ff_h264_sei_uninit(H264SEIContext *h) h->picture_timing.dpb_output_delay = 0; h->picture_timing.cpb_removal_delay = -1; +h->picture_timing.present = 0; h->buffering_period.present= 0; h->frame_packing.present = 0; h->display_orientation.present = 0; @@ -109,6 +110,8 @@ static int decode_picture_timing(H264SEIPictureTiming *h, GetBitContext *gb, av_log(logctx, AV_LOG_DEBUG, "ct_type:%X pic_struct:%d\n", h->ct_type, h->pic_struct); } + +h->present = 1; return 0; } diff --git a/libavcodec/h264_sei.h b/libavcodec/h264_sei.h index 58f5ecc5a9..8815aa3899 100644 --- a/libavcodec/h264_sei.h +++ b/libavcodec/h264_sei.h @@ -50,6 +50,7 @@ typedef enum { } SEI_PicStructType; typedef struct H264SEIPictureTiming { +int present; SEI_PicStructType pic_struct; /** diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index f1f5fc05f9..427cbe618c 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -1004,7 +1004,7 @@ static int h264_export_frame_props(H264Context *h) /* Prioritize picture timing SEI information over used * decoding process if it exists. */ -if (sps->pic_struct_present_flag) { +if (sps->pic_struct_present_flag && h->sei.picture_timing.present) { H264SEIPictureTiming *pt = &h->sei.picture_timing; switch (pt->pic_struct) { case SEI_PIC_STRUCT_FRAME: @@ -1049,7 +1049,8 @@ static int h264_export_frame_props(H264Context *h) /* Derive top_field_first from field pocs. */ cur->f->top_field_first = cur->field_poc[0] < cur->field_poc[1]; } else { -if (cur->f->interlaced_frame || sps->pic_struct_present_flag) { +if (cur->f->interlaced_frame || +(sps->pic_struct_present_flag && h->sei.picture_timing.present)) { /* Use picture timing SEI information. Even if it is a * information of a past frame, better than nothing. */ if (h->sei.picture_timing.pic_struct == SEI_PIC_STRUCT_TOP_BOTTOM || ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] fate: Rename WMV8_DRM decoder tests to WMV3_DRM
ffmpeg | branch: master | Diego Biurrun | Thu Oct 18 12:34:23 2012 +0200| [e1a6d63c7eeff2f0ec8173546357bfaa9deecea4] | committer: Diego Biurrun fate: Rename WMV8_DRM decoder tests to WMV3_DRM The codec used in those files is WMV3/WMV9, not WMV2/WMV8. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e1a6d63c7eeff2f0ec8173546357bfaa9deecea4 --- tests/fate/microsoft.mak | 12 ++-- tests/ref/fate/{wmv8-drm => wmv3-drm-dec} | 0 tests/ref/fate/{wmv8-drm-nodec => wmv3-drm-nodec} | 0 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/fate/microsoft.mak b/tests/fate/microsoft.mak index 5b32c7fd74..5c0133d8fd 100644 --- a/tests/fate/microsoft.mak +++ b/tests/fate/microsoft.mak @@ -34,15 +34,15 @@ fate-msvideo1: $(FATE_MSVIDEO1) FATE_SAMPLES_AVCONV-$(call DEMDEC, ASF, MTS2) += fate-mts2 fate-mts2: CMD = framecrc -i $(TARGET_SAMPLES)/mts2/ScreenCapture.xesc -FATE_WMV8_DRM += fate-wmv8-drm +FATE_WMV3_DRM += fate-wmv3-drm-dec # discard last packet to avoid fails due to overread of VC-1 decoder -fate-wmv8-drm: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(TARGET_SAMPLES)/wmv8/wmv_drm.wmv -an -frames:v 129 +fate-wmv3-drm-dec: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(TARGET_SAMPLES)/wmv3/wmv_drm.wmv -an -frames:v 129 -FATE_WMV8_DRM += fate-wmv8-drm-nodec -fate-wmv8-drm-nodec: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(TARGET_SAMPLES)/wmv8/wmv_drm.wmv -c copy +FATE_WMV3_DRM += fate-wmv3-drm-nodec +fate-wmv3-drm-nodec: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(TARGET_SAMPLES)/wmv3/wmv_drm.wmv -c copy -FATE_SAMPLES_AVCONV-$(call DEMDEC, ASF, WMV3) += $(FATE_WMV8_DRM) -fate-wmv8_drm: $(FATE_WMV8_DRM) +FATE_SAMPLES_AVCONV-$(call DEMDEC, ASF, WMV3) += $(FATE_WMV3_DRM) +fate-wmv3-drm: $(FATE_WMV3_DRM) FATE_SAMPLES_AVCONV-$(call DEMDEC, ASF, WMV2) += fate-wmv8-intrax8 fate-wmv8-intrax8: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/wmv8/wmv8_x8intra.wmv -an diff --git a/tests/ref/fate/wmv8-drm b/tests/ref/fate/wmv3-drm-dec similarity index 100% rename from tests/ref/fate/wmv8-drm rename to tests/ref/fate/wmv3-drm-dec diff --git a/tests/ref/fate/wmv8-drm-nodec b/tests/ref/fate/wmv3-drm-nodec similarity index 100% rename from tests/ref/fate/wmv8-drm-nodec rename to tests/ref/fate/wmv3-drm-nodec ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'e1a6d63c7eeff2f0ec8173546357bfaa9deecea4'
ffmpeg | branch: master | James Almer | Tue Oct 3 23:36:25 2017 -0300| [9e009ee312ad25e91521d4c2043df879be56c989] | committer: James Almer Merge commit 'e1a6d63c7eeff2f0ec8173546357bfaa9deecea4' * commit 'e1a6d63c7eeff2f0ec8173546357bfaa9deecea4': fate: Rename WMV8_DRM decoder tests to WMV3_DRM Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9e009ee312ad25e91521d4c2043df879be56c989 --- tests/fate/microsoft.mak | 12 ++-- tests/ref/fate/{wmv8-drm => wmv3-drm-dec} | 0 tests/ref/fate/{wmv8-drm-nodec => wmv3-drm-nodec} | 0 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/fate/microsoft.mak b/tests/fate/microsoft.mak index e24d2c5b44..c450c0d8ea 100644 --- a/tests/fate/microsoft.mak +++ b/tests/fate/microsoft.mak @@ -40,15 +40,15 @@ fate-msvideo1: $(FATE_MSVIDEO1) FATE_SAMPLES_AVCONV-$(call DEMDEC, ASF, MTS2) += fate-mts2 fate-mts2: CMD = framecrc -i $(TARGET_SAMPLES)/mts2/ScreenCapture.xesc -FATE_WMV8_DRM += fate-wmv8-drm +FATE_WMV3_DRM += fate-wmv3-drm-dec # discard last packet to avoid fails due to overread of VC-1 decoder -fate-wmv8-drm: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(TARGET_SAMPLES)/wmv8/wmv_drm.wmv -an -frames:v 129 +fate-wmv3-drm-dec: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(TARGET_SAMPLES)/wmv8/wmv_drm.wmv -an -frames:v 129 -FATE_WMV8_DRM += fate-wmv8-drm-nodec -fate-wmv8-drm-nodec: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(TARGET_SAMPLES)/wmv8/wmv_drm.wmv -c:a copy -c:v copy +FATE_WMV3_DRM += fate-wmv3-drm-nodec +fate-wmv3-drm-nodec: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(TARGET_SAMPLES)/wmv8/wmv_drm.wmv -c:a copy -c:v copy -FATE_MICROSOFT-$(call DEMDEC, ASF, WMV3) += $(FATE_WMV8_DRM) -fate-wmv8_drm: $(FATE_WMV8_DRM) +FATE_SAMPLES_AVCONV-$(call DEMDEC, ASF, WMV3) += $(FATE_WMV3_DRM) +fate-wmv3-drm: $(FATE_WMV3_DRM) FATE_MICROSOFT-$(call DEMDEC, ASF, WMV2) += fate-wmv8-x8intra fate-wmv8-x8intra: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/wmv8/wmv8_x8intra.wmv -an diff --git a/tests/ref/fate/wmv8-drm b/tests/ref/fate/wmv3-drm-dec similarity index 100% rename from tests/ref/fate/wmv8-drm rename to tests/ref/fate/wmv3-drm-dec diff --git a/tests/ref/fate/wmv8-drm-nodec b/tests/ref/fate/wmv3-drm-nodec similarity index 100% rename from tests/ref/fate/wmv8-drm-nodec rename to tests/ref/fate/wmv3-drm-nodec == diff --cc tests/fate/microsoft.mak index e24d2c5b44,5c0133d8fd..c450c0d8ea --- a/tests/fate/microsoft.mak +++ b/tests/fate/microsoft.mak @@@ -40,18 -34,18 +40,18 @@@ fate-msvideo1: $(FATE_MSVIDEO1 FATE_SAMPLES_AVCONV-$(call DEMDEC, ASF, MTS2) += fate-mts2 fate-mts2: CMD = framecrc -i $(TARGET_SAMPLES)/mts2/ScreenCapture.xesc - FATE_WMV8_DRM += fate-wmv8-drm + FATE_WMV3_DRM += fate-wmv3-drm-dec # discard last packet to avoid fails due to overread of VC-1 decoder - fate-wmv8-drm: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(TARGET_SAMPLES)/wmv8/wmv_drm.wmv -an -frames:v 129 -fate-wmv3-drm-dec: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(TARGET_SAMPLES)/wmv3/wmv_drm.wmv -an -frames:v 129 ++fate-wmv3-drm-dec: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(TARGET_SAMPLES)/wmv8/wmv_drm.wmv -an -frames:v 129 - FATE_WMV8_DRM += fate-wmv8-drm-nodec - fate-wmv8-drm-nodec: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(TARGET_SAMPLES)/wmv8/wmv_drm.wmv -c:a copy -c:v copy + FATE_WMV3_DRM += fate-wmv3-drm-nodec -fate-wmv3-drm-nodec: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(TARGET_SAMPLES)/wmv3/wmv_drm.wmv -c copy ++fate-wmv3-drm-nodec: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(TARGET_SAMPLES)/wmv8/wmv_drm.wmv -c:a copy -c:v copy - FATE_MICROSOFT-$(call DEMDEC, ASF, WMV3) += $(FATE_WMV8_DRM) - fate-wmv8_drm: $(FATE_WMV8_DRM) + FATE_SAMPLES_AVCONV-$(call DEMDEC, ASF, WMV3) += $(FATE_WMV3_DRM) + fate-wmv3-drm: $(FATE_WMV3_DRM) -FATE_SAMPLES_AVCONV-$(call DEMDEC, ASF, WMV2) += fate-wmv8-intrax8 -fate-wmv8-intrax8: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/wmv8/wmv8_x8intra.wmv -an +FATE_MICROSOFT-$(call DEMDEC, ASF, WMV2) += fate-wmv8-x8intra +fate-wmv8-x8intra: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/wmv8/wmv8_x8intra.wmv -an FATE_VC1-$(CONFIG_VC1_DEMUXER) += fate-vc1_sa00040 fate-vc1_sa00040: CMD = framecrc -i $(TARGET_SAMPLES)/vc1/SA00040.vc1 ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] rtsp: Lazily set up the pollfd array once
ffmpeg | branch: master | Luca Barbato | Mon Feb 20 02:16:28 2017 +0100| [79331df362fb05a0d04ca9489c87e5b80077a3f4] | committer: Luca Barbato rtsp: Lazily set up the pollfd array once > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=79331df362fb05a0d04ca9489c87e5b80077a3f4 --- libavformat/rtsp.c | 53 ++--- libavformat/rtsp.h | 1 + 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 4ff12c63dd..141477bbbf 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -1913,7 +1913,6 @@ static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, RTSPState *rt = s->priv_data; RTSPStream *rtsp_st; int n, i, ret, tcp_fd, timeout_cnt = 0; -int max_p = 0; struct pollfd *p = rt->p; int *fds = NULL, fdsnum, fdsidx; @@ -1921,33 +1920,33 @@ static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, p = rt->p = av_malloc_array(2 * (rt->nb_rtsp_streams + 1), sizeof(struct pollfd)); if (!p) return AVERROR(ENOMEM); -} -if (rt->rtsp_hd) { -tcp_fd = ffurl_get_file_handle(rt->rtsp_hd); -p[max_p].fd = tcp_fd; -p[max_p++].events = POLLIN; -} else { -tcp_fd = -1; -} -for (i = 0; i < rt->nb_rtsp_streams; i++) { -rtsp_st = rt->rtsp_streams[i]; -if (rtsp_st->rtp_handle) { -if (ret = ffurl_get_multi_file_handle(rtsp_st->rtp_handle, - &fds, &fdsnum)) { -av_log(s, AV_LOG_ERROR, "Unable to recover rtp ports\n"); -return ret; -} -if (fdsnum != 2) { -av_log(s, AV_LOG_ERROR, - "Number of fds %d not supported\n", fdsnum); -return AVERROR_INVALIDDATA; -} -for (fdsidx = 0; fdsidx < fdsnum; fdsidx++) { -p[max_p].fd = fds[fdsidx]; -p[max_p++].events = POLLIN; +if (rt->rtsp_hd) { +tcp_fd = ffurl_get_file_handle(rt->rtsp_hd); +p[rt->max_p].fd = tcp_fd; +p[rt->max_p++].events = POLLIN; +} else { +tcp_fd = -1; +} +for (i = 0; i < rt->nb_rtsp_streams; i++) { +rtsp_st = rt->rtsp_streams[i]; +if (rtsp_st->rtp_handle) { +if (ret = ffurl_get_multi_file_handle(rtsp_st->rtp_handle, + &fds, &fdsnum)) { +av_log(s, AV_LOG_ERROR, "Unable to recover rtp ports\n"); +return ret; +} +if (fdsnum != 2) { +av_log(s, AV_LOG_ERROR, + "Number of fds %d not supported\n", fdsnum); +return AVERROR_INVALIDDATA; +} +for (fdsidx = 0; fdsidx < fdsnum; fdsidx++) { +p[rt->max_p].fd = fds[fdsidx]; +p[rt->max_p++].events = POLLIN; +} +av_free(fds); } -av_free(fds); } } @@ -1956,7 +1955,7 @@ static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, return AVERROR_EXIT; if (wait_end && wait_end - av_gettime_relative() < 0) return AVERROR(EAGAIN); -n = poll(p, max_p, POLL_TIMEOUT_MS); +n = poll(p, rt->max_p, POLL_TIMEOUT_MS); if (n > 0) { int j = 1 - (tcp_fd == -1); timeout_cnt = 0; diff --git a/libavformat/rtsp.h b/libavformat/rtsp.h index ff5b53207e..9dfbc5367f 100644 --- a/libavformat/rtsp.h +++ b/libavformat/rtsp.h @@ -352,6 +352,7 @@ typedef struct RTSPState { * Polling array for udp */ struct pollfd *p; +int max_p; /** * Whether the server supports the GET_PARAMETER method. ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '79331df362fb05a0d04ca9489c87e5b80077a3f4'
ffmpeg | branch: master | James Almer | Tue Oct 3 23:08:06 2017 -0300| [1e7b6e47d2752a91bcd6d0c91ed2aaf118eaeee9] | committer: James Almer Merge commit '79331df362fb05a0d04ca9489c87e5b80077a3f4' * commit '79331df362fb05a0d04ca9489c87e5b80077a3f4': rtsp: Lazily set up the pollfd array once Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1e7b6e47d2752a91bcd6d0c91ed2aaf118eaeee9 --- libavformat/rtsp.c | 53 ++--- libavformat/rtsp.h | 1 + 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 2d1df80ed0..375d0d9e14 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -1924,7 +1924,6 @@ static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, RTSPState *rt = s->priv_data; RTSPStream *rtsp_st; int n, i, ret, tcp_fd, timeout_cnt = 0; -int max_p = 0; struct pollfd *p = rt->p; int *fds = NULL, fdsnum, fdsidx; @@ -1932,33 +1931,33 @@ static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, p = rt->p = av_malloc_array(2 * (rt->nb_rtsp_streams + 1), sizeof(struct pollfd)); if (!p) return AVERROR(ENOMEM); -} -if (rt->rtsp_hd) { -tcp_fd = ffurl_get_file_handle(rt->rtsp_hd); -p[max_p].fd = tcp_fd; -p[max_p++].events = POLLIN; -} else { -tcp_fd = -1; -} -for (i = 0; i < rt->nb_rtsp_streams; i++) { -rtsp_st = rt->rtsp_streams[i]; -if (rtsp_st->rtp_handle) { -if (ret = ffurl_get_multi_file_handle(rtsp_st->rtp_handle, - &fds, &fdsnum)) { -av_log(s, AV_LOG_ERROR, "Unable to recover rtp ports\n"); -return ret; -} -if (fdsnum != 2) { -av_log(s, AV_LOG_ERROR, - "Number of fds %d not supported\n", fdsnum); -return AVERROR_INVALIDDATA; -} -for (fdsidx = 0; fdsidx < fdsnum; fdsidx++) { -p[max_p].fd = fds[fdsidx]; -p[max_p++].events = POLLIN; +if (rt->rtsp_hd) { +tcp_fd = ffurl_get_file_handle(rt->rtsp_hd); +p[rt->max_p].fd = tcp_fd; +p[rt->max_p++].events = POLLIN; +} else { +tcp_fd = -1; +} +for (i = 0; i < rt->nb_rtsp_streams; i++) { +rtsp_st = rt->rtsp_streams[i]; +if (rtsp_st->rtp_handle) { +if (ret = ffurl_get_multi_file_handle(rtsp_st->rtp_handle, + &fds, &fdsnum)) { +av_log(s, AV_LOG_ERROR, "Unable to recover rtp ports\n"); +return ret; +} +if (fdsnum != 2) { +av_log(s, AV_LOG_ERROR, + "Number of fds %d not supported\n", fdsnum); +return AVERROR_INVALIDDATA; +} +for (fdsidx = 0; fdsidx < fdsnum; fdsidx++) { +p[rt->max_p].fd = fds[fdsidx]; +p[rt->max_p++].events = POLLIN; +} +av_freep(&fds); } -av_freep(&fds); } } @@ -1967,7 +1966,7 @@ static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, return AVERROR_EXIT; if (wait_end && wait_end - av_gettime_relative() < 0) return AVERROR(EAGAIN); -n = poll(p, max_p, POLL_TIMEOUT_MS); +n = poll(p, rt->max_p, POLL_TIMEOUT_MS); if (n > 0) { int j = 1 - (tcp_fd == -1); timeout_cnt = 0; diff --git a/libavformat/rtsp.h b/libavformat/rtsp.h index 852fd6704e..36fdae492b 100644 --- a/libavformat/rtsp.h +++ b/libavformat/rtsp.h @@ -352,6 +352,7 @@ typedef struct RTSPState { * Polling array for udp */ struct pollfd *p; +int max_p; /** * Whether the server supports the GET_PARAMETER method. == diff --cc libavformat/rtsp.c index 2d1df80ed0,141477bbbf..375d0d9e14 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@@ -1932,33 -1920,33 +1931,33 @@@ static int udp_read_packet(AVFormatCont p = rt->p = av_malloc_array(2 * (rt->nb_rtsp_streams + 1), sizeof(struct pollfd)); if (!p) return AVERROR(ENOMEM); - } - if (rt->rtsp_hd) { - tcp_fd = ffurl_get_file_handle(rt->rtsp_hd); - p[max_p].fd = tcp_fd; - p[max_p++].events = POLLIN; - } else { - tcp_fd = -1; - } - for (i = 0; i < rt->nb_rtsp_streams; i++) { - rtsp_st = rt->rtsp_streams[i]; - if (rtsp_st->rtp_handle) { - if (ret = ffurl_get_multi_file_handle(rtsp_st->rtp_handle, - &fds, &fdsnum))
[FFmpeg-cvslog] Merge commit 'd8f36a6aa33e9f904fa47caa0329ddaac391cd7d'
ffmpeg | branch: master | James Almer | Tue Oct 3 23:03:10 2017 -0300| [85fb45586804c2d69c845d145adfc22e35520257] | committer: James Almer Merge commit 'd8f36a6aa33e9f904fa47caa0329ddaac391cd7d' * commit 'd8f36a6aa33e9f904fa47caa0329ddaac391cd7d': nvenc: Fix the preset mapping list This commit is a noop. Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=85fb45586804c2d69c845d145adfc22e35520257 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] nvenc: Fix the preset mapping list
ffmpeg | branch: master | Ben Chang | Fri Feb 24 14:39:21 2017 -0800| [d8f36a6aa33e9f904fa47caa0329ddaac391cd7d] | committer: Luca Barbato nvenc: Fix the preset mapping list The map is a sparse array and does not need a empty element to terminate it. The empty element is stored after the last one inserted in the list, overwriting whichever element was next with zeros. Bug-Id: 1029 Signed-off-by: Luca Barbato > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d8f36a6aa33e9f904fa47caa0329ddaac391cd7d --- libavcodec/nvenc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c index ffa8a0a2d8..fcd496b93f 100644 --- a/libavcodec/nvenc.c +++ b/libavcodec/nvenc.c @@ -495,8 +495,7 @@ static int nvenc_map_preset(NVENCContext *ctx) PRESET(LOSSLESS_HP, NVENC_LOSSLESS), PRESET_ALIAS(SLOW, HQ, NVENC_TWO_PASSES), PRESET_ALIAS(MEDIUM, HQ,NVENC_ONE_PASS), -PRESET_ALIAS(FAST, HP, NVENC_ONE_PASS), -{ { 0 } } +PRESET_ALIAS(FAST, HP, NVENC_ONE_PASS) }; GUIDTuple *t = &presets[ctx->preset]; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] fate: Make null comparison method more useful
ffmpeg | branch: master | Diego Biurrun | Mon Oct 15 15:38:29 2012 +0200| [698ac8f9cabd053f2c19346a77b92f8eae4218fc] | committer: Diego Biurrun fate: Make null comparison method more useful This allows dropping /dev/null as reference value when no output is generated. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=698ac8f9cabd053f2c19346a77b92f8eae4218fc --- tests/fate-run.sh | 2 +- tests/fate/libavcodec.mak | 4 +--- tests/fate/libavutil.mak | 13 ++--- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/tests/fate-run.sh b/tests/fate-run.sh index 43fcee02ab..2403a6 100755 --- a/tests/fate-run.sh +++ b/tests/fate-run.sh @@ -203,7 +203,7 @@ if [ $err -gt 128 ]; then test "${sig}" = "${sig%[!A-Za-z]*}" || unset sig fi -if test -e "$ref" || test $cmp = "oneline" ; then +if test -e "$ref" || test $cmp = "oneline" || test $cmp = "null" ; then case $cmp in diff) diff -u -b "$ref" "$outfile">$cmpfile ;; oneoff) oneoff "$ref" "$outfile">$cmpfile ;; diff --git a/tests/fate/libavcodec.mak b/tests/fate/libavcodec.mak index d656acefb7..0bbe57223f 100644 --- a/tests/fate/libavcodec.mak +++ b/tests/fate/libavcodec.mak @@ -1,13 +1,12 @@ FATE_LIBAVCODEC-$(CONFIG_GOLOMB) += fate-golomb fate-golomb: libavcodec/tests/golomb$(EXESUF) fate-golomb: CMD = run libavcodec/tests/golomb -fate-golomb: REF = /dev/null +fate-golomb: CMP = null FATE_LIBAVCODEC-$(CONFIG_IDCTDSP) += fate-idct8x8 fate-idct8x8: libavcodec/tests/dct$(EXESUF) fate-idct8x8: CMD = run libavcodec/tests/dct -i fate-idct8x8: CMP = null -fate-idct8x8: REF = /dev/null FATE_LIBAVCODEC-$(CONFIG_IIRFILTER) += fate-iirfilter fate-iirfilter: libavcodec/tests/iirfilter$(EXESUF) @@ -17,7 +16,6 @@ FATE_LIBAVCODEC-$(CONFIG_RANGECODER) += fate-rangecoder fate-rangecoder: libavcodec/tests/rangecoder$(EXESUF) fate-rangecoder: CMD = run libavcodec/tests/rangecoder fate-rangecoder: CMP = null -fate-rangecoder: REF = /dev/null FATE-$(CONFIG_AVCODEC) += $(FATE_LIBAVCODEC-yes) fate-libavcodec: $(FATE_LIBAVCODEC-yes) diff --git a/tests/fate/libavutil.mak b/tests/fate/libavutil.mak index 8b17411370..e0a669310b 100644 --- a/tests/fate/libavutil.mak +++ b/tests/fate/libavutil.mak @@ -1,12 +1,12 @@ FATE_LIBAVUTIL += fate-adler32 fate-adler32: libavutil/tests/adler32$(EXESUF) fate-adler32: CMD = run libavutil/tests/adler32 -fate-adler32: REF = /dev/null +fate-adler32: CMP = null FATE_LIBAVUTIL += fate-aes fate-aes: libavutil/tests/aes$(EXESUF) fate-aes: CMD = run libavutil/tests/aes -fate-aes: REF = /dev/null +fate-aes: CMP = null FATE_LIBAVUTIL += fate-avstring fate-avstring: libavutil/tests/avstring$(EXESUF) @@ -23,12 +23,12 @@ fate-blowfish: CMD = run libavutil/tests/blowfish FATE_LIBAVUTIL += fate-cpu fate-cpu: libavutil/tests/cpu$(EXESUF) fate-cpu: CMD = run libavutil/tests/cpu $(CPUFLAGS:%=-c%) $(THREADS:%=-t%) -fate-cpu: REF = /dev/null +fate-cpu: CMP = null FATE_LIBAVUTIL-$(HAVE_THREADS) += fate-cpu_init fate-cpu_init: libavutil/tests/cpu_init$(EXESUF) fate-cpu_init: CMD = run libavutil/tests/cpu_init -fate-cpu_init: REF = /dev/null +fate-cpu_init: CMP = null FATE_LIBAVUTIL += fate-crc fate-crc: libavutil/tests/crc$(EXESUF) @@ -37,7 +37,7 @@ fate-crc: CMD = run libavutil/tests/crc FATE_LIBAVUTIL += fate-des fate-des: libavutil/tests/des$(EXESUF) fate-des: CMD = run libavutil/tests/des -fate-des: REF = /dev/null +fate-des: CMP = null FATE_LIBAVUTIL += fate-eval fate-eval: libavutil/tests/eval$(EXESUF) @@ -51,7 +51,6 @@ FATE_LIBAVUTIL += fate-float-dsp fate-float-dsp: libavutil/tests/float_dsp$(EXESUF) fate-float-dsp: CMD = run libavutil/tests/float_dsp fate-float-dsp: CMP = null -fate-float-dsp: REF = /dev/null FATE_LIBAVUTIL += fate-hmac fate-hmac: libavutil/tests/hmac$(EXESUF) @@ -72,7 +71,7 @@ fate-sha: CMD = run libavutil/tests/sha FATE_LIBAVUTIL += fate-tree fate-tree: libavutil/tests/tree$(EXESUF) fate-tree: CMD = run libavutil/tests/tree -fate-tree: REF = /dev/null +fate-tree: CMP = null FATE_LIBAVUTIL += fate-xtea fate-xtea: libavutil/tests/xtea$(EXESUF) ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '698ac8f9cabd053f2c19346a77b92f8eae4218fc'
ffmpeg | branch: master | James Almer | Tue Oct 3 22:59:08 2017 -0300| [e1f01ce8d20bbc53f5d5841fdff125cc04516da9] | committer: James Almer Merge commit '698ac8f9cabd053f2c19346a77b92f8eae4218fc' * commit '698ac8f9cabd053f2c19346a77b92f8eae4218fc': fate: Make null comparison method more useful Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e1f01ce8d20bbc53f5d5841fdff125cc04516da9 --- tests/fate-run.sh | 2 +- tests/fate/api.mak| 4 tests/fate/checkasm.mak | 2 +- tests/fate/fft.mak| 6 +++--- tests/fate/libavcodec.mak | 17 - tests/fate/libavutil.mak | 22 +++--- 6 files changed, 20 insertions(+), 33 deletions(-) diff --git a/tests/fate-run.sh b/tests/fate-run.sh index c5480c7ede..4641640d42 100755 --- a/tests/fate-run.sh +++ b/tests/fate-run.sh @@ -367,7 +367,7 @@ if [ $err -gt 128 ]; then test "${sig}" = "${sig%[!A-Za-z]*}" || unset sig fi -if test -e "$ref" || test $cmp = "oneline" || test $cmp = "grep" ; then +if test -e "$ref" || test $cmp = "oneline" || test $cmp = "null" || test $cmp = "grep" ; then case $cmp in diff) diff -u -b "$ref" "$outfile">$cmpfile ;; rawdiff)diff -u"$ref" "$outfile">$cmpfile ;; diff --git a/tests/fate/api.mak b/tests/fate/api.mak index ccf080857c..eb656e68a3 100644 --- a/tests/fate/api.mak +++ b/tests/fate/api.mak @@ -2,13 +2,11 @@ FATE_API_LIBAVCODEC-$(call ENCDEC, FLAC, FLAC) += fate-api-flac fate-api-flac: $(APITESTSDIR)/api-flac-test$(EXESUF) fate-api-flac: CMD = run $(APITESTSDIR)/api-flac-test fate-api-flac: CMP = null -fate-api-flac: REF = /dev/null FATE_API_SAMPLES_LIBAVFORMAT-$(call DEMDEC, FLV, FLV) += fate-api-band fate-api-band: $(APITESTSDIR)/api-band-test$(EXESUF) fate-api-band: CMD = run $(APITESTSDIR)/api-band-test $(TARGET_SAMPLES)/mpeg4/resize_down-up.h263 fate-api-band: CMP = null -fate-api-band: REF = /dev/null FATE_API_SAMPLES_LIBAVFORMAT-$(call DEMDEC, H264, H264) += fate-api-h264 fate-api-h264: $(APITESTSDIR)/api-h264-test$(EXESUF) @@ -18,7 +16,6 @@ FATE_API_LIBAVFORMAT-$(call DEMDEC, FLV, FLV) += fate-api-seek fate-api-seek: $(APITESTSDIR)/api-seek-test$(EXESUF) fate-lavf-flv_fmt fate-api-seek: CMD = run $(APITESTSDIR)/api-seek-test $(TARGET_PATH)/tests/data/lavf/lavf.flv 0 720 fate-api-seek: CMP = null -fate-api-seek: REF = /dev/null FATE_API_SAMPLES_LIBAVFORMAT-$(call DEMDEC, IMAGE2, PNG) += fate-api-png-codec-param fate-api-png-codec-param: $(APITESTSDIR)/api-codec-param-test$(EXESUF) @@ -32,7 +29,6 @@ FATE_API-$(HAVE_THREADS) += fate-api-threadmessage fate-api-threadmessage: $(APITESTSDIR)/api-threadmessage-test$(EXESUF) fate-api-threadmessage: CMD = run $(APITESTSDIR)/api-threadmessage-test 3 10 30 50 2 20 40 fate-api-threadmessage: CMP = null -fate-api-threadmessage: REF = /dev/null FATE_API_SAMPLES-$(CONFIG_AVFORMAT) += $(FATE_API_SAMPLES_LIBAVFORMAT-yes) diff --git a/tests/fate/checkasm.mak b/tests/fate/checkasm.mak index 7e8623985c..fbf60e9848 100644 --- a/tests/fate/checkasm.mak +++ b/tests/fate/checkasm.mak @@ -28,7 +28,7 @@ FATE_CHECKASM = fate-checkasm-aacpsdsp \ $(FATE_CHECKASM): tests/checkasm/checkasm$(EXESUF) $(FATE_CHECKASM): CMD = run tests/checkasm/checkasm --test=$(@:fate-checkasm-%=%) -$(FATE_CHECKASM): REF = /dev/null +$(FATE_CHECKASM): CMP = null FATE-$(CONFIG_STATIC) += $(FATE_CHECKASM) fate-checkasm: $(FATE_CHECKASM) diff --git a/tests/fate/fft.mak b/tests/fate/fft.mak index 6ca430d020..c7c26cd634 100644 --- a/tests/fate/fft.mak +++ b/tests/fate/fft.mak @@ -46,7 +46,7 @@ FATE_FFT_FIXED_ALL = $(FATE_FFT_FIXED-yes) $(FATE_MDCT_FIXED-yes) $(FATE_FFT_FIXED_ALL): libavcodec/tests/fft-fixed$(EXESUF) $(FATE_FFT_FIXED_ALL): CMD = run libavcodec/tests/fft-fixed $(CPUFLAGS:%=-c%) $(ARGS) -$(FATE_FFT_ALL) $(FATE_FFT_FIXED_ALL): REF = /dev/null +$(FATE_FFT_ALL) $(FATE_FFT_FIXED_ALL): CMP = null define DEF_FFT_FIXED32 FATE_FFT_FIXED32 += fate-fft-fixed32-$(1) fate-ifft-fixed32-$(1) \ @@ -63,7 +63,7 @@ $(foreach N, 4 5 6 7 8 9 10 11 12, $(eval $(call DEF_FFT_FIXED32,$(N fate-fft-fixed32: $(FATE_FFT_FIXED32) $(FATE_FFT_FIXED32): libavcodec/tests/fft-fixed32$(EXESUF) $(FATE_FFT_FIXED32): CMD = run libavcodec/tests/fft-fixed32 $(CPUFLAGS:%=-c%) $(ARGS) -$(FATE_FFT_FIXED32): REF = /dev/null +$(FATE_FFT_FIXED32): CMP = null define DEF_AV_FFT FATE_AV_DCT-$(CONFIG_DCT) += fate-av-dct1d-$(1) fate-av-idct1d-$(1) @@ -92,7 +92,7 @@ FATE_AV_FFT_ALL = $(FATE_AV_DCT-yes) $(FATE_AV_FFT-yes) $(FATE_AV_MDCT-yes) $(FA $(FATE_AV_FFT_ALL): libavcodec/tests/avfft$(EXESUF) $(FATE_AV_FFT_ALL): CMD = run libavcodec/tests/avfft $(CPUFLAGS:%=-c%) $(ARGS) -$(FATE_AV_FFT_ALL): REF = /dev/null +$(FATE_AV_FFT_ALL): CMP = null fate-dct: fate-dct-float fate-fft: fate-fft-float fate-fft-fixed fate-fft-fixed32 diff --git a/tests/fate/libavcodec.mak b/tests/fate/libavcodec.mak index fc807
[FFmpeg-cvslog] build: Drop DOC_ prefix from EXAMPLES-related variables
ffmpeg | branch: master | Diego Biurrun | Wed Feb 22 14:18:47 2017 +0100| [c483398bb7ef66f61ed2dcb09f3d6160683da0eb] | committer: Diego Biurrun build: Drop DOC_ prefix from EXAMPLES-related variables > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c483398bb7ef66f61ed2dcb09f3d6160683da0eb --- doc/examples/Makefile | 46 +++--- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/doc/examples/Makefile b/doc/examples/Makefile index c42c68fd54..40c9557fbc 100644 --- a/doc/examples/Makefile +++ b/doc/examples/Makefile @@ -1,31 +1,31 @@ -DOC_EXAMPLES-$(CONFIG_DECODE_AUDIO_EXAMPLE) += decode_audio -DOC_EXAMPLES-$(CONFIG_DECODE_VIDEO_EXAMPLE) += decode_video -DOC_EXAMPLES-$(CONFIG_ENCODE_AUDIO_EXAMPLE) += encode_audio -DOC_EXAMPLES-$(CONFIG_ENCODE_VIDEO_EXAMPLE) += encode_video -DOC_EXAMPLES-$(CONFIG_FILTER_AUDIO_EXAMPLE) += filter_audio -DOC_EXAMPLES-$(CONFIG_METADATA_EXAMPLE) += metadata -DOC_EXAMPLES-$(CONFIG_OUTPUT_EXAMPLE) += output -DOC_EXAMPLES-$(CONFIG_QSVDEC_EXAMPLE) += qsvdec -DOC_EXAMPLES-$(CONFIG_TRANSCODE_AAC_EXAMPLE)+= transcode_aac - -DOC_EXAMPLES := $(DOC_EXAMPLES-yes:%=doc/examples/%$(EXESUF)) -ALL_DOC_EXAMPLES := $(DOC_EXAMPLES) $(DOC_EXAMPLES-:%=doc/examples/%$(EXESUF)) -PROGS+= $(DOC_EXAMPLES) - -$(foreach P,$(DOC_EXAMPLES),$(eval OBJS-$(P:%$(EXESUF)=%) = $(P:%$(EXESUF)=%).o)) -$(DOC_EXAMPLES): %$(EXESUF): %.o - -examples: $(DOC_EXAMPLES) - -$(DOC_EXAMPLES:%$(EXESUF)=%.o): | doc/examples +EXAMPLES-$(CONFIG_DECODE_AUDIO_EXAMPLE) += decode_audio +EXAMPLES-$(CONFIG_DECODE_VIDEO_EXAMPLE) += decode_video +EXAMPLES-$(CONFIG_ENCODE_AUDIO_EXAMPLE) += encode_audio +EXAMPLES-$(CONFIG_ENCODE_VIDEO_EXAMPLE) += encode_video +EXAMPLES-$(CONFIG_FILTER_AUDIO_EXAMPLE) += filter_audio +EXAMPLES-$(CONFIG_METADATA_EXAMPLE) += metadata +EXAMPLES-$(CONFIG_OUTPUT_EXAMPLE) += output +EXAMPLES-$(CONFIG_QSVDEC_EXAMPLE) += qsvdec +EXAMPLES-$(CONFIG_TRANSCODE_AAC_EXAMPLE)+= transcode_aac + +EXAMPLES := $(EXAMPLES-yes:%=doc/examples/%$(EXESUF)) +ALL_EXAMPLES := $(EXAMPLES) $(EXAMPLES-:%=doc/examples/%$(EXESUF)) +PROGS+= $(EXAMPLES) + +$(foreach P,$(EXAMPLES),$(eval OBJS-$(P:%$(EXESUF)=%) = $(P:%$(EXESUF)=%).o)) +$(EXAMPLES): %$(EXESUF): %.o + +examples: $(EXAMPLES) + +$(EXAMPLES:%$(EXESUF)=%.o): | doc/examples OBJDIRS += doc/examples -DOXY_INPUT += $(addprefix $(SRC_PATH)/, $(DOC_EXAMPLES:%$(EXESUF)=%.c)) +DOXY_INPUT += $(addprefix $(SRC_PATH)/, $(EXAMPLES:%$(EXESUF)=%.c)) clean:: - $(RM) $(ALL_DOC_EXAMPLES) + $(RM) $(ALL_EXAMPLES) $(RM) $(CLEANSUFFIXES:%=doc/examples/%) --include $(wildcard $(DOC_EXAMPLES:%$(EXESUF)=%.d)) +-include $(wildcard $(EXAMPLES:%$(EXESUF)=%.d)) .PHONY: examples ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'c483398bb7ef66f61ed2dcb09f3d6160683da0eb'
ffmpeg | branch: master | James Almer | Tue Oct 3 22:11:58 2017 -0300| [749b35799cc5fad2b8e430ffde1265675be558c0] | committer: James Almer Merge commit 'c483398bb7ef66f61ed2dcb09f3d6160683da0eb' * commit 'c483398bb7ef66f61ed2dcb09f3d6160683da0eb': build: Drop DOC_ prefix from EXAMPLES-related variables Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=749b35799cc5fad2b8e430ffde1265675be558c0 --- doc/examples/Makefile | 68 +-- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/doc/examples/Makefile b/doc/examples/Makefile index ff958d33c6..af000d9ddb 100644 --- a/doc/examples/Makefile +++ b/doc/examples/Makefile @@ -1,50 +1,50 @@ -DOC_EXAMPLES-$(CONFIG_AVIO_DIR_CMD_EXAMPLE) += avio_dir_cmd -DOC_EXAMPLES-$(CONFIG_AVIO_READING_EXAMPLE) += avio_reading -DOC_EXAMPLES-$(CONFIG_DECODE_AUDIO_EXAMPLE) += decode_audio -DOC_EXAMPLES-$(CONFIG_DECODE_VIDEO_EXAMPLE) += decode_video -DOC_EXAMPLES-$(CONFIG_DEMUXING_DECODING_EXAMPLE) += demuxing_decoding -DOC_EXAMPLES-$(CONFIG_ENCODE_AUDIO_EXAMPLE) += encode_audio -DOC_EXAMPLES-$(CONFIG_ENCODE_VIDEO_EXAMPLE) += encode_video -DOC_EXAMPLES-$(CONFIG_EXTRACT_MVS_EXAMPLE) += extract_mvs -DOC_EXAMPLES-$(CONFIG_FILTER_AUDIO_EXAMPLE) += filter_audio -DOC_EXAMPLES-$(CONFIG_FILTERING_AUDIO_EXAMPLE) += filtering_audio -DOC_EXAMPLES-$(CONFIG_FILTERING_VIDEO_EXAMPLE) += filtering_video -DOC_EXAMPLES-$(CONFIG_HTTP_MULTICLIENT_EXAMPLE) += http_multiclient -DOC_EXAMPLES-$(CONFIG_HW_DECODE_EXAMPLE) += hw_decode -DOC_EXAMPLES-$(CONFIG_METADATA_EXAMPLE) += metadata -DOC_EXAMPLES-$(CONFIG_MUXING_EXAMPLE)+= muxing -DOC_EXAMPLES-$(CONFIG_QSVDEC_EXAMPLE)+= qsvdec -DOC_EXAMPLES-$(CONFIG_REMUXING_EXAMPLE) += remuxing -DOC_EXAMPLES-$(CONFIG_RESAMPLING_AUDIO_EXAMPLE) += resampling_audio -DOC_EXAMPLES-$(CONFIG_SCALING_VIDEO_EXAMPLE) += scaling_video -DOC_EXAMPLES-$(CONFIG_TRANSCODE_AAC_EXAMPLE) += transcode_aac -DOC_EXAMPLES-$(CONFIG_TRANSCODING_EXAMPLE) += transcoding - -DOC_EXAMPLES := $(DOC_EXAMPLES-yes:%=doc/examples/%$(PROGSSUF)$(EXESUF)) -DOC_EXAMPLES_G := $(DOC_EXAMPLES-yes:%=doc/examples/%$(PROGSSUF)_g$(EXESUF)) -ALL_DOC_EXAMPLES := $(DOC_EXAMPLES) $(DOC_EXAMPLES-:%=doc/examples/%$(PROGSSUF)$(EXESUF)) -ALL_DOC_EXAMPLES_G := $(DOC_EXAMPLES_G) $(DOC_EXAMPLES-:%=doc/examples/%$(PROGSSUF)_g$(EXESUF)) -PROGS += $(DOC_EXAMPLES) +EXAMPLES-$(CONFIG_AVIO_DIR_CMD_EXAMPLE) += avio_dir_cmd +EXAMPLES-$(CONFIG_AVIO_READING_EXAMPLE) += avio_reading +EXAMPLES-$(CONFIG_DECODE_AUDIO_EXAMPLE) += decode_audio +EXAMPLES-$(CONFIG_DECODE_VIDEO_EXAMPLE) += decode_video +EXAMPLES-$(CONFIG_DEMUXING_DECODING_EXAMPLE) += demuxing_decoding +EXAMPLES-$(CONFIG_ENCODE_AUDIO_EXAMPLE) += encode_audio +EXAMPLES-$(CONFIG_ENCODE_VIDEO_EXAMPLE) += encode_video +EXAMPLES-$(CONFIG_EXTRACT_MVS_EXAMPLE) += extract_mvs +EXAMPLES-$(CONFIG_FILTER_AUDIO_EXAMPLE) += filter_audio +EXAMPLES-$(CONFIG_FILTERING_AUDIO_EXAMPLE) += filtering_audio +EXAMPLES-$(CONFIG_FILTERING_VIDEO_EXAMPLE) += filtering_video +EXAMPLES-$(CONFIG_HTTP_MULTICLIENT_EXAMPLE) += http_multiclient +EXAMPLES-$(CONFIG_HW_DECODE_EXAMPLE) += hw_decode +EXAMPLES-$(CONFIG_METADATA_EXAMPLE) += metadata +EXAMPLES-$(CONFIG_MUXING_EXAMPLE)+= muxing +EXAMPLES-$(CONFIG_QSVDEC_EXAMPLE)+= qsvdec +EXAMPLES-$(CONFIG_REMUXING_EXAMPLE) += remuxing +EXAMPLES-$(CONFIG_RESAMPLING_AUDIO_EXAMPLE) += resampling_audio +EXAMPLES-$(CONFIG_SCALING_VIDEO_EXAMPLE) += scaling_video +EXAMPLES-$(CONFIG_TRANSCODE_AAC_EXAMPLE) += transcode_aac +EXAMPLES-$(CONFIG_TRANSCODING_EXAMPLE) += transcoding + +EXAMPLES := $(EXAMPLES-yes:%=doc/examples/%$(PROGSSUF)$(EXESUF)) +EXAMPLES_G := $(EXAMPLES-yes:%=doc/examples/%$(PROGSSUF)_g$(EXESUF)) +ALL_EXAMPLES := $(EXAMPLES) $(EXAMPLES-:%=doc/examples/%$(PROGSSUF)$(EXESUF)) +ALL_EXAMPLES_G := $(EXAMPLES_G) $(EXAMPLES-:%=doc/examples/%$(PROGSSUF)_g$(EXESUF)) +PROGS += $(EXAMPLES) EXAMPLES_FILES := $(wildcard $(SRC_PATH)/doc/examples/*.c) $(SRC_PATH)/doc/examples/README EXAMPLE_MAKEFILE := $(SRC_PATH)/doc/examples/Makefile -$(foreach P,$(DOC_EXAMPLES),$(eval OBJS-$(P:%$(PROGSSUF)$(EXESUF)=%) = $(P:%$(PROGSSUF)$(EXESUF)=%).o)) -$(DOC_EXAMPLES_G): %$(PROGSSUF)_g$(EXESUF): %.o +$(foreach P,$(EXAMPLES),$(eval OBJS-$(P:%$(PROGSSUF)$(EXESUF)=%) = $(P:%$(PROGSSUF)$(EXESUF)=%).o)) +$(EXAMPLES_G): %$(PROGSSUF)_g$(EXESUF): %.o -examples: $(DOC_EXAMPLES) +examples: $(EXAMPLES) -$(DOC_EXAMPLES:%$(PROGSSUF)$(EXESUF)=%.o): | doc/examples +$(EXAMPLES:%$(PROGSSUF)$(EXESUF)=%.o): | doc/examples OBJDIRS += doc/examples -DOXY_INPUT += $(DOC_EXAMPLES:%$(PROGSSUF)$(EXESUF)=%.c) +DOXY_INPUT += $(EXAMPLES:%$(PROGSSUF)$(EXESUF)=%.c) examplesclean: - $(RM) $(ALL_DOC_EXAMPLES) $(ALL_DOC_EXAMPLES_G)
[FFmpeg-cvslog] Merge commit 'b9b82151a1aaa8bbf389853a6142c4e101d80b86'
ffmpeg | branch: master | James Almer | Tue Oct 3 21:37:37 2017 -0300| [7c74efeaf89111d686f928cbf1fe20d9a768d31f] | committer: James Almer Merge commit 'b9b82151a1aaa8bbf389853a6142c4e101d80b86' * commit 'b9b82151a1aaa8bbf389853a6142c4e101d80b86': rtsp: Move the pollfd setup out of the for loop Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7c74efeaf89111d686f928cbf1fe20d9a768d31f --- libavformat/rtsp.c | 56 +++--- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 736559eab3..7407014f5e 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -1931,39 +1931,39 @@ static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, struct pollfd *p = rt->p; int *fds = NULL, fdsnum, fdsidx; +if (rt->rtsp_hd) { +tcp_fd = ffurl_get_file_handle(rt->rtsp_hd); +p[max_p].fd = tcp_fd; +p[max_p++].events = POLLIN; +} else { +tcp_fd = -1; +} +for (i = 0; i < rt->nb_rtsp_streams; i++) { +rtsp_st = rt->rtsp_streams[i]; +if (rtsp_st->rtp_handle) { +if (ret = ffurl_get_multi_file_handle(rtsp_st->rtp_handle, + &fds, &fdsnum)) { +av_log(s, AV_LOG_ERROR, "Unable to recover rtp ports\n"); +return ret; +} +if (fdsnum != 2) { +av_log(s, AV_LOG_ERROR, + "Number of fds %d not supported\n", fdsnum); +return AVERROR_INVALIDDATA; +} +for (fdsidx = 0; fdsidx < fdsnum; fdsidx++) { +p[max_p].fd = fds[fdsidx]; +p[max_p++].events = POLLIN; +} +av_freep(&fds); +} +} + for (;;) { if (ff_check_interrupt(&s->interrupt_callback)) return AVERROR_EXIT; if (wait_end && wait_end - av_gettime_relative() < 0) return AVERROR(EAGAIN); -max_p = 0; -if (rt->rtsp_hd) { -tcp_fd = ffurl_get_file_handle(rt->rtsp_hd); -p[max_p].fd = tcp_fd; -p[max_p++].events = POLLIN; -} else { -tcp_fd = -1; -} -for (i = 0; i < rt->nb_rtsp_streams; i++) { -rtsp_st = rt->rtsp_streams[i]; -if (rtsp_st->rtp_handle) { -if (ret = ffurl_get_multi_file_handle(rtsp_st->rtp_handle, - &fds, &fdsnum)) { -av_log(s, AV_LOG_ERROR, "Unable to recover rtp ports\n"); -return ret; -} -if (fdsnum != 2) { -av_log(s, AV_LOG_ERROR, - "Number of fds %d not supported\n", fdsnum); -return AVERROR_INVALIDDATA; -} -for (fdsidx = 0; fdsidx < fdsnum; fdsidx++) { -p[max_p].fd = fds[fdsidx]; -p[max_p++].events = POLLIN; -} -av_freep(&fds); -} -} n = poll(p, max_p, POLL_TIMEOUT_MS); if (n > 0) { int j = 1 - (tcp_fd == -1); == diff --cc libavformat/rtsp.c index 736559eab3,e4cbae43a2..7407014f5e --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@@ -1931,6 -1920,34 +1931,34 @@@ static int udp_read_packet(AVFormatCont struct pollfd *p = rt->p; int *fds = NULL, fdsnum, fdsidx; + if (rt->rtsp_hd) { + tcp_fd = ffurl_get_file_handle(rt->rtsp_hd); + p[max_p].fd = tcp_fd; + p[max_p++].events = POLLIN; + } else { + tcp_fd = -1; + } + for (i = 0; i < rt->nb_rtsp_streams; i++) { + rtsp_st = rt->rtsp_streams[i]; + if (rtsp_st->rtp_handle) { + if (ret = ffurl_get_multi_file_handle(rtsp_st->rtp_handle, + &fds, &fdsnum)) { + av_log(s, AV_LOG_ERROR, "Unable to recover rtp ports\n"); + return ret; + } + if (fdsnum != 2) { + av_log(s, AV_LOG_ERROR, +"Number of fds %d not supported\n", fdsnum); + return AVERROR_INVALIDDATA; + } + for (fdsidx = 0; fdsidx < fdsnum; fdsidx++) { + p[max_p].fd = fds[fdsidx]; + p[max_p++].events = POLLIN; + } -av_free(fds); ++av_freep(&fds); + } + } + for (;;) { if (ff_check_interrupt(&s->interrupt_callback)) return AVERROR_EXIT; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '5263f464db5f2df74ddf712f6d1221b24475fa8e'
ffmpeg | branch: master | James Almer | Tue Oct 3 21:40:22 2017 -0300| [c2916564d8e469e74074b3c8af325af8ac334a63] | committer: James Almer Merge commit '5263f464db5f2df74ddf712f6d1221b24475fa8e' * commit '5263f464db5f2df74ddf712f6d1221b24475fa8e': rtsp: Lazily allocate the pollfd array Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c2916564d8e469e74074b3c8af325af8ac334a63 --- libavformat/rtsp.c | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 7407014f5e..2d1df80ed0 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -670,7 +670,6 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1, int ff_sdp_parse(AVFormatContext *s, const char *content) { -RTSPState *rt = s->priv_data; const char *p; int letter, i; /* Some SDP lines, particularly for Realmedia or ASF RTSP streams, @@ -717,8 +716,6 @@ int ff_sdp_parse(AVFormatContext *s, const char *content) av_freep(&s1->default_exclude_source_addrs[i]); av_freep(&s1->default_exclude_source_addrs); -rt->p = av_malloc_array(rt->nb_rtsp_streams + 1, sizeof(struct pollfd) * 2); -if (!rt->p) return AVERROR(ENOMEM); return 0; } #endif /* CONFIG_RTPDEC */ @@ -1931,6 +1928,12 @@ static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, struct pollfd *p = rt->p; int *fds = NULL, fdsnum, fdsidx; +if (!p) { +p = rt->p = av_malloc_array(2 * (rt->nb_rtsp_streams + 1), sizeof(struct pollfd)); +if (!p) +return AVERROR(ENOMEM); +} + if (rt->rtsp_hd) { tcp_fd = ffurl_get_file_handle(rt->rtsp_hd); p[max_p].fd = tcp_fd; == diff --cc libavformat/rtsp.c index 7407014f5e,4ff12c63dd..2d1df80ed0 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@@ -711,14 -702,12 +710,12 @@@ int ff_sdp_parse(AVFormatContext *s, co } for (i = 0; i < s1->nb_default_include_source_addrs; i++) -av_free(s1->default_include_source_addrs[i]); +av_freep(&s1->default_include_source_addrs[i]); av_freep(&s1->default_include_source_addrs); for (i = 0; i < s1->nb_default_exclude_source_addrs; i++) -av_free(s1->default_exclude_source_addrs[i]); +av_freep(&s1->default_exclude_source_addrs[i]); av_freep(&s1->default_exclude_source_addrs); - rt->p = av_malloc_array(rt->nb_rtsp_streams + 1, sizeof(struct pollfd) * 2); - if (!rt->p) return AVERROR(ENOMEM); return 0; } #endif /* CONFIG_RTPDEC */ ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] rtsp: Move the pollfd setup out of the for loop
ffmpeg | branch: master | Luca Barbato | Mon Feb 20 00:50:34 2017 +0100| [b9b82151a1aaa8bbf389853a6142c4e101d80b86] | committer: Luca Barbato rtsp: Move the pollfd setup out of the for loop > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b9b82151a1aaa8bbf389853a6142c4e101d80b86 --- libavformat/rtsp.c | 56 +++--- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index e75670867a..e4cbae43a2 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -1920,39 +1920,39 @@ static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, struct pollfd *p = rt->p; int *fds = NULL, fdsnum, fdsidx; +if (rt->rtsp_hd) { +tcp_fd = ffurl_get_file_handle(rt->rtsp_hd); +p[max_p].fd = tcp_fd; +p[max_p++].events = POLLIN; +} else { +tcp_fd = -1; +} +for (i = 0; i < rt->nb_rtsp_streams; i++) { +rtsp_st = rt->rtsp_streams[i]; +if (rtsp_st->rtp_handle) { +if (ret = ffurl_get_multi_file_handle(rtsp_st->rtp_handle, + &fds, &fdsnum)) { +av_log(s, AV_LOG_ERROR, "Unable to recover rtp ports\n"); +return ret; +} +if (fdsnum != 2) { +av_log(s, AV_LOG_ERROR, + "Number of fds %d not supported\n", fdsnum); +return AVERROR_INVALIDDATA; +} +for (fdsidx = 0; fdsidx < fdsnum; fdsidx++) { +p[max_p].fd = fds[fdsidx]; +p[max_p++].events = POLLIN; +} +av_free(fds); +} +} + for (;;) { if (ff_check_interrupt(&s->interrupt_callback)) return AVERROR_EXIT; if (wait_end && wait_end - av_gettime_relative() < 0) return AVERROR(EAGAIN); -max_p = 0; -if (rt->rtsp_hd) { -tcp_fd = ffurl_get_file_handle(rt->rtsp_hd); -p[max_p].fd = tcp_fd; -p[max_p++].events = POLLIN; -} else { -tcp_fd = -1; -} -for (i = 0; i < rt->nb_rtsp_streams; i++) { -rtsp_st = rt->rtsp_streams[i]; -if (rtsp_st->rtp_handle) { -if (ret = ffurl_get_multi_file_handle(rtsp_st->rtp_handle, - &fds, &fdsnum)) { -av_log(s, AV_LOG_ERROR, "Unable to recover rtp ports\n"); -return ret; -} -if (fdsnum != 2) { -av_log(s, AV_LOG_ERROR, - "Number of fds %d not supported\n", fdsnum); -return AVERROR_INVALIDDATA; -} -for (fdsidx = 0; fdsidx < fdsnum; fdsidx++) { -p[max_p].fd = fds[fdsidx]; -p[max_p++].events = POLLIN; -} -av_free(fds); -} -} n = poll(p, max_p, POLL_TIMEOUT_MS); if (n > 0) { int j = 1 - (tcp_fd == -1); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '150e99d694f33ab9ad678834964909aa315d14a1'
ffmpeg | branch: master | James Almer | Tue Oct 3 21:34:08 2017 -0300| [c244d4af43a160cfff84e368b5591f2a411eb001] | committer: James Almer Merge commit '150e99d694f33ab9ad678834964909aa315d14a1' * commit '150e99d694f33ab9ad678834964909aa315d14a1': rtsp: Factor out packet reading Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c244d4af43a160cfff84e368b5591f2a411eb001 --- libavformat/rtsp.c | 66 +- 1 file changed, 40 insertions(+), 26 deletions(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 0bd72dc5ce..736559eab3 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -2054,6 +2054,44 @@ static int pick_stream(AVFormatContext *s, RTSPStream **rtsp_st, return AVERROR(EAGAIN); } +static int read_packet(AVFormatContext *s, + RTSPStream **rtsp_st, RTSPStream *first_queue_st, + int64_t wait_end) +{ +RTSPState *rt = s->priv_data; +int len; + +switch(rt->lower_transport) { +default: +#if CONFIG_RTSP_DEMUXER +case RTSP_LOWER_TRANSPORT_TCP: +len = ff_rtsp_tcp_read_packet(s, rtsp_st, rt->recvbuf, RECVBUF_SIZE); +break; +#endif +case RTSP_LOWER_TRANSPORT_UDP: +case RTSP_LOWER_TRANSPORT_UDP_MULTICAST: +len = udp_read_packet(s, rtsp_st, rt->recvbuf, RECVBUF_SIZE, wait_end); +if (len > 0 && (*rtsp_st)->transport_priv && rt->transport == RTSP_TRANSPORT_RTP) +ff_rtp_check_and_send_back_rr((*rtsp_st)->transport_priv, (*rtsp_st)->rtp_handle, NULL, len); +break; +case RTSP_LOWER_TRANSPORT_CUSTOM: +if (first_queue_st && rt->transport == RTSP_TRANSPORT_RTP && +wait_end && wait_end < av_gettime_relative()) +len = AVERROR(EAGAIN); +else +len = avio_read_partial(s->pb, rt->recvbuf, RECVBUF_SIZE); +len = pick_stream(s, rtsp_st, rt->recvbuf, len); +if (len > 0 && (*rtsp_st)->transport_priv && rt->transport == RTSP_TRANSPORT_RTP) +ff_rtp_check_and_send_back_rr((*rtsp_st)->transport_priv, NULL, s->pb, len); +break; +} + +if (len == 0) +return AVERROR_EOF; + +return len; +} + int ff_rtsp_fetch_packet(AVFormatContext *s, AVPacket *pkt) { RTSPState *rt = s->priv_data; @@ -2118,30 +2156,7 @@ redo: return AVERROR(ENOMEM); } -switch(rt->lower_transport) { -default: -#if CONFIG_RTSP_DEMUXER -case RTSP_LOWER_TRANSPORT_TCP: -len = ff_rtsp_tcp_read_packet(s, &rtsp_st, rt->recvbuf, RECVBUF_SIZE); -break; -#endif -case RTSP_LOWER_TRANSPORT_UDP: -case RTSP_LOWER_TRANSPORT_UDP_MULTICAST: -len = udp_read_packet(s, &rtsp_st, rt->recvbuf, RECVBUF_SIZE, wait_end); -if (len > 0 && rtsp_st->transport_priv && rt->transport == RTSP_TRANSPORT_RTP) -ff_rtp_check_and_send_back_rr(rtsp_st->transport_priv, rtsp_st->rtp_handle, NULL, len); -break; -case RTSP_LOWER_TRANSPORT_CUSTOM: -if (first_queue_st && rt->transport == RTSP_TRANSPORT_RTP && -wait_end && wait_end < av_gettime_relative()) -len = AVERROR(EAGAIN); -else -len = avio_read_partial(s->pb, rt->recvbuf, RECVBUF_SIZE); -len = pick_stream(s, &rtsp_st, rt->recvbuf, len); -if (len > 0 && rtsp_st->transport_priv && rt->transport == RTSP_TRANSPORT_RTP) -ff_rtp_check_and_send_back_rr(rtsp_st->transport_priv, NULL, s->pb, len); -break; -} +len = read_packet(s, &rtsp_st, first_queue_st, wait_end); if (len == AVERROR(EAGAIN) && first_queue_st && rt->transport == RTSP_TRANSPORT_RTP) { av_log(s, AV_LOG_WARNING, @@ -2152,8 +2167,7 @@ redo: } if (len < 0) return len; -if (len == 0) -return AVERROR_EOF; + if (rt->transport == RTSP_TRANSPORT_RDT) { ret = ff_rdt_parse_packet(rtsp_st->transport_priv, pkt, &rt->recvbuf, len); } else if (rt->transport == RTSP_TRANSPORT_RTP) { == diff --cc libavformat/rtsp.c index 0bd72dc5ce,e75670867a..736559eab3 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@@ -2054,6 -2043,44 +2054,44 @@@ static int pick_stream(AVFormatContext return AVERROR(EAGAIN); } + static int read_packet(AVFormatContext *s, +RTSPStream **rtsp_st, RTSPStream *first_queue_st, +int64_t wait_end) + { + RTSPState *rt = s->priv_data; + int len; + + switch(rt->lower_transport) { + default: + #if CONFIG_RTSP_DEMUXER + case RTSP_LOWER_TRANSPORT_TCP: + len = ff_rtsp_tcp_read_packet(s, rtsp_st, rt->recvbuf, RECVBUF_SIZE); + break; + #endif + case RTSP_LOWER_TRANSPORT_UDP: + case RTSP_LOWER_TRANSPORT_UDP_MULTICAST: + len = udp_read_packet(s, rtsp_st, rt->recvbuf, RECVBUF_SIZE, wait_end); + if (len >
[FFmpeg-cvslog] rtsp: Factor out packet reading
ffmpeg | branch: master | Luca Barbato | Mon Feb 20 00:04:59 2017 +0100| [150e99d694f33ab9ad678834964909aa315d14a1] | committer: Luca Barbato rtsp: Factor out packet reading > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=150e99d694f33ab9ad678834964909aa315d14a1 --- libavformat/rtsp.c | 66 +- 1 file changed, 40 insertions(+), 26 deletions(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 7e5985719e..e75670867a 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -2043,6 +2043,44 @@ static int pick_stream(AVFormatContext *s, RTSPStream **rtsp_st, return AVERROR(EAGAIN); } +static int read_packet(AVFormatContext *s, + RTSPStream **rtsp_st, RTSPStream *first_queue_st, + int64_t wait_end) +{ +RTSPState *rt = s->priv_data; +int len; + +switch(rt->lower_transport) { +default: +#if CONFIG_RTSP_DEMUXER +case RTSP_LOWER_TRANSPORT_TCP: +len = ff_rtsp_tcp_read_packet(s, rtsp_st, rt->recvbuf, RECVBUF_SIZE); +break; +#endif +case RTSP_LOWER_TRANSPORT_UDP: +case RTSP_LOWER_TRANSPORT_UDP_MULTICAST: +len = udp_read_packet(s, rtsp_st, rt->recvbuf, RECVBUF_SIZE, wait_end); +if (len > 0 && (*rtsp_st)->transport_priv && rt->transport == RTSP_TRANSPORT_RTP) +ff_rtp_check_and_send_back_rr((*rtsp_st)->transport_priv, (*rtsp_st)->rtp_handle, NULL, len); +break; +case RTSP_LOWER_TRANSPORT_CUSTOM: +if (first_queue_st && rt->transport == RTSP_TRANSPORT_RTP && +wait_end && wait_end < av_gettime_relative()) +len = AVERROR(EAGAIN); +else +len = ffio_read_partial(s->pb, rt->recvbuf, RECVBUF_SIZE); +len = pick_stream(s, rtsp_st, rt->recvbuf, len); +if (len > 0 && (*rtsp_st)->transport_priv && rt->transport == RTSP_TRANSPORT_RTP) +ff_rtp_check_and_send_back_rr((*rtsp_st)->transport_priv, NULL, s->pb, len); +break; +} + +if (len == 0) +return AVERROR_EOF; + +return len; +} + int ff_rtsp_fetch_packet(AVFormatContext *s, AVPacket *pkt) { RTSPState *rt = s->priv_data; @@ -2107,30 +2145,7 @@ redo: return AVERROR(ENOMEM); } -switch(rt->lower_transport) { -default: -#if CONFIG_RTSP_DEMUXER -case RTSP_LOWER_TRANSPORT_TCP: -len = ff_rtsp_tcp_read_packet(s, &rtsp_st, rt->recvbuf, RECVBUF_SIZE); -break; -#endif -case RTSP_LOWER_TRANSPORT_UDP: -case RTSP_LOWER_TRANSPORT_UDP_MULTICAST: -len = udp_read_packet(s, &rtsp_st, rt->recvbuf, RECVBUF_SIZE, wait_end); -if (len > 0 && rtsp_st->transport_priv && rt->transport == RTSP_TRANSPORT_RTP) -ff_rtp_check_and_send_back_rr(rtsp_st->transport_priv, rtsp_st->rtp_handle, NULL, len); -break; -case RTSP_LOWER_TRANSPORT_CUSTOM: -if (first_queue_st && rt->transport == RTSP_TRANSPORT_RTP && -wait_end && wait_end < av_gettime_relative()) -len = AVERROR(EAGAIN); -else -len = ffio_read_partial(s->pb, rt->recvbuf, RECVBUF_SIZE); -len = pick_stream(s, &rtsp_st, rt->recvbuf, len); -if (len > 0 && rtsp_st->transport_priv && rt->transport == RTSP_TRANSPORT_RTP) -ff_rtp_check_and_send_back_rr(rtsp_st->transport_priv, NULL, s->pb, len); -break; -} +len = read_packet(s, &rtsp_st, first_queue_st, wait_end); if (len == AVERROR(EAGAIN) && first_queue_st && rt->transport == RTSP_TRANSPORT_RTP) { av_log(s, AV_LOG_WARNING, @@ -2141,8 +2156,7 @@ redo: } if (len < 0) return len; -if (len == 0) -return AVERROR_EOF; + if (rt->transport == RTSP_TRANSPORT_RDT) { ret = ff_rdt_parse_packet(rtsp_st->transport_priv, pkt, &rt->recvbuf, len); } else if (rt->transport == RTSP_TRANSPORT_RTP) { ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] rtsp: Lazily allocate the pollfd array
ffmpeg | branch: master | Luca Barbato | Mon Feb 20 02:11:58 2017 +0100| [5263f464db5f2df74ddf712f6d1221b24475fa8e] | committer: Luca Barbato rtsp: Lazily allocate the pollfd array And use av_malloc_array. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5263f464db5f2df74ddf712f6d1221b24475fa8e --- libavformat/rtsp.c | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index e4cbae43a2..4ff12c63dd 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -662,7 +662,6 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1, int ff_sdp_parse(AVFormatContext *s, const char *content) { -RTSPState *rt = s->priv_data; const char *p; int letter, i; /* Some SDP lines, particularly for Realmedia or ASF RTSP streams, @@ -709,8 +708,6 @@ int ff_sdp_parse(AVFormatContext *s, const char *content) av_free(s1->default_exclude_source_addrs[i]); av_freep(&s1->default_exclude_source_addrs); -rt->p = av_malloc(sizeof(struct pollfd)*2*(rt->nb_rtsp_streams+1)); -if (!rt->p) return AVERROR(ENOMEM); return 0; } #endif /* CONFIG_RTPDEC */ @@ -1920,6 +1917,12 @@ static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, struct pollfd *p = rt->p; int *fds = NULL, fdsnum, fdsidx; +if (!p) { +p = rt->p = av_malloc_array(2 * (rt->nb_rtsp_streams + 1), sizeof(struct pollfd)); +if (!p) +return AVERROR(ENOMEM); +} + if (rt->rtsp_hd) { tcp_fd = ffurl_get_file_handle(rt->rtsp_hd); p[max_p].fd = tcp_fd; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '4141a5a240fba44b4b4a1c488c279d7dd8a11ec7'
ffmpeg | branch: master | James Almer | Tue Oct 3 21:28:07 2017 -0300| [a2b0602cdad8da62c137f7db07b608d6bbbcefaa] | committer: James Almer Merge commit '4141a5a240fba44b4b4a1c488c279d7dd8a11ec7' * commit '4141a5a240fba44b4b4a1c488c279d7dd8a11ec7': Use modern avconv syntax for codec selection in documentation and tests Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a2b0602cdad8da62c137f7db07b608d6bbbcefaa --- doc/encoders.texi| 2 +- doc/faq.texi | 8 +++ doc/filters.texi | 2 +- doc/indevs.texi | 6 ++--- doc/outdevs.texi | 6 ++--- tests/fate/demux.mak | 54 ++-- tests/fate/ffmpeg.mak| 2 +- tests/fate/filter-audio.mak | 2 +- tests/fate/h264.mak | 2 +- tests/fate/hevc.mak | 2 +- tests/fate/libswresample.mak | 18 +++ tests/fate/microsoft.mak | 2 +- tests/fate/mp3.mak | 14 ++-- tests/fate/mpc.mak | 4 ++-- tests/fate/mxf.mak | 6 ++--- tests/fate/prores.mak| 2 +- tests/fate/utvideo.mak | 2 +- tests/fate/vcodec.mak| 26 ++--- tests/fate/video.mak | 6 ++--- tests/fate/vpx.mak | 2 +- tests/fate/vqf.mak | 2 +- 21 files changed, 85 insertions(+), 85 deletions(-) Diff: http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commitdiff;h=a2b0602cdad8da62c137f7db07b608d6bbbcefaa ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Use modern avconv syntax for codec selection in documentation and tests
ffmpeg | branch: master | Diego Biurrun | Thu Oct 18 10:15:07 2012 +0200| [4141a5a240fba44b4b4a1c488c279d7dd8a11ec7] | committer: Diego Biurrun Use modern avconv syntax for codec selection in documentation and tests > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4141a5a240fba44b4b4a1c488c279d7dd8a11ec7 --- doc/encoders.texi| 2 +- doc/faq.texi | 8 doc/filters.texi | 4 ++-- tests/fate-run.sh| 4 ++-- tests/fate/demux.mak | 34 +- tests/fate/h264.mak | 2 +- tests/fate/microsoft.mak | 2 +- tests/fate/mp3.mak | 14 +++--- tests/fate/mpc.mak | 4 ++-- tests/fate/utvideo.mak | 2 +- tests/fate/video.mak | 4 ++-- tests/fate/vqf.mak | 2 +- tests/lavf-regression.sh | 28 ++-- 13 files changed, 55 insertions(+), 55 deletions(-) diff --git a/doc/encoders.texi b/doc/encoders.texi index bc5b33660e..41b8398127 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -38,7 +38,7 @@ always faster, just that one or the other may be better suited to a particular system. The floating-point encoder will generally produce better quality audio for a given bitrate. The @var{ac3_fixed} encoder is not the default codec for any of the output formats, so it must be specified explicitly -using the option @code{-acodec ac3_fixed} in order to use it. +using the option @code{-c:a ac3_fixed} in order to use it. @subsection AC-3 Metadata diff --git a/doc/faq.texi b/doc/faq.texi index b400124f69..f3d55bde95 100644 --- a/doc/faq.texi +++ b/doc/faq.texi @@ -234,7 +234,7 @@ mkfifo intermediate2.mpg avconv -i input1.avi -y intermediate1.mpg < /dev/null & avconv -i input2.avi -y intermediate2.mpg < /dev/null & cat intermediate1.mpg intermediate2.mpg |\ -avconv -f mpeg -i - -c:v mpeg4 -acodec libmp3lame output.avi +avconv -f mpeg -i - -c:v mpeg4 -c:a libmp3lame output.avi @end example Similarly, the yuv4mpegpipe format, and the raw video, raw audio codecs also @@ -253,13 +253,13 @@ mkfifo temp2.a mkfifo temp2.v mkfifo all.a mkfifo all.v -avconv -i input1.flv -vn -f u16le -acodec pcm_s16le -ac 2 -ar 44100 - > temp1.a < /dev/null & -avconv -i input2.flv -vn -f u16le -acodec pcm_s16le -ac 2 -ar 44100 - > temp2.a < /dev/null & +avconv -i input1.flv -vn -f u16le -c:a pcm_s16le -ac 2 -ar 44100 - > temp1.a < /dev/null & +avconv -i input2.flv -vn -f u16le -c:a pcm_s16le -ac 2 -ar 44100 - > temp2.a < /dev/null & avconv -i input1.flv -an -f yuv4mpegpipe - > temp1.v < /dev/null & @{ avconv -i input2.flv -an -f yuv4mpegpipe - < /dev/null | tail -n +2 > temp2.v ; @} & cat temp1.a temp2.a > all.a & cat temp1.v temp2.v > all.v & -avconv -f u16le -acodec pcm_s16le -ac 2 -ar 44100 -i all.a \ +avconv -f u16le -c:a pcm_s16le -ac 2 -ar 44100 -i all.a \ -f yuv4mpegpipe -i all.v \ -y output.flv rm temp[12].[av] all.[av] diff --git a/doc/filters.texi b/doc/filters.texi index 954765f08e..947fd7915c 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -661,10 +661,10 @@ avconv -i HDCD16.flac -af hdcd OUT24.flac When using the filter with WAV, note that the default encoding for WAV is 16-bit, so the resulting 20-bit stream will be truncated back to 16-bit. Use something -like @command{-acodec pcm_s24le} after the filter to get 24-bit PCM output. +like @command{-c:a pcm_s24le} after the filter to get 24-bit PCM output. @example avconv -i HDCD16.wav -af hdcd OUT16.wav -avconv -i HDCD16.wav -af hdcd -acodec pcm_s24le OUT24.wav +avconv -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav @end example The filter accepts the following options: diff --git a/tests/fate-run.sh b/tests/fate-run.sh index 623fd635a0..43fcee02ab 100755 --- a/tests/fate-run.sh +++ b/tests/fate-run.sh @@ -164,8 +164,8 @@ video_filter(){ label=${test#filter-} raw_src="${target_path}/tests/vsynth1/%02d.pgm" printf '%-20s' $label -avconv $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src \ -$FLAGS $ENC_OPTS -vf "$filters" -vcodec rawvideo -frames:v 5 $* -f nut md5: +avconv $DEC_OPTS -f image2 -c:v pgmyuv -i $raw_src \ +$FLAGS $ENC_OPTS -vf "$filters" -c:v rawvideo -frames:v 5 $* -f nut md5: } pixfmts(){ diff --git a/tests/fate/demux.mak b/tests/fate/demux.mak index d529341a5d..44c4d6efa4 100644 --- a/tests/fate/demux.mak +++ b/tests/fate/demux.mak @@ -1,26 +1,26 @@ FATE_SAMPLES_AVCONV-$(call DEMDEC, AAC, AAC) += fate-adts-demux -fate-adts-demux: CMD = crc -i $(TARGET_SAMPLES)/aac/ct_faac-adts.aac -acodec copy +fate-adts-demux: CMD = crc -i $(TARGET_SAMPLES)/aac/ct_faac-adts.aac -c:a copy FATE_SAMPLES_AVCONV-$(CONFIG_AEA_DEMUXER) += fate-aea-demux -fate-aea-demux: CMD = crc -i $(TARGET_SAMPLES)/aea/chirp.aea -acodec copy +fate-aea-demux: CMD = crc -i $(TARGET_SAMPLES)/aea/chirp.aea -c:a copy FATE_SAMPLES_AVCONV-$(CONFIG_BINK_DEMUXER) += fate-bink-demux -fate-bink-demux: CMD = crc -i $(TARGET_SAMPLES)/bink/Snd0a7d9b58.dee -vn -a
[FFmpeg-cvslog] avformat/mp3dec: Fix definition of MIDDLE_BITS
ffmpeg | branch: master | Ingo Brückl | Tue Oct 3 15:50:37 2017 +0200| [08c751309670854c73b58f234a83f4ba679370be] | committer: Michael Niedermayer avformat/mp3dec: Fix definition of MIDDLE_BITS The number of bits from bit #m to #n is n - m plus 1. Signed-off-by: Ingo Brückl Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=08c751309670854c73b58f234a83f4ba679370be --- libavformat/mp3dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/mp3dec.c b/libavformat/mp3dec.c index 0924a57843..a5c4f2ea12 100644 --- a/libavformat/mp3dec.c +++ b/libavformat/mp3dec.c @@ -142,7 +142,7 @@ static void mp3_parse_info_tag(AVFormatContext *s, AVStream *st, MPADecodeHeader *c, uint32_t spf) { #define LAST_BITS(k, n) ((k) & ((1 << (n)) - 1)) -#define MIDDLE_BITS(k, m, n) LAST_BITS((k) >> (m), ((n) - (m))) +#define MIDDLE_BITS(k, m, n) LAST_BITS((k) >> (m), ((n) - (m) + 1)) uint16_t crc; uint32_t v; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/dxv: Check for end of input in dxv_decompress_dxt5()
ffmpeg | branch: master | Michael Niedermayer | Sat Sep 30 18:54:07 2017 +0200| [d662143f064636f11d92083cd9aa4f907cf97d59] | committer: Michael Niedermayer avcodec/dxv: Check for end of input in dxv_decompress_dxt5() Fixes: Timeout Fixes: 3291/clusterfuzz-testcase-4630024655208448 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d662143f064636f11d92083cd9aa4f907cf97d59 --- libavcodec/dxv.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavcodec/dxv.c b/libavcodec/dxv.c index 6f3c075d06..529e211258 100644 --- a/libavcodec/dxv.c +++ b/libavcodec/dxv.c @@ -197,6 +197,8 @@ static int dxv_decompress_dxt5(AVCodecContext *avctx) AV_WL32(ctx->tex_data + 4 * pos, prev); pos++; } else { +if (bytestream2_get_bytes_left(gbc) < 1) +return AVERROR_INVALIDDATA; if (state == 0) { value = bytestream2_get_le32(gbc); state = 16; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] mpegdec: fix redundant dummy frames issue of interlaced clips
ffmpeg | branch: master | Zhong Li | Sat Sep 30 11:22:57 2017 +0800| [fd7cb86468cc63b5bda203d74964584281318cda] | committer: Michael Niedermayer mpegdec: fix redundant dummy frames issue of interlaced clips It is to fix https://trac.ffmpeg.org/ticket/6677. Actucally it is a regression of commit 99e07a4453732058df90885f80b3db3b4f37cb3c which always inserts a dummy frame when decode the first key field picture. Signed-off-by: Zhong Li Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fd7cb86468cc63b5bda203d74964584281318cda --- libavcodec/mpegvideo.c | 6 +- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index 82b94253ae..c4089972f0 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -1283,8 +1283,7 @@ int ff_mpv_frame_start(MpegEncContext *s, AVCodecContext *avctx) s->pict_type, s->droppable); if ((!s->last_picture_ptr || !s->last_picture_ptr->f->buf[0]) && -(s->pict_type != AV_PICTURE_TYPE_I || - s->picture_structure != PICT_FRAME)) { +(s->pict_type != AV_PICTURE_TYPE_I)) { int h_chroma_shift, v_chroma_shift; av_pix_fmt_get_chroma_sub_sample(s->avctx->pix_fmt, &h_chroma_shift, &v_chroma_shift); @@ -1294,9 +1293,6 @@ int ff_mpv_frame_start(MpegEncContext *s, AVCodecContext *avctx) else if (s->pict_type != AV_PICTURE_TYPE_I) av_log(avctx, AV_LOG_ERROR, "warning: first frame is no keyframe\n"); -else if (s->picture_structure != PICT_FRAME) -av_log(avctx, AV_LOG_DEBUG, - "allocate dummy last picture for field based first keyframe\n"); /* Allocate a dummy frame */ i = ff_find_unused_picture(s->avctx, s->picture, 0); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/truemotion2: Fix integer overflows in tm2_high_chroma()
ffmpeg | branch: master | Michael Niedermayer | Sat Sep 30 18:54:06 2017 +0200| [44874b4f5ec2c605c70393573b9d85540ebc2d81] | committer: Michael Niedermayer avcodec/truemotion2: Fix integer overflows in tm2_high_chroma() Fixes: runtime error: signed integer overflow: -1408475220 + -1408475220 cannot be represented in type 'int' Fixes: 3336/clusterfuzz-testcase-minimized-5656839179993088 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=44874b4f5ec2c605c70393573b9d85540ebc2d81 --- libavcodec/truemotion2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/truemotion2.c b/libavcodec/truemotion2.c index a463a925fd..f077f0e4bd 100644 --- a/libavcodec/truemotion2.c +++ b/libavcodec/truemotion2.c @@ -465,7 +465,7 @@ static inline void tm2_apply_deltas(TM2Context *ctx, int* Y, int stride, int *de } } -static inline void tm2_high_chroma(int *data, int stride, int *last, int *CD, int *deltas) +static inline void tm2_high_chroma(int *data, int stride, int *last, unsigned *CD, int *deltas) { int i, j; for (j = 0; j < 2; j++) { ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/aacdec_template: Clear tns present flag on error
ffmpeg | branch: master | Michael Niedermayer | Sat Sep 30 18:54:05 2017 +0200| [dcf9bae4a93f54cb5767bc97db4a809efd396f8b] | committer: Michael Niedermayer avcodec/aacdec_template: Clear tns present flag on error Fixes: 3444/clusterfuzz-testcase-minimized-6270352105668608 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=dcf9bae4a93f54cb5767bc97db4a809efd396f8b --- libavcodec/aacdec_template.c | 44 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c index 3558f1f550..082cc908d2 100644 --- a/libavcodec/aacdec_template.c +++ b/libavcodec/aacdec_template.c @@ -1999,16 +1999,17 @@ static int decode_ics(AACContext *ac, SingleChannelElement *sce, global_gain = get_bits(gb, 8); if (!common_window && !scale_flag) { -if (decode_ics_info(ac, ics, gb) < 0) -return AVERROR_INVALIDDATA; +ret = decode_ics_info(ac, ics, gb); +if (ret < 0) +goto fail; } if ((ret = decode_band_types(ac, sce->band_type, sce->band_type_run_end, gb, ics)) < 0) -return ret; +goto fail; if ((ret = decode_scalefactors(ac, sce->sf, gb, global_gain, ics, sce->band_type, sce->band_type_run_end)) < 0) -return ret; +goto fail; pulse_present = 0; if (!scale_flag) { @@ -2016,37 +2017,48 @@ static int decode_ics(AACContext *ac, SingleChannelElement *sce, if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) { av_log(ac->avctx, AV_LOG_ERROR, "Pulse tool not allowed in eight short sequence.\n"); -return AVERROR_INVALIDDATA; +ret = AVERROR_INVALIDDATA; +goto fail; } if (decode_pulses(&pulse, gb, ics->swb_offset, ics->num_swb)) { av_log(ac->avctx, AV_LOG_ERROR, "Pulse data corrupt or invalid.\n"); -return AVERROR_INVALIDDATA; +ret = AVERROR_INVALIDDATA; +goto fail; } } tns->present = get_bits1(gb); -if (tns->present && !er_syntax) -if (decode_tns(ac, tns, gb, ics) < 0) -return AVERROR_INVALIDDATA; +if (tns->present && !er_syntax) { +ret = decode_tns(ac, tns, gb, ics); +if (ret < 0) +goto fail; +} if (!eld_syntax && get_bits1(gb)) { avpriv_request_sample(ac->avctx, "SSR"); -return AVERROR_PATCHWELCOME; +ret = AVERROR_PATCHWELCOME; +goto fail; } // I see no textual basis in the spec for this occurring after SSR gain // control, but this is what both reference and real implmentations do -if (tns->present && er_syntax) -if (decode_tns(ac, tns, gb, ics) < 0) -return AVERROR_INVALIDDATA; +if (tns->present && er_syntax) { +ret = decode_tns(ac, tns, gb, ics); +if (ret < 0) +goto fail; +} } -if (decode_spectrum_and_dequant(ac, out, gb, sce->sf, pulse_present, -&pulse, ics, sce->band_type) < 0) -return AVERROR_INVALIDDATA; +ret = decode_spectrum_and_dequant(ac, out, gb, sce->sf, pulse_present, +&pulse, ics, sce->band_type); +if (ret < 0) +goto fail; if (ac->oc[1].m4ac.object_type == AOT_AAC_MAIN && !common_window) apply_prediction(ac, sce); return 0; +fail: +tns->present = 0; +return ret; } /** ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] fate: Use bitexact optimizations in the svq3-2 test
ffmpeg | branch: master | Diego Biurrun | Sat Feb 25 17:19:48 2017 +0100| [da8093f712d625db7ce4a2526fb52994e01921ec] | committer: Diego Biurrun fate: Use bitexact optimizations in the svq3-2 test This fixes the test with mmxext disabled because the current reference frame hashes correspond to the non-bitexact mmxext optimizations. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=da8093f712d625db7ce4a2526fb52994e01921ec --- tests/fate/qt.mak | 2 +- tests/ref/fate/svq3-2 | 18 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/fate/qt.mak b/tests/fate/qt.mak index 761db8d234..b51168fbea 100644 --- a/tests/fate/qt.mak +++ b/tests/fate/qt.mak @@ -53,7 +53,7 @@ FATE_SVQ3 += fate-svq3-1 fate-svq3-1: CMD = framecrc -i $(TARGET_SAMPLES)/svq3/Vertical400kbit.sorenson3.mov -t 6 -an FATE_SVQ3 += fate-svq3-2 -fate-svq3-2: CMD = framecrc -i $(TARGET_SAMPLES)/svq3/svq3_decoding_regression.mov -an +fate-svq3-2: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/svq3/svq3_decoding_regression.mov -an FATE_SAMPLES_AVCONV-$(call ALLYES, MOV_DEMUXER SVQ3_DECODER ZLIB) += $(FATE_SVQ3) fate-svq3: $(FATE_SVQ3) diff --git a/tests/ref/fate/svq3-2 b/tests/ref/fate/svq3-2 index 7e69b31b01..575e472a18 100644 --- a/tests/ref/fate/svq3-2 +++ b/tests/ref/fate/svq3-2 @@ -1,20 +1,20 @@ #tb 0: 1/19200 0, -2, -2,0, 185280, 0x061c0d85 0, -19200, -19200,0, 185280, 0x427ef9a7 -0, -18400, -18400,0, 185280, 0x8f495d37 +0, -18400, -18400,0, 185280, 0x64c74d6a 0, -17600, -17600,0, 185280, 0x5bfd0e5b -0, -16800, -16800,0, 185280, 0x60d12d25 +0, -16800, -16800,0, 185280, 0x9da221c6 0, -16000, -16000,0, 185280, 0x25aaa51b -0, -15200, -15200,0, 185280, 0x9cf58bf0 +0, -15200, -15200,0, 185280, 0x26848298 0, -14400, -14400,0, 185280, 0xd9bd03ea -0, -13600, -13600,0, 185280, 0xd18be732 +0, -13600, -13600,0, 185280, 0xe1a7e39f 0, -12800, -12800,0, 185280, 0x92763708 -0, -12000, -12000,0, 185280, 0x94b5784a +0, -12000, -12000,0, 185280, 0x76137106 0, -11200, -11200,0, 185280, 0x32b184c9 -0, -10400, -10400,0, 185280, 0xe316fec3 +0, -10400, -10400,0, 185280, 0xe5d6ec11 0, -9600, -9600,0, 185280, 0x6344ec88 -0, -8800, -8800,0, 185280, 0xe0aa6de4 +0, -8800, -8800,0, 185280, 0xa8875cb9 0, -8000, -8000,0, 185280, 0x6cfc8687 -0, -7200, -7200,0, 185280, 0x26ddc189 +0, -7200, -7200,0, 185280, 0xcbc5bb85 0, -6400, -6400,0, 185280, 0x5a0c1b38 -0, -5600, -5600,0, 185280, 0x79a88cb9 +0, -5600, -5600,0, 185280, 0x887a7fb2 ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'da8093f712d625db7ce4a2526fb52994e01921ec'
ffmpeg | branch: master | James Almer | Tue Oct 3 20:57:54 2017 -0300| [93d27e022fb1c0e74a34f9b2567e4dd5c2002297] | committer: James Almer Merge commit 'da8093f712d625db7ce4a2526fb52994e01921ec' * commit 'da8093f712d625db7ce4a2526fb52994e01921ec': fate: Use bitexact optimizations in the svq3-2 test This commit is a noop, see b591329c3afe445c45eaecadd5fe3b80a837ee2f Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=93d27e022fb1c0e74a34f9b2567e4dd5c2002297 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '984736dd9e5b50987a5910e22495304e4a6d975c'
ffmpeg | branch: master | James Almer | Tue Oct 3 20:35:17 2017 -0300| [5678b2a82074e4926ce0b73dc4e1190c8dfcd35d] | committer: James Almer Merge commit '984736dd9e5b50987a5910e22495304e4a6d975c' * commit '984736dd9e5b50987a5910e22495304e4a6d975c': lavc: make sure not to return EAGAIN from codecs Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5678b2a82074e4926ce0b73dc4e1190c8dfcd35d --- libavcodec/aacdec.c | 6 +++--- libavcodec/qsv.c| 8 +--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c index f3656c056a..fe50871476 100644 --- a/libavcodec/aacdec.c +++ b/libavcodec/aacdec.c @@ -458,7 +458,7 @@ static int read_audio_mux_element(struct LATMContext *latmctx, } else if (!latmctx->aac_ctx.avctx->extradata) { av_log(latmctx->aac_ctx.avctx, AV_LOG_DEBUG, "no decoder config found\n"); -return AVERROR(EAGAIN); +return 1; } if (latmctx->audio_mux_version_A == 0) { int mux_slot_length_bytes = read_payload_length_info(latmctx, gb); @@ -495,8 +495,8 @@ static int latm_decode_frame(AVCodecContext *avctx, void *out, if (muxlength > avpkt->size) return AVERROR_INVALIDDATA; -if ((err = read_audio_mux_element(latmctx, &gb)) < 0) -return err; +if ((err = read_audio_mux_element(latmctx, &gb))) +return (err < 0) ? err : avpkt->size; if (!latmctx->initialized) { if (!avctx->extradata) { diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c index b9e2cd990d..56ca9df262 100644 --- a/libavcodec/qsv.c +++ b/libavcodec/qsv.c @@ -94,15 +94,17 @@ static const struct { { MFX_ERR_LOCK_MEMORY, AVERROR(EIO),"failed to lock the memory block" }, { MFX_ERR_NOT_INITIALIZED, AVERROR_BUG, "not initialized" }, { MFX_ERR_NOT_FOUND,AVERROR(ENOSYS), "specified object was not found" }, -{ MFX_ERR_MORE_DATA,AVERROR(EAGAIN), "expect more data at input"}, -{ MFX_ERR_MORE_SURFACE, AVERROR(EAGAIN), "expect more surface at output"}, +/* the following 3 errors should always be handled explicitly, so those "mappings" + * are for completeness only */ +{ MFX_ERR_MORE_DATA,AVERROR_UNKNOWN, "expect more data at input"}, +{ MFX_ERR_MORE_SURFACE, AVERROR_UNKNOWN, "expect more surface at output"}, +{ MFX_ERR_MORE_BITSTREAM, AVERROR_UNKNOWN, "expect more bitstream at output" }, { MFX_ERR_ABORTED, AVERROR_UNKNOWN, "operation aborted" }, { MFX_ERR_DEVICE_LOST, AVERROR(EIO),"device lost" }, { MFX_ERR_INCOMPATIBLE_VIDEO_PARAM, AVERROR(EINVAL), "incompatible video parameters"}, { MFX_ERR_INVALID_VIDEO_PARAM, AVERROR(EINVAL), "invalid video parameters" }, { MFX_ERR_UNDEFINED_BEHAVIOR, AVERROR_BUG, "undefined behavior" }, { MFX_ERR_DEVICE_FAILED,AVERROR(EIO),"device failed" }, -{ MFX_ERR_MORE_BITSTREAM, AVERROR(EAGAIN), "expect more bitstream at output" }, { MFX_ERR_INCOMPATIBLE_AUDIO_PARAM, AVERROR(EINVAL), "incompatible audio parameters"}, { MFX_ERR_INVALID_AUDIO_PARAM, AVERROR(EINVAL), "invalid audio parameters" }, == ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] lavc: make sure not to return EAGAIN from codecs
ffmpeg | branch: master | Anton Khirnov | Tue Feb 14 20:51:06 2017 +0100| [984736dd9e5b50987a5910e22495304e4a6d975c] | committer: Anton Khirnov lavc: make sure not to return EAGAIN from codecs This error is treated specially by the API. CC: libav-sta...@libav.org > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=984736dd9e5b50987a5910e22495304e4a6d975c --- libavcodec/aacdec.c | 6 +++--- libavcodec/nvenc.c | 8 +--- libavcodec/qsv.c| 8 +--- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c index 22ebcdc570..4ba346ac48 100644 --- a/libavcodec/aacdec.c +++ b/libavcodec/aacdec.c @@ -3228,7 +3228,7 @@ static int read_audio_mux_element(struct LATMContext *latmctx, } else if (!latmctx->aac_ctx.avctx->extradata) { av_log(latmctx->aac_ctx.avctx, AV_LOG_DEBUG, "no decoder config found\n"); -return AVERROR(EAGAIN); +return 1; } if (latmctx->audio_mux_version_A == 0) { int mux_slot_length_bytes = read_payload_length_info(latmctx, gb); @@ -3265,8 +3265,8 @@ static int latm_decode_frame(AVCodecContext *avctx, void *out, if (muxlength > avpkt->size) return AVERROR_INVALIDDATA; -if ((err = read_audio_mux_element(latmctx, &gb)) < 0) -return err; +if ((err = read_audio_mux_element(latmctx, &gb))) +return (err < 0) ? err : avpkt->size; if (!latmctx->initialized) { if (!avctx->extradata) { diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c index 30da83a08c..ffa8a0a2d8 100644 --- a/libavcodec/nvenc.c +++ b/libavcodec/nvenc.c @@ -123,12 +123,14 @@ static const struct { { NV_ENC_ERR_OUT_OF_MEMORY,AVERROR(ENOMEM), "out of memory" }, { NV_ENC_ERR_ENCODER_NOT_INITIALIZED, AVERROR(EINVAL), "encoder not initialized" }, { NV_ENC_ERR_UNSUPPORTED_PARAM,AVERROR(ENOSYS), "unsupported param"}, -{ NV_ENC_ERR_LOCK_BUSY,AVERROR(EAGAIN), "lock busy" }, +{ NV_ENC_ERR_LOCK_BUSY,AVERROR(EBUSY), "lock busy" }, { NV_ENC_ERR_NOT_ENOUGH_BUFFER,AVERROR(ENOBUFS), "not enough buffer"}, { NV_ENC_ERR_INVALID_VERSION, AVERROR(EINVAL), "invalid version" }, { NV_ENC_ERR_MAP_FAILED, AVERROR(EIO), "map failed" }, -{ NV_ENC_ERR_NEED_MORE_INPUT, AVERROR(EAGAIN), "need more input" }, -{ NV_ENC_ERR_ENCODER_BUSY, AVERROR(EAGAIN), "encoder busy" }, +/* this is error should always be treated specially, so this "mapping" + * is for completeness only */ +{ NV_ENC_ERR_NEED_MORE_INPUT, AVERROR_UNKNOWN, "need more input" }, +{ NV_ENC_ERR_ENCODER_BUSY, AVERROR(EBUSY), "encoder busy" }, { NV_ENC_ERR_EVENT_NOT_REGISTERD, AVERROR(EBADF), "event not registered" }, { NV_ENC_ERR_GENERIC, AVERROR_UNKNOWN, "generic error" }, { NV_ENC_ERR_INCOMPATIBLE_CLIENT_KEY, AVERROR(EINVAL), "incompatible client key" }, diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c index ab48bb0dfb..735e1536f8 100644 --- a/libavcodec/qsv.c +++ b/libavcodec/qsv.c @@ -94,15 +94,17 @@ static const struct { { MFX_ERR_LOCK_MEMORY, AVERROR(EIO),"failed to lock the memory block" }, { MFX_ERR_NOT_INITIALIZED, AVERROR_BUG, "not initialized" }, { MFX_ERR_NOT_FOUND,AVERROR(ENOSYS), "specified object was not found" }, -{ MFX_ERR_MORE_DATA,AVERROR(EAGAIN), "expect more data at input"}, -{ MFX_ERR_MORE_SURFACE, AVERROR(EAGAIN), "expect more surface at output"}, +/* the following 3 errors should always be handled explicitly, so those "mappings" + * are for completeness only */ +{ MFX_ERR_MORE_DATA,AVERROR_UNKNOWN, "expect more data at input"}, +{ MFX_ERR_MORE_SURFACE, AVERROR_UNKNOWN, "expect more surface at output"}, +{ MFX_ERR_MORE_BITSTREAM, AVERROR_UNKNOWN, "expect more bitstream at output" }, { MFX_ERR_ABORTED, AVERROR_UNKNOWN, "operation aborted" }, { MFX_ERR_DEVICE_LOST, AVERROR(EIO),"device lost" }, { MFX_ERR_INCOMPATIBLE_VIDEO_PARAM, AVERROR(EINVAL), "incompatible video parameters"}, { MFX_ERR_INVALID_VIDEO_PARAM, AVERROR(EINVAL), "invalid video parameters" }, { MFX_ERR_UNDEFINED_BEHAVIOR, AVERROR_BUG, "undefined behavior" }, { MFX_ERR_DEVICE_FAILED,AVERROR(EIO),"device failed" }, -{ MFX_ERR_MORE_BITSTREAM, AVERROR(EAGAIN), "expect more bitstream at output"
[FFmpeg-cvslog] apetag: fix flag value to signal footer presence
ffmpeg | branch: master | James Almer | Fri Feb 10 20:24:26 2017 -0300| [3f258f5ee05c9da05f61447b802ae3e39629f44b] | committer: Anton Khirnov apetag: fix flag value to signal footer presence According to the spec[1], a value of 0 means the footer is present and a value of 1 means it's absent, the exact opposite of header presence flag where 1 means present and 0 absent. The reason for this is compatibility with APEv1 tags, where there's no header, footer presence was mandatory for all files, and the flags field was a zeroed reserved field. [1] http://wiki.hydrogenaud.io/index.php?title=Ape_Tags_Flags Signed-off-by: James Almer CC: libav-sta...@libav.org Signed-off-by: Anton Khirnov > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3f258f5ee05c9da05f61447b802ae3e39629f44b --- libavformat/apetag.c | 7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libavformat/apetag.c b/libavformat/apetag.c index 05430dd9bc..93a4fb3430 100644 --- a/libavformat/apetag.c +++ b/libavformat/apetag.c @@ -32,7 +32,7 @@ #define APE_TAG_VERSION 2000 #define APE_TAG_FOOTER_BYTES 32 #define APE_TAG_FLAG_CONTAINS_HEADER (1 << 31) -#define APE_TAG_FLAG_CONTAINS_FOOTER (1 << 30) +#define APE_TAG_FLAG_LACKS_FOOTER (1 << 30) #define APE_TAG_FLAG_IS_HEADER(1 << 29) #define APE_TAG_FLAG_IS_BINARY(1 << 1) @@ -194,8 +194,7 @@ int ff_ape_write_tag(AVFormatContext *s) avio_wl32(s->pb, 0);// reserve space for tag count // flags -avio_wl32(s->pb, APE_TAG_FLAG_CONTAINS_HEADER | APE_TAG_FLAG_CONTAINS_FOOTER | - APE_TAG_FLAG_IS_HEADER); +avio_wl32(s->pb, APE_TAG_FLAG_CONTAINS_HEADER | APE_TAG_FLAG_IS_HEADER); ffio_fill(s->pb, 0, 8); // reserved while ((e = av_dict_get(s->metadata, "", e, AV_DICT_IGNORE_SUFFIX))) { @@ -217,7 +216,7 @@ int ff_ape_write_tag(AVFormatContext *s) avio_wl32(s->pb, count);// tag count // flags -avio_wl32(s->pb, APE_TAG_FLAG_CONTAINS_HEADER | APE_TAG_FLAG_CONTAINS_FOOTER); +avio_wl32(s->pb, APE_TAG_FLAG_CONTAINS_HEADER); ffio_fill(s->pb, 0, 8); // reserved // update values in the header ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '4cc0227040adb9efc63be6a5765e3214f5c6f662'
ffmpeg | branch: master | James Almer | Tue Oct 3 20:31:08 2017 -0300| [9266cc54aa5c882c16d994ce1b0f6043ba9c2a87] | committer: James Almer Merge commit '4cc0227040adb9efc63be6a5765e3214f5c6f662' * commit '4cc0227040adb9efc63be6a5765e3214f5c6f662': apetag: account for header size if present when returning the start position apetag: fix flag value to signal footer presence This commit is a noop, see e8d6fef3161f35878f8e0abf9d27d2c45a5d40b6 84d874a680ff647bc84de44967b638f246a8b832 Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9266cc54aa5c882c16d994ce1b0f6043ba9c2a87 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] apetag: account for header size if present when returning the start position
ffmpeg | branch: master | James Almer | Fri Feb 10 20:24:27 2017 -0300| [4cc0227040adb9efc63be6a5765e3214f5c6f662] | committer: Anton Khirnov apetag: account for header size if present when returning the start position The size field in the header/footer accounts for the entire APE tag structure except the 32 bytes from header, for compatibility with APEv1. Signed-off-by: James Almer CC: libav-sta...@libav.org Signed-off-by: Anton Khirnov > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4cc0227040adb9efc63be6a5765e3214f5c6f662 --- libavformat/apetag.c | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libavformat/apetag.c b/libavformat/apetag.c index 93a4fb3430..a7cf8530f1 100644 --- a/libavformat/apetag.c +++ b/libavformat/apetag.c @@ -31,6 +31,7 @@ #define APE_TAG_VERSION 2000 #define APE_TAG_FOOTER_BYTES 32 +#define APE_TAG_HEADER_BYTES 32 #define APE_TAG_FLAG_CONTAINS_HEADER (1 << 31) #define APE_TAG_FLAG_LACKS_FOOTER (1 << 30) #define APE_TAG_FLAG_IS_HEADER(1 << 29) @@ -154,7 +155,6 @@ int64_t ff_ape_parse_tag(AVFormatContext *s) av_log(s, AV_LOG_ERROR, "Invalid tag size %"PRIu32".\n", tag_bytes); return 0; } -tag_start = file_size - tag_bytes - APE_TAG_FOOTER_BYTES; fields = avio_rl32(pb);/* number of fields */ if (fields > 65536) { @@ -170,6 +170,11 @@ int64_t ff_ape_parse_tag(AVFormatContext *s) avio_seek(pb, file_size - tag_bytes, SEEK_SET); +if (val & APE_TAG_FLAG_CONTAINS_HEADER) +tag_bytes += APE_TAG_HEADER_BYTES; + +tag_start = file_size - tag_bytes; + for (i=0; ihttp://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'b2788fe9347c02b1355574f3d28d60bfe1250ea7'
ffmpeg | branch: master | James Almer | Tue Oct 3 20:28:51 2017 -0300| [cb222d73225adae76893f58c8283b32a9943094f] | committer: James Almer Merge commit 'b2788fe9347c02b1355574f3d28d60bfe1250ea7' * commit 'b2788fe9347c02b1355574f3d28d60bfe1250ea7': svq3: fix the slice size check Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cb222d73225adae76893f58c8283b32a9943094f --- libavcodec/svq3.c | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c index 5cb5bd45b7..a937b2f951 100644 --- a/libavcodec/svq3.c +++ b/libavcodec/svq3.c @@ -1036,17 +1036,16 @@ static int svq3_decode_slice_header(AVCodecContext *avctx) slice_bits = slice_length * 8; slice_bytes = slice_length + length - 1; -if (8LL*slice_bytes > get_bits_left(&s->gb)) { -av_log(avctx, AV_LOG_ERROR, "slice after bitstream end\n"); -return -1; -} - skip_bits(&s->gb, 8); av_fast_malloc(&s->slice_buf, &s->slice_size, slice_bytes + AV_INPUT_BUFFER_PADDING_SIZE); if (!s->slice_buf) return AVERROR(ENOMEM); +if (slice_bytes * 8LL > get_bits_left(&s->gb)) { +av_log(avctx, AV_LOG_ERROR, "slice after bitstream end\n"); +return AVERROR_INVALIDDATA; +} memcpy(s->slice_buf, s->gb.buffer + s->gb.index / 8, slice_bytes); init_get_bits(&s->gb_slice, s->slice_buf, slice_bits); == diff --cc libavcodec/svq3.c index 5cb5bd45b7,667d3906a1..a937b2f951 --- a/libavcodec/svq3.c +++ b/libavcodec/svq3.c @@@ -1036,32 -1031,30 +1036,31 @@@ static int svq3_decode_slice_header(AVC slice_bits = slice_length * 8; slice_bytes = slice_length + length - 1; - if (8LL*slice_bytes > get_bits_left(&s->gb)) { - av_log(avctx, AV_LOG_ERROR, "slice after bitstream end\n"); - return -1; - } - -bitstream_skip(&s->bc, 8); +skip_bits(&s->gb, 8); av_fast_malloc(&s->slice_buf, &s->slice_size, slice_bytes + AV_INPUT_BUFFER_PADDING_SIZE); if (!s->slice_buf) return AVERROR(ENOMEM); -if (slice_bytes * 8 > bitstream_bits_left(&s->bc)) { ++if (slice_bytes * 8LL > get_bits_left(&s->gb)) { + av_log(avctx, AV_LOG_ERROR, "slice after bitstream end\n"); + return AVERROR_INVALIDDATA; + } -memcpy(s->slice_buf, s->bc.buffer + bitstream_tell(&s->bc) / 8, slice_bytes); +memcpy(s->slice_buf, s->gb.buffer + s->gb.index / 8, slice_bytes); + +init_get_bits(&s->gb_slice, s->slice_buf, slice_bits); if (s->watermark_key) { -uint32_t header = AV_RL32(&s->bc_slice.buffer[1]); -AV_WL32(&s->bc_slice.buffer[1], header ^ s->watermark_key); +uint32_t header = AV_RL32(&s->gb_slice.buffer[1]); +AV_WL32(&s->gb_slice.buffer[1], header ^ s->watermark_key); } if (length > 0) { -memcpy(s->slice_buf, &s->slice_buf[slice_length], length - 1); +memmove(s->slice_buf, &s->slice_buf[slice_length], length - 1); } -bitstream_skip(&s->bc, slice_bytes * 8); -bitstream_init(&s->bc_slice, s->slice_buf, slice_bits); +skip_bits_long(&s->gb, slice_bytes * 8); } -if ((slice_id = get_interleaved_ue_golomb(&s->bc_slice)) >= 3) { +if ((slice_id = get_interleaved_ue_golomb(&s->gb_slice)) >= 3) { av_log(s->avctx, AV_LOG_ERROR, "illegal slice type %u \n", slice_id); return -1; } ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] svq3: fix the slice size check
ffmpeg | branch: master | Anton Khirnov | Wed Feb 1 11:50:38 2017 +0100| [b2788fe9347c02b1355574f3d28d60bfe1250ea7] | committer: Anton Khirnov svq3: fix the slice size check Currently it incorrectly compares bits with bytes. Also, move the check right before where it's relevant, so that the correct number of remaining bits is used. CC: libav-sta...@libav.org > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b2788fe9347c02b1355574f3d28d60bfe1250ea7 --- libavcodec/svq3.c | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c index 20c8f89e76..667d3906a1 100644 --- a/libavcodec/svq3.c +++ b/libavcodec/svq3.c @@ -1031,17 +1031,16 @@ static int svq3_decode_slice_header(AVCodecContext *avctx) slice_bits = slice_length * 8; slice_bytes = slice_length + length - 1; -if (slice_bytes > bitstream_bits_left(&s->bc)) { -av_log(avctx, AV_LOG_ERROR, "slice after bitstream end\n"); -return -1; -} - bitstream_skip(&s->bc, 8); av_fast_malloc(&s->slice_buf, &s->slice_size, slice_bytes + AV_INPUT_BUFFER_PADDING_SIZE); if (!s->slice_buf) return AVERROR(ENOMEM); +if (slice_bytes * 8 > bitstream_bits_left(&s->bc)) { +av_log(avctx, AV_LOG_ERROR, "slice after bitstream end\n"); +return AVERROR_INVALIDDATA; +} memcpy(s->slice_buf, s->bc.buffer + bitstream_tell(&s->bc) / 8, slice_bytes); if (s->watermark_key) { ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
Re: [FFmpeg-cvslog] Merge commit '248dc5c1646dcdd96fe79761105c4ae889e711fd'
2017-10-04 1:13 GMT+02:00 James Almer : > ffmpeg | branch: master | James Almer | Tue Oct 3 > 20:09:46 2017 -0300| [73c85d3af2420baeee9a8f0429b34012096606ea] | committer: > James Almer > > Merge commit '248dc5c1646dcdd96fe79761105c4ae889e711fd' > > * commit '248dc5c1646dcdd96fe79761105c4ae889e711fd': > h264dec: fix dropped initial SEI recovery point > > Merged-by: James Almer > >> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=73c85d3af2420baeee9a8f0429b34012096606ea > --- > > libavcodec/h264dec.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c > index 49ebeca6d8..f29c3f9048 100644 > --- a/libavcodec/h264dec.c > +++ b/libavcodec/h264dec.c > @@ -499,7 +499,6 @@ void ff_h264_flush_change(H264Context *h) > ff_h264_unref_picture(h, &h->last_pic_for_ec); > > h->first_field = 0; > -ff_h264_sei_uninit(&h->sei); > h->recovery_frame = -1; > h->frame_recovered = 0; > h->current_slice = 0; > @@ -515,6 +514,7 @@ static void flush_dpb(AVCodecContext *avctx) > memset(h->delayed_pic, 0, sizeof(h->delayed_pic)); > > ff_h264_flush_change(h); > +ff_h264_sei_uninit(&h->sei); Do you know what this patch is supposed to fix? I ask because none of the samples on the handbrake bug tracker showed an issue with FFmpeg afair. Carl Eugen ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] doc: Add mailing list FAQ
ffmpeg | branch: master | Lou Logan | Wed Sep 27 14:35:12 2017 -0800| [d17a00379e7ab5601ffc7da0a53b0c9f9d48a567] | committer: Lou Logan doc: Add mailing list FAQ Signed-off-by: Lou Logan Reviewed-by: Kieran O Leary Reviewed-by: Carl Eugen Hoyos > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d17a00379e7ab5601ffc7da0a53b0c9f9d48a567 --- doc/Makefile | 1 + doc/mailing-list-faq.texi | 366 ++ 2 files changed, 367 insertions(+) diff --git a/doc/Makefile b/doc/Makefile index bcde309878..fa4996b5a3 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -24,6 +24,7 @@ HTMLPAGES = $(AVPROGS-yes:%=doc/%.html) $(AVPROGS-yes:%=doc/%-all.html) $(COMP doc/fate.html \ doc/general.html \ doc/git-howto.html\ + doc/mailing-list-faq.html \ doc/nut.html \ doc/platform.html \ diff --git a/doc/mailing-list-faq.texi b/doc/mailing-list-faq.texi new file mode 100644 index 00..fe2171e42e --- /dev/null +++ b/doc/mailing-list-faq.texi @@ -0,0 +1,366 @@ +\input texinfo @c -*- texinfo -*- +@documentencoding UTF-8 + +@settitle FFmpeg Mailing List FAQ +@titlepage +@center @titlefont{FFmpeg Mailing List FAQ} +@end titlepage + +@top + +@contents + +@chapter General Questions + +@section What is a mailing list? + +A mailing list is not much different than emailing someone, but the +main difference is that your message is received by everyone who +subscribes to the list. It is somewhat like a forum but in email form. + +See the @url{https://lists.ffmpeg.org/pipermail/ffmpeg-user/, ffmpeg-user archives} +for examples. + +@section What type of questions can I ask? + +@itemize +@item +@url{https://lists.ffmpeg.org/mailman/listinfo/ffmpeg-user/, ffmpeg-user}: +For questions involving unscripted usage or compilation of the FFmpeg +command-line tools (@command{ffmpeg}, @command{ffprobe}, @command{ffplay}, +@command{ffserver}). + +@item +@url{https://lists.ffmpeg.org/mailman/listinfo/libav-user/, libav-user}: +For questions involving the FFmpeg libav* libraries (libavcodec, +libavformat, libavfilter, etc). + +@item +@url{https://lists.ffmpeg.org/mailman/listinfo/ffmpeg-devel/, ffmpeg-devel}: +For discussions involving the development of FFmpeg and for submitting +patches. User questions should be asked at ffmpeg-user or libav-user. +@end itemize + +To report a bug see @url{https://ffmpeg.org/bugreports.html}. + +We cannot provide help for scripts and/or third-party tools. + +@anchor{How do I ask a question or send a message to a mailing list?} +@section How do I ask a question or send a message to a mailing list? + +All you have to do is send an email: + +@itemize +@item +Email @email{ffmpeg-user@@ffmpeg.org} to send a message to the +ffmpeg-user mailing list. + +@item +Email @email{libav-user@@ffmpeg.org} to send a message to the +libav-user mailing list. +@end itemize + +If you are not subscribed to the mailing list then your question must be +manually approved. Approval may take several days, but the wait is +usually less. If you want the message to be sent with no delay then you +must subscribe first. See @ref{How do I subscribe?} + +Please do not send a message, subscribe, and re-send the message: this +results in duplicates, causes more work for the admins, and may lower +your chance at getting an answer. However, you may do so if you first +@ref{How do I delete my message in the moderation queue?, delete your original message from the moderation queue}. + +@chapter Subscribing / Unsubscribing + +@section What does subscribing do? + +Subscribing allows two things: + +@itemize +@item +Your messages will show up in the mailing list without waiting in the +moderation queue and needing to be manually approved by a mailing list +admin. + +@item +You will receive all messages to the mailing list including replies to +your messages. Non-subscribed users do not receive any messages. +@end itemize + +@section Do I need to subscribe? + +No. You can still send a message to the mailing list without +subscribing. See @ref{How do I ask a question or send a message to a mailing list?} + +However, your message will need to be manually approved by a mailing +list admin, and you will not receive any mailing list messages or +replies. + +You can ask to be CCd in your message, but replying users will +sometimes forget to do so. + +You may also view and reply to messages via the @ref{Where are the archives?, archives}. + +@anchor{How do I subscribe?} +@section How do I subscribe? + +Email @email{ffmpeg-user-request@@ffmpeg.org} with the subject +@emph{subscribe}. + +Or visit the @url{https://lists.ffmpeg.org/mailman/listinfo/ffmpeg-user/, ffmpeg-
[FFmpeg-cvslog] Merge commit 'cd7a2e1502f174c725c0de82711d2c7649057574'
ffmpeg | branch: master | James Almer | Tue Oct 3 20:12:15 2017 -0300| [1902bbbe722504dac5966df3d417a1ed8029aea1] | committer: James Almer Merge commit 'cd7a2e1502f174c725c0de82711d2c7649057574' * commit 'cd7a2e1502f174c725c0de82711d2c7649057574': asfdec: fix reading files larger than 2GB Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1902bbbe722504dac5966df3d417a1ed8029aea1 --- libavformat/asfdec_o.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libavformat/asfdec_o.c b/libavformat/asfdec_o.c index 86ea962849..818d6f3573 100644 --- a/libavformat/asfdec_o.c +++ b/libavformat/asfdec_o.c @@ -976,7 +976,8 @@ static int asf_read_simple_index(AVFormatContext *s, const GUIDParseTable *g) uint64_t interval; // index entry time interval in 100 ns units, usually it's 1s uint32_t pkt_num, nb_entries; int32_t prev_pkt_num = -1; -int i, ret; +int i; +int64_t offset; uint64_t size = avio_rl64(pb); // simple index objects should be ordered by stream number, this loop tries to find @@ -998,10 +999,10 @@ static int asf_read_simple_index(AVFormatContext *s, const GUIDParseTable *g) nb_entries = avio_rl32(pb); for (i = 0; i < nb_entries; i++) { pkt_num = avio_rl32(pb); -ret = avio_skip(pb, 2); -if (ret < 0) { +offset = avio_skip(pb, 2); +if (offset < 0) { av_log(s, AV_LOG_ERROR, "Skipping failed in asf_read_simple_index.\n"); -return ret; +return offset; } if (prev_pkt_num != pkt_num) { av_add_index_entry(st, asf->first_packet_offset + asf->packet_size * == diff --cc libavformat/asfdec_o.c index 86ea962849,00..818d6f3573 mode 100644,00..100644 --- a/libavformat/asfdec_o.c +++ b/libavformat/asfdec_o.c @@@ -1,1794 -1,0 +1,1795 @@@ +/* + * Microsoft Advanced Streaming Format demuxer + * Copyright (c) 2014 Alexandra Hájková + * + * 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 "libavutil/attributes.h" +#include "libavutil/avstring.h" +#include "libavutil/bswap.h" +#include "libavutil/common.h" +#include "libavutil/dict.h" +#include "libavutil/internal.h" +#include "libavutil/mathematics.h" +#include "libavutil/opt.h" +#include "libavutil/time_internal.h" + +#include "avformat.h" +#include "avio_internal.h" +#include "avlanguage.h" +#include "id3v2.h" +#include "internal.h" +#include "riff.h" +#include "asf.h" +#include "asfcrypt.h" + +#define ASF_BOOL 0x2 +#define ASF_WORD 0x5 +#define ASF_GUID 0x6 +#define ASF_DWORD 0x3 +#define ASF_QWORD 0x4 +#define ASF_UNICODE 0x0 +#define ASF_FLAG_BROADCAST0x1 +#define ASF_BYTE_ARRAY0x1 +#define ASF_TYPE_AUDIO0x2 +#define ASF_TYPE_VIDEO0x1 +#define ASF_STREAM_NUM0x7F +#define ASF_MAX_STREAMS 128 +#define BMP_HEADER_SIZE 40 +#define ASF_NUM_OF_PAYLOADS 0x3F +#define ASF_ERROR_CORRECTION_LENGTH_TYPE 0x60 +#define ASF_PACKET_ERROR_CORRECTION_DATA_SIZE 0x2 + +typedef struct GUIDParseTable { +const char *name; +ff_asf_guid guid; +int (*read_object)(AVFormatContext *, const struct GUIDParseTable *); +int is_subobject; +} GUIDParseTable; + +typedef struct ASFPacket { +AVPacket avpkt; +int64_t dts; +uint32_t frame_num; // ASF payloads with the same number are parts of the same frame +int flags; +int data_size; +int duration; +int size_left; +uint8_t stream_index; +} ASFPacket; + +typedef struct ASFStream { +uint8_t stream_index; // from packet header +int index; // stream index in AVFormatContext, set in asf_read_stream_properties +int type; +int indexed; // added index entries from the Simple Index Object or not +int8_t span; // for deinterleaving +ui
[FFmpeg-cvslog] asfdec: fix reading files larger than 2GB
ffmpeg | branch: master | John Stebbins | Thu Feb 23 16:47:58 2017 -0700| [cd7a2e1502f174c725c0de82711d2c7649057574] | committer: John Stebbins asfdec: fix reading files larger than 2GB avio_skip returns file position and overflows int > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cd7a2e1502f174c725c0de82711d2c7649057574 --- libavformat/asfdec.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c index 34730b20aa..9e1f8f6b62 100644 --- a/libavformat/asfdec.c +++ b/libavformat/asfdec.c @@ -976,7 +976,8 @@ static int asf_read_simple_index(AVFormatContext *s, const GUIDParseTable *g) uint64_t interval; // index entry time interval in 100 ns units, usually it's 1s uint32_t pkt_num, nb_entries; int32_t prev_pkt_num = -1; -int i, ret; +int i; +int64_t offset; uint64_t size = avio_rl64(pb); // simple index objects should be ordered by stream number, this loop tries to find @@ -998,10 +999,10 @@ static int asf_read_simple_index(AVFormatContext *s, const GUIDParseTable *g) nb_entries = avio_rl32(pb); for (i = 0; i < nb_entries; i++) { pkt_num = avio_rl32(pb); -ret = avio_skip(pb, 2); -if (ret < 0) { +offset = avio_skip(pb, 2); +if (offset < 0) { av_log(s, AV_LOG_ERROR, "Skipping failed in asf_read_simple_index.\n"); -return ret; +return offset; } if (prev_pkt_num != pkt_num) { av_add_index_entry(st, asf->first_packet_offset + asf->packet_size * ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] h264dec: fix dropped initial SEI recovery point
ffmpeg | branch: master | John Stebbins | Thu Feb 23 14:22:56 2017 -0700| [248dc5c1646dcdd96fe79761105c4ae889e711fd] | committer: John Stebbins h264dec: fix dropped initial SEI recovery point > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=248dc5c1646dcdd96fe79761105c4ae889e711fd --- libavcodec/h264dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index 5137039188..6d7aa7b53c 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -452,7 +452,6 @@ void ff_h264_flush_change(H264Context *h) if (h->cur_pic_ptr) h->cur_pic_ptr->reference = 0; h->first_field = 0; -ff_h264_sei_uninit(&h->sei); h->recovery_frame = -1; h->frame_recovered = 0; } @@ -466,6 +465,7 @@ static void flush_dpb(AVCodecContext *avctx) memset(h->delayed_pic, 0, sizeof(h->delayed_pic)); ff_h264_flush_change(h); +ff_h264_sei_uninit(&h->sei); for (i = 0; i < H264_MAX_PICTURE_COUNT; i++) ff_h264_unref_picture(h, &h->DPB[i]); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '248dc5c1646dcdd96fe79761105c4ae889e711fd'
ffmpeg | branch: master | James Almer | Tue Oct 3 20:09:46 2017 -0300| [73c85d3af2420baeee9a8f0429b34012096606ea] | committer: James Almer Merge commit '248dc5c1646dcdd96fe79761105c4ae889e711fd' * commit '248dc5c1646dcdd96fe79761105c4ae889e711fd': h264dec: fix dropped initial SEI recovery point Merged-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=73c85d3af2420baeee9a8f0429b34012096606ea --- libavcodec/h264dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index 49ebeca6d8..f29c3f9048 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -499,7 +499,6 @@ void ff_h264_flush_change(H264Context *h) ff_h264_unref_picture(h, &h->last_pic_for_ec); h->first_field = 0; -ff_h264_sei_uninit(&h->sei); h->recovery_frame = -1; h->frame_recovered = 0; h->current_slice = 0; @@ -515,6 +514,7 @@ static void flush_dpb(AVCodecContext *avctx) memset(h->delayed_pic, 0, sizeof(h->delayed_pic)); ff_h264_flush_change(h); +ff_h264_sei_uninit(&h->sei); for (i = 0; i < H264_MAX_PICTURE_COUNT; i++) ff_h264_unref_picture(h, &h->DPB[i]); == diff --cc libavcodec/h264dec.c index 49ebeca6d8,6d7aa7b53c..f29c3f9048 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@@ -487,23 -449,11 +487,22 @@@ void ff_h264_flush_change(H264Context * h->next_outputed_poc = INT_MIN; h->prev_interlaced_frame = 1; idr(h); -if (h->cur_pic_ptr) + +h->poc.prev_frame_num = -1; +if (h->cur_pic_ptr) { h->cur_pic_ptr->reference = 0; +for (j=i=0; h->delayed_pic[i]; i++) +if (h->delayed_pic[i] != h->cur_pic_ptr) +h->delayed_pic[j++] = h->delayed_pic[i]; +h->delayed_pic[j] = NULL; +} +ff_h264_unref_picture(h, &h->last_pic_for_ec); + h->first_field = 0; - ff_h264_sei_uninit(&h->sei); h->recovery_frame = -1; h->frame_recovered = 0; +h->current_slice = 0; +h->mmco_reset = 1; } /* forget old pics after a seek */ ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] libavcodec/blockdsp : add AVX version
ffmpeg | branch: master | Martin Vignali | Mon Oct 2 01:29:32 2017 +0200| [cbbec68847ed3485900e83ec231871f71bb97d0d] | committer: James Almer libavcodec/blockdsp : add AVX version Also modify the required alignment, to 32 instead of 16 for several codecs Signed-off-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cbbec68847ed3485900e83ec231871f71bb97d0d --- libavcodec/asv.h | 2 +- libavcodec/bink.c | 4 ++-- libavcodec/dnxhdenc.h | 2 +- libavcodec/eamad.c | 2 +- libavcodec/eatqi.c | 2 +- libavcodec/g2meet.c| 2 +- libavcodec/ituh263dec.c| 2 +- libavcodec/mdec.c | 2 +- libavcodec/mimic.c | 2 +- libavcodec/mjpegdec.h | 2 +- libavcodec/proresdec2.c| 6 +++--- libavcodec/speedhq.c | 2 +- libavcodec/wmv2.h | 2 +- libavcodec/x86/blockdsp.asm| 14 -- libavcodec/x86/blockdsp_init.c | 6 ++ tests/checkasm/blockdsp.c | 4 ++-- 16 files changed, 32 insertions(+), 24 deletions(-) diff --git a/libavcodec/asv.h b/libavcodec/asv.h index e2cdc81300..a1366b6fe4 100644 --- a/libavcodec/asv.h +++ b/libavcodec/asv.h @@ -54,7 +54,7 @@ typedef struct ASV1Context { int mb_height; int mb_width2; int mb_height2; -DECLARE_ALIGNED(16, int16_t, block)[6][64]; +DECLARE_ALIGNED(32, int16_t, block)[6][64]; uint16_t intra_matrix[64]; int q_intra_matrix[64]; uint8_t *bitstream_buffer; diff --git a/libavcodec/bink.c b/libavcodec/bink.c index cc55870114..346b6cda9d 100644 --- a/libavcodec/bink.c +++ b/libavcodec/bink.c @@ -813,7 +813,7 @@ static int binkb_decode_plane(BinkContext *c, AVFrame *frame, GetBitContext *gb, int v, col[2]; const uint8_t *scan; int xoff, yoff; -LOCAL_ALIGNED_16(int16_t, block, [64]); +LOCAL_ALIGNED_32(int16_t, block, [64]); LOCAL_ALIGNED_16(int32_t, dctblock, [64]); int coordmap[64]; int ybias = is_key ? -15 : 0; @@ -976,7 +976,7 @@ static int bink_decode_plane(BinkContext *c, AVFrame *frame, GetBitContext *gb, uint8_t *dst, *prev, *ref_start, *ref_end; int v, col[2]; const uint8_t *scan; -LOCAL_ALIGNED_16(int16_t, block, [64]); +LOCAL_ALIGNED_32(int16_t, block, [64]); LOCAL_ALIGNED_16(uint8_t, ublock, [64]); LOCAL_ALIGNED_16(int32_t, dctblock, [64]); int coordmap[64]; diff --git a/libavcodec/dnxhdenc.h b/libavcodec/dnxhdenc.h index 26c3eec695..963821ac81 100644 --- a/libavcodec/dnxhdenc.h +++ b/libavcodec/dnxhdenc.h @@ -74,7 +74,7 @@ typedef struct DNXHDEncContext { unsigned min_padding; int intra_quant_bias; -DECLARE_ALIGNED(16, int16_t, blocks)[12][64]; +DECLARE_ALIGNED(32, int16_t, blocks)[12][64]; DECLARE_ALIGNED(16, uint8_t, edge_buf_y)[512]; // has to hold 16x16 uint16 when depth=10 DECLARE_ALIGNED(16, uint8_t, edge_buf_uv)[2][512]; // has to hold 16x16 uint16_t when depth=10 diff --git a/libavcodec/eamad.c b/libavcodec/eamad.c index 753dee06c3..7f28abbafe 100644 --- a/libavcodec/eamad.c +++ b/libavcodec/eamad.c @@ -54,7 +54,7 @@ typedef struct MadContext { GetBitContext gb; void *bitstream_buf; unsigned int bitstream_buf_size; -DECLARE_ALIGNED(16, int16_t, block)[64]; +DECLARE_ALIGNED(32, int16_t, block)[64]; ScanTable scantable; uint16_t quant_matrix[64]; int mb_x; diff --git a/libavcodec/eatqi.c b/libavcodec/eatqi.c index 725289448a..1a847a35da 100644 --- a/libavcodec/eatqi.c +++ b/libavcodec/eatqi.c @@ -51,7 +51,7 @@ typedef struct TqiContext { uint16_t intra_matrix[64]; int last_dc[3]; -DECLARE_ALIGNED(16, int16_t, block)[6][64]; +DECLARE_ALIGNED(32, int16_t, block)[6][64]; } TqiContext; static av_cold int tqi_decode_init(AVCodecContext *avctx) diff --git a/libavcodec/g2meet.c b/libavcodec/g2meet.c index 10b6808f81..842095ba3b 100644 --- a/libavcodec/g2meet.c +++ b/libavcodec/g2meet.c @@ -122,7 +122,7 @@ typedef struct JPGContext { VLCdc_vlc[2], ac_vlc[2]; intprev_dc[3]; -DECLARE_ALIGNED(16, int16_t, block)[6][64]; +DECLARE_ALIGNED(32, int16_t, block)[6][64]; uint8_t*buf; } JPGContext; diff --git a/libavcodec/ituh263dec.c b/libavcodec/ituh263dec.c index edb68861ac..fc95a532ce 100644 --- a/libavcodec/ituh263dec.c +++ b/libavcodec/ituh263dec.c @@ -574,7 +574,7 @@ not_coded: static int h263_skip_b_part(MpegEncContext *s, int cbp) { -LOCAL_ALIGNED_16(int16_t, dblock, [64]); +LOCAL_ALIGNED_32(int16_t, dblock, [64]); int i, mbi; int bli[6]; diff --git a/libavcodec/mdec.c b/libavcodec/mdec.c index 59658b331d..330b761279 100644 --- a/libavcodec/mdec.c +++ b/libavcodec/mdec.c @@ -48,7 +48,7 @@ typedef struct MDECContext { int mb_width; int mb_height; int mb_x, mb_y; -DECLARE_ALIGNED(16, int16_t, block)[6][64]; +DECLARE_ALIGNED(32, int16_t, block)[6][64]; DECLARE_ALIGNED(16, ui
[FFmpeg-cvslog] lavf/mxfdec: Search all components of material track for source package.
ffmpeg | branch: master | Carl Eugen Hoyos | Sat Nov 5 01:48:10 2016 +0100| [4590d073ccdc7c3ce0384d5b1fba56b3f6673535] | committer: Carl Eugen Hoyos lavf/mxfdec: Search all components of material track for source package. Fixes ticket #5925. Reviewed-by: Marton > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4590d073ccdc7c3ce0384d5b1fba56b3f6673535 --- libavformat/mxfdec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c index 1855f95d79..118e3e40b4 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -1978,7 +1978,7 @@ static int mxf_parse_structural_metadata(MXFContext *mxf) source_package = mxf_resolve_source_package(mxf, component->source_package_uid); if (!source_package) { av_log(mxf->fc, AV_LOG_TRACE, "material track %d: no corresponding source package found\n", material_track->track_id); -break; +continue; } for (k = 0; k < source_package->tracks_count; k++) { if (!(temp_track = mxf_resolve_strong_ref(mxf, &source_package->tracks_refs[k], Track))) { ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] fate: Add a test for latm-in-dvb auto-detection, ticket #6657.
ffmpeg | branch: master | Carl Eugen Hoyos | Sat Sep 30 20:33:09 2017 +0200| [9ba9c08aab9de35c9afa5497c51b9bdfd4b770be] | committer: Carl Eugen Hoyos fate: Add a test for latm-in-dvb auto-detection, ticket #6657. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9ba9c08aab9de35c9afa5497c51b9bdfd4b770be --- tests/Makefile | 1 + tests/fate/mpegts.mak| 14 ++ tests/ref/fate/mpegts-probe-latm | 14 ++ 3 files changed, 29 insertions(+) diff --git a/tests/Makefile b/tests/Makefile index 99f7e1730b..278be24ccb 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -156,6 +156,7 @@ include $(SRC_PATH)/tests/fate/mov.mak include $(SRC_PATH)/tests/fate/mp3.mak include $(SRC_PATH)/tests/fate/mpc.mak include $(SRC_PATH)/tests/fate/mpeg4.mak +include $(SRC_PATH)/tests/fate/mpegts.mak include $(SRC_PATH)/tests/fate/mxf.mak include $(SRC_PATH)/tests/fate/opus.mak include $(SRC_PATH)/tests/fate/pcm.mak diff --git a/tests/fate/mpegts.mak b/tests/fate/mpegts.mak new file mode 100644 index 00..bb0d9d98a7 --- /dev/null +++ b/tests/fate/mpegts.mak @@ -0,0 +1,14 @@ +# +# Test probing MPEGTS format and codecs +# +PROBE_CODEC_NAME_COMMAND = \ +ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=codec_name \ +-print_format default -bitexact -v 0 + +FATE_MPEGTS_PROBE-$(call DEMDEC, MPEGTS, HEVC, AAC_LATM) += fate-mpegts-probe-latm +fate-mpegts-probe-latm: SRC = $(TARGET_SAMPLES)/mpegts/loewe.ts +fate-mpegts-probe-latm: CMD = run $(PROBE_CODEC_NAME_COMMAND) -i "$(SRC)" + +FATE_SAMPLES_FFPROBE += $(FATE_MPEGTS_PROBE-yes) + +fate-mpegts: $(FATE_MPEGTS_PROBE-yes) diff --git a/tests/ref/fate/mpegts-probe-latm b/tests/ref/fate/mpegts-probe-latm new file mode 100644 index 00..13aea2bcfd --- /dev/null +++ b/tests/ref/fate/mpegts-probe-latm @@ -0,0 +1,14 @@ +[PROGRAM] +[STREAM] +codec_name=hevc +[/STREAM] +[STREAM] +codec_name=aac_latm +[/STREAM] +[/PROGRAM] +[STREAM] +codec_name=hevc +[/STREAM] +[STREAM] +codec_name=aac_latm +[/STREAM] ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/proresdec2: SKIP_BITS() does not work with len=32
ffmpeg | branch: master | Michael Niedermayer | Mon Oct 2 04:18:22 2017 +0200| [c37138e01a93da2f9dd2cc5d4b77e5a38581d130] | committer: Michael Niedermayer avcodec/proresdec2: SKIP_BITS() does not work with len=32 Fixes: invalid shift Fixes: 3482/clusterfuzz-testcase-minimized-5446915875405824 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c37138e01a93da2f9dd2cc5d4b77e5a38581d130 --- libavcodec/proresdec2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/proresdec2.c b/libavcodec/proresdec2.c index e077908027..22dc70eeb4 100644 --- a/libavcodec/proresdec2.c +++ b/libavcodec/proresdec2.c @@ -267,7 +267,7 @@ static int decode_picture_header(AVCodecContext *avctx, const uint8_t *buf, cons \ if (q > switch_bits) { /* exp golomb */ \ bits = exp_order - switch_bits + (q<<1);\ -if (bits > MIN_CACHE_BITS) \ +if (bits > FFMIN(MIN_CACHE_BITS, 31)) \ return AVERROR_INVALIDDATA; \ val = SHOW_UBITS(re, gb, bits) - (1 << exp_order) + \ ((switch_bits + 1) << rice_order); \ ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/hevcdsp_template: Fix undefined shift
ffmpeg | branch: master | Michael Niedermayer | Mon Oct 2 04:18:21 2017 +0200| [fbdab6eca7874fbeba6aa79c269f345e4d43f5d4] | committer: Michael Niedermayer avcodec/hevcdsp_template: Fix undefined shift Fixes: runtime error: left shift of negative value -255 Fixes: 3373/clusterfuzz-testcase-minimized-5604083912146944 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fbdab6eca7874fbeba6aa79c269f345e4d43f5d4 --- libavcodec/hevcdsp_template.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/hevcdsp_template.c b/libavcodec/hevcdsp_template.c index 75763ce85e..e09c661759 100644 --- a/libavcodec/hevcdsp_template.c +++ b/libavcodec/hevcdsp_template.c @@ -1486,7 +1486,7 @@ static void FUNC(put_hevc_epel_bi_w_hv)(uint8_t *_dst, ptrdiff_t _dststride, uin for (y = 0; y < height; y++) { for (x = 0; x < width; x++) dst[x] = av_clip_pixel(((EPEL_FILTER(tmp, MAX_PB_SIZE) >> 6) * wx1 + src2[x] * wx0 + -((ox0 + ox1 + 1) << log2Wd)) >> (log2Wd + 1)); +((ox0 + ox1 + 1) * (1 << log2Wd))) >> (log2Wd + 1)); tmp += MAX_PB_SIZE; dst += dststride; src2 += MAX_PB_SIZE; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/proresdec2: Use LAST_SKIP_BITS where possible
ffmpeg | branch: master | Michael Niedermayer | Mon Oct 2 04:18:23 2017 +0200| [4ee77cefaed0cf19b03b4b6f4945f52301165469] | committer: Michael Niedermayer avcodec/proresdec2: Use LAST_SKIP_BITS where possible Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4ee77cefaed0cf19b03b4b6f4945f52301165469 --- libavcodec/proresdec2.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libavcodec/proresdec2.c b/libavcodec/proresdec2.c index 22dc70eeb4..a7cea2b3b8 100644 --- a/libavcodec/proresdec2.c +++ b/libavcodec/proresdec2.c @@ -250,7 +250,7 @@ static int decode_picture_header(AVCodecContext *avctx, const uint8_t *buf, cons return pic_data_size; } -#define DECODE_CODEWORD(val, codebook) \ +#define DECODE_CODEWORD(val, codebook, SKIP)\ do {\ unsigned int rice_order, exp_order, switch_bits;\ unsigned int q, buf, bits; \ @@ -271,14 +271,14 @@ static int decode_picture_header(AVCodecContext *avctx, const uint8_t *buf, cons return AVERROR_INVALIDDATA; \ val = SHOW_UBITS(re, gb, bits) - (1 << exp_order) + \ ((switch_bits + 1) << rice_order); \ -SKIP_BITS(re, gb, bits);\ +SKIP(re, gb, bits); \ } else if (rice_order) {\ SKIP_BITS(re, gb, q+1); \ val = (q << rice_order) + SHOW_UBITS(re, gb, rice_order); \ -SKIP_BITS(re, gb, rice_order); \ +SKIP(re, gb, rice_order); \ } else {\ val = q;\ -SKIP_BITS(re, gb, q+1); \ +SKIP(re, gb, q+1); \ } \ } while (0) @@ -296,7 +296,7 @@ static av_always_inline int decode_dc_coeffs(GetBitContext *gb, int16_t *out, OPEN_READER(re, gb); -DECODE_CODEWORD(code, FIRST_DC_CB); +DECODE_CODEWORD(code, FIRST_DC_CB, LAST_SKIP_BITS); prev_dc = TOSIGNED(code); out[0] = prev_dc; @@ -305,7 +305,7 @@ static av_always_inline int decode_dc_coeffs(GetBitContext *gb, int16_t *out, code = 5; sign = 0; for (i = 1; i < blocks_per_slice; i++, out += 64) { -DECODE_CODEWORD(code, dc_codebook[FFMIN(code, 6U)]); +DECODE_CODEWORD(code, dc_codebook[FFMIN(code, 6U)], LAST_SKIP_BITS); if(code) sign ^= -(code & 1); else sign = 0; prev_dc += (((code + 1) >> 1) ^ sign) - sign; @@ -341,14 +341,14 @@ static av_always_inline int decode_ac_coeffs(AVCodecContext *avctx, GetBitContex if (!bits_left || (bits_left < 32 && !SHOW_UBITS(re, gb, bits_left))) break; -DECODE_CODEWORD(run, run_to_cb[FFMIN(run, 15)]); +DECODE_CODEWORD(run, run_to_cb[FFMIN(run, 15)], LAST_SKIP_BITS); pos += run + 1; if (pos >= max_coeffs) { av_log(avctx, AV_LOG_ERROR, "ac tex damaged %d, %d\n", pos, max_coeffs); return AVERROR_INVALIDDATA; } -DECODE_CODEWORD(level, lev_to_cb[FFMIN(level, 9)]); +DECODE_CODEWORD(level, lev_to_cb[FFMIN(level, 9)], SKIP_BITS); level += 1; i = pos >> log2_block_count; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/encode: do proper cleanup on failure
ffmpeg | branch: master | James Almer | Tue Oct 3 11:49:18 2017 -0300| [87e625c2633a83f62f155fcca33dab0a6e2bb5e6] | committer: James Almer avcodec/encode: do proper cleanup on failure Fixes the last remaining memleaks introduced by a22c6a4796ca1f2cbee6784262515da876fbec22. Signed-off-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=87e625c2633a83f62f155fcca33dab0a6e2bb5e6 --- libavcodec/encode.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/encode.c b/libavcodec/encode.c index c152228c92..c961dbace1 100644 --- a/libavcodec/encode.c +++ b/libavcodec/encode.c @@ -225,9 +225,9 @@ int attribute_align_arg avcodec_encode_audio2(AVCodecContext *avctx, } else if (!avpkt->buf) { AVPacket tmp = { 0 }; ret = av_packet_ref(&tmp, avpkt); -if (ret < 0) -return ret; av_packet_unref(avpkt); +if (ret < 0) +goto end; *avpkt = tmp; } } @@ -324,9 +324,9 @@ int attribute_align_arg avcodec_encode_video2(AVCodecContext *avctx, } else if (!avpkt->buf) { AVPacket tmp = { 0 }; ret = av_packet_ref(&tmp, avpkt); +av_packet_unref(avpkt); if (ret < 0) return ret; -av_packet_unref(avpkt); *avpkt = tmp; } } ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avformat/mxfenc: Add IEC DV25
ffmpeg | branch: master | Michael Niedermayer | Tue Sep 12 21:20:02 2017 +0200| [a56ec48d426f98702e7c6f76bdb5f036df56de4b] | committer: Michael Niedermayer avformat/mxfenc: Add IEC DV25 Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a56ec48d426f98702e7c6f76bdb5f036df56de4b --- libavformat/mxfenc.c | 17 - 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c index b8d3030c40..3da96bf919 100644 --- a/libavformat/mxfenc.c +++ b/libavformat/mxfenc.c @@ -119,6 +119,8 @@ enum ULIndex { INDEX_DV, INDEX_DV25_525_60, INDEX_DV25_625_50, +INDEX_DV25_525_60_IEC, +INDEX_DV25_625_50_IEC, INDEX_DV50_525_60, INDEX_DV50_625_50, INDEX_DV100_1080_60, @@ -231,6 +233,7 @@ static const MXFContainerEssenceEntry mxf_essence_container_uls[] = { { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x18,0x01,0x01,0x00 }, { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x02,0x00,0x00,0x00 }, mxf_write_cdci_desc }, + // DV25 525/60 { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x40,0x01 }, { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x18,0x01,0x01,0x00 }, @@ -241,7 +244,19 @@ static const MXFContainerEssenceEntry mxf_essence_container_uls[] = { { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x18,0x01,0x01,0x00 }, { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x02,0x02,0x02,0x00 }, mxf_write_cdci_desc }, -// DV50 525/60 + +// IEC DV25 525/60 +{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x01,0x01 }, + { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x18,0x01,0x01,0x00 }, + { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x02,0x02,0x01,0x00 }, + mxf_write_cdci_desc }, +// IEC DV25 625/50 +{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x02,0x01 }, + { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x18,0x01,0x01,0x00 }, + { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x02,0x01,0x02,0x00 }, + mxf_write_cdci_desc }, + + // DV50 525/60 { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x50,0x01 }, { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x18,0x01,0x01,0x00 }, { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x02,0x02,0x03,0x00 }, ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avformat/mxfenc: Fix labels for IEC PAL DV 420
ffmpeg | branch: master | Michael Niedermayer | Tue Sep 12 22:17:12 2017 +0200| [ef973bd98d8ee35dbbdd622b075c50d11c0d67fd] | committer: Michael Niedermayer avformat/mxfenc: Fix labels for IEC PAL DV 420 > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ef973bd98d8ee35dbbdd622b075c50d11c0d67fd --- libavformat/mxfenc.c| 9 + tests/ref/lavf/mxf_dv25 | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c index 3da96bf919..035e65ed43 100644 --- a/libavformat/mxfenc.c +++ b/libavformat/mxfenc.c @@ -48,6 +48,7 @@ #include "libavutil/time_internal.h" #include "libavcodec/bytestream.h" #include "libavcodec/dnxhddata.h" +#include "libavcodec/dv_profile.h" #include "libavcodec/h264.h" #include "libavcodec/internal.h" #include "audiointerleave.h" @@ -1812,6 +1813,7 @@ static int mxf_parse_dv_frame(AVFormatContext *s, AVStream *st, AVPacket *pkt) MXFStreamContext *sc = st->priv_data; uint8_t *vs_pack, *vsc_pack; int i, ul_index, frame_size, stype, pal; +const AVDVProfile *profile; if (mxf->header_written) return 1; @@ -1820,6 +1822,8 @@ static int mxf_parse_dv_frame(AVFormatContext *s, AVStream *st, AVPacket *pkt) if (pkt->size < 12) return -1; +profile = av_dv_frame_profile(NULL, pkt->data, pkt->size); + vs_pack = pkt->data + 80*5 + 48; vsc_pack = pkt->data + 80*5 + 53; stype= vs_pack[3] & 0x1f; @@ -1854,6 +1858,11 @@ static int mxf_parse_dv_frame(AVFormatContext *s, AVStream *st, AVPacket *pkt) frame_size = pal ? 288000 : 24; break; default: // DV25 +if (profile && profile->pix_fmt == AV_PIX_FMT_YUV420P && pal) { +ul_index = INDEX_DV25_525_60_IEC + pal; +frame_size = pal ? 144000 : 12; +break; +} ul_index = INDEX_DV25_525_60 + pal; frame_size = pal ? 144000 : 12; } diff --git a/tests/ref/lavf/mxf_dv25 b/tests/ref/lavf/mxf_dv25 index adecc07e70..85094828d1 100644 --- a/tests/ref/lavf/mxf_dv25 +++ b/tests/ref/lavf/mxf_dv25 @@ -1,3 +1,3 @@ -de98603ecc27c2f3cefd192d4820d3f4 *./tests/data/lavf/lavf.mxf_dv25 +1871bd11947924116776201f24fd0adf *./tests/data/lavf/lavf.mxf_dv25 3833389 ./tests/data/lavf/lavf.mxf_dv25 ./tests/data/lavf/lavf.mxf_dv25 CRC=0xbdaf7f52 ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] build: fix compilation of tools with OpenCL enabled
ffmpeg | branch: master | James Almer | Tue Oct 3 10:55:59 2017 -0300| [3e6829a8aa1ec687086669551aee45743ac25691] | committer: James Almer build: fix compilation of tools with OpenCL enabled Signed-off-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3e6829a8aa1ec687086669551aee45743ac25691 --- fftools/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fftools/Makefile b/fftools/Makefile index 094f6d6265..c867814a71 100644 --- a/fftools/Makefile +++ b/fftools/Makefile @@ -20,7 +20,6 @@ OBJS-ffmpeg-$(CONFIG_VIDEOTOOLBOX) += fftools/ffmpeg_videotoolbox.o OBJS-ffserver += fftools/ffserver_config.o define DOFFTOOL -OBJS-$(1)-$(CONFIG_OPENCL) += fftools/cmdutils_opencl.o OBJS-$(1) += fftools/cmdutils.o fftools/$(1).o $(OBJS-$(1)-yes) $(1)$(PROGSSUF)_g$(EXESUF): $$(OBJS-$(1)) $$(OBJS-$(1)): | fftools @@ -30,6 +29,7 @@ $(1)$(PROGSSUF)_g$(EXESUF): FF_EXTRALIBS += $(EXTRALIBS-$(1)) -include $$(OBJS-$(1):.o=.d) endef +$(foreach P,$(AVPROGS-yes),$(eval OBJS-$(P)-$(CONFIG_OPENCL) += fftools/cmdutils_opencl.o)) $(foreach P,$(AVPROGS-yes),$(eval $(call DOFFTOOL,$(P all: $(AVPROGS) ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog