mirror of https://github.com/mpv-player/mpv
vd_lavc: Add hwdec wrapper for crystalhd
This hardware decodes to system memory so it only requires a wrapper.
This commit is contained in:
parent
8956229ee4
commit
0a81fe1cf9
|
@ -625,6 +625,7 @@ Video
|
|||
:rpi-copy: copies video back to system RAM (Raspberry Pi only)
|
||||
:cuda: requires ``--vo=opengl`` (Any platform CUDA is available)
|
||||
:cuda-copy: copies video back to system RAM (Any platform CUDA is available)
|
||||
:crystalhd: copies video back to system RAM (Any platform supported by hardware)
|
||||
|
||||
``auto`` tries to automatically enable hardware decoding using the first
|
||||
available method. This still depends what VO you are using. For example,
|
||||
|
@ -711,6 +712,11 @@ Video
|
|||
``rpi`` always uses the hardware overlay renderer, even with
|
||||
``--vo=opengl``.
|
||||
|
||||
``crystalhd`` is not safe. It always converts to 4:2:2 YUV, which
|
||||
may be lossy, depending on how chroma sub-sampling is done during
|
||||
conversion. It also discards the top left pixel of each frame for
|
||||
some reason.
|
||||
|
||||
All other methods, in particular the copy-back methods (like
|
||||
``dxva2-copy`` etc.) are either fully safe, or not worse than software
|
||||
decoding.
|
||||
|
|
|
@ -106,6 +106,7 @@ const struct m_opt_choice_alternatives mp_hwdec_names[] = {
|
|||
{"mediacodec", HWDEC_MEDIACODEC},
|
||||
{"cuda", HWDEC_CUDA},
|
||||
{"cuda-copy", HWDEC_CUDA_COPY},
|
||||
{"crystalhd", HWDEC_CRYSTALHD},
|
||||
{0}
|
||||
};
|
||||
|
||||
|
|
|
@ -164,6 +164,12 @@ static const struct vd_lavc_hwdec mp_vd_lavc_cuda_copy = {
|
|||
};
|
||||
#endif
|
||||
|
||||
static const struct vd_lavc_hwdec mp_vd_lavc_crystalhd = {
|
||||
.type = HWDEC_CRYSTALHD,
|
||||
.lavc_suffix = "_crystalhd",
|
||||
.copying = true,
|
||||
};
|
||||
|
||||
static const struct vd_lavc_hwdec *const hwdec_list[] = {
|
||||
#if HAVE_RPI
|
||||
&mp_vd_lavc_rpi,
|
||||
|
@ -193,6 +199,7 @@ static const struct vd_lavc_hwdec *const hwdec_list[] = {
|
|||
&mp_vd_lavc_cuda,
|
||||
&mp_vd_lavc_cuda_copy,
|
||||
#endif
|
||||
&mp_vd_lavc_crystalhd,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ enum hwdec_type {
|
|||
HWDEC_MEDIACODEC,
|
||||
HWDEC_CUDA,
|
||||
HWDEC_CUDA_COPY,
|
||||
HWDEC_CRYSTALHD,
|
||||
};
|
||||
|
||||
#define HWDEC_IS_AUTO(x) ((x) == HWDEC_AUTO || (x) == HWDEC_AUTO_COPY)
|
||||
|
|
Loading…
Reference in New Issue