diff options
-rw-r--r-- | DOCS/man/options.rst | 1 | ||||
-rw-r--r-- | video/decode/hw_mediacodec.c | 65 | ||||
-rw-r--r-- | video/decode/vd_lavc.c | 12 | ||||
-rw-r--r-- | wscript_build.py | 1 |
4 files changed, 9 insertions, 70 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst index f01d40e563..4611d60b37 100644 --- a/DOCS/man/options.rst +++ b/DOCS/man/options.rst @@ -2524,6 +2524,7 @@ Window value cast to ``intptr_t``. Use with ``--vo=mediacodec_embed`` and ``--hwdec=mediacodec`` for direct rendering using MediaCodec, or with ``--vo=gpu --gpu-context=android`` (with or without ``--hwdec=mediacodec-copy``). + This is currently broken. ``--no-window-dragging`` Don't move the window when clicking on it and moving the mouse pointer. diff --git a/video/decode/hw_mediacodec.c b/video/decode/hw_mediacodec.c deleted file mode 100644 index 0f52695857..0000000000 --- a/video/decode/hw_mediacodec.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * This file is part of mpv. - * - * mpv 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. - * - * mpv 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 mpv. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <stdbool.h> - -#include <libavcodec/mediacodec.h> - -#include "options/options.h" -#include "video/decode/lavc.h" - -static int probe(struct lavc_ctx *ctx, struct vd_lavc_hwdec *hwdec, - const char *codec) -{ - if (ctx->opts->vo->WinID == 0) - return HWDEC_ERR_NO_CTX; - - return 0; -} - -static int init_decoder(struct lavc_ctx *ctx) -{ - av_mediacodec_default_free(ctx->avctx); - - AVMediaCodecContext *mcctx = av_mediacodec_alloc_context(); - if (!mcctx) - return -1; - - void *surface = (void *)(intptr_t)(ctx->opts->vo->WinID); - return av_mediacodec_default_init(ctx->avctx, mcctx, surface); -} - -static void uninit(struct lavc_ctx *ctx) -{ - if (ctx->avctx) - av_mediacodec_default_free(ctx->avctx); -} - -const struct vd_lavc_hwdec mp_vd_lavc_mediacodec = { - .type = HWDEC_MEDIACODEC, - .image_format = IMGFMT_MEDIACODEC, - .lavc_suffix = "_mediacodec", - .probe = probe, - .init_decoder = init_decoder, - .uninit = uninit, -}; - -const struct vd_lavc_hwdec mp_vd_lavc_mediacodec_copy = { - .type = HWDEC_MEDIACODEC_COPY, - .lavc_suffix = "_mediacodec", - .copying = true, -}; diff --git a/video/decode/vd_lavc.c b/video/decode/vd_lavc.c index 1005c131c6..a422a53819 100644 --- a/video/decode/vd_lavc.c +++ b/video/decode/vd_lavc.c @@ -123,9 +123,6 @@ const struct m_sub_options vd_lavc_conf = { }, }; -extern const struct vd_lavc_hwdec mp_vd_lavc_mediacodec; -extern const struct vd_lavc_hwdec mp_vd_lavc_mediacodec_copy; - #if HAVE_RPI static const struct vd_lavc_hwdec mp_vd_lavc_rpi = { .type = HWDEC_RPI, @@ -279,6 +276,14 @@ static const struct vd_lavc_hwdec mp_vd_lavc_dxva2_copy = { }; #endif +#if HAVE_ANDROID +static const struct vd_lavc_hwdec mp_vd_lavc_mediacodec_copy = { + .type = HWDEC_MEDIACODEC_COPY, + .lavc_suffix = "_mediacodec", + .copying = true, +}; +#endif + static const struct vd_lavc_hwdec *const hwdec_list[] = { #if HAVE_D3D_HWACCEL &mp_vd_lavc_d3d11va, @@ -310,7 +315,6 @@ static const struct vd_lavc_hwdec *const hwdec_list[] = { &mp_vd_lavc_vaapi_copy, #endif #if HAVE_ANDROID - &mp_vd_lavc_mediacodec, &mp_vd_lavc_mediacodec_copy, #endif #if HAVE_CUDA_HWACCEL diff --git a/wscript_build.py b/wscript_build.py index 83b4e8eca0..e649913626 100644 --- a/wscript_build.py +++ b/wscript_build.py @@ -363,7 +363,6 @@ def build(ctx): ( "video/vdpau.c", "vdpau" ), ( "video/vdpau_mixer.c", "vdpau" ), ( "video/decode/dec_video.c"), - ( "video/decode/hw_mediacodec.c", "android" ), ( "video/decode/vd_lavc.c" ), ( "video/filter/refqueue.c" ), ( "video/filter/vf.c" ), |