summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
Diffstat (limited to 'video')
-rw-r--r--video/decode/hw_mediacodec.c65
-rw-r--r--video/decode/vd_lavc.c12
2 files changed, 8 insertions, 69 deletions
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