[FFmpeg-cvslog] Merge commit '1818a640cfdccd52e97edf13564f45bc3d0d93eb'
ffmpeg | branch: master | Clément Bœsch | Sat Apr 15 18:42:30 2017 +0200| [9ae1ffe64126bda204e498c83e414dad7ff078f8] | committer: Clément Bœsch Merge commit '1818a640cfdccd52e97edf13564f45bc3d0d93eb' * commit '1818a640cfdccd52e97edf13564f45bc3d0d93eb': build: Fix dependencies for alsa/jack/sndio support Added explicit enable (which will be automatically added later on in ee480790c) to actually fix this commit. Without the explicit enables, alsa, jack and sndio gets disabled. Also added jack, alsa and sndio to the have list so the HAVE_* are populated to make (this fixes the SKIPHEADERS chunks). Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9ae1ffe64126bda204e498c83e414dad7ff078f8 --- configure| 20 +++- libavdevice/Makefile | 4 ++-- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/configure b/configure index e6fe05a6ee..d3b733cf66 100755 --- a/configure +++ b/configure @@ -2063,10 +2063,12 @@ HAVE_LIST=" $THREADS_LIST $TOOLCHAIN_FEATURES $TYPES_LIST +alsa atomics_native dos_paths dxva2_lib dxva2api_cobj +jack libc_msvcrt makeinfo makeinfo_html @@ -2075,6 +2077,7 @@ HAVE_LIST=" pod2man sdl2 section_data_rel_ro +sndio texi2html threads vaapi_drm @@ -2987,8 +2990,8 @@ xmv_demuxer_select="riffdec" xwma_demuxer_select="riffdec" # indevs / outdevs -alsa_indev_deps="alsa_asoundlib_h snd_pcm_htimestamp" -alsa_outdev_deps="alsa_asoundlib_h" +alsa_indev_deps="alsa" +alsa_outdev_deps="alsa" avfoundation_indev_deps="pthreads" avfoundation_indev_extralibs="-framework Foundation -framework AVFoundation -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" @@ -3007,7 +3010,7 @@ gdigrab_indev_deps="CreateDIBSection" gdigrab_indev_extralibs="-lgdi32" gdigrab_indev_select="bmp_decoder" iec61883_indev_deps="libiec61883" -jack_indev_deps="jack_jack_h" +jack_indev_deps="jack" jack_indev_deps_any="sem_timedwait dispatch_dispatch_h" lavfi_indev_deps="avfilter" libcdio_indev_deps="libcdio" @@ -3022,8 +3025,8 @@ pulse_outdev_deps="libpulse" qtkit_indev_extralibs="-framework QTKit -framework Foundation -framework QuartzCore" qtkit_indev_select="qtkit" sdl2_outdev_deps="sdl2" -sndio_indev_deps="sndio_h" -sndio_outdev_deps="sndio_h" +sndio_indev_deps="sndio" +sndio_outdev_deps="sndio" v4l_indev_deps="linux_videodev_h" v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h" v4l2_outdev_deps_any="linux_videodev2_h sys_videoio_h" @@ -5986,7 +5989,6 @@ check_type "dshow.h" IBaseFilter check_header dev/video/bktr/ioctl_bt848.h; } || check_header dev/ic/bt8xx.h -check_header sndio.h if check_struct sys/soundcard.h audio_buf_info bytes; then enable_safe sys/soundcard.h else @@ -5998,12 +6000,12 @@ fi check_header soundcard.h enabled_any alsa_indev alsa_outdev && -check_lib alsa/asoundlib.h snd_pcm_htimestamp -lasound +check_lib alsa/asoundlib.h snd_pcm_htimestamp -lasound && enable alsa -enabled jack_indev && check_lib jack/jack.h jack_client_open -ljack && +enabled jack_indev && check_lib jack/jack.h jack_client_open -ljack && enable jack && check_func jack_port_get_latency_range -ljack -enabled_any sndio_indev sndio_outdev && check_lib sndio.h sio_open -lsndio +enabled_any sndio_indev sndio_outdev && check_lib sndio.h sio_open -lsndio && enable sndio if enabled libcdio; then check_lib "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio || diff --git a/libavdevice/Makefile b/libavdevice/Makefile index 78c42e6564..6139f1944d 100644 --- a/libavdevice/Makefile +++ b/libavdevice/Makefile @@ -66,7 +66,7 @@ SKIPHEADERS-$(CONFIG_FBDEV_OUTDEV) += fbdev_common.h SKIPHEADERS-$(CONFIG_LIBPULSE) += pulse_audio_common.h SKIPHEADERS-$(CONFIG_V4L2_INDEV) += v4l2-common.h SKIPHEADERS-$(CONFIG_V4L2_OUTDEV)+= v4l2-common.h -SKIPHEADERS-$(HAVE_ALSA_ASOUNDLIB_H) += alsa.h -SKIPHEADERS-$(HAVE_SNDIO_H) += sndio.h +SKIPHEADERS-$(HAVE_ALSA) += alsa.h +SKIPHEADERS-$(HAVE_SNDIO)+= sndio.h TESTPROGS-$(CONFIG_JACK_INDEV) += timefilter == diff --cc configure index e6fe05a6ee,ac47c3d835..d3b733cf66 --- a/configure +++ b/configure @@@ -2063,19 -1676,12 +2063,22 @@@ HAVE_LIST= $THREADS_LIST $TOOLCHAIN_FEATURES $TYPES_LIST ++alsa +atomics_native dos_paths dxva2_lib +dxva2api_cobj ++jack libc_msvcrt +makeinfo +makeinfo_html MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS -sdl +perl +pod2man +sdl2 section_data_rel_ro ++sndio +texi2html threads vaapi_drm vaapi_x11 @@@ -2987,46 -2367,24 +2990,46 @@@ xmv_demuxer_select="ri
[FFmpeg-cvslog] build: Fix dependencies for alsa/jack/sndio support
ffmpeg | branch: master | Diego Biurrun | Thu Dec 8 11:49:34 2016 +0100| [1818a640cfdccd52e97edf13564f45bc3d0d93eb] | committer: Diego Biurrun build: Fix dependencies for alsa/jack/sndio support These components should depend on the availability of the respective libraries, not just on the availability of the respective headers. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1818a640cfdccd52e97edf13564f45bc3d0d93eb --- configure| 11 +-- libavdevice/Makefile | 4 ++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/configure b/configure index fc2c54aad3..ac47c3d835 100755 --- a/configure +++ b/configure @@ -2367,23 +2367,23 @@ xmv_demuxer_select="riffdec" xwma_demuxer_select="riffdec" # indevs / outdevs -alsa_indev_deps="alsa_asoundlib_h snd_pcm_htimestamp" -alsa_outdev_deps="alsa_asoundlib_h" +alsa_indev_deps="alsa" +alsa_outdev_deps="alsa" avfoundation_indev_deps="AVFoundation_AVFoundation_h objc_arc pthreads" avfoundation_indev_extralibs="-framework Foundation -framework AVFoundation -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" dv1394_indev_deps="dv1394" dv1394_indev_select="dv_demuxer" fbdev_indev_deps="linux_fb_h" -jack_indev_deps="jack_jack_h" +jack_indev_deps="jack" jack_indev_deps_any="sem_timedwait dispatch_dispatch_h" libcdio_indev_deps="libcdio" libdc1394_indev_deps="libdc1394" oss_indev_deps_any="soundcard_h sys_soundcard_h" oss_outdev_deps_any="soundcard_h sys_soundcard_h" pulse_indev_deps="libpulse" -sndio_indev_deps="sndio_h" -sndio_outdev_deps="sndio_h" +sndio_indev_deps="sndio" +sndio_outdev_deps="sndio" v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h" vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines" vfwcap_indev_extralibs="-lavicap32" @@ -4742,7 +4742,6 @@ check_cpp_condition vfw.h "WM_CAP_DRIVER_CONNECT > WM_USER" && enable vfwcap_def check_header dev/video/bktr/ioctl_bt848.h; } || check_header dev/ic/bt8xx.h -check_header sndio.h check_header sys/soundcard.h check_header soundcard.h diff --git a/libavdevice/Makefile b/libavdevice/Makefile index 5bb1d3f8c9..664fa0f9ff 100644 --- a/libavdevice/Makefile +++ b/libavdevice/Makefile @@ -29,7 +29,7 @@ OBJS-$(CONFIG_XCBGRAB_INDEV) += xcbgrab.o OBJS-$(CONFIG_LIBCDIO_INDEV) += libcdio.o OBJS-$(CONFIG_LIBDC1394_INDEV) += libdc1394.o -SKIPHEADERS-$(HAVE_ALSA_ASOUNDLIB_H) += alsa.h -SKIPHEADERS-$(HAVE_SNDIO_H) += sndio.h +SKIPHEADERS-$(HAVE_ALSA) += alsa.h +SKIPHEADERS-$(HAVE_SNDIO)+= sndio.h TESTPROGS-$(CONFIG_JACK_INDEV) += timefilter ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'a7101eb40e69ada3872ec5aebe9c5c165745fb3a'
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 09:36:26 2017 +0200| [3675f545e720dc0ea5090e53b796e8bdfc03b57a] | committer: Clément Bœsch Merge commit 'a7101eb40e69ada3872ec5aebe9c5c165745fb3a' * commit 'a7101eb40e69ada3872ec5aebe9c5c165745fb3a': configure: Simplify some library checks via check_lib() This commit is a noop as it doesn't apply to FFmpeg: - the nanosleep check doesn't use add_extralibs in FFmpeg - the pthread checks check multiple functions before add the extra libraries Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3675f545e720dc0ea5090e53b796e8bdfc03b57a --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] configure: Simplify some library checks via check_lib()
ffmpeg | branch: master | Diego Biurrun | Thu Dec 8 10:33:58 2016 +0100| [a7101eb40e69ada3872ec5aebe9c5c165745fb3a] | committer: Diego Biurrun configure: Simplify some library checks via check_lib() > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a7101eb40e69ada3872ec5aebe9c5c165745fb3a --- configure | 12 +--- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/configure b/configure index ac47c3d835..6ff5863491 100755 --- a/configure +++ b/configure @@ -4506,7 +4506,7 @@ check_func mkstemp check_func mmap check_func mprotect # Solaris has nanosleep in -lrt, OpenSolaris no longer needs that -check_func_headers time.h nanosleep || { check_func_headers time.h nanosleep -lrt && add_extralibs -lrt; } +check_func_headers time.h nanosleep || check_lib time.h nanosleep -lrt check_func sched_getaffinity check_func setrlimit check_func strerror_r @@ -4581,14 +4581,12 @@ fi # do this before the optional library checks as some of them require pthreads if ! disabled pthreads && ! enabled w32threads; then enable pthreads -if check_func pthread_join -pthread; then +if check_lib pthread.h pthread_join -pthread; then add_cflags -pthread -add_extralibs -pthread -elif check_func pthread_join -pthreads; then +elif check_lib pthread.h pthread_join -pthreads; then add_cflags -pthreads -add_extralibs -pthreads -elif check_func pthread_join -lpthreadGC2; then -add_extralibs -lpthreadGC2 +elif check_lib pthread.h pthread_join -lpthreadGC2; then +: elif check_lib pthread.h pthread_join -lpthread; then : elif ! check_func pthread_join; then ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] build: Rename host_libs/HOSTLIBS variables to host_extralibs/HOSTEXTRALIBS
ffmpeg | branch: master | Diego Biurrun | Tue Dec 6 18:19:09 2016 +0100| [0507cd5b9f3c3769645bc6e9177eaf760f490d1c] | committer: Diego Biurrun build: Rename host_libs/HOSTLIBS variables to host_extralibs/HOSTEXTRALIBS This is more in line with the other related variable names. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0507cd5b9f3c3769645bc6e9177eaf760f490d1c --- common.mak | 2 +- configure | 8 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/common.mak b/common.mak index d73addeffe..70ebd4b7ab 100644 --- a/common.mak +++ b/common.mak @@ -39,7 +39,7 @@ $(HOSTOBJS): %.o: %.c $(COMPILE_HOSTC) $(HOSTPROGS): %$(HOSTEXESUF): %.o - $(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTLIBS) + $(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTEXTRALIBS) $(OBJS): | $(sort $(dir $(OBJS))) $(HOBJS):| $(sort $(dir $(HOBJS))) diff --git a/configure b/configure index 6ff5863491..dc540f6d9b 100755 --- a/configure +++ b/configure @@ -1807,9 +1807,9 @@ CMDLINE_SET=" extra_version host_cc host_cflags +host_extralibs host_ld host_ldflags -host_libs host_os ld logfile @@ -2572,7 +2572,7 @@ HOSTCC_E='-E -o $@' HOSTCC_O='-o $@' HOSTLD_O='-o $@' -host_libs='-lm' +host_extralibs='-lm' host_cflags_filter=echo host_ldflags_filter=echo @@ -3809,7 +3809,7 @@ case $target_os in haiku) prefix_default="/boot/common" network_extralibs="-lnetwork" -host_libs= +host_extralibs= ;; sunos) SHFLAGS='-shared -Wl,-h,$$(@F)' @@ -5281,7 +5281,7 @@ HOSTCFLAGS=$host_cflags HOSTCPPFLAGS=$host_cppflags HOSTEXESUF=$HOSTEXESUF HOSTLDFLAGS=$host_ldflags -HOSTLIBS=$host_libs +HOSTEXTRALIBS=$host_extralibs DEPHOSTCC=$host_cc DEPHOSTCCFLAGS=$DEPHOSTCCFLAGS \$(HOSTCCFLAGS) HOSTCCDEP=$HOSTCCDEP ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '0507cd5b9f3c3769645bc6e9177eaf760f490d1c'
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 09:39:31 2017 +0200| [0a0517bbf51117013400ed4520eba13aa94a77b8] | committer: Clément Bœsch Merge commit '0507cd5b9f3c3769645bc6e9177eaf760f490d1c' * commit '0507cd5b9f3c3769645bc6e9177eaf760f490d1c': build: Rename host_libs/HOSTLIBS variables to host_extralibs/HOSTEXTRALIBS Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0a0517bbf51117013400ed4520eba13aa94a77b8 --- common.mak | 2 +- configure | 8 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/common.mak b/common.mak index adaf398a57..909dfc1bb6 100644 --- a/common.mak +++ b/common.mak @@ -143,7 +143,7 @@ $(HOSTOBJS): %.o: %.c $(COMPILE_HOSTC) $(HOSTPROGS): %$(HOSTEXESUF): %.o - $(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTLIBS) + $(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTEXTRALIBS) $(OBJS): | $(sort $(dir $(OBJS))) $(HOBJS):| $(sort $(dir $(HOBJS))) diff --git a/configure b/configure index d3b733cf66..78e226398a 100755 --- a/configure +++ b/configure @@ -2218,9 +2218,9 @@ CMDLINE_SET=" gas host_cc host_cflags +host_extralibs host_ld host_ldflags -host_libs host_os install ld @@ -3335,7 +3335,7 @@ HOSTCC_E='-E -o $@' HOSTCC_O='-o $@' HOSTLD_O='-o $@' -host_libs='-lm' +host_extralibs='-lm' host_cflags_filter=echo host_ldflags_filter=echo @@ -4778,7 +4778,7 @@ case $target_os in haiku) prefix_default="/boot/common" network_extralibs="-lnetwork" -host_libs= +host_extralibs= ;; sunos) SHFLAGS='-shared -Wl,-h,$$(@F)' @@ -6722,7 +6722,7 @@ HOSTCFLAGS=$host_cflags HOSTCPPFLAGS=$host_cppflags HOSTEXESUF=$HOSTEXESUF HOSTLDFLAGS=$host_ldflags -HOSTLIBS=$host_libs +HOSTEXTRALIBS=$host_extralibs DEPHOSTCC=$host_cc DEPHOSTCCFLAGS=$DEPHOSTCCFLAGS \$(HOSTCCFLAGS) HOSTCCDEP=$HOSTCCDEP == diff --cc configure index d3b733cf66,dc540f6d9b..78e226398a --- a/configure +++ b/configure @@@ -2210,21 -1802,16 +2210,21 @@@ CMDLINE_SET= cpu cross_prefix custom_allocator +cxx dep_cc +doxygen env extra_version +gas host_cc host_cflags + host_extralibs host_ld host_ldflags - host_libs host_os +install ld +ln_s logfile malloc_prefix nm ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] build: remove special freetype check
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 10:00:06 2017 +0200| [0ba67a8eb1ca630af863dc42a36a3968bc808ab4] | committer: Clément Bœsch build: remove special freetype check Since 52ccc4a0e was merged, it's pointless to keep our special version. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0ba67a8eb1ca630af863dc42a36a3968bc808ab4 --- configure | 22 +- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/configure b/configure index 78e226398a..1a8de90761 100755 --- a/configure +++ b/configure @@ -1354,26 +1354,6 @@ require_pkg_config(){ use_pkg_config "$@" || die "ERROR: $pkg not found using pkg-config$pkg_config_fail_message" } -require_libfreetype(){ -log require_libfreetype "$@" -pkg="freetype2" -check_cmd $pkg_config --exists --print-errors $pkg \ - || die "ERROR: $pkg not found" -pkg_cflags=$($pkg_config --cflags $pkg_config_flags $pkg) -pkg_libs=$($pkg_config --libs $pkg_config_flags $pkg) -{ -echo "#include " -echo "#include FT_FREETYPE_H" -echo "long check_func(void) { return (long) FT_Init_FreeType; }" -echo "int main(void) { return 0; }" -} | check_ld "cc" $pkg_cflags $pkg_libs \ - && set_safe "${pkg}_cflags" $pkg_cflags \ - && set_safe "${pkg}_libs" $pkg_libs \ - || die "ERROR: $pkg not found" -add_cflags$(get_safe "${pkg}_cflags") -add_extralibs $(get_safe "${pkg}_libs") -} - hostcc_e(){ eval printf '%s\\n' $HOSTCC_E } @@ -5780,7 +5760,7 @@ flite_libs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_c enabled libflite && require libflite "flite/flite.h" flite_init $flite_libs enabled fontconfig&& enable libfontconfig enabled libfontconfig && require_pkg_config fontconfig "fontconfig/fontconfig.h" FcInit -enabled libfreetype && require_libfreetype +enabled libfreetype && require_pkg_config freetype2 "ft2build.h FT_FREETYPE_H" FT_Init_FreeType enabled libfribidi&& require_pkg_config fribidi fribidi.h fribidi_version_info enabled libgme&& require libgme gme/gme.h gme_new_emu -lgme -lstdc++ enabled libgsm&& { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] build: Use _extralibs variable names instead of _libs everywhere
ffmpeg | branch: master | Diego Biurrun | Thu Dec 8 15:44:45 2016 +0100| [be2d555c980220e65d0ca5c3d78e6cc1e24451a5] | committer: Diego Biurrun build: Use _extralibs variable names instead of _libs everywhere This makes naming more consistent and simplifies extralibs-related changes. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=be2d555c980220e65d0ca5c3d78e6cc1e24451a5 --- Makefile | 2 +- configure | 20 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index ec04d19d79..d4c2b8e7d7 100644 --- a/Makefile +++ b/Makefile @@ -164,7 +164,7 @@ OBJS-$(1) += $(1).o $(OBJS-$(1)-yes) $(1)$(EXESUF): $$(OBJS-$(1)) $$(OBJS-$(1)): CFLAGS += $(CFLAGS-$(1)) $(1)$(EXESUF): LDFLAGS += $(LDFLAGS-$(1)) -$(1)$(EXESUF): FF_EXTRALIBS += $(LIBS-$(1)) +$(1)$(EXESUF): FF_EXTRALIBS += $(EXTRALIBS-$(1)) -include $$(OBJS-$(1):.o=.d) endef diff --git a/configure b/configure index dc540f6d9b..f5c0b11629 100755 --- a/configure +++ b/configure @@ -1023,8 +1023,8 @@ check_pkg_config(){ pkg_cflags=$($pkg_config --cflags $pkg_config_flags $pkg) pkg_libs=$($pkg_config --libs $pkg_config_flags $pkg) check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" && -set_safe "${pkg}_cflags" $pkg_cflags && -set_safe "${pkg}_libs" $pkg_libs +set_safe "${pkg}_cflags"$pkg_cflags && +set_safe "${pkg}_extralibs" $pkg_libs } check_exec(){ @@ -1117,7 +1117,7 @@ require_pkg_config(){ pkg="${1%% *}" check_pkg_config "$@" || die "ERROR: $pkg_version not found" add_cflags$(get_safe "${pkg}_cflags") -add_extralibs $(get_safe "${pkg}_libs") +add_extralibs $(get_safe "${pkg}_extralibs") } hostcc_e(){ @@ -2477,7 +2477,7 @@ avconv_select="aformat_filter anull_filter asyncts_filter atrim_filter format_fi fps_filter null_filter resample_filter scale_filter trim_filter" avplay_deps="avcodec avfilter avformat avresample sdl" -avplay_libs='$sdl_libs' +avplay_extralibs='$sdl_extralibs' avplay_select="rdft format_filter transpose_filter hflip_filter vflip_filter" avprobe_deps="avcodec avformat" @@ -4695,7 +4695,7 @@ enabled omx_rpi && { check_header OMX_Core.h || enabled omx && { check_header OMX_Core.h || die "ERROR: OpenMAX IL headers not found"; } enabled openssl && { { check_pkg_config openssl openssl/ssl.h OPENSSL_init_ssl || check_pkg_config openssl openssl/ssl.h SSL_library_init; } && { - add_cflags $openssl_cflags && add_extralibs $openssl_libs; }|| + add_cflags $openssl_cflags && add_extralibs $openssl_extralibs; } || check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto || check_lib openssl/ssl.h SSL_library_init -lssl32 -leay32 || check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 || @@ -4773,7 +4773,7 @@ if enabled libxcb; then } && enable libxcb_xfixes add_cflags "$xcb_shape_cflags $xcb_shm_cflags $xcb_xfixes_cflags" -add_extralibs "$xcb_shape_libs $xcb_shm_libs $xcb_xfixes_libs" +add_extralibs "$xcb_shape_extralibs $xcb_shm_extralibs $xcb_xfixes_extralibs" fi enabled vaapi && require vaapi va/va.h vaInitialize -lva @@ -5329,12 +5329,12 @@ map 'get_version $v' $LIBRARY_LIST map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> config.mak' $LIBRARY_LIST -print_program_libs(){ -eval "program_libs=\$${1}_libs" -eval echo "LIBS-${1}=${program_libs}" >> config.mak +print_program_extralibs(){ +eval "program_extralibs=\$${1}_extralibs" +eval echo "EXTRALIBS-${1}=${program_extralibs}" >> config.mak } -map 'print_program_libs $v' $PROGRAM_LIST +map 'print_program_extralibs $v' $PROGRAM_LIST cat > $TMPH
[FFmpeg-cvslog] Merge commit 'be2d555c980220e65d0ca5c3d78e6cc1e24451a5'
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 10:22:52 2017 +0200| [9bf3d8408937e101921b3a0090cd6ae116b0c41f] | committer: Clément Bœsch Merge commit 'be2d555c980220e65d0ca5c3d78e6cc1e24451a5' * commit 'be2d555c980220e65d0ca5c3d78e6cc1e24451a5': build: Use _extralibs variable names instead of _libs everywhere Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9bf3d8408937e101921b3a0090cd6ae116b0c41f --- Makefile | 2 +- configure | 44 ++-- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Makefile b/Makefile index d5b51de7e7..559c5b8d5f 100644 --- a/Makefile +++ b/Makefile @@ -123,7 +123,7 @@ OBJS-$(1) += $(1).o $(OBJS-$(1)-yes) $(1)$(PROGSSUF)_g$(EXESUF): $$(OBJS-$(1)) $$(OBJS-$(1)): CFLAGS += $(CFLAGS-$(1)) $(1)$(PROGSSUF)_g$(EXESUF): LDFLAGS += $(LDFLAGS-$(1)) -$(1)$(PROGSSUF)_g$(EXESUF): FF_EXTRALIBS += $(LIBS-$(1)) +$(1)$(PROGSSUF)_g$(EXESUF): FF_EXTRALIBS += $(EXTRALIBS-$(1)) -include $$(OBJS-$(1):.o=.d) endef diff --git a/configure b/configure index 1a8de90761..58990feb3e 100755 --- a/configure +++ b/configure @@ -1246,8 +1246,8 @@ check_pkg_config(){ pkg_cflags=$($pkg_config --cflags $pkg_config_flags $pkg) pkg_libs=$($pkg_config --libs $pkg_config_flags $pkg) check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" && -set_safe "${pkg}_cflags" $pkg_cflags && -set_safe "${pkg}_libs" $pkg_libs +set_safe "${pkg}_cflags"$pkg_cflags && +set_safe "${pkg}_extralibs" $pkg_libs } check_exec(){ @@ -1347,7 +1347,7 @@ use_pkg_config(){ pkg="$1" check_pkg_config "$@" || return 1 add_cflags$(get_safe "${pkg}_cflags") -add_extralibs $(get_safe "${pkg}_libs") +add_extralibs $(get_safe "${pkg}_extralibs") } require_pkg_config(){ @@ -3198,7 +3198,7 @@ ffmpeg_select="aformat_filter anull_filter atrim_filter format_filter null_filter trim_filter" ffplay_deps="avcodec avformat swscale swresample sdl2" -ffplay_libs='$sdl2_libs' +ffplay_extralibs='$sdl2_extralibs' ffplay_select="rdft crop_filter transpose_filter hflip_filter vflip_filter rotate_filter" ffprobe_deps="avcodec avformat" ffserver_deps="avformat fork sarestart" @@ -5756,8 +5756,8 @@ enabled libdc1394 && require_pkg_config libdc1394-2 dc1394/dc1394.h dc13 enabled libfdk_aac&& { use_pkg_config fdk-aac "fdk-aac/aacenc_lib.h" aacEncOpen || { require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac && warn "using libfdk without pkg-config"; } } -flite_libs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmulex -lflite" -enabled libflite && require libflite "flite/flite.h" flite_init $flite_libs +flite_extralibs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmulex -lflite" +enabled libflite && require libflite "flite/flite.h" flite_init $flite_extralibs enabled fontconfig&& enable libfontconfig enabled libfontconfig && require_pkg_config fontconfig "fontconfig/fontconfig.h" FcInit enabled libfreetype && require_pkg_config freetype2 "ft2build.h FT_FREETYPE_H" FT_Init_FreeType @@ -5865,8 +5865,8 @@ enabled mmal && { check_lib interface/mmal/mmal.h mmal_port_connect die "ERROR: mmal not found" && check_func_headers interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS"; } enabled netcdf&& require_pkg_config netcdf netcdf.h nc_inq_libvers -enabled openal&& { { for al_libs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do - check_lib 'AL/al.h' alGetError "${al_libs}" && break; done } || +enabled openal&& { { for al_extralibs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do + check_lib 'AL/al.h' alGetError "${al_extralibs}" && break; done } || die "ERROR: openal not found"; } && { check_cpp_condition "AL/al.h" "defined(AL_VERSION_1_1)" || die "ERROR: openal must be installed and version must be 1.1 or compatible"; } @@ -5898,10 +5898,10 @@ if enabled gcrypt; then GCRYPT_CONFIG="${cross_prefix}libgcrypt-config" if "${GCRYPT_CONFIG}" --version > /dev/null 2>&1; then gcrypt_cflags=$("${GCRYPT_CONFIG}" --cflags) -gcrypt_libs=$("${GCRYPT_CONFIG}" --libs) -check_func_headers gcrypt.h gcry_mpi_new $gcrypt_cflags $gcrypt_libs || +gcrypt_extralibs=$("${GCRYPT_CONFIG}" --libs) +check_func_headers gcrypt.h gcry_mpi_new $gcrypt_cflags $gcrypt_extralibs || die "ERRO
[FFmpeg-cvslog] configure: Fix _libs vs. _extralibs oversight
ffmpeg | branch: master | Diego Biurrun | Sat Dec 10 15:06:34 2016 +0100| [39fbcf8f76ff2e7cd8d09307e6aacc70ce8f5fed] | committer: Diego Biurrun configure: Fix _libs vs. _extralibs oversight > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=39fbcf8f76ff2e7cd8d09307e6aacc70ce8f5fed --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index f5c0b11629..731986abeb 100755 --- a/configure +++ b/configure @@ -5055,7 +5055,7 @@ check_deps $CONFIG_LIST \ $ALL_COMPONENTS\ enabled_all dxva2 CoTaskMemFree && -prepend avconv_libs $($ldflags_filter "-lole32") && +prepend avconv_extralibs $($ldflags_filter "-lole32") && enable dxva2_lib map 'enabled $v && intrinsics=${v#intrinsics_}' $INTRINSICS_LIST ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '39fbcf8f76ff2e7cd8d09307e6aacc70ce8f5fed'
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 10:26:42 2017 +0200| [806f5b0b0ba0b0007187a20266f4f1806bab826c] | committer: Clément Bœsch Merge commit '39fbcf8f76ff2e7cd8d09307e6aacc70ce8f5fed' * commit '39fbcf8f76ff2e7cd8d09307e6aacc70ce8f5fed': configure: Fix _libs vs. _extralibs oversight This commit is a noop, see 9bf3d8408937e101921b3a0090cd6ae116b0c41f Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=806f5b0b0ba0b0007187a20266f4f1806bab826c --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'f8a1ead0ae4402df0503c83f213f57b785a5f20f'
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 10:27:18 2017 +0200| [15bca8c67dfe2182cadeb08959d085a1a0716715] | committer: Clément Bœsch Merge commit 'f8a1ead0ae4402df0503c83f213f57b785a5f20f' * commit 'f8a1ead0ae4402df0503c83f213f57b785a5f20f': build: Add -D_XOPEN_SOURCE=600 to CPPFLAGS on Cygwin Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=15bca8c67dfe2182cadeb08959d085a1a0716715 --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 58990feb3e..017a83eb03 100755 --- a/configure +++ b/configure @@ -5023,7 +5023,7 @@ probe_libc(){ # MinGW headers can be installed on Cygwin, so check for newlib first. elif check_${pfx}cpp_condition newlib.h "defined _NEWLIB_VERSION"; then eval ${pfx}libc_type=newlib -add_${pfx}cppflags -U__STRICT_ANSI__ +add_${pfx}cppflags -U__STRICT_ANSI__ -D_XOPEN_SOURCE=600 # MinGW64 is backwards compatible with MinGW32, so check for it first. elif check_${pfx}cpp_condition _mingw.h "defined __MINGW64_VERSION_MAJOR"; then eval ${pfx}libc_type=mingw64 == ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] build: Add -D_XOPEN_SOURCE=600 to CPPFLAGS on Cygwin
ffmpeg | branch: master | Diego Biurrun | Fri Dec 9 15:45:05 2016 +0100| [f8a1ead0ae4402df0503c83f213f57b785a5f20f] | committer: Diego Biurrun build: Add -D_XOPEN_SOURCE=600 to CPPFLAGS on Cygwin This is required to make certain math defines visible on modern Cygwin. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f8a1ead0ae4402df0503c83f213f57b785a5f20f --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 731986abeb..804eee6df7 100755 --- a/configure +++ b/configure @@ -4017,7 +4017,7 @@ probe_libc(){ # MinGW headers can be installed on Cygwin, so check for newlib first. elif check_${pfx}cpp_condition newlib.h "defined _NEWLIB_VERSION"; then eval ${pfx}libc_type=newlib -add_${pfx}cppflags -U__STRICT_ANSI__ +add_${pfx}cppflags -U__STRICT_ANSI__ -D_XOPEN_SOURCE=600 # MinGW64 is backwards compatible with MinGW32, so check for it first. elif check_${pfx}cpp_condition _mingw.h "defined __MINGW64_VERSION_MAJOR"; then eval ${pfx}libc_type=mingw64 ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] lavfi: Add VAAPI deinterlacer
ffmpeg | branch: master | Mark Thompson | Thu Nov 24 23:27:11 2016 +| [ade370a4d7eab1866b6023c91c135d27c77ca465] | committer: Mark Thompson lavfi: Add VAAPI deinterlacer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ade370a4d7eab1866b6023c91c135d27c77ca465 --- configure | 1 + libavfilter/Makefile | 1 + libavfilter/allfilters.c | 1 + libavfilter/version.h | 2 +- libavfilter/vf_deinterlace_vaapi.c | 625 + 5 files changed, 629 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 804eee6df7..d88329c71f 100755 --- a/configure +++ b/configure @@ -2436,6 +2436,7 @@ boxblur_filter_deps="gpl" bs2b_filter_deps="libbs2b" cropdetect_filter_deps="gpl" deinterlace_qsv_filter_deps="libmfx" +deinterlace_vaapi_filter_deps="vaapi" delogo_filter_deps="gpl" drawtext_filter_deps="libfreetype" frei0r_filter_deps="frei0r dlopen" diff --git a/libavfilter/Makefile b/libavfilter/Makefile index 8b2841e03b..646a5b5a26 100644 --- a/libavfilter/Makefile +++ b/libavfilter/Makefile @@ -49,6 +49,7 @@ OBJS-$(CONFIG_COPY_FILTER) += vf_copy.o OBJS-$(CONFIG_CROP_FILTER) += vf_crop.o OBJS-$(CONFIG_CROPDETECT_FILTER) += vf_cropdetect.o OBJS-$(CONFIG_DEINTERLACE_QSV_FILTER)+= vf_deinterlace_qsv.o +OBJS-$(CONFIG_DEINTERLACE_VAAPI_FILTER) += vf_deinterlace_vaapi.o OBJS-$(CONFIG_DELOGO_FILTER) += vf_delogo.o OBJS-$(CONFIG_DRAWBOX_FILTER)+= vf_drawbox.o OBJS-$(CONFIG_DRAWTEXT_FILTER) += vf_drawtext.o diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c index 246aed8412..3f09f46bb9 100644 --- a/libavfilter/allfilters.c +++ b/libavfilter/allfilters.c @@ -72,6 +72,7 @@ void avfilter_register_all(void) REGISTER_FILTER(CROP, crop, vf); REGISTER_FILTER(CROPDETECT, cropdetect, vf); REGISTER_FILTER(DEINTERLACE_QSV,deinterlace_qsv,vf); +REGISTER_FILTER(DEINTERLACE_VAAPI, deinterlace_vaapi, vf); REGISTER_FILTER(DELOGO, delogo, vf); REGISTER_FILTER(DRAWBOX,drawbox,vf); REGISTER_FILTER(DRAWTEXT, drawtext, vf); diff --git a/libavfilter/version.h b/libavfilter/version.h index 596701fc09..969f8101cd 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -30,7 +30,7 @@ #include "libavutil/version.h" #define LIBAVFILTER_VERSION_MAJOR 6 -#define LIBAVFILTER_VERSION_MINOR 8 +#define LIBAVFILTER_VERSION_MINOR 9 #define LIBAVFILTER_VERSION_MICRO 0 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ diff --git a/libavfilter/vf_deinterlace_vaapi.c b/libavfilter/vf_deinterlace_vaapi.c new file mode 100644 index 00..022baa11fc --- /dev/null +++ b/libavfilter/vf_deinterlace_vaapi.c @@ -0,0 +1,625 @@ +/* + * This file is part of Libav. + * + * Libav 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. + * + * Libav 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 Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#include +#include + +#include "libavutil/avassert.h" +#include "libavutil/hwcontext.h" +#include "libavutil/hwcontext_vaapi.h" +#include "libavutil/mem.h" +#include "libavutil/opt.h" +#include "libavutil/pixdesc.h" + +#include "avfilter.h" +#include "formats.h" +#include "internal.h" +#include "video.h" + +#define MAX_REFERENCES 8 + +typedef struct DeintVAAPIContext { +const AVClass *class; + +AVVAAPIDeviceContext *hwctx; +AVBufferRef *device_ref; + +intmode; + +intvalid_ids; +VAConfigID va_config; +VAContextIDva_context; + +AVBufferRef *input_frames_ref; +AVHWFramesContext *input_frames; + +AVBufferRef *output_frames_ref; +AVHWFramesContext *output_frames; +intoutput_height; +intoutput_width; + +VAProcFilterCapDeinterlacing + deint_caps[VAProcDeinterlacingCount]; +int nb_deint_caps; +VAProcPipelineCaps pipeline_caps; + +intqueue_depth; +intqueue_count; +AVFrame *frame_queue[MAX_REFERENCES]; + +VABufferID filter_buffer; +} DeintVAAPIContext; + +static const char *deint_vaapi_mode_name(int mode) +{ +
[FFmpeg-cvslog] Merge commit 'ade370a4d7eab1866b6023c91c135d27c77ca465'
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 10:28:03 2017 +0200| [9142b04bba45c27a69ac8baec088357070614674] | committer: Clément Bœsch Merge commit 'ade370a4d7eab1866b6023c91c135d27c77ca465' * commit 'ade370a4d7eab1866b6023c91c135d27c77ca465': lavfi: Add VAAPI deinterlacer This commit is a noop, see 359586f14f46bf3f9c1ae3375d80e8c0fc377bef Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9142b04bba45c27a69ac8baec088357070614674 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '7d81698b89172d2dcf1b78d4b42ba86262360559'
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 10:28:54 2017 +0200| [cc8cafae8775496a5a62285ad828db2d7fc1e7d8] | committer: Clément Bœsch Merge commit '7d81698b89172d2dcf1b78d4b42ba86262360559' * commit '7d81698b89172d2dcf1b78d4b42ba86262360559': vaapi_h265: Fix CFR mode with framerate set in AVCodecContext This commit is a noop, see 37de9ce713ebb65d8b040f4f83ba7542f0754485 Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cc8cafae8775496a5a62285ad828db2d7fc1e7d8 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] vaapi_h265: Fix CFR mode with framerate set in AVCodecContext
ffmpeg | branch: master | Mark Thompson | Tue Nov 29 22:13:58 2016 +| [7d81698b89172d2dcf1b78d4b42ba86262360559] | committer: Mark Thompson vaapi_h265: Fix CFR mode with framerate set in AVCodecContext Same issue as 17a0f9481cf07af0feb3838ca315b970117e8000. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7d81698b89172d2dcf1b78d4b42ba86262360559 --- libavcodec/vaapi_encode_h265.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c index ecf7973368..ade7d4a933 100644 --- a/libavcodec/vaapi_encode_h265.c +++ b/libavcodec/vaapi_encode_h265.c @@ -825,8 +825,8 @@ static int vaapi_encode_h265_init_sequence_params(AVCodecContext *avctx) vseq->bits_per_second = avctx->bit_rate; if (avctx->framerate.num > 0 && avctx->framerate.den > 0) { -vseq->vui_num_units_in_tick = avctx->framerate.num; -vseq->vui_time_scale= avctx->framerate.den; +vseq->vui_num_units_in_tick = avctx->framerate.den; +vseq->vui_time_scale= avctx->framerate.num; } else { vseq->vui_num_units_in_tick = avctx->time_base.num; vseq->vui_time_scale= avctx->time_base.den; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'ac648bb835edd3f67bda2267d0e72e5e582eb5a1'
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 10:32:45 2017 +0200| [bb71eb944c7abe4eccb6b21d4771751feca22980] | committer: Clément Bœsch Merge commit 'ac648bb835edd3f67bda2267d0e72e5e582eb5a1' * commit 'ac648bb835edd3f67bda2267d0e72e5e582eb5a1': dxva2: Simplify some ifdefs Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bb71eb944c7abe4eccb6b21d4771751feca22980 --- libavcodec/dxva2_internal.h | 13 +++-- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h index dfff4d6b47..5df24c5f53 100644 --- a/libavcodec/dxva2_internal.h +++ b/libavcodec/dxva2_internal.h @@ -32,12 +32,6 @@ #if CONFIG_DXVA2 #include "dxva2.h" -#endif -#if CONFIG_D3D11VA -#include "d3d11va.h" -#endif - -#if HAVE_DXVA_H /* When targeting WINAPI_FAMILY_PHONE_APP or WINAPI_FAMILY_APP, dxva.h * defines nothing. Force the struct definitions to be visible. */ #undef WINAPI_FAMILY @@ -46,6 +40,9 @@ #define _CRT_BUILD_DESKTOP_APP 0 #include #endif +#if CONFIG_D3D11VA +#include "d3d11va.h" +#endif #include "avcodec.h" @@ -60,12 +57,8 @@ typedef union { #endif } AVDXVAContext; -#if CONFIG_D3D11VA #define D3D11VA_CONTEXT(ctx) (&ctx->d3d11va) -#endif -#if CONFIG_DXVA2 #define DXVA2_CONTEXT(ctx) (&ctx->dxva2) -#endif #if CONFIG_D3D11VA && CONFIG_DXVA2 #define DXVA_CONTEXT_WORKAROUND(avctx, ctx) (avctx->pix_fmt == AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.workaround : ctx->dxva2.workaround) == ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] dxva2: Simplify some ifdefs
ffmpeg | branch: master | Diego Biurrun | Thu Dec 8 09:55:26 2016 +0100| [ac648bb835edd3f67bda2267d0e72e5e582eb5a1] | committer: Diego Biurrun dxva2: Simplify some ifdefs > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ac648bb835edd3f67bda2267d0e72e5e582eb5a1 --- libavcodec/dxva2_internal.h | 12 +++- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h index 2d7939e7c1..e7a9734105 100644 --- a/libavcodec/dxva2_internal.h +++ b/libavcodec/dxva2_internal.h @@ -32,11 +32,6 @@ #if CONFIG_DXVA2 #include "dxva2.h" -#endif -#if CONFIG_D3D11VA -#include "d3d11va.h" -#endif -#if HAVE_DXVA_H /* When targeting WINAPI_FAMILY_PHONE_APP or WINAPI_FAMILY_APP, dxva.h * defines nothing. Force the struct definitions to be visible. */ #undef WINAPI_FAMILY @@ -45,6 +40,9 @@ #define _CRT_BUILD_DESKTOP_APP 0 #include #endif +#if CONFIG_D3D11VA +#include "d3d11va.h" +#endif #include "avcodec.h" @@ -59,12 +57,8 @@ typedef union { #endif } AVDXVAContext; -#if CONFIG_D3D11VA #define D3D11VA_CONTEXT(ctx) (&ctx->d3d11va) -#endif -#if CONFIG_DXVA2 #define DXVA2_CONTEXT(ctx) (&ctx->dxva2) -#endif #if CONFIG_D3D11VA && CONFIG_DXVA2 #define DXVA_CONTEXT_WORKAROUND(avctx, ctx) (avctx->pix_fmt == AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.workaround : ctx->dxva2.workaround) ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Drop libxvid rate control support for mpegvideo encoding
ffmpeg | branch: master | Diego Biurrun | Sat Dec 3 13:16:13 2016 +0100| [a6901b9c6bd51396c1159f1a07f9f5042328cda6] | committer: Diego Biurrun Drop libxvid rate control support for mpegvideo encoding The feature has outlived is usefulness and complicates the code. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a6901b9c6bd51396c1159f1a07f9f5042328cda6 --- libavcodec/Makefile| 1 - libavcodec/libxvid.c | 31 +++- libavcodec/libxvid.h | 38 -- libavcodec/libxvid_rc.c| 181 - libavcodec/mpegvideo.h | 4 +- libavcodec/mpegvideo_enc.c | 30 6 files changed, 30 insertions(+), 255 deletions(-) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index eeac45d4c8..7bbc01c3b5 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -76,7 +76,6 @@ OBJS-$(CONFIG_IMDCT15) += imdct15.o OBJS-$(CONFIG_INTRAX8) += intrax8.o intrax8dsp.o OBJS-$(CONFIG_IVIDSP) += ivi_dsp.o OBJS-$(CONFIG_JPEGTABLES) += jpegtables.o -OBJS-$(CONFIG_LIBXVID) += libxvid_rc.o OBJS-$(CONFIG_LPC) += lpc.o OBJS-$(CONFIG_LSP) += lsp.o OBJS-$(CONFIG_LZF) += lzf.o diff --git a/libavcodec/libxvid.c b/libavcodec/libxvid.c index 9cbe9c17fa..1e8dc5d01b 100644 --- a/libavcodec/libxvid.c +++ b/libavcodec/libxvid.c @@ -26,6 +26,7 @@ */ #include +#include #include #include #include @@ -39,7 +40,6 @@ #include "avcodec.h" #include "internal.h" -#include "libxvid.h" #include "mpegutils.h" /** @@ -359,6 +359,33 @@ static void xvid_correct_framerate(AVCodecContext *avctx) } } +/* Create temporary file using mkstemp(), tries /tmp first, if possible. + * *prefix can be a character constant; *filename will be allocated internally. + * Return file descriptor of opened file (or error code on error) + * and opened file name in **filename. */ +static int xvid_tempfile(AVCodecContext *avctx, const char *prefix, + char **filename) +{ +int fd = -1; +size_t len = strlen(prefix) + 12; /* room for "/tmp/" and "XX\0" */ +*filename = av_malloc(len); +if (!(*filename)) { +av_log(avctx, AV_LOG_ERROR, "xvid_tempfile: Cannot allocate file name\n"); +return AVERROR(ENOMEM); +} +snprintf(*filename, len, "/tmp/%sXX", prefix); +fd = mkstemp(*filename); +if (fd < 0) { +snprintf(*filename, len, "./%sXX", prefix); +fd = mkstemp(*filename); +} +if (fd < 0) { +av_log(avctx, AV_LOG_ERROR, "xvid_tempfile: Cannot open temporary file %s\n", *filename); +return AVERROR(EIO); +} +return fd; /* success */ +} + static av_cold int xvid_encode_init(AVCodecContext *avctx) { int xerr, i; @@ -519,7 +546,7 @@ FF_ENABLE_DEPRECATION_WARNINGS rc2pass2.version = XVID_VERSION; rc2pass2.bitrate = avctx->bit_rate; -fd = ff_tempfile("xvidff.", &x->twopassfile); +fd = xvid_tempfile(avctx, "xvidff.", &x->twopassfile); if (fd < 0) { av_log(avctx, AV_LOG_ERROR, "Xvid: Cannot write 2-pass pipe\n"); return fd; diff --git a/libavcodec/libxvid.h b/libavcodec/libxvid.h deleted file mode 100644 index 4535898530..00 --- a/libavcodec/libxvid.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * copyright (C) 2006 Corey Hickey - * - * This file is part of Libav. - * - * Libav 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. - * - * Libav 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 Libav; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef AVCODEC_LIBXVID_H -#define AVCODEC_LIBXVID_H - -/** - * @file - * common functions for use with the Xvid wrappers - */ - -int ff_tempfile(const char *prefix, char **filename); - -struct MpegEncContext; - -/* rate control */ -int ff_xvid_rate_control_init(struct MpegEncContext *s); -void ff_xvid_rate_control_uninit(struct MpegEncContext *s); -float ff_xvid_rate_estimate_qscale(struct MpegEncContext *s, int dry_run); - -#endif /* AVCODEC_LIBXVID_H */ diff --git a/libavcodec/libxvid_rc.c b/libavcodec/libxvid_rc.c deleted file mode 100644 index 94301a2ac1..00 --- a/libavcodec/libxvid_rc.c +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Xvid rate control wrapper for lavc video encoders - * - * Copyright (c) 2006 Michael Niedermayer - *
[FFmpeg-cvslog] Merge commit 'a6901b9c6bd51396c1159f1a07f9f5042328cda6'
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 12:54:46 2017 +0200| [99b35a51ccbe2fc98530e5cf7529e7d377e1165e] | committer: Clément Bœsch Merge commit 'a6901b9c6bd51396c1159f1a07f9f5042328cda6' * commit 'a6901b9c6bd51396c1159f1a07f9f5042328cda6': Drop libxvid rate control support for mpegvideo encoding This commit is a noop, there is no known issue with it. Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=99b35a51ccbe2fc98530e5cf7529e7d377e1165e --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] configure: Handle dxva2 optional components in the standard way
ffmpeg | branch: master | Diego Biurrun | Tue Nov 22 08:21:48 2016 +0100| [f1248fae90b45501af4e8743d373e79191470331] | committer: Diego Biurrun configure: Handle dxva2 optional components in the standard way > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f1248fae90b45501af4e8743d373e79191470331 --- configure | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/configure b/configure index d88329c71f..6feaa64d78 100755 --- a/configure +++ b/configure @@ -4518,7 +4518,6 @@ check_func usleep check_func_headers io.h setmode check_func_headers stdlib.h getenv -check_func_headers windows.h CoTaskMemFree -lole32 check_func_headers windows.h GetProcessAffinityMask check_func_headers windows.h GetProcessTimes check_func_headers windows.h GetSystemTimeAsFileTime @@ -4777,6 +4776,10 @@ if enabled libxcb; then add_extralibs "$xcb_shape_extralibs $xcb_shm_extralibs $xcb_xfixes_extralibs" fi +enabled dxva2 && +check_lib windows.h CoTaskMemFree -lole32 && +enable dxva2_lib + enabled vaapi && require vaapi va/va.h vaInitialize -lva enabled vaapi && @@ -5055,10 +5058,6 @@ check_deps $CONFIG_LIST \ $HAVE_LIST \ $ALL_COMPONENTS\ -enabled_all dxva2 CoTaskMemFree && -prepend avconv_extralibs $($ldflags_filter "-lole32") && -enable dxva2_lib - map 'enabled $v && intrinsics=${v#intrinsics_}' $INTRINSICS_LIST for thread in $THREADS_LIST; do ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'f1248fae90b45501af4e8743d373e79191470331'
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 13:42:33 2017 +0200| [d1c8b9660848589ce4f1ac6e8ab337d9de495fbc] | committer: Clément Bœsch Merge commit 'f1248fae90b45501af4e8743d373e79191470331' * commit 'f1248fae90b45501af4e8743d373e79191470331': configure: Handle dxva2 optional components in the standard way Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d1c8b9660848589ce4f1ac6e8ab337d9de495fbc --- configure | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/configure b/configure index 017a83eb03..821dbcba25 100755 --- a/configure +++ b/configure @@ -5587,7 +5587,6 @@ check_func_headers lzo/lzo1x.h lzo1x_999_compress check_func_headers stdlib.h getenv check_func_headers sys/stat.h lstat -check_func_headers windows.h CoTaskMemFree -lole32 check_func_headers windows.h GetProcessAffinityMask check_func_headers windows.h GetProcessTimes check_func_headers windows.h GetSystemTimeAsFileTime @@ -6031,6 +6030,10 @@ enabled dxva2api_h && int main(void) { IDirectXVideoDecoder *o = NULL; IDirectXVideoDecoder_Release(o); return 0; } EOF +enabled dxva2 && +check_lib windows.h CoTaskMemFree -lole32 && +enable dxva2_lib + enabled vaapi && check_lib va/va.h vaInitialize -lva || disable vaapi @@ -6371,10 +6374,6 @@ if test $target_os = "haiku"; then disable posix_memalign fi -enabled_all dxva2 dxva2api_cobj CoTaskMemFree && -prepend ffmpeg_extralibs $($ldflags_filter "-lole32") && -enable dxva2_lib - # add_dep lib dep # -> enable ${lib}_deps_${dep} # -> add $dep to ${lib}_deps only once == diff --cc configure index 017a83eb03,6feaa64d78..821dbcba25 --- a/configure +++ b/configure @@@ -5581,13 -4515,9 +5581,12 @@@ check_func syscon check_func sysctl check_func usleep +check_func_headers conio.h kbhit check_func_headers io.h setmode +check_func_headers lzo/lzo1x.h lzo1x_999_compress check_func_headers stdlib.h getenv +check_func_headers sys/stat.h lstat - check_func_headers windows.h CoTaskMemFree -lole32 check_func_headers windows.h GetProcessAffinityMask check_func_headers windows.h GetProcessTimes check_func_headers windows.h GetSystemTimeAsFileTime @@@ -5993,47 -4757,30 +5992,51 @@@ if enabled libcdio; the die "ERROR: No usable libcdio/cdparanoia found" fi -if enabled libxcb; then -check_pkg_config xcb-shape xcb/shape.h xcb_shape_rectangles || { -enabled libxcb && die "ERROR: libxcb not found"; +if ! disabled libxcb; then +check_pkg_config "xcb >= 1.4" xcb/xcb.h xcb_connect || { +enabled libxcb && die "ERROR: libxcb >= 1.4 not found"; } && enable libxcb -disabled libxcb_shm || +if enabled libxcb; then +disabled libxcb_shm || { check_pkg_config xcb-shm xcb/shm.h xcb_shm_attach || { enabled libxcb_shm && die "ERROR: libxcb_shm not found"; -} && check_header sys/shm.h && enable libxcb_shm +} && check_header sys/shm.h && enable libxcb_shm; } -disabled libxcb_xfixes || +disabled libxcb_xfixes || { check_pkg_config xcb-xfixes xcb/xfixes.h xcb_xfixes_get_cursor_image || { enabled libxcb_xfixes && die "ERROR: libxcb_xfixes not found"; -} && enable libxcb_xfixes +} && enable libxcb_xfixes; } + +disabled libxcb_shape || { +check_pkg_config xcb-shape xcb/shape.h xcb_shape_get_rectangles || { +enabled libxcb_shape && die "ERROR: libxcb_shape not found"; +} && enable libxcb_shape; } -add_cflags "$xcb_shape_cflags $xcb_shm_cflags $xcb_xfixes_cflags" -add_extralibs "$xcb_shape_extralibs $xcb_shm_extralibs $xcb_xfixes_extralibs" +add_cflags $xcb_cflags $xcb_shm_cflags $xcb_xfixes_cflags $xcb_shape_cflags +add_extralibs $xcb_extralibs $xcb_shm_extralibs $xcb_xfixes_extralibs $xcb_shape_extralibs fi +fi + +check_func_headers "windows.h" CreateDIBSection "$gdigrab_indev_extralibs" + +enabled dxva2api_h && +check_cc < +#include +#include +int main(void) { IDirectXVideoDecoder *o = NULL; IDirectXVideoDecoder_Release(o); return 0; } +EOF + enabled dxva2 && + check_lib windows.h CoTaskMemFree -lole32 && + enable dxva2_lib + -enabled vaapi && require vaapi va/va.h vaInitialize -lva +enabled vaapi && +check_lib va/va.h vaInitialize -lva || +disable vaapi enabled vaapi && check_code cc "va/va.h" "vaCreateSurfaces(0, 0, 0, 0, 0, 0, 0, 0)" || @@@ -6363,45 -5058,6 +6366,41 @@@ check_deps $CONFIG_LIST $HAVE_LIST \ $ALL_COMPONENTS\ +enabled threads && ! enabled pthreads && ! enabled atomics_native && die "non pthread threading without atomics not supported, try adding --enable-pthreads or --cpu=i486 or higher if you are on x86" + + +if test $target_os = "haiku"; then +disable memalign +disabl
[FFmpeg-cvslog] configure: Add missing dxva2 dependency for dxva2_lib
ffmpeg | branch: master | Diego Biurrun | Sun Dec 11 17:01:33 2016 +0100| [fc368497f2fff54ddf5316224c573c9d1939fb25] | committer: Diego Biurrun configure: Add missing dxva2 dependency for dxva2_lib > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fc368497f2fff54ddf5316224c573c9d1939fb25 --- configure | 1 + 1 file changed, 1 insertion(+) diff --git a/configure b/configure index 6feaa64d78..6d809f7780 100755 --- a/configure +++ b/configure @@ -2128,6 +2128,7 @@ zmbv_encoder_deps="zlib" # hardware accelerators d3d11va_deps="d3d11_h dxva_h ID3D11VideoDecoder" dxva2_deps="dxva2api_h DXVA2_ConfigPictureDecode" +dxva2_lib_deps="dxva2" vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads" vda_extralibs="-framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore" ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'fc368497f2fff54ddf5316224c573c9d1939fb25'
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 13:45:21 2017 +0200| [17f848ca074897885cc21cf1ac38a61f7c3f9770] | committer: Clément Bœsch Merge commit 'fc368497f2fff54ddf5316224c573c9d1939fb25' * commit 'fc368497f2fff54ddf5316224c573c9d1939fb25': configure: Add missing dxva2 dependency for dxva2_lib Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=17f848ca074897885cc21cf1ac38a61f7c3f9770 --- configure | 1 + 1 file changed, 1 insertion(+) diff --git a/configure b/configure index 821dbcba25..c3cc32dc3a 100755 --- a/configure +++ b/configure @@ -2579,6 +2579,7 @@ cuvid_deps="cuda" d3d11va_deps="d3d11_h dxva_h ID3D11VideoDecoder ID3D11VideoContext" dxva2_deps="dxva2api_h DXVA2_ConfigPictureDecode" dxva2_extralibs="-luser32" +dxva2_lib_deps="dxva2" vda_framework_deps="VideoDecodeAcceleration_VDADecoder_h" vda_framework_extralibs="-framework VideoDecodeAcceleration" vda_deps="vda_framework pthreads" == diff --cc configure index 821dbcba25,6d809f7780..c3cc32dc3a --- a/configure +++ b/configure @@@ -2560,32 -2119,18 +2560,33 @@@ wmv2_decoder_select="blockdsp error_res wmv2_encoder_select="h263_encoder wmv2dsp" wmv3_decoder_select="vc1_decoder" wmv3image_decoder_select="wmv3_decoder" -zerocodec_decoder_deps="zlib" -zlib_decoder_deps="zlib" -zlib_encoder_deps="zlib" -zmbv_decoder_deps="zlib" -zmbv_encoder_deps="zlib" +xma1_decoder_select="wmapro_decoder" +xma2_decoder_select="wmapro_decoder" +zerocodec_decoder_select="zlib" +zlib_decoder_select="zlib" +zlib_encoder_select="zlib" +zmbv_decoder_select="zlib" +zmbv_encoder_select="zlib" + +# platform codecs +audiotoolbox_deps="AudioToolbox_AudioToolbox_h" +audiotoolbox_extralibs="-framework CoreFoundation -framework AudioToolbox -framework CoreMedia" # hardware accelerators -d3d11va_deps="d3d11_h dxva_h ID3D11VideoDecoder" +crystalhd_deps="libcrystalhd_libcrystalhd_if_h" +cuda_deps_any="dlopen LoadLibrary" +cuvid_deps="cuda" +d3d11va_deps="d3d11_h dxva_h ID3D11VideoDecoder ID3D11VideoContext" dxva2_deps="dxva2api_h DXVA2_ConfigPictureDecode" +dxva2_extralibs="-luser32" + dxva2_lib_deps="dxva2" -vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads" -vda_extralibs="-framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore" +vda_framework_deps="VideoDecodeAcceleration_VDADecoder_h" +vda_framework_extralibs="-framework VideoDecodeAcceleration" +vda_deps="vda_framework pthreads" +vda_extralibs="-framework CoreFoundation -framework QuartzCore" +videotoolbox_hwaccel_deps="videotoolbox pthreads" +videotoolbox_hwaccel_extralibs="-framework QuartzCore" +xvmc_deps="X11_extensions_XvMClib_h" h263_vaapi_hwaccel_deps="vaapi" h263_vaapi_hwaccel_select="h263_decoder" ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] hevc: ppc: Add HEVC 4x4 IDCT for PowerPC
ffmpeg | branch: master | Alexandra Hajkova | Sun Dec 11 12:10:19 2016 +0100| [b0e6b3f4777910d61083976aa9fc78a1e0731aae] | committer: Diego Biurrun hevc: ppc: Add HEVC 4x4 IDCT for PowerPC Signed-off-by: Diego Biurrun > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b0e6b3f4777910d61083976aa9fc78a1e0731aae --- libavcodec/hevcdsp.c | 2 + libavcodec/hevcdsp.h | 1 + libavcodec/ppc/Makefile | 1 + libavcodec/ppc/hevcdsp.c | 108 ++ libavcodec/ppc/hevcdsp_template.c | 48 + 5 files changed, 160 insertions(+) diff --git a/libavcodec/hevcdsp.c b/libavcodec/hevcdsp.c index 7c191986a0..8ae023b498 100644 --- a/libavcodec/hevcdsp.c +++ b/libavcodec/hevcdsp.c @@ -245,6 +245,8 @@ void ff_hevc_dsp_init(HEVCDSPContext *hevcdsp, int bit_depth) break; } +if (ARCH_PPC) +ff_hevc_dsp_init_ppc(hevcdsp, bit_depth); if (ARCH_X86) ff_hevc_dsp_init_x86(hevcdsp, bit_depth); } diff --git a/libavcodec/hevcdsp.h b/libavcodec/hevcdsp.h index 49cb7110d5..2f4ff0111f 100644 --- a/libavcodec/hevcdsp.h +++ b/libavcodec/hevcdsp.h @@ -115,6 +115,7 @@ typedef struct HEVCDSPContext { void ff_hevc_dsp_init(HEVCDSPContext *hpc, int bit_depth); +void ff_hevc_dsp_init_ppc(HEVCDSPContext *c, const int bit_depth); void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const int bit_depth); extern const int16_t ff_hevc_epel_coeffs[7][16]; diff --git a/libavcodec/ppc/Makefile b/libavcodec/ppc/Makefile index 09eabcb83b..4b92add3d0 100644 --- a/libavcodec/ppc/Makefile +++ b/libavcodec/ppc/Makefile @@ -25,6 +25,7 @@ OBJS-$(CONFIG_VP8DSP) += ppc/vp8dsp_altivec.o # decoders/encoders OBJS-$(CONFIG_APE_DECODER) += ppc/apedsp_altivec.o +OBJS-$(CONFIG_HEVC_DECODER)+= ppc/hevcdsp.o OBJS-$(CONFIG_SVQ1_ENCODER)+= ppc/svq1enc_altivec.o OBJS-$(CONFIG_VORBIS_DECODER) += ppc/vorbisdsp_altivec.o OBJS-$(CONFIG_VP7_DECODER) += ppc/vp8dsp_altivec.o diff --git a/libavcodec/ppc/hevcdsp.c b/libavcodec/ppc/hevcdsp.c new file mode 100644 index 00..9200e27e65 --- /dev/null +++ b/libavcodec/ppc/hevcdsp.c @@ -0,0 +1,108 @@ +/* SIMD-optimized IDCT functions for HEVC decoding + * Copyright (c) Alexandra Hajkova + * + * This file is part of Libav. + * + * Libav 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. + * + * Libav 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 Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#if HAVE_ALTIVEC_H +#include +#endif + +#include "libavutil/cpu.h" +#include "libavutil/ppc/cpu.h" +#include "libavutil/ppc/types_altivec.h" +#include "libavutil/ppc/util_altivec.h" + +#include "libavcodec/hevcdsp.h" + +#if HAVE_ALTIVEC +static const vector int16_t trans4[4] = { +{ 64, 64, 64, 64, 64, 64, 64, 64 }, +{ 83, 36, 83, 36, 83, 36, 83, 36 }, +{ 64, -64, 64, -64, 64, -64, 64, -64 }, +{ 36, -83, 36, -83, 36, -83, 36, -83 }, +}; + +static const vec_u8 mask[2] = { +{ 0x00, 0x01, 0x08, 0x09, 0x10, 0x11, 0x18, 0x19, 0x02, 0x03, 0x0A, 0x0B, 0x12, 0x13, 0x1A, 0x1B }, +{ 0x04, 0x05, 0x0C, 0x0D, 0x14, 0x15, 0x1C, 0x1D, 0x06, 0x07, 0x0E, 0x0F, 0x16, 0x17, 0x1E, 0x1F }, +}; + +static void transform4x4(vector int16_t src_01, vector int16_t src_23, + vector int32_t res[4], const int shift, int16_t *coeffs) +{ +vector int16_t src_02, src_13; +vector int32_t zero = vec_splat_s32(0); +vector int32_t e0, o0, e1, o1; +vector int32_t add; + +src_13 = vec_mergel(src_01, src_23); +src_02 = vec_mergeh(src_01, src_23); + +e0 = vec_msums(src_02, trans4[0], zero); +o0 = vec_msums(src_13, trans4[1], zero); +e1 = vec_msums(src_02, trans4[2], zero); +o1 = vec_msums(src_13, trans4[3], zero); + +add = vec_sl(vec_splat_s32(1), vec_splat_u32(shift - 1)); +e0 = vec_add(e0, add); +e1 = vec_add(e1, add); + +res[0] = vec_add(e0, o0); +res[1] = vec_add(e1, o1); +res[2] = vec_sub(e1, o1); +res[3] = vec_sub(e0, o0); +} + +static void scale(vector int32_t res[4], vector int16_t res_packed[2], int shift) +{ +int i; +vector unsigned int v_shift = vec_splat_u32(shift); + +for (i = 0; i < 4; i++) +res[i] = vec_sra(res[i], v_shift); + +// clip16 +res_packed[0] = vec_packs(res[0], res[1]); +res_packed[1] = vec_pack
[FFmpeg-cvslog] Merge commit 'b0e6b3f4777910d61083976aa9fc78a1e0731aae'
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 13:54:05 2017 +0200| [f6e8d54fcc17660a8c34512bdc73541664942a5f] | committer: Clément Bœsch Merge commit 'b0e6b3f4777910d61083976aa9fc78a1e0731aae' * commit 'b0e6b3f4777910d61083976aa9fc78a1e0731aae': hevc: ppc: Add HEVC 4x4 IDCT for PowerPC Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f6e8d54fcc17660a8c34512bdc73541664942a5f --- libavcodec/hevcdsp.c | 2 + libavcodec/hevcdsp.h | 1 + libavcodec/ppc/Makefile | 1 + libavcodec/ppc/hevcdsp.c | 109 ++ libavcodec/ppc/hevcdsp_template.c | 48 + 5 files changed, 161 insertions(+) diff --git a/libavcodec/hevcdsp.c b/libavcodec/hevcdsp.c index 23e923f8e5..76ae72b6d4 100644 --- a/libavcodec/hevcdsp.c +++ b/libavcodec/hevcdsp.c @@ -257,6 +257,8 @@ int i = 0; break; } +if (ARCH_PPC) +ff_hevc_dsp_init_ppc(hevcdsp, bit_depth); if (ARCH_X86) ff_hevc_dsp_init_x86(hevcdsp, bit_depth); if (ARCH_ARM) diff --git a/libavcodec/hevcdsp.h b/libavcodec/hevcdsp.h index eefb3cd152..dc48ebca11 100644 --- a/libavcodec/hevcdsp.h +++ b/libavcodec/hevcdsp.h @@ -127,6 +127,7 @@ void ff_hevc_dsp_init(HEVCDSPContext *hpc, int bit_depth); extern const int8_t ff_hevc_epel_filters[7][4]; extern const int8_t ff_hevc_qpel_filters[3][16]; +void ff_hevc_dsp_init_ppc(HEVCDSPContext *c, const int bit_depth); void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const int bit_depth); void ff_hevcdsp_init_arm(HEVCDSPContext *c, const int bit_depth); void ff_hevc_dsp_init_mips(HEVCDSPContext *c, const int bit_depth); diff --git a/libavcodec/ppc/Makefile b/libavcodec/ppc/Makefile index 419bd29c68..03e5b42d33 100644 --- a/libavcodec/ppc/Makefile +++ b/libavcodec/ppc/Makefile @@ -24,6 +24,7 @@ OBJS-$(CONFIG_VP3DSP) += ppc/vp3dsp_altivec.o OBJS-$(CONFIG_VP8DSP) += ppc/vp8dsp_altivec.o # decoders/encoders +OBJS-$(CONFIG_HEVC_DECODER)+= ppc/hevcdsp.o OBJS-$(CONFIG_LLAUDDSP)+= ppc/lossless_audiodsp_altivec.o OBJS-$(CONFIG_SVQ1_ENCODER)+= ppc/svq1enc_altivec.o OBJS-$(CONFIG_VORBIS_DECODER) += ppc/vorbisdsp_altivec.o diff --git a/libavcodec/ppc/hevcdsp.c b/libavcodec/ppc/hevcdsp.c new file mode 100644 index 00..d4429b8621 --- /dev/null +++ b/libavcodec/ppc/hevcdsp.c @@ -0,0 +1,109 @@ +/* + * SIMD-optimized IDCT functions for HEVC decoding + * Copyright (c) Alexandra Hajkova + * + * 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 "config.h" +#if HAVE_ALTIVEC_H +#include +#endif + +#include "libavutil/cpu.h" +#include "libavutil/ppc/cpu.h" +#include "libavutil/ppc/types_altivec.h" +#include "libavutil/ppc/util_altivec.h" + +#include "libavcodec/hevcdsp.h" + +#if HAVE_ALTIVEC +static const vector int16_t trans4[4] = { +{ 64, 64, 64, 64, 64, 64, 64, 64 }, +{ 83, 36, 83, 36, 83, 36, 83, 36 }, +{ 64, -64, 64, -64, 64, -64, 64, -64 }, +{ 36, -83, 36, -83, 36, -83, 36, -83 }, +}; + +static const vec_u8 mask[2] = { +{ 0x00, 0x01, 0x08, 0x09, 0x10, 0x11, 0x18, 0x19, 0x02, 0x03, 0x0A, 0x0B, 0x12, 0x13, 0x1A, 0x1B }, +{ 0x04, 0x05, 0x0C, 0x0D, 0x14, 0x15, 0x1C, 0x1D, 0x06, 0x07, 0x0E, 0x0F, 0x16, 0x17, 0x1E, 0x1F }, +}; + +static void transform4x4(vector int16_t src_01, vector int16_t src_23, + vector int32_t res[4], const int shift, int16_t *coeffs) +{ +vector int16_t src_02, src_13; +vector int32_t zero = vec_splat_s32(0); +vector int32_t e0, o0, e1, o1; +vector int32_t add; + +src_13 = vec_mergel(src_01, src_23); +src_02 = vec_mergeh(src_01, src_23); + +e0 = vec_msums(src_02, trans4[0], zero); +o0 = vec_msums(src_13, trans4[1], zero); +e1 = vec_msums(src_02, trans4[2], zero); +o1 = vec_msums(src_13, trans4[3], zero); + +add = vec_sl(vec_splat_s32(1), vec_splat_u32(shift - 1)); +e0 = vec_add(e0, add); +e1 = vec_add(e1, add); + +res[0] = vec_add(e0, o0); +res[1] = vec_add(e1, o1); +res[2] = vec_sub(e1, o1); +res[3] = vec_sub(e0, o0); +} + +static void scale(vector int32_t res[4], vector int16_t res_packed[2], int shift) +{ +
[FFmpeg-cvslog] dxva2: Keep code shared between dxva2 and d3d11va under the correct #if
ffmpeg | branch: master | Diego Biurrun | Mon Dec 12 12:38:06 2016 +0100| [6aa4ba7131b6e8668e33430e18101a051fe492eb] | committer: Diego Biurrun dxva2: Keep code shared between dxva2 and d3d11va under the correct #if This partially reverts commit ac648bb835edd3f67bda2267d0e72e5e582eb5a1. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6aa4ba7131b6e8668e33430e18101a051fe492eb --- libavcodec/dxva2_internal.h | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h index e7a9734105..499b37c190 100644 --- a/libavcodec/dxva2_internal.h +++ b/libavcodec/dxva2_internal.h @@ -32,6 +32,11 @@ #if CONFIG_DXVA2 #include "dxva2.h" +#endif +#if CONFIG_D3D11VA +#include "d3d11va.h" +#endif +#if HAVE_DXVA_H /* When targeting WINAPI_FAMILY_PHONE_APP or WINAPI_FAMILY_APP, dxva.h * defines nothing. Force the struct definitions to be visible. */ #undef WINAPI_FAMILY @@ -40,9 +45,6 @@ #define _CRT_BUILD_DESKTOP_APP 0 #include #endif -#if CONFIG_D3D11VA -#include "d3d11va.h" -#endif #include "avcodec.h" ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '6aa4ba7131b6e8668e33430e18101a051fe492eb'
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 13:55:50 2017 +0200| [5eba94a8c392be44a868183cdacff9a38fe55448] | committer: Clément Bœsch Merge commit '6aa4ba7131b6e8668e33430e18101a051fe492eb' * commit '6aa4ba7131b6e8668e33430e18101a051fe492eb': dxva2: Keep code shared between dxva2 and d3d11va under the correct #if Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5eba94a8c392be44a868183cdacff9a38fe55448 --- libavcodec/dxva2_internal.h | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h index 5df24c5f53..ac1f77c6a1 100644 --- a/libavcodec/dxva2_internal.h +++ b/libavcodec/dxva2_internal.h @@ -32,6 +32,11 @@ #if CONFIG_DXVA2 #include "dxva2.h" +#endif +#if CONFIG_D3D11VA +#include "d3d11va.h" +#endif +#if HAVE_DXVA_H /* When targeting WINAPI_FAMILY_PHONE_APP or WINAPI_FAMILY_APP, dxva.h * defines nothing. Force the struct definitions to be visible. */ #undef WINAPI_FAMILY @@ -40,9 +45,6 @@ #define _CRT_BUILD_DESKTOP_APP 0 #include #endif -#if CONFIG_D3D11VA -#include "d3d11va.h" -#endif #include "avcodec.h" == ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] lavc: handle MP3 in get_audio_frame_duration()
ffmpeg | branch: master | Anton Khirnov | Fri Dec 2 13:21:02 2016 +0100| [0309ddcfb25fd44883bfcdb07509eb4907576b97] | committer: Anton Khirnov lavc: handle MP3 in get_audio_frame_duration() > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0309ddcfb25fd44883bfcdb07509eb4907576b97 --- libavcodec/utils.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 0b44bb6464..5350eb819a 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -1186,6 +1186,9 @@ static int get_audio_frame_duration(enum AVCodecID id, int sr, int ch, int ba, if (id == AV_CODEC_ID_BINKAUDIO_DCT) return (480 << (sr / 22050)) / ch; } + +if (id == AV_CODEC_ID_MP3) +return sr <= 24000 ? 576 : 1152; } if (ba > 0) { ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '0309ddcfb25fd44883bfcdb07509eb4907576b97'
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 13:57:08 2017 +0200| [b5a42c7f098a0eaee9cb08ce8b26b0c9a307d9c4] | committer: Clément Bœsch Merge commit '0309ddcfb25fd44883bfcdb07509eb4907576b97' * commit '0309ddcfb25fd44883bfcdb07509eb4907576b97': lavc: handle MP3 in get_audio_frame_duration() Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b5a42c7f098a0eaee9cb08ce8b26b0c9a307d9c4 --- libavcodec/utils.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavcodec/utils.c b/libavcodec/utils.c index ae245c833e..56e58cc426 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -1691,6 +1691,9 @@ static int get_audio_frame_duration(enum AVCodecID id, int sr, int ch, int ba, if (id == AV_CODEC_ID_BINKAUDIO_DCT) return (480 << (sr / 22050)) / ch; } + +if (id == AV_CODEC_ID_MP3) +return sr <= 24000 ? 576 : 1152; } if (ba > 0) { == ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] lavc: add a null bitstream filter
ffmpeg | branch: master | Anton Khirnov | Tue May 24 15:09:29 2016 +0200| [47e547b321338c73c21fa623789f1efbd80a297a] | committer: Anton Khirnov lavc: add a null bitstream filter It is useful for testing/debugging and will also be used as the default filter in the following commit adding pre-decode filtering to avoid having a separate non-filtered codepath. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=47e547b321338c73c21fa623789f1efbd80a297a --- doc/bitstream_filters.texi | 3 +++ libavcodec/Makefile| 1 + libavcodec/bitstream_filters.c | 1 + libavcodec/null_bsf.c | 43 ++ 4 files changed, 48 insertions(+) diff --git a/doc/bitstream_filters.texi b/doc/bitstream_filters.texi index 7ddf52e34d..2e13cbe180 100644 --- a/doc/bitstream_filters.texi +++ b/doc/bitstream_filters.texi @@ -90,6 +90,9 @@ avconv -i frame_%d.jpg -c:v copy rotated.avi @section noise +@section null +This bitstream filter passes the packets through unchanged. + @section remove_extradata @c man end BITSTREAM FILTERS diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 7bbc01c3b5..d571d8def3 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -764,6 +764,7 @@ OBJS-$(CONFIG_MJPEG2JPEG_BSF) += mjpeg2jpeg_bsf.o OBJS-$(CONFIG_MJPEGA_DUMP_HEADER_BSF) += mjpega_dump_header_bsf.o OBJS-$(CONFIG_MOV2TEXTSUB_BSF)+= movsub_bsf.o OBJS-$(CONFIG_NOISE_BSF) += noise_bsf.o +OBJS-$(CONFIG_NULL_BSF) += null_bsf.o OBJS-$(CONFIG_REMOVE_EXTRADATA_BSF) += remove_extradata_bsf.o OBJS-$(CONFIG_TEXT2MOVSUB_BSF)+= movsub_bsf.o diff --git a/libavcodec/bitstream_filters.c b/libavcodec/bitstream_filters.c index 8a5379ec93..ee9e4bade5 100644 --- a/libavcodec/bitstream_filters.c +++ b/libavcodec/bitstream_filters.c @@ -34,6 +34,7 @@ extern const AVBitStreamFilter ff_imx_dump_header_bsf; extern const AVBitStreamFilter ff_mjpeg2jpeg_bsf; extern const AVBitStreamFilter ff_mjpega_dump_header_bsf; extern const AVBitStreamFilter ff_mov2textsub_bsf; +extern const AVBitStreamFilter ff_null_bsf; extern const AVBitStreamFilter ff_text2movsub_bsf; extern const AVBitStreamFilter ff_noise_bsf; extern const AVBitStreamFilter ff_remove_extradata_bsf; diff --git a/libavcodec/null_bsf.c b/libavcodec/null_bsf.c new file mode 100644 index 00..0fe4f3529f --- /dev/null +++ b/libavcodec/null_bsf.c @@ -0,0 +1,43 @@ +/* + * This file is part of Libav. + * + * Libav 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. + * + * Libav 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 Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * Null bitstream filter -- pass the input through unchanged. + */ + +#include "avcodec.h" +#include "bsf.h" + +static int null_filter(AVBSFContext *ctx, AVPacket *out) +{ +AVPacket *in; +int ret; + +ret = ff_bsf_get_packet(ctx, &in); +if (ret < 0) +return ret; +av_packet_move_ref(out, in); +av_packet_free(&in); +return 0; +} + +const AVBitStreamFilter ff_null_bsf = { +.name = "null", +.filter = null_filter, +}; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '47e547b321338c73c21fa623789f1efbd80a297a'
ffmpeg | branch: master | Clément Bœsch | Mon Apr 17 14:01:31 2017 +0200| [e22d495538c1de6a13cf8f51e7448d3312365747] | committer: Clément Bœsch Merge commit '47e547b321338c73c21fa623789f1efbd80a297a' * commit '47e547b321338c73c21fa623789f1efbd80a297a': lavc: add a null bitstream filter Merged-by: Clément Bœsch > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e22d495538c1de6a13cf8f51e7448d3312365747 --- doc/bitstream_filters.texi | 3 +++ libavcodec/Makefile| 1 + libavcodec/bitstream_filters.c | 1 + libavcodec/null_bsf.c | 43 ++ 4 files changed, 48 insertions(+) diff --git a/doc/bitstream_filters.texi b/doc/bitstream_filters.texi index 947c31dae8..6f4846f55f 100644 --- a/doc/bitstream_filters.texi +++ b/doc/bitstream_filters.texi @@ -234,6 +234,9 @@ ffmpeg -i INPUT -c copy -bsf noise[=1] output.mkv @end example applies the modification to every byte. +@section null +This bitstream filter passes the packets through unchanged. + @section remove_extra Remove extradata from packets. diff --git a/libavcodec/Makefile b/libavcodec/Makefile index c7454543bb..62f9db5c86 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -993,6 +993,7 @@ OBJS-$(CONFIG_MOV2TEXTSUB_BSF)+= movsub_bsf.o OBJS-$(CONFIG_MP3_HEADER_DECOMPRESS_BSF) += mp3_header_decompress_bsf.o \ mpegaudiodata.o OBJS-$(CONFIG_NOISE_BSF) += noise_bsf.o +OBJS-$(CONFIG_NULL_BSF) += null_bsf.o OBJS-$(CONFIG_REMOVE_EXTRADATA_BSF) += remove_extradata_bsf.o OBJS-$(CONFIG_TEXT2MOVSUB_BSF)+= movsub_bsf.o OBJS-$(CONFIG_VP9_SUPERFRAME_BSF) += vp9_superframe_bsf.o diff --git a/libavcodec/bitstream_filters.c b/libavcodec/bitstream_filters.c index 2045e18b94..6893a4b6e4 100644 --- a/libavcodec/bitstream_filters.c +++ b/libavcodec/bitstream_filters.c @@ -38,6 +38,7 @@ extern const AVBitStreamFilter ff_mp3_header_decompress_bsf; extern const AVBitStreamFilter ff_mpeg4_unpack_bframes_bsf; extern const AVBitStreamFilter ff_mov2textsub_bsf; extern const AVBitStreamFilter ff_noise_bsf; +extern const AVBitStreamFilter ff_null_bsf; extern const AVBitStreamFilter ff_remove_extradata_bsf; extern const AVBitStreamFilter ff_text2movsub_bsf; extern const AVBitStreamFilter ff_vp9_superframe_bsf; diff --git a/libavcodec/null_bsf.c b/libavcodec/null_bsf.c new file mode 100644 index 00..feb71248a9 --- /dev/null +++ b/libavcodec/null_bsf.c @@ -0,0 +1,43 @@ +/* + * 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 + */ + +/** + * @file + * Null bitstream filter -- pass the input through unchanged. + */ + +#include "avcodec.h" +#include "bsf.h" + +static int null_filter(AVBSFContext *ctx, AVPacket *out) +{ +AVPacket *in; +int ret; + +ret = ff_bsf_get_packet(ctx, &in); +if (ret < 0) +return ret; +av_packet_move_ref(out, in); +av_packet_free(&in); +return 0; +} + +const AVBitStreamFilter ff_null_bsf = { +.name = "null", +.filter = null_filter, +}; == diff --cc doc/bitstream_filters.texi index 947c31dae8,2e13cbe180..6f4846f55f --- a/doc/bitstream_filters.texi +++ b/doc/bitstream_filters.texi @@@ -220,54 -90,9 +220,57 @@@ ffmpeg -i INPUT.avi -codec copy -bsf:v @section noise +Damages the contents of packets without damaging the container. Can be +used for fuzzing or testing error resilience/concealment. + +Parameters: +A numeral string, whose value is related to how often output bytes will +be modified. Therefore, values below or equal to 0 are forbidden, and +the lower the more frequent bytes will be modified, with 1 meaning +every byte is modified. + +@example +ffmpeg -i INPUT -c copy -bsf noise[=1] output.mkv +@end example +applies the modification to every byte. + + @section null + This bitstream filter passes the packets through unchanged. + -@section remove_extradata +@section remove_extra + +Remove extradata from packets. + +It accepts the following parameter: +@table @option +@item freq +Set which frame types to remove extradata from. + +@table @samp +@item k +Remove ex
[FFmpeg-cvslog] webm_dash_manifest: Add option to specify bandwidth
ffmpeg | branch: master | Vignesh Venkatasubramanian | Tue Apr 11 21:33:28 2017 -0700| [62c27fdba43def4cdc2fb6f2df60c7ac87918d6c] | committer: James Zern webm_dash_manifest: Add option to specify bandwidth Add an option to webm_dash_manifest demuxer to specify a value for "bandwidth" field in the DASH manifest. The value is then used by the muxer. Fixes an existing FIXME in the code. Signed-off-by: Vignesh Venkatasubramanian Signed-off-by: James Zern > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=62c27fdba43def4cdc2fb6f2df60c7ac87918d6c --- libavformat/matroskadec.c| 19 ++- libavformat/webmdashenc.c| 11 --- tests/fate/vpx.mak | 3 +++ tests/ref/fate/webm-dash-manifest-live-bandwidth | 24 4 files changed, 53 insertions(+), 4 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 3ec1636584..d42113be94 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -364,6 +364,9 @@ typedef struct MatroskaDemuxContext { /* WebM DASH Manifest live flag/ */ int is_live; + +/* Bandwidth value for WebM DASH Manifest */ +int bandwidth; } MatroskaDemuxContext; typedef struct MatroskaBlock { @@ -3912,7 +3915,20 @@ static int webm_dash_manifest_read_header(AVFormatContext *s) av_dict_set_int(&s->streams[0]->metadata, TRACK_NUMBER, tracks[0].num, 0); // parse the cues and populate Cue related fields -return matroska->is_live ? 0 : webm_dash_manifest_cues(s); +if (!matroska->is_live) { +ret = webm_dash_manifest_cues(s); +if (ret < 0) { +av_log(s, AV_LOG_ERROR, "Error parsing Cues\n"); +return ret; +} +} + +// use the bandwidth from the command line if it was provided +if (matroska->bandwidth > 0) { +av_dict_set_int(&s->streams[0]->metadata, BANDWIDTH, +matroska->bandwidth, 0); +} +return 0; } static int webm_dash_manifest_read_packet(AVFormatContext *s, AVPacket *pkt) @@ -3923,6 +3939,7 @@ static int webm_dash_manifest_read_packet(AVFormatContext *s, AVPacket *pkt) #define OFFSET(x) offsetof(MatroskaDemuxContext, x) static const AVOption options[] = { { "live", "flag indicating that the input is a live file that only has the headers.", OFFSET(is_live), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, AV_OPT_FLAG_DECODING_PARAM }, +{ "bandwidth", "bandwidth of this stream to be specified in the DASH manifest.", OFFSET(bandwidth), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }, { NULL }, }; diff --git a/libavformat/webmdashenc.c b/libavformat/webmdashenc.c index d4b3146790..602726caf9 100644 --- a/libavformat/webmdashenc.c +++ b/libavformat/webmdashenc.c @@ -182,14 +182,19 @@ static int write_representation(AVFormatContext *s, AVStream *stream, char *id, AVDictionaryEntry *cues_end = av_dict_get(stream->metadata, CUES_END, NULL, 0); AVDictionaryEntry *filename = av_dict_get(stream->metadata, FILENAME, NULL, 0); AVDictionaryEntry *bandwidth = av_dict_get(stream->metadata, BANDWIDTH, NULL, 0); +const char *bandwidth_str; if ((w->is_live && (!filename)) || (!w->is_live && (!irange || !cues_start || !cues_end || !filename || !bandwidth))) { return AVERROR_INVALIDDATA; } avio_printf(s->pb, "pb, " bandwidth=\"%s\"", -w->is_live ? (stream->codecpar->codec_type == AVMEDIA_TYPE_AUDIO ? "128000" : "100") : bandwidth->value); +// if bandwidth for live was not provided, use a default +if (w->is_live && !bandwidth) { +bandwidth_str = (stream->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) ? "128000" : "100"; +} else { +bandwidth_str = bandwidth->value; +} +avio_printf(s->pb, " bandwidth=\"%s\"", bandwidth_str); if (stream->codecpar->codec_type == AVMEDIA_TYPE_VIDEO && output_width) avio_printf(s->pb, " width=\"%d\"", stream->codecpar->width); if (stream->codecpar->codec_type == AVMEDIA_TYPE_VIDEO && output_height) diff --git a/tests/fate/vpx.mak b/tests/fate/vpx.mak index 46658ec2f1..2662bd2bd8 100644 --- a/tests/fate/vpx.mak +++ b/tests/fate/vpx.mak @@ -70,6 +70,9 @@ fate-webm-dash-manifest-representations: CMD = run $(FFMPEG) -nostdin -f webm_da FATE_VP8-$(CONFIG_WEBM_DASH_MANIFEST_DEMUXER) += fate-webm-dash-manifest-live fate-webm-dash-manifest-live: CMD = run $(FFMPEG) -nostdin -f webm_dash_manifest -live 1 -i $(TARGET_SAMPLES)/vp8/dash_live_video_360.hdr -f webm_dash_manifest -live 1 -i $(TARGET_SAMPLES)/vp8/dash_live_audio_171.hdr -c copy -map 0 -map 1 -f webm_dash_manifest -live 1 -adaptation_sets "id=0,streams=0 id=1,streams=1" -chunk_start_index 1 -chunk_duration_ms 5000 -time_shift_buffer_depth 7200 -minimum_update_period 60 -debug_mode 1 - +FATE_VP8-$(CONFIG_WEBM_DASH_MANIFEST_DEMUXER) += fate-webm-dash-man
[FFmpeg-cvslog] matroskadec,cosmetics: fix a couple typos
ffmpeg | branch: master | James Zern | Mon Apr 17 10:59:31 2017 -0700| [20aeee4fc99f241872dba4f93da50bd1cdef836d] | committer: James Zern matroskadec,cosmetics: fix a couple typos Signed-off-by: James Zern > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=20aeee4fc99f241872dba4f93da50bd1cdef836d --- libavformat/matroskadec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index d42113be94..9adca8dcc0 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -362,7 +362,7 @@ typedef struct MatroskaDemuxContext { /* File has SSA subtitles which prevent incremental cluster parsing. */ int contains_ssa; -/* WebM DASH Manifest live flag/ */ +/* WebM DASH Manifest live flag */ int is_live; /* Bandwidth value for WebM DASH Manifest */ @@ -3575,7 +3575,7 @@ typedef struct { int64_t end_offset; } CueDesc; -/* This function searches all the Cues and returns the CueDesc corresponding the +/* This function searches all the Cues and returns the CueDesc corresponding to * the timestamp ts. Returned CueDesc will be such that start_time_ns <= ts < * end_time_ns. All 4 fields will be set to -1 if ts >= file's duration. */ ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] ffmpeg: Clear fifo pointer on deallocation
ffmpeg | branch: master | Michael Niedermayer | Tue Apr 18 02:12:05 2017 +0200| [d0b3922d24724cf31bcb1e979dbfb748b3cdd382] | committer: Michael Niedermayer ffmpeg: Clear fifo pointer on deallocation Not leaving stale pointers is more robust Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d0b3922d24724cf31bcb1e979dbfb748b3cdd382 --- ffmpeg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ffmpeg.c b/ffmpeg.c index e4b94b2fa0..143322c321 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -482,7 +482,7 @@ static void ffmpeg_cleanup(int ret) sizeof(frame), NULL); av_frame_free(&frame); } -av_fifo_free(fg->inputs[j]->frame_queue); +av_fifo_freep(&fg->inputs[j]->frame_queue); if (fg->inputs[j]->ist->sub2video.sub_queue) { while (av_fifo_size(fg->inputs[j]->ist->sub2video.sub_queue)) { AVSubtitle sub; @@ -490,7 +490,7 @@ static void ffmpeg_cleanup(int ret) &sub, sizeof(sub), NULL); avsubtitle_free(&sub); } -av_fifo_free(fg->inputs[j]->ist->sub2video.sub_queue); +av_fifo_freep(&fg->inputs[j]->ist->sub2video.sub_queue); } av_buffer_unref(&fg->inputs[j]->hw_frames_ctx); av_freep(&fg->inputs[j]->name); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] doc/fftools-common-opts: Fixed a typo in the common arguments list
ffmpeg | branch: master | Mickael Maison | Sun Apr 16 16:29:48 2017 +0100| [fdd4922dc4896b97b17148744b5bd07e3301a027] | committer: Michael Niedermayer doc/fftools-common-opts: Fixed a typo in the common arguments list - Fixed a typo for the -sources argument Signed-off-by: Mickael Maison Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fdd4922dc4896b97b17148744b5bd07e3301a027 --- doc/fftools-common-opts.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/fftools-common-opts.texi b/doc/fftools-common-opts.texi index 7269aeece9..2eff33a36f 100644 --- a/doc/fftools-common-opts.texi +++ b/doc/fftools-common-opts.texi @@ -153,7 +153,7 @@ Show channel names and standard channel layouts. Show recognized color names. @item -sources @var{device}[,@var{opt1}=@var{val1}[,@var{opt2}=@var{val2}]...] -Show autodetected sources of the intput device. +Show autodetected sources of the input device. Some devices may provide system-dependent source names that cannot be autodetected. The returned list cannot be assumed to be always complete. @example ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] doc/encoders.texi: document libvpxenc's -row-mt
ffmpeg | branch: master | James Zern | Thu Apr 13 18:50:51 2017 -0700| [fd1443b5dda6f604a39dcf2e532f0b6b89896f96] | committer: James Zern doc/encoders.texi: document libvpxenc's -row-mt added in: 734d760e2f lavc/libvpxenc: add -row-mt option Reviewed-by: Michael Niedermayer Signed-off-by: James Zern > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fd1443b5dda6f604a39dcf2e532f0b6b89896f96 --- doc/encoders.texi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/encoders.texi b/doc/encoders.texi index 594c612b5a..7f4754d160 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -1679,6 +1679,8 @@ colorspaces: @item @samp{smpte240m} @emph{smpte240} @item @samp{bt2020_ncl} @emph{bt2020} @end table +@item row-mt @var{boolean} +Enable row based multi-threading. @end table @end table ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog