mirror of https://github.com/mpv-player/mpv
vd_lavc: drop mediacodec direct rendering support temporarily
The libavcodec mediacodec support does not conform to the new hwaccel APIs yet. It has been agreed uppon that this glue code can be deleted for now, and support for it will be restored at a later point. Readding would require that it supports the AVCodecContext.hw_device_ctx API. The hw_device_ctx would then contain the surface ID. vo_mediacodec_embed would actually perform the task of creating vo.hwdec_devs and adding a mp_hwdec_ctx, whose av_device_ref is a AVHWDeviceContext containing the android surface.
This commit is contained in:
parent
9f52a92899
commit
80359c6615
|
@ -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.
|
||||
|
|
|
@ -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,
|
||||
};
|
|
@ -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
|
||||
|
|
|
@ -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" ),
|
||||
|
|
Loading…
Reference in New Issue