[FFmpeg-devel] [GSOC] [PATCH] TensorFlow backend introduction for DNN module

James Almer jamrial at gmail.com
Sat Jun 2 19:45:21 EEST 2018


On 5/31/2018 12:01 PM, Sergey Lavrushkin wrote:
> diff --git a/Changelog b/Changelog
> index df2024fb59..a667fd045d 100644
> --- a/Changelog
> +++ b/Changelog
> @@ -11,6 +11,7 @@ version <next>:
>  - support mbedTLS based TLS
>  - DNN inference interface
>  - Reimplemented SRCNN filter using DNN inference interface
> +- TensorFlow DNN backend

This and the two entries you added earlier don't really belong here.
It's enough with the line stating the filter was introduced back in
ffmpeg 4.0

>  
>  
>  version 4.0:
> diff --git a/configure b/configure
> index 09ff0c55e2..47e21fec39 100755
> --- a/configure
> +++ b/configure
> @@ -259,6 +259,7 @@ External library support:
>    --enable-libspeex        enable Speex de/encoding via libspeex [no]
>    --enable-libsrt          enable Haivision SRT protocol via libsrt [no]
>    --enable-libssh          enable SFTP protocol via libssh [no]
> +  --enable-libtensorflow   enable TensorFlow as a DNN module backend [no]

Maybe mention it's for the srcnn filter.

>    --enable-libtesseract    enable Tesseract, needed for ocr filter [no]
>    --enable-libtheora       enable Theora encoding via libtheora [no]
>    --enable-libtls          enable LibreSSL (via libtls), needed for https support
> @@ -1713,6 +1714,7 @@ EXTERNAL_LIBRARY_LIST="
>      libspeex
>      libsrt
>      libssh
> +    libtensorflow
>      libtesseract
>      libtheora
>      libtwolame
> @@ -3453,7 +3455,7 @@ avcodec_select="null_bsf"
>  avdevice_deps="avformat avcodec avutil"
>  avdevice_suggest="libm"
>  avfilter_deps="avutil"
> -avfilter_suggest="libm"
> +avfilter_suggest="libm libtensorflow"

Add instead

srcnn_filter_suggest="libtensorflow"

To the corresponding section.

>  avformat_deps="avcodec avutil"
>  avformat_suggest="libm network zlib"
>  avresample_deps="avutil"
> @@ -6055,6 +6057,7 @@ enabled libsoxr           && require libsoxr soxr.h soxr_create -lsoxr
>  enabled libssh            && require_pkg_config libssh libssh libssh/sftp.h sftp_init
>  enabled libspeex          && require_pkg_config libspeex speex speex/speex.h speex_decoder_init
>  enabled libsrt            && require_pkg_config libsrt "srt >= 1.2.0" srt/srt.h srt_socket
> +enabled libtensorflow     && require libtensorflow tensorflow/c/c_api.h TF_Version -ltensorflow && add_cflags -DTENSORFLOW_BACKEND

Superfluous define. Just check for CONFIG_LIBTENSORFLOW instead.

>  enabled libtesseract      && require_pkg_config libtesseract tesseract tesseract/capi.h TessBaseAPICreate
>  enabled libtheora         && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg
>  enabled libtls            && require_pkg_config libtls libtls tls.h tls_configure
> diff --git a/libavfilter/Makefile b/libavfilter/Makefile
> index 3201cbeacf..82915e2f75 100644
> --- a/libavfilter/Makefile
> +++ b/libavfilter/Makefile
> @@ -14,6 +14,7 @@ OBJS = allfilters.o                                                     \
>         buffersrc.o                                                      \
>         dnn_interface.o                                                  \
>         dnn_backend_native.o                                             \
> +       dnn_backend_tf.o                                                 \

See Jan Ekström's patch. Add this to the filter's entry as all these
source files should not be compiled unconditionally.

>         drawutils.o                                                      \
>         fifo.o                                                           \
>         formats.o                                                        \




More information about the ffmpeg-devel mailing list