Changes for NVIDIA 535 and more for PIP with placebo

This commit is contained in:
jojo61 2023-09-18 11:52:03 +02:00
parent a56b3737c7
commit 45043b9ffc
3 changed files with 17 additions and 9 deletions

10
codec.c
View File

@ -307,12 +307,12 @@ void CodecVideoOpen(VideoDecoder *decoder, int codec_id) {
#ifdef CUVID
if (strcmp(decoder->VideoCodec->long_name,
"Nvidia CUVID MPEG2VIDEO decoder") == 0) { // deinterlace for mpeg2 is somehow broken
if (av_opt_set_int(decoder->VideoCtx->priv_data, "deint", deint, 0) < 0) { // adaptive
if (av_opt_set_int(decoder->VideoCtx->priv_data, "deint", 1, 0) < 0) { // adaptive
pthread_mutex_unlock(&CodecLockMutex);
Fatal(_("codec: can't set option deint to video codec!\n"));
}
#if 1
if (av_opt_set_int(decoder->VideoCtx->priv_data, "surfaces", 9, 0) < 0) {
#if 0
if (av_opt_set_int(decoder->VideoCtx->priv_data, "surfaces", 13, 0) < 0) {
pthread_mutex_unlock(&CodecLockMutex);
Fatal(_("codec: can't set option surfces to video codec!\n"));
}
@ -558,7 +558,7 @@ next_part:
if (decoder->filter) {
if (decoder->filter == 1) {
if (init_filters(video_ctx, decoder->HwDecoder, frame) < 0) {
Fatal(_("video: Init of YADIF Filter failed\n"));
Debug(3,"video: Init of YADIF Filter failed\n");
decoder->filter = 0;
} else {
Debug(3, "Init YADIF ok\n");
@ -876,7 +876,7 @@ static int CodecAudioUpdateHelper(AudioDecoder *audio_decoder, int *passthrough)
int err;
audio_ctx = audio_decoder->AudioCtx;
Debug(3, "codec/audio: format change %s %dHz *%d channels%s%s%s%s%s\n",
Debug(3, "codec/audio: Chanlayout %lx format change %s %dHz *%d channels%s%s%s%s%s\n",audio_ctx->channel_layout,
av_get_sample_fmt_name(audio_ctx->sample_fmt), audio_ctx->sample_rate, audio_ctx->channels,
CodecPassthrough & CodecPCM ? " PCM" : "", CodecPassthrough & CodecMPA ? " MPA" : "",
CodecPassthrough & CodecAC3 ? " AC-3" : "", CodecPassthrough & CodecEAC3 ? " E-AC-3" : "",

View File

@ -61,7 +61,7 @@ extern void ToggleLUT();
/// vdr-plugin version number.
/// Makefile extracts the version number for generating the file name
/// for the distribution archive.
static const char *const VERSION = "3.12"
static const char *const VERSION = "3.13"
#ifdef GIT_REV
"-GIT" GIT_REV
#endif
@ -723,6 +723,12 @@ class cDummyOsd : public cOsd {
public:
cDummyOsd(int Left, int Top, uint Level) : cOsd(Left, Top, Level) {}
virtual ~cDummyOsd() {}
static void SetOsdPosition(int Left, int Top, int Width, int Height) {
(void) Left;
(void) Top;
(void) Width;
(void) Height;
}
virtual cPixmap *CreatePixmap(int Layer, const cRect &ViewPort, const cRect &DrawPort = cRect::Null) {
p = new cDummyPixmap(Layer, ViewPort, DrawPort);
return p;

View File

@ -4151,7 +4151,8 @@ static void CuvidMixVideo(CuvidDecoder *decoder, __attribute__((unused)) int lev
if (!pl_render_image(p->renderer, &decoder->pl_frames[current], target, &render_params)) {
Debug(4, "Failed rendering frame!\n");
}
// pl_gpu_finish(p->gpu);
if (level)
pl_gpu_finish(p->gpu);
// printf("Rendertime %ld -- \n,",GetusTicks() - tt);
if (VideoScalerTest) { // left side test scaler
@ -4466,6 +4467,7 @@ static void CuvidDisplayFrame(void) {
}
}
#ifndef PLACEBO
// add osd to surface
@ -6888,10 +6890,10 @@ void VideoSetAbove() {
void VideoSetDeinterlace(int mode[VideoResolutionMax]) {
#ifdef CUVID
VideoDeinterlace[0] = mode[0]; // 576i
VideoDeinterlace[1] = 1; // mode[1]; // 720p
VideoDeinterlace[1] = 0; // mode[1]; // 720p
VideoDeinterlace[2] = mode[2]; // fake 1080
VideoDeinterlace[3] = mode[3]; // 1080
VideoDeinterlace[4] = 1; // mode[4]; 2160p
VideoDeinterlace[4] = 0; // mode[4]; 2160p
#else
VideoDeinterlace[0] = 1; // 576i
VideoDeinterlace[1] = 0; // mode[1]; // 720p