mirror of
https://projects.vdr-developer.org/git/vdr-plugin-softhddevice.git
synced 2023-10-10 19:16:51 +02:00
VDPAU: Enable inverse telecine configuration.
This commit is contained in:
parent
6775173e4f
commit
8dd95dab5e
@ -1,5 +1,6 @@
|
|||||||
User johns
|
User johns
|
||||||
|
|
||||||
|
VDPAU: Enables inverse telecine configuration.
|
||||||
Find AC3 (Dolby Digital) inside PES packet.
|
Find AC3 (Dolby Digital) inside PES packet.
|
||||||
Fix bug: audio increments invalid audio PTS.
|
Fix bug: audio increments invalid audio PTS.
|
||||||
Fix bug: dvd plugin not working.
|
Fix bug: dvd plugin not working.
|
||||||
|
@ -127,6 +127,9 @@ Setup: /etc/vdr/setup.conf
|
|||||||
softhddevice.<res>.SkipChromaDeinterlace = 0
|
softhddevice.<res>.SkipChromaDeinterlace = 0
|
||||||
0 = disabled, 1 = enabled (for slower cards, poor qualität)
|
0 = disabled, 1 = enabled (for slower cards, poor qualität)
|
||||||
|
|
||||||
|
softhddevice.<res>.InverseTelecine = 0
|
||||||
|
0 = disabled, 1 = enabled
|
||||||
|
|
||||||
softhddevice.<res>.Denoise = 0
|
softhddevice.<res>.Denoise = 0
|
||||||
0 .. 1000 noise reduction level (0 off, 1000 max)
|
0 .. 1000 noise reduction level (0 off, 1000 max)
|
||||||
|
|
||||||
|
@ -70,6 +70,9 @@ static int ConfigVideoDeinterlace[RESOLUTIONS];
|
|||||||
/// config skip chroma
|
/// config skip chroma
|
||||||
static int ConfigVideoSkipChromaDeinterlace[RESOLUTIONS];
|
static int ConfigVideoSkipChromaDeinterlace[RESOLUTIONS];
|
||||||
|
|
||||||
|
/// config inverse telecine
|
||||||
|
static int ConfigVideoInverseTelecine[RESOLUTIONS];
|
||||||
|
|
||||||
/// config denoise
|
/// config denoise
|
||||||
static int ConfigVideoDenoise[RESOLUTIONS];
|
static int ConfigVideoDenoise[RESOLUTIONS];
|
||||||
|
|
||||||
@ -389,6 +392,7 @@ class cMenuSetupSoft:public cMenuSetupPage
|
|||||||
int Scaling[RESOLUTIONS];
|
int Scaling[RESOLUTIONS];
|
||||||
int Deinterlace[RESOLUTIONS];
|
int Deinterlace[RESOLUTIONS];
|
||||||
int SkipChromaDeinterlace[RESOLUTIONS];
|
int SkipChromaDeinterlace[RESOLUTIONS];
|
||||||
|
int InverseTelecine[RESOLUTIONS];
|
||||||
int Denoise[RESOLUTIONS];
|
int Denoise[RESOLUTIONS];
|
||||||
int Sharpen[RESOLUTIONS];
|
int Sharpen[RESOLUTIONS];
|
||||||
int AudioDelay;
|
int AudioDelay;
|
||||||
@ -469,6 +473,9 @@ cMenuSetupSoft::cMenuSetupSoft(void)
|
|||||||
SkipChromaDeinterlace[i] = ConfigVideoSkipChromaDeinterlace[i];
|
SkipChromaDeinterlace[i] = ConfigVideoSkipChromaDeinterlace[i];
|
||||||
Add(new cMenuEditBoolItem(tr("SkipChromaDeinterlace (vdpau)"),
|
Add(new cMenuEditBoolItem(tr("SkipChromaDeinterlace (vdpau)"),
|
||||||
&SkipChromaDeinterlace[i], trVDR("no"), trVDR("yes")));
|
&SkipChromaDeinterlace[i], trVDR("no"), trVDR("yes")));
|
||||||
|
InverseTelecine[i] = ConfigVideoInverseTelecine[i];
|
||||||
|
Add(new cMenuEditBoolItem(tr("Inverse Telecine (vdpau)"),
|
||||||
|
&InverseTelecine[i], trVDR("no"), trVDR("yes")));
|
||||||
Denoise[i] = ConfigVideoDenoise[i];
|
Denoise[i] = ConfigVideoDenoise[i];
|
||||||
Add(new cMenuEditIntItem(tr("Denoise (0..1000) (vdpau)"), &Denoise[i],
|
Add(new cMenuEditIntItem(tr("Denoise (0..1000) (vdpau)"), &Denoise[i],
|
||||||
0, 1000));
|
0, 1000));
|
||||||
@ -538,6 +545,8 @@ void cMenuSetupSoft::Store(void)
|
|||||||
"SkipChromaDeinterlace");
|
"SkipChromaDeinterlace");
|
||||||
SetupStore(buf, ConfigVideoSkipChromaDeinterlace[i] =
|
SetupStore(buf, ConfigVideoSkipChromaDeinterlace[i] =
|
||||||
SkipChromaDeinterlace[i]);
|
SkipChromaDeinterlace[i]);
|
||||||
|
snprintf(buf, sizeof(buf), "%s.%s", Resolution[i], "InverseTelecine");
|
||||||
|
SetupStore(buf, ConfigVideoInverseTelecine[i] = InverseTelecine[i]);
|
||||||
snprintf(buf, sizeof(buf), "%s.%s", Resolution[i], "Denoise");
|
snprintf(buf, sizeof(buf), "%s.%s", Resolution[i], "Denoise");
|
||||||
SetupStore(buf, ConfigVideoDenoise[i] = Denoise[i]);
|
SetupStore(buf, ConfigVideoDenoise[i] = Denoise[i]);
|
||||||
snprintf(buf, sizeof(buf), "%s.%s", Resolution[i], "Sharpen");
|
snprintf(buf, sizeof(buf), "%s.%s", Resolution[i], "Sharpen");
|
||||||
@ -546,6 +555,7 @@ void cMenuSetupSoft::Store(void)
|
|||||||
VideoSetScaling(ConfigVideoScaling);
|
VideoSetScaling(ConfigVideoScaling);
|
||||||
VideoSetDeinterlace(ConfigVideoDeinterlace);
|
VideoSetDeinterlace(ConfigVideoDeinterlace);
|
||||||
VideoSetSkipChromaDeinterlace(ConfigVideoSkipChromaDeinterlace);
|
VideoSetSkipChromaDeinterlace(ConfigVideoSkipChromaDeinterlace);
|
||||||
|
VideoSetInverseTelecine(ConfigVideoInverseTelecine);
|
||||||
VideoSetDenoise(ConfigVideoDenoise);
|
VideoSetDenoise(ConfigVideoDenoise);
|
||||||
VideoSetSharpen(ConfigVideoSharpen);
|
VideoSetSharpen(ConfigVideoSharpen);
|
||||||
|
|
||||||
@ -1292,6 +1302,12 @@ bool cPluginSoftHdDevice::SetupParse(const char *name, const char *value)
|
|||||||
VideoSetSkipChromaDeinterlace(ConfigVideoSkipChromaDeinterlace);
|
VideoSetSkipChromaDeinterlace(ConfigVideoSkipChromaDeinterlace);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
snprintf(buf, sizeof(buf), "%s.%s", Resolution[i], "InverseTelecine");
|
||||||
|
if (!strcmp(name, buf)) {
|
||||||
|
ConfigVideoInverseTelecine[i] = atoi(value);
|
||||||
|
VideoSetInverseTelecine(ConfigVideoInverseTelecine);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
snprintf(buf, sizeof(buf), "%s.%s", Resolution[i], "Denoise");
|
snprintf(buf, sizeof(buf), "%s.%s", Resolution[i], "Denoise");
|
||||||
if (!strcmp(name, buf)) {
|
if (!strcmp(name, buf)) {
|
||||||
ConfigVideoDenoise[i] = atoi(value);
|
ConfigVideoDenoise[i] = atoi(value);
|
||||||
|
18
video.c
18
video.c
@ -291,12 +291,12 @@ static VideoDeinterlaceModes VideoDeinterlace[VideoResolutionMax];
|
|||||||
/// Default number of deinterlace surfaces
|
/// Default number of deinterlace surfaces
|
||||||
static const int VideoDeinterlaceSurfaces = 4;
|
static const int VideoDeinterlaceSurfaces = 4;
|
||||||
|
|
||||||
/// Default Inverse telecine flag (VDPAU only).
|
|
||||||
static char VideoInverseTelecine[VideoResolutionMax];
|
|
||||||
|
|
||||||
/// Default skip chroma deinterlace flag (VDPAU only).
|
/// Default skip chroma deinterlace flag (VDPAU only).
|
||||||
static char VideoSkipChromaDeinterlace[VideoResolutionMax];
|
static char VideoSkipChromaDeinterlace[VideoResolutionMax];
|
||||||
|
|
||||||
|
/// Default inverse telecine flag (VDPAU only).
|
||||||
|
static char VideoInverseTelecine[VideoResolutionMax];
|
||||||
|
|
||||||
/// Default amount of noise reduction algorithm to apply (0 .. 1000).
|
/// Default amount of noise reduction algorithm to apply (0 .. 1000).
|
||||||
static int VideoDenoise[VideoResolutionMax];
|
static int VideoDenoise[VideoResolutionMax];
|
||||||
|
|
||||||
@ -9060,6 +9060,18 @@ void VideoSetSkipChromaDeinterlace(int onoff[VideoResolutionMax])
|
|||||||
VideoSurfaceModesChanged = 1;
|
VideoSurfaceModesChanged = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Set inverse telecine on/off.
|
||||||
|
///
|
||||||
|
void VideoSetInverseTelecine(int onoff[VideoResolutionMax])
|
||||||
|
{
|
||||||
|
VideoInverseTelecine[0] = onoff[0];
|
||||||
|
VideoInverseTelecine[1] = onoff[1];
|
||||||
|
VideoInverseTelecine[2] = onoff[2];
|
||||||
|
VideoInverseTelecine[3] = onoff[3];
|
||||||
|
VideoSurfaceModesChanged = 1;
|
||||||
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Set denoise level (0 .. 1000).
|
/// Set denoise level (0 .. 1000).
|
||||||
///
|
///
|
||||||
|
3
video.h
3
video.h
@ -92,6 +92,9 @@ extern void VideoSetDeinterlace(int[]);
|
|||||||
/// Set skip chroma deinterlace.
|
/// Set skip chroma deinterlace.
|
||||||
extern void VideoSetSkipChromaDeinterlace(int[]);
|
extern void VideoSetSkipChromaDeinterlace(int[]);
|
||||||
|
|
||||||
|
/// Set inverse telecine.
|
||||||
|
extern void VideoSetInverseTelecine(int[]);
|
||||||
|
|
||||||
/// Set scaling.
|
/// Set scaling.
|
||||||
extern void VideoSetScaling(int[]);
|
extern void VideoSetScaling(int[]);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user