mirror of
https://github.com/mpv-player/mpv.git
synced 2026-06-06 20:10:30 +00:00
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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user