summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2007-05-17 22:05:40 +0000
committerphintuka <phintuka>2007-05-17 22:05:40 +0000
commita05fb69ed916fe307903a842ff8843b9e42d5fb5 (patch)
tree57e497873fe88bfe3eb428497b6924ad0f581ba9
parentf344a4181868e1cc2bd910fdf50f71ff9f79873a (diff)
downloadxineliboutput-a05fb69ed916fe307903a842ff8843b9e42d5fb5.tar.gz
xineliboutput-a05fb69ed916fe307903a842ff8843b9e42d5fb5.tar.bz2
Setup menu for unsharp and denoise3d post plugins (Patch from Petri Helin)
-rw-r--r--i18n.c223
-rw-r--r--setup_menu.c65
2 files changed, 284 insertions, 4 deletions
diff --git a/i18n.c b/i18n.c
index aecf9c82..a0bbec00 100644
--- a/i18n.c
+++ b/i18n.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: i18n.c,v 1.19 2007-04-12 22:53:36 phintuka Exp $
+ * $Id: i18n.c,v 1.20 2007-05-17 22:05:40 phintuka Exp $
*
* Translations provided by:
*
@@ -3492,7 +3492,226 @@ const tI18nPhrase Phrases[] = {
"", // Russian
"", // Croatian
},
-
+ {
+ "3D Denoiser", // English
+ "", // Deutsch
+ "", // Slovenski
+ "", // Italiano
+ "", // Nederlands
+ "", // Portugu<EA>s
+ "", // Fran<E7>ais
+ "", // Norsk
+ "3D kohinanpoisto", // Suomi
+ "", // Polski
+ "", // Espa<F1>ol
+ "", // Ellinika
+ "", // Svenska
+ "", // Romaneste
+ "", // Magyar
+ "", // Catala
+ "", // Russian
+ "", // Croatian
+ },
+ { // 3D Denoiser
+ " Spatial luma strength", // English
+ "", // Deutsch
+ "", // Slovenski
+ "", // Italiano
+ "", // Nederlands
+ "", // Portugu<EA>s
+ "", // Fran<E7>ais
+ "", // Norsk
+ " Luman tilavoimakkuus", // Suomi
+ "", // Polski
+ "", // Espa<F1>ol
+ "", // Ellinika
+ "", // Svenska
+ "", // Romaneste
+ "", // Magyar
+ "", // Catala
+ "", // Russian
+ "", // Croatian
+ },
+ { // 3D Denoiser
+ " Spatial chroma strength", // English
+ "", // Deutsch
+ "", // Slovenski
+ "", // Italiano
+ "", // Nederlands
+ "", // Portugu<EA>s
+ "", // Fran<E7>ais
+ "", // Norsk
+ " Chroman tilavoimakkuus", // Suomi
+ "", // Polski
+ "", // Espa<F1>ol
+ "", // Ellinika
+ "", // Svenska
+ "", // Romaneste
+ "", // Magyar
+ "", // Catala
+ "", // Russian
+ "", // Croatian
+ },
+ { // 3D Denoiser
+ " Temporal strength", // English
+ "", // Deutsch
+ "", // Slovenski
+ "", // Italiano
+ "", // Nederlands
+ "", // Portugu<EA>s
+ "", // Fran<E7>ais
+ "", // Norsk
+ " Ajallinen voimakkuus", // Suomi
+ "", // Polski
+ "", // Espa<F1>ol
+ "", // Ellinika
+ "", // Svenska
+ "", // Romaneste
+ "", // Magyar
+ "", // Catala
+ "", // Russian
+ "", // Croatian
+ },
+ {
+ "Sharpen / Blur", // English
+ "", // Deutsch
+ "", // Slovenski
+ "", // Italiano
+ "", // Nederlands
+ "", // Portugu<EA>s
+ "", // Fran<E7>ais
+ "", // Norsk
+ "Terävöinti / Sumennus", // Suomi
+ "", // Polski
+ "", // Espa<F1>ol
+ "", // Ellinika
+ "", // Svenska
+ "", // Romaneste
+ "", // Magyar
+ "", // Catala
+ "", // Russian
+ "", // Croatian
+ },
+ { // Unsharp mask
+ " Width of the luma matrix", // English
+ "", // Deutsch
+ "", // Slovenski
+ "", // Italiano
+ "", // Nederlands
+ "", // Portugu<EA>s
+ "", // Fran<E7>ais
+ "", // Norsk
+ " Luma-matriisin leveys", // Suomi
+ "", // Polski
+ "", // Espa<F1>ol
+ "", // Ellinika
+ "", // Svenska
+ "", // Romaneste
+ "", // Magyar
+ "", // Catala
+ "", // Russian
+ "", // Croatian
+ },
+ { // Unsharp mask
+ " Height of the luma matrix", // English
+ "", // Deutsch
+ "", // Slovenski
+ "", // Italiano
+ "", // Nederlands
+ "", // Portugu<EA>s
+ "", // Fran<E7>ais
+ "", // Norsk
+ " Luma-matriisin korkeus", // Suomi
+ "", // Polski
+ "", // Espa<F1>ol
+ "", // Ellinika
+ "", // Svenska
+ "", // Romaneste
+ "", // Magyar
+ "", // Catala
+ "", // Russian
+ "", // Croatian
+ },
+ { // Unsharp mask
+ " Amount of luma sharpness/blur", // English
+ "", // Deutsch
+ "", // Slovenski
+ "", // Italiano
+ "", // Nederlands
+ "", // Portugu<EA>s
+ "", // Fran<E7>ais
+ "", // Norsk
+ " Luma-terävöinti/-sumennus", // Suomi
+ "", // Polski
+ "", // Espa<F1>ol
+ "", // Ellinika
+ "", // Svenska
+ "", // Romaneste
+ "", // Magyar
+ "", // Catala
+ "", // Russian
+ "", // Croatian
+ },
+ { // Unsharp mask
+ " Width of the chroma matrix", // English
+ "", // Deutsch
+ "", // Slovenski
+ "", // Italiano
+ "", // Nederlands
+ "", // Portugu<EA>s
+ "", // Fran<E7>ais
+ "", // Norsk
+ " Chroma-matriisin leveys", // Suomi
+ "", // Polski
+ "", // Espa<F1>ol
+ "", // Ellinika
+ "", // Svenska
+ "", // Romaneste
+ "", // Magyar
+ "", // Catala
+ "", // Russian
+ "", // Croatian
+ },
+ { // Unsharp mask
+ " Height of the chroma matrix", // English
+ "", // Deutsch
+ "", // Slovenski
+ "", // Italiano
+ "", // Nederlands
+ "", // Portugu<EA>s
+ "", // Fran<E7>ais
+ "", // Norsk
+ " Chroma-matriisin korkeus", // Suomi
+ "", // Polski
+ "", // Espa<F1>ol
+ "", // Ellinika
+ "", // Svenska
+ "", // Romaneste
+ "", // Magyar
+ "", // Catala
+ "", // Russian
+ "", // Croatian
+ },
+ { // Unsharp mask
+ " Amount of chroma sharpness/blur", // English
+ "", // Deutsch
+ "", // Slovenski
+ "", // Italiano
+ "", // Nederlands
+ "", // Portugu<EA>s
+ "", // Fran<E7>ais
+ "", // Norsk
+ " Chroma-terävöinti/-sumennus", // Suomi
+ "", // Polski
+ "", // Espa<F1>ol
+ "", // Ellinika
+ "", // Svenska
+ "", // Romaneste
+ "", // Magyar
+ "", // Catala
+ "", // Russian
+ "", // Croatian
+ },
#if 0
{
"", // English
diff --git a/setup_menu.c b/setup_menu.c
index b90b0d22..5efdde47 100644
--- a/setup_menu.c
+++ b/setup_menu.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: setup_menu.c,v 1.25 2007-04-12 22:53:36 phintuka Exp $
+ * $Id: setup_menu.c,v 1.26 2007-05-17 22:05:40 phintuka Exp $
*
*/
@@ -491,6 +491,8 @@ class cMenuSetupVideo : public cMenuSetupPage
cOsdItem *ctrl_pp;
cOsdItem *ctrl_deinterlace;
cOsdItem *ctrl_deinterlace_opts;
+ cOsdItem *ctrl_unsharp;
+ cOsdItem *ctrl_denoise3d;
int deinterlace;
struct tvtime_s tvtime;
@@ -532,6 +534,10 @@ cMenuSetupVideo::~cMenuSetupVideo(void)
cXinelibDevice::Instance().ConfigurePostprocessing(
"pp", xc.ffmpeg_pp ? true : false, xc.FfmpegPpOptions());
cXinelibDevice::Instance().ConfigurePostprocessing(
+ "unsharp", xc.unsharp ? true : false, xc.UnsharpOptions());
+ cXinelibDevice::Instance().ConfigurePostprocessing(
+ "denoise3d", xc.denoise3d ? true : false, xc.Denoise3dOptions());
+ cXinelibDevice::Instance().ConfigurePostprocessing(
xc.deinterlace_method, xc.audio_delay, xc.audio_compression,
xc.audio_equalizer, xc.audio_surround, xc.speaker_type);
}
@@ -598,6 +604,37 @@ void cMenuSetupVideo::Set(void)
&tvtime.chroma_filter));
}
+ Add(ctrl_unsharp = new cMenuEditBoolItem(tr("Sharpen / Blur"),
+ &newconfig.unsharp));
+ if(newconfig.unsharp) {
+ Add(new cMenuEditOddIntItem( tr(" Width of the luma matrix"),
+ &newconfig.unsharp_luma_matrix_width, 3, 11));
+ Add(new cMenuEditOddIntItem( tr(" Height of the luma matrix"),
+ &newconfig.unsharp_luma_matrix_height, 3, 11));
+ Add(new cMenuEditFpIntItem( tr(" Amount of luma sharpness/blur"),
+ &newconfig.unsharp_luma_amount, -20, 20, 1,
+ tr("Off")));
+ Add(new cMenuEditOddIntItem( tr(" Width of the chroma matrix"),
+ &newconfig.unsharp_chroma_matrix_width, 3, 11));
+ Add(new cMenuEditOddIntItem( tr(" Height of the chroma matrix"),
+ &newconfig.unsharp_chroma_matrix_height, 3, 11));
+ Add(new cMenuEditFpIntItem( tr(" Amount of chroma sharpness/blur"),
+ &newconfig.unsharp_chroma_amount, -20, 20, 1,
+ tr("Off")));
+ }
+
+ Add(ctrl_denoise3d = new cMenuEditBoolItem(tr("3D Denoiser"),
+ &newconfig.denoise3d));
+ if(newconfig.denoise3d) {
+ Add(new cMenuEditFpIntItem( tr(" Spatial luma strength"),
+ &newconfig.denoise3d_luma, 0, 100, 1));
+ Add(new cMenuEditFpIntItem( tr(" Spatial chroma strength"),
+ &newconfig.denoise3d_chroma, 0, 100, 1));
+ Add(new cMenuEditFpIntItem( tr(" Temporal strength"),
+ &newconfig.denoise3d_time, 0, 100, 1));
+ }
+
+
#ifdef INTEGER_CONFIG_VIDEO_CONTROLS
Add(new cMenuEditIntItem(tr("HUE"), &newconfig.hue, -1, 0xffff));
Add(new cMenuEditIntItem(tr("Saturation"), &newconfig.saturation,-1,0xffff));
@@ -662,7 +699,20 @@ eOSState cMenuSetupVideo::ProcessKey(eKeys Key)
"pp", newconfig.ffmpeg_pp ? true : false,
newconfig.FfmpegPpOptions());
Set();
- } else if(item == ctrl_deinterlace) {
+ }
+ else if(item == ctrl_unsharp) {
+ cXinelibDevice::Instance().ConfigurePostprocessing(
+ "unsharp", newconfig.unsharp ? true : false,
+ newconfig.UnsharpOptions());
+ Set();
+ }
+ else if(item == ctrl_denoise3d) {
+ cXinelibDevice::Instance().ConfigurePostprocessing(
+ "denoise3d", newconfig.denoise3d ? true : false,
+ newconfig.Denoise3dOptions());
+ Set();
+ }
+ else if(item == ctrl_deinterlace) {
if(deinterlace == DEINTERLACE_TVTIME && !ctrl_deinterlace_opts) {
Set();
} else if(deinterlace != DEINTERLACE_TVTIME && ctrl_deinterlace_opts) {
@@ -703,6 +753,17 @@ void cMenuSetupVideo::Store(void)
SetupStore("Post.pp.Enable", xc.ffmpeg_pp);
SetupStore("Post.pp.Quality", xc.ffmpeg_pp_quality);
SetupStore("Post.pp.Mode", xc.ffmpeg_pp_mode);
+ SetupStore("Post.unsharp.Enable", xc.unsharp);
+ SetupStore("Post.unsharp.luma_matrix_width", xc.unsharp_luma_matrix_width);
+ SetupStore("Post.unsharp.luma_matrix_height", xc.unsharp_luma_matrix_height);
+ SetupStore("Post.unsharp.luma_amount", xc.unsharp_luma_amount);
+ SetupStore("Post.unsharp.chroma_matrix_width", xc.unsharp_chroma_matrix_width);
+ SetupStore("Post.unsharp.chroma_matrix_height", xc.unsharp_chroma_matrix_height);
+ SetupStore("Post.unsharp.chroma_amount", xc.unsharp_chroma_amount);
+ SetupStore("Post.denoise3d.Enable", xc.denoise3d);
+ SetupStore("Post.denoise3d.luma", xc.denoise3d_luma);
+ SetupStore("Post.denoise3d.chroma", xc.denoise3d_chroma);
+ SetupStore("Post.denoise3d.time", xc.denoise3d_time);
}