mirror of https://github.com/mpv-player/mpv
hwdec_drmprime: add nv16 support
NV16 is the half subsampled version of NV12 format. Decoders which support High 4:2:2 of h264 provide the frame in NV16 format to establish richer colorspace. Similar profiles are also available in HEVC and other popular codecs. This commit allows NV16 frames to be displayed over drmprime layers. Signed-off-by: hbiyik <boogiepop@gmx.com>
This commit is contained in:
parent
ae230b1294
commit
c19115c8da
|
@ -176,6 +176,7 @@ static bool vaapi_gl_map(struct ra_hwdec_mapper *mapper,
|
|||
if (p_mapper->desc.layers[i].nb_planes > 1) {
|
||||
switch (p_mapper->desc.layers[i].format) {
|
||||
case DRM_FORMAT_NV12:
|
||||
case DRM_FORMAT_NV16:
|
||||
format[0] = DRM_FORMAT_R8;
|
||||
format[1] = DRM_FORMAT_GR88;
|
||||
break;
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
#include "libmpv/render_gl.h"
|
||||
#include "options/m_config.h"
|
||||
#include "video/fmt-conversion.h"
|
||||
#include "video/out/drm_common.h"
|
||||
#include "video/out/gpu/hwdec.h"
|
||||
#include "video/out/hwdec/dmabuf_interop.h"
|
||||
|
@ -117,6 +118,7 @@ static int init(struct ra_hwdec *hw)
|
|||
int num_formats = 0;
|
||||
MP_TARRAY_APPEND(p, p->formats, num_formats, IMGFMT_NV12);
|
||||
MP_TARRAY_APPEND(p, p->formats, num_formats, IMGFMT_420P);
|
||||
MP_TARRAY_APPEND(p, p->formats, num_formats, pixfmt2imgfmt(AV_PIX_FMT_NV16));
|
||||
MP_TARRAY_APPEND(p, p->formats, num_formats, 0); // terminate it
|
||||
|
||||
p->hwctx.hw_imgfmt = IMGFMT_DRMPRIME;
|
||||
|
|
Loading…
Reference in New Issue