mirror of
https://github.com/jojo61/vdr-plugin-softhdcuvid.git
synced 2023-10-10 13:37:41 +02:00
Update libplacebo till API 175
This commit is contained in:
parent
59a82d409e
commit
cc099e24ea
@ -63,7 +63,7 @@ extern void ToggleLUT();
|
|||||||
/// vdr-plugin version number.
|
/// vdr-plugin version number.
|
||||||
/// Makefile extracts the version number for generating the file name
|
/// Makefile extracts the version number for generating the file name
|
||||||
/// for the distribution archive.
|
/// for the distribution archive.
|
||||||
static const char *const VERSION = "3.5.2"
|
static const char *const VERSION = "3.5.3"
|
||||||
#ifdef GIT_REV
|
#ifdef GIT_REV
|
||||||
"-GIT" GIT_REV
|
"-GIT" GIT_REV
|
||||||
#endif
|
#endif
|
||||||
|
38
video.c
38
video.c
@ -2323,8 +2323,10 @@ void createTextureDst(CuvidDecoder * decoder, int anz, unsigned int size_x, unsi
|
|||||||
.sampleable = true,
|
.sampleable = true,
|
||||||
.host_writable = true,
|
.host_writable = true,
|
||||||
.blit_dst = true,
|
.blit_dst = true,
|
||||||
|
#if PL_API_VER < 159
|
||||||
.sample_mode = PL_TEX_SAMPLE_LINEAR,
|
.sample_mode = PL_TEX_SAMPLE_LINEAR,
|
||||||
.address_mode = PL_TEX_ADDRESS_CLAMP,
|
.address_mode = PL_TEX_ADDRESS_CLAMP,
|
||||||
|
#endif
|
||||||
#if !defined PLACEBO_GL
|
#if !defined PLACEBO_GL
|
||||||
.export_handle = PL_HANDLE_FD,
|
.export_handle = PL_HANDLE_FD,
|
||||||
#endif
|
#endif
|
||||||
@ -2379,7 +2381,11 @@ void createTextureDst(CuvidDecoder * decoder, int anz, unsigned int size_x, unsi
|
|||||||
}
|
}
|
||||||
// make image
|
// make image
|
||||||
img = &decoder->pl_frames[i];
|
img = &decoder->pl_frames[i];
|
||||||
|
#if PL_API_VER < 159
|
||||||
img->signature = i;
|
img->signature = i;
|
||||||
|
img->width = size_x;
|
||||||
|
img->height = size_y;
|
||||||
|
#endif
|
||||||
img->num_planes = 2;
|
img->num_planes = 2;
|
||||||
img->repr.sys = PL_COLOR_SYSTEM_BT_709; // overwritten later
|
img->repr.sys = PL_COLOR_SYSTEM_BT_709; // overwritten later
|
||||||
img->repr.levels = PL_COLOR_LEVELS_TV;
|
img->repr.levels = PL_COLOR_LEVELS_TV;
|
||||||
@ -2389,8 +2395,6 @@ void createTextureDst(CuvidDecoder * decoder, int anz, unsigned int size_x, unsi
|
|||||||
img->color.light = PL_COLOR_LIGHT_SCENE_709_1886; // needs config ???
|
img->color.light = PL_COLOR_LIGHT_SCENE_709_1886; // needs config ???
|
||||||
img->color.sig_peak = 0.0f; // needs config ????
|
img->color.sig_peak = 0.0f; // needs config ????
|
||||||
img->color.sig_avg = 0.0f;
|
img->color.sig_avg = 0.0f;
|
||||||
img->width = size_x;
|
|
||||||
img->height = size_y;
|
|
||||||
img->num_overlays = 0;
|
img->num_overlays = 0;
|
||||||
}
|
}
|
||||||
NoContext;
|
NoContext;
|
||||||
@ -2438,6 +2442,7 @@ void generateVAAPIImage(CuvidDecoder * decoder, int index, const AVFrame * frame
|
|||||||
fmt = pl_find_fourcc(p->gpu, n == 0 ? 0x20363152 : 0x32335247); // 10 Bit YUV
|
fmt = pl_find_fourcc(p->gpu, n == 0 ? 0x20363152 : 0x32335247); // 10 Bit YUV
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
assert(fmt != NULL);
|
assert(fmt != NULL);
|
||||||
#ifdef PLACEBO_GL
|
#ifdef PLACEBO_GL
|
||||||
fmt->fourcc = desc.layers[n].drm_format;
|
fmt->fourcc = desc.layers[n].drm_format;
|
||||||
@ -2452,8 +2457,10 @@ void generateVAAPIImage(CuvidDecoder * decoder, int index, const AVFrame * frame
|
|||||||
.host_writable = false,
|
.host_writable = false,
|
||||||
.blit_dst = true,
|
.blit_dst = true,
|
||||||
.renderable = true,
|
.renderable = true,
|
||||||
|
#if PL_API_VER < 159
|
||||||
.address_mode = PL_TEX_ADDRESS_CLAMP ,
|
.address_mode = PL_TEX_ADDRESS_CLAMP ,
|
||||||
.sample_mode = PL_TEX_SAMPLE_LINEAR,
|
.sample_mode = PL_TEX_SAMPLE_LINEAR,
|
||||||
|
#endif
|
||||||
.import_handle = PL_HANDLE_DMA_BUF,
|
.import_handle = PL_HANDLE_DMA_BUF,
|
||||||
.shared_mem = (struct pl_shared_mem) {
|
.shared_mem = (struct pl_shared_mem) {
|
||||||
.handle = {
|
.handle = {
|
||||||
@ -3198,8 +3205,18 @@ int get_RGB(CuvidDecoder * decoder)
|
|||||||
#else
|
#else
|
||||||
fmt = pl_find_named_fmt(p->gpu, "bgra8");
|
fmt = pl_find_named_fmt(p->gpu, "bgra8");
|
||||||
#endif
|
#endif
|
||||||
|
#if PL_API_VER < 159
|
||||||
target.fbo = pl_tex_create(p->gpu, &(struct pl_tex_params) {
|
target.fbo = pl_tex_create(p->gpu, &(struct pl_tex_params) {
|
||||||
|
#else
|
||||||
|
target.num_planes = 1;
|
||||||
|
target.planes[0].components = 4;
|
||||||
|
target.planes[0].component_mapping[0] = PL_CHANNEL_R;
|
||||||
|
target.planes[0].component_mapping[1] = PL_CHANNEL_G;
|
||||||
|
target.planes[0].component_mapping[2] = PL_CHANNEL_B;
|
||||||
|
target.planes[0].component_mapping[3] = PL_CHANNEL_A;
|
||||||
|
target.planes[0].texture = pl_tex_create(p->gpu, &(struct pl_tex_params) {
|
||||||
|
|
||||||
|
#endif
|
||||||
.w = width,
|
.w = width,
|
||||||
.h = height,
|
.h = height,
|
||||||
.d = 0,
|
.d = 0,
|
||||||
@ -3208,8 +3225,10 @@ int get_RGB(CuvidDecoder * decoder)
|
|||||||
.renderable = true,
|
.renderable = true,
|
||||||
.blit_dst = true,
|
.blit_dst = true,
|
||||||
.host_readable = true,
|
.host_readable = true,
|
||||||
|
#if PL_API_VER < 159
|
||||||
.sample_mode = PL_TEX_SAMPLE_LINEAR,
|
.sample_mode = PL_TEX_SAMPLE_LINEAR,
|
||||||
.address_mode = PL_TEX_ADDRESS_CLAMP,
|
.address_mode = PL_TEX_ADDRESS_CLAMP,
|
||||||
|
#endif
|
||||||
});
|
});
|
||||||
#if PL_API_VER >= 100
|
#if PL_API_VER >= 100
|
||||||
target.crop.x0 = (float)decoder->OutputX * faktorx;
|
target.crop.x0 = (float)decoder->OutputX * faktorx;
|
||||||
@ -3283,11 +3302,18 @@ int get_RGB(CuvidDecoder * decoder)
|
|||||||
}
|
}
|
||||||
|
|
||||||
pl_tex_download(p->gpu, &(struct pl_tex_transfer_params) { // download Data
|
pl_tex_download(p->gpu, &(struct pl_tex_transfer_params) { // download Data
|
||||||
|
#if PL_API_VER < 159
|
||||||
.tex = target.fbo,
|
.tex = target.fbo,
|
||||||
|
#else
|
||||||
|
.tex = target.planes[0].texture,
|
||||||
|
#endif
|
||||||
.ptr = base,
|
.ptr = base,
|
||||||
});
|
});
|
||||||
|
#if PL_API_VER < 159
|
||||||
pl_tex_destroy(p->gpu, &target.fbo);
|
pl_tex_destroy(p->gpu, &target.fbo);
|
||||||
|
#else
|
||||||
|
pl_tex_destroy(p->gpu, &target.planes[0].texture);
|
||||||
|
#endif
|
||||||
#ifdef PLACEBO_GL
|
#ifdef PLACEBO_GL
|
||||||
unsigned char *b = base;
|
unsigned char *b = base;
|
||||||
for (int i = 0 ; i < width * height * 4; i+=4)
|
for (int i = 0 ; i < width * height * 4; i+=4)
|
||||||
@ -4244,12 +4270,14 @@ void make_osd_overlay(int x, int y, int width, int height)
|
|||||||
.sampleable = true,
|
.sampleable = true,
|
||||||
.host_writable = true,
|
.host_writable = true,
|
||||||
.blit_dst = true,
|
.blit_dst = true,
|
||||||
|
#if PL_API_VER < 159
|
||||||
.sample_mode = PL_TEX_SAMPLE_LINEAR,
|
.sample_mode = PL_TEX_SAMPLE_LINEAR,
|
||||||
.address_mode = PL_TEX_ADDRESS_CLAMP,
|
.address_mode = PL_TEX_ADDRESS_CLAMP,
|
||||||
|
#endif
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// make overlay
|
// make overlay
|
||||||
//pl_tex_clear(p->gpu, pl->plane.texture, (float[4]) { 0 });
|
pl_tex_clear(p->gpu, pl->plane.texture, (float[4]) { 0 });
|
||||||
pl->plane.components = 4;
|
pl->plane.components = 4;
|
||||||
pl->plane.shift_x = 0.0f;
|
pl->plane.shift_x = 0.0f;
|
||||||
pl->plane.shift_y = 0.0f;
|
pl->plane.shift_y = 0.0f;
|
||||||
|
Loading…
Reference in New Issue
Block a user