[FFmpeg-devel] [PATCH] avcodec: Remove libstagefright

Rostislav Pehlivanov atomnuker at gmail.com
Sun Jan 3 19:47:08 CET 2016


Yes, considering the security vulnerabilities in stagefright, the reported
underuse, confusion and the fact that the Android framework already
provides a proper native API to do hardware and software (though plugins)
decoding, I see no reason why this should not be dropped from Git master
and the next stable release.

+1

On 3 January 2016 at 18:37, Derek Buitenhuis <derek.buitenhuis at gmail.com>
wrote:

> It serves absolutely no purpose other than to confuse potentional
> Android developers about how to use hardware acceleration properly
> on the the platform. Both stagefright itself, and MediaCodec, have
> avcodec backends already, and this is the correct way to use it.
> MediaCodec as a proper JNI API.
>
> Furthermore, stagefright support in avcodec needs a series of
> magic incantations and version-specific stuff, such that
> using it actually provides downsides compared just using the actual
> Android frameworks properly, in that it is a lot more work and confusion
> to get it even running. It also leads to a lot of misinformation, like
> these sorts of comments (in [1]) that are absolutely incorrect.
>
> [1] http://stackoverflow.com/a/29362353/3115956
>
> Signed-off-by: Derek Buitenhuis <derek.buitenhuis at gmail.com>
> ---
> I am certain there are many more reasons to remvoe this as well. I know
> its own author despises it, and I know j-b will same things to say.
>
> I have CC'd the person listed in MAINTAINERS for this set of code as well.
>
> Please discuss, and keep discourse civil and avoid ad hominems, etc.
> ---
>  MAINTAINERS                   |   1 -
>  configure                     |   6 -
>  libavcodec/Makefile           |   1 -
>  libavcodec/allcodecs.c        |   1 -
>  libavcodec/libstagefright.cpp | 591
> ------------------------------------------
>  libavcodec/version.h          |   2 +-
>  tools/build_libstagefright    |  58 -----
>  7 files changed, 1 insertion(+), 659 deletions(-)
>  delete mode 100644 libavcodec/libstagefright.cpp
>  delete mode 100644 tools/build_libstagefright
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 9add13d..b62a4f8 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -304,7 +304,6 @@ Codecs:
>  Hardware acceleration:
>    crystalhd.c                           Philip Langdale
>    dxva2*                                Hendrik Leppkes, Laurent Aimar
> -  libstagefright.cpp                    Mohamed Naufal
>    vaapi*                                Gwenole Beauchesne
>    vda*                                  Sebastien Zwickert
>    vdpau*                                Philip Langdale, Carl Eugen Hoyos
> diff --git a/configure b/configure
> index 6710f85..4d6d4fc 100755
> --- a/configure
> +++ b/configure
> @@ -250,7 +250,6 @@ External library support:
>    --enable-libsoxr         enable Include libsoxr resampling [no]
>    --enable-libspeex        enable Speex de/encoding via libspeex [no]
>    --enable-libssh          enable SFTP protocol via libssh [no]
> -  --enable-libstagefright-h264  enable H.264 decoding via libstagefright
> [no]
>    --enable-libtesseract    enable Tesseract, needed for ocr filter [no]
>    --enable-libtheora       enable Theora encoding via libtheora [no]
>    --enable-libtwolame      enable MP2 encoding via libtwolame [no]
> @@ -1478,7 +1477,6 @@ EXTERNAL_LIBRARY_LIST="
>      libsoxr
>      libspeex
>      libssh
> -    libstagefright_h264
>      libtesseract
>      libtheora
>      libtwolame
> @@ -2639,7 +2637,6 @@ libshine_encoder_select="audio_frame_queue"
>  libspeex_decoder_deps="libspeex"
>  libspeex_encoder_deps="libspeex"
>  libspeex_encoder_select="audio_frame_queue"
> -libstagefright_h264_decoder_deps="libstagefright_h264"
>  libtheora_encoder_deps="libtheora"
>  libtwolame_encoder_deps="libtwolame"
>  libvo_aacenc_encoder_deps="libvo_aacenc"
> @@ -5476,9 +5473,6 @@ enabled libsnappy         && require snappy
> snappy-c.h snappy_compress -lsnappy
>  enabled libsoxr           && require libsoxr soxr.h soxr_create -lsoxr &&
> LIBSOXR="-lsoxr"
>  enabled libssh            && require_pkg_config libssh libssh/sftp.h
> sftp_init
>  enabled libspeex          && require_pkg_config speex speex/speex.h
> speex_decoder_init -lspeex
> -enabled libstagefright_h264 && require_cpp libstagefright_h264
> "binder/ProcessState.h media/stagefright/MetaData.h
> -    media/stagefright/MediaBufferGroup.h media/stagefright/MediaDebug.h
> media/stagefright/MediaDefs.h
> -    media/stagefright/OMXClient.h media/stagefright/OMXCodec.h"
> android::OMXClient -lstagefright -lmedia -lutils -lbinder -lgnustl_static
>  enabled libtesseract      && require_pkg_config tesseract
> tesseract/capi.h TessBaseAPICreate
>  enabled libtheora         && require libtheora theora/theoraenc.h
> th_info_init -ltheoraenc -ltheoradec -logg
>  enabled libtwolame        && require libtwolame twolame.h twolame_init
> -ltwolame &&
> diff --git a/libavcodec/Makefile b/libavcodec/Makefile
> index a18ca5b..b9ffdb9 100644
> --- a/libavcodec/Makefile
> +++ b/libavcodec/Makefile
> @@ -829,7 +829,6 @@ OBJS-$(CONFIG_LIBSCHROEDINGER_ENCODER)    +=
> libschroedingerenc.o \
>  OBJS-$(CONFIG_LIBSHINE_ENCODER)           += libshine.o
>  OBJS-$(CONFIG_LIBSPEEX_DECODER)           += libspeexdec.o
>  OBJS-$(CONFIG_LIBSPEEX_ENCODER)           += libspeexenc.o
> -OBJS-$(CONFIG_LIBSTAGEFRIGHT_H264_DECODER)+= libstagefright.o
>  OBJS-$(CONFIG_LIBTHEORA_ENCODER)          += libtheoraenc.o
>  OBJS-$(CONFIG_LIBTWOLAME_ENCODER)         += libtwolame.o
>  OBJS-$(CONFIG_LIBUTVIDEO_DECODER)         += libutvideodec.o
> diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
> index 4eeb6f3..2128546 100644
> --- a/libavcodec/allcodecs.c
> +++ b/libavcodec/allcodecs.c
> @@ -572,7 +572,6 @@ void avcodec_register_all(void)
>      REGISTER_ENCDEC (LIBSCHROEDINGER,   libschroedinger);
>      REGISTER_ENCODER(LIBSHINE,          libshine);
>      REGISTER_ENCDEC (LIBSPEEX,          libspeex);
> -    REGISTER_DECODER(LIBSTAGEFRIGHT_H264, libstagefright_h264);
>      REGISTER_ENCODER(LIBTHEORA,         libtheora);
>      REGISTER_ENCODER(LIBTWOLAME,        libtwolame);
>      REGISTER_ENCDEC (LIBUTVIDEO,        libutvideo);
> diff --git a/libavcodec/libstagefright.cpp b/libavcodec/libstagefright.cpp
> deleted file mode 100644
> index 07cac33..0000000
> diff --git a/libavcodec/version.h b/libavcodec/version.h
> index 9846275..2b01e6f 100644
> --- a/libavcodec/version.h
> +++ b/libavcodec/version.h
> @@ -29,7 +29,7 @@
>  #include "libavutil/version.h"
>
>  #define LIBAVCODEC_VERSION_MAJOR  57
> -#define LIBAVCODEC_VERSION_MINOR  21
> +#define LIBAVCODEC_VERSION_MINOR  22
>  #define LIBAVCODEC_VERSION_MICRO 100
>
>  #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
> diff --git a/tools/build_libstagefright b/tools/build_libstagefright
> deleted file mode 100644
> index 22bb712..0000000
> --
> 1.8.3.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>


More information about the ffmpeg-devel mailing list