Advertisement
Guest User

XBMC Postprocessing Update

a guest
Jan 31st, 2013
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 16.02 KB | None | 0 0
  1. diff -Naur xbmc-9999.old/language/English/strings.po xbmc-9999/language/English/strings.po
  2. --- xbmc-9999.old/language/English/strings.po   2013-01-31 08:38:50.355478145 +0100
  3. +++ xbmc-9999/language/English/strings.po       2013-01-31 08:43:25.914470132 +0100
  4. @@ -6610,7 +6610,27 @@
  5.  msgid "Post-processing"
  6.  msgstr ""
  7.  
  8. -#empty strings from id 16401 to 17499
  9. +msgctxt "#16401"
  10. +msgid "Post-processing Mode"
  11. +msgstr ""
  12. +
  13. +msgctxt "#16402"
  14. +msgid "Default"
  15. +msgstr ""
  16. +
  17. +msgctxt "#16403"
  18. +msgid "Aggressive"
  19. +msgstr ""
  20. +
  21. +msgctxt "#16404"
  22. +msgid "Auto-Aggressive"
  23. +msgstr ""
  24. +
  25. +msgctxt "#16405"
  26. +msgid "Auto"
  27. +msgstr ""
  28. +
  29. +#empty strings from id 16406 to 17499
  30.  
  31.  msgctxt "#17500"
  32.  msgid "Display sleep timeout"
  33. diff -Naur xbmc-9999.old/language/Polish/strings.po xbmc-9999/language/Polish/strings.po
  34. --- xbmc-9999.old/language/Polish/strings.po    2013-01-31 08:38:50.348478145 +0100
  35. +++ xbmc-9999/language/Polish/strings.po        2013-01-31 08:43:25.920470131 +0100
  36. @@ -5910,6 +5910,27 @@
  37.  msgid "Post-processing"
  38.  msgstr "Post-processing"
  39.  
  40. +msgctxt "#16401"
  41. +msgid "Post-processing Mode"
  42. +msgstr "Tryb Postprocesingu"
  43. +
  44. +msgctxt "#16402"
  45. +msgid "Default"
  46. +msgstr "Domyślny"
  47. +
  48. +msgctxt "#16403"
  49. +msgid "Aggressive"
  50. +msgstr "Agresywny"
  51. +
  52. +msgctxt "#16404"
  53. +msgid "Auto-Aggressive"
  54. +msgstr "Auto-Agresywny"
  55. +
  56. +msgctxt "#16405"
  57. +msgid "Auto"
  58. +msgstr "Automatyczny"
  59. +
  60. +
  61.  msgctxt "#17500"
  62.  msgid "Display sleep timeout"
  63.  msgstr "Wyświetlaj odliczanie czasu uśpienia"
  64. diff -Naur xbmc-9999.old/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp xbmc-9999/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp
  65. --- xbmc-9999.old/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp       2013-01-31 08:38:49.832478160 +0100
  66. +++ xbmc-9999/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp   2013-01-31 08:43:25.921470131 +0100
  67. @@ -651,8 +651,33 @@
  68.              {
  69.                if (!sPostProcessType.empty())
  70.                  sPostProcessType += ",";
  71. -              // This is what mplayer uses for its "high-quality filter combination"
  72. -              sPostProcessType += g_advancedSettings.m_videoPPFFmpegPostProc;
  73. +
  74. +
  75. +              switch (g_settings.m_currentVideoSettings.m_PostProcessingMode)
  76. +              {
  77. +              case VS_PPMODE_DEFAULT:
  78. +                {
  79. +                  // this is the one that will be overwritten by settings in Advancedsettings.xml
  80. +                  sPostProcessType += g_advancedSettings.m_videoPPFFmpegPostProcDefault;
  81. +                }
  82. +                break;
  83. +              case VS_PPMODE_AGGRESSIVE:
  84. +                {
  85. +                  sPostProcessType += g_advancedSettings.m_videoPPFFmpegPostProcAggressive;
  86. +                }
  87. +                break;
  88. +              case VS_PPMODE_AUTO_AGGRESSIVE:
  89. +                {
  90. +                  sPostProcessType += g_advancedSettings.m_videoPPFFmpegPostProcAutoAggressive;
  91. +                }
  92. +                break;
  93. +              case VS_PPMODE_AUTO:
  94. +                {
  95. +                  sPostProcessType += g_advancedSettings.m_videoPPFFmpegPostProcAutoQuality;
  96. +                }
  97. +                break;
  98. +              }
  99. +
  100.              }
  101.  
  102.              if (!sPostProcessType.empty())
  103. diff -Naur xbmc-9999.old/xbmc/settings/AdvancedSettings.cpp xbmc-9999/xbmc/settings/AdvancedSettings.cpp
  104. --- xbmc-9999.old/xbmc/settings/AdvancedSettings.cpp    2013-01-31 08:38:49.763478162 +0100
  105. +++ xbmc-9999/xbmc/settings/AdvancedSettings.cpp        2013-01-31 08:43:25.922470131 +0100
  106. @@ -92,7 +92,10 @@
  107.    m_videoPercentSeekBackwardBig = -10;
  108.    m_videoBlackBarColour = 0;
  109.    m_videoPPFFmpegDeint = "linblenddeint";
  110. -  m_videoPPFFmpegPostProc = "ha:128:7,va,dr";
  111. +  m_videoPPFFmpegPostProcDefault = "ha,va,dr"; // ha:32:39,va:32:39,dr
  112. +  m_videoPPFFmpegPostProcAggressive = "ha:128:7,va,dr";
  113. +  m_videoPPFFmpegPostProcAutoAggressive = "ha:a:128:7,va:a:128:7,dr:a";
  114. +  m_videoPPFFmpegPostProcAutoQuality = "hb:a,vb:a,dr:a"; // ":a"=automatically switch the subfilter off if the CPU is too slow
  115.    m_videoDefaultPlayer = "dvdplayer";
  116.    m_videoDefaultDVDPlayer = "dvdplayer";
  117.    m_videoIgnoreSecondsAtStart = 3*60;
  118. @@ -492,7 +495,7 @@
  119.  
  120.      XMLUtils::GetString(pElement,"cleandatetime", m_videoCleanDateTimeRegExp);
  121.      XMLUtils::GetString(pElement,"ppffmpegdeinterlacing",m_videoPPFFmpegDeint);
  122. -    XMLUtils::GetString(pElement,"ppffmpegpostprocessing",m_videoPPFFmpegPostProc);
  123. +    XMLUtils::GetString(pElement,"ppffmpegpostprocessing",m_videoPPFFmpegPostProcDefault);
  124.      XMLUtils::GetBoolean(pElement,"vdpauscaling",m_videoVDPAUScaling);
  125.      XMLUtils::GetFloat(pElement, "nonlinearstretchratio", m_videoNonLinStretchRatio, 0.01f, 1.0f);
  126.      XMLUtils::GetBoolean(pElement,"enablehighqualityhwscalers", m_videoEnableHighQualityHwScalers);
  127. diff -Naur xbmc-9999.old/xbmc/settings/AdvancedSettings.h xbmc-9999/xbmc/settings/AdvancedSettings.h
  128. --- xbmc-9999.old/xbmc/settings/AdvancedSettings.h      2013-01-31 08:38:49.763478162 +0100
  129. +++ xbmc-9999/xbmc/settings/AdvancedSettings.h  2013-01-31 08:43:25.922470131 +0100
  130. @@ -132,7 +132,10 @@
  131.      int m_videoPercentSeekForwardBig;
  132.      int m_videoPercentSeekBackwardBig;
  133.      CStdString m_videoPPFFmpegDeint;
  134. -    CStdString m_videoPPFFmpegPostProc;
  135. +    CStdString m_videoPPFFmpegPostProcDefault;
  136. +    CStdString m_videoPPFFmpegPostProcAggressive;
  137. +    CStdString m_videoPPFFmpegPostProcAutoAggressive;
  138. +    CStdString m_videoPPFFmpegPostProcAutoQuality;
  139.      bool m_musicUseTimeSeeking;
  140.      int m_musicTimeSeekForward;
  141.      int m_musicTimeSeekBackward;
  142. diff -Naur xbmc-9999.old/xbmc/settings/Settings.cpp xbmc-9999/xbmc/settings/Settings.cpp
  143. --- xbmc-9999.old/xbmc/settings/Settings.cpp    2013-01-31 08:38:49.762478162 +0100
  144. +++ xbmc-9999/xbmc/settings/Settings.cpp        2013-01-31 08:43:25.923470131 +0100
  145. @@ -763,6 +763,9 @@
  146.      GetFloat(pElement, "volumeamplification", m_defaultVideoSettings.m_VolumeAmplification, VOLUME_DRC_MINIMUM * 0.01f, VOLUME_DRC_MINIMUM * 0.01f, VOLUME_DRC_MAXIMUM * 0.01f);
  147.      GetFloat(pElement, "noisereduction", m_defaultVideoSettings.m_NoiseReduction, 0.0f, 0.0f, 1.0f);
  148.      XMLUtils::GetBoolean(pElement, "postprocess", m_defaultVideoSettings.m_PostProcess);
  149. +    int postProcessingMode;
  150. +    GetInteger(pElement, "postprocessingmode", postProcessingMode, VS_PPMODE_DEFAULT, VS_PPMODE_DEFAULT, VS_PPMODE_AUTO);
  151. +    m_defaultVideoSettings.m_PostProcessingMode = (EPOSTPROCESSINGMODE)postProcessingMode;
  152.      GetFloat(pElement, "sharpness", m_defaultVideoSettings.m_Sharpness, 0.0f, -1.0f, 1.0f);
  153.      XMLUtils::GetBoolean(pElement, "outputtoallspeakers", m_defaultVideoSettings.m_OutputToAllSpeakers);
  154.      XMLUtils::GetBoolean(pElement, "showsubtitles", m_defaultVideoSettings.m_SubtitleOn);
  155. @@ -929,6 +932,7 @@
  156.    XMLUtils::SetInt(pNode, "scalingmethod", m_defaultVideoSettings.m_ScalingMethod);
  157.    XMLUtils::SetFloat(pNode, "noisereduction", m_defaultVideoSettings.m_NoiseReduction);
  158.    XMLUtils::SetBoolean(pNode, "postprocess", m_defaultVideoSettings.m_PostProcess);
  159. +  XMLUtils::SetInt(pNode, "postprocessingmode", m_defaultVideoSettings.m_PostProcessingMode);
  160.    XMLUtils::SetFloat(pNode, "sharpness", m_defaultVideoSettings.m_Sharpness);
  161.    XMLUtils::SetInt(pNode, "viewmode", m_defaultVideoSettings.m_ViewMode);
  162.    XMLUtils::SetFloat(pNode, "zoomamount", m_defaultVideoSettings.m_CustomZoomAmount);
  163. diff -Naur xbmc-9999.old/xbmc/settings/VideoSettings.cpp xbmc-9999/xbmc/settings/VideoSettings.cpp
  164. --- xbmc-9999.old/xbmc/settings/VideoSettings.cpp       2013-01-31 08:38:49.761478162 +0100
  165. +++ xbmc-9999/xbmc/settings/VideoSettings.cpp   2013-01-31 08:43:25.924470131 +0100
  166. @@ -49,6 +49,7 @@
  167.    m_Sharpness = 0.0f;
  168.    m_NoiseReduction = 0;
  169.    m_PostProcess = false;
  170. +  m_PostProcessingMode = VS_PPMODE_DEFAULT;
  171.    m_VolumeAmplification = 0;
  172.    m_AudioDelay = 0.0f;
  173.    m_OutputToAllSpeakers = false;
  174. @@ -81,6 +82,7 @@
  175.    if (m_Sharpness != right.m_Sharpness) return true;
  176.    if (m_NoiseReduction != right.m_NoiseReduction) return true;
  177.    if (m_PostProcess != right.m_PostProcess) return true;
  178. +  if (m_PostProcessingMode != right.m_PostProcessingMode) return true;
  179.    if (m_VolumeAmplification != right.m_VolumeAmplification) return true;
  180.    if (m_AudioDelay != right.m_AudioDelay) return true;
  181.    if (m_OutputToAllSpeakers != right.m_OutputToAllSpeakers) return true;
  182. diff -Naur xbmc-9999.old/xbmc/settings/VideoSettings.h xbmc-9999/xbmc/settings/VideoSettings.h
  183. --- xbmc-9999.old/xbmc/settings/VideoSettings.h 2013-01-31 08:38:49.761478162 +0100
  184. +++ xbmc-9999/xbmc/settings/VideoSettings.h     2013-01-31 08:47:12.347463547 +0100
  185. @@ -94,6 +94,14 @@
  186.    VS_SCALINGMETHOD_MAX // do not use and keep as last enum value.
  187.  };
  188.  
  189. +enum EPOSTPROCESSINGMODE
  190. +{
  191. +  VS_PPMODE_DEFAULT=0,
  192. +  VS_PPMODE_AGGRESSIVE,
  193. +  VS_PPMODE_AUTO_AGGRESSIVE,
  194. +  VS_PPMODE_AUTO
  195. +};
  196. +
  197.  class CVideoSettings
  198.  {
  199.  public:
  200. @@ -122,6 +130,7 @@
  201.    float m_Gamma;
  202.    float m_NoiseReduction;
  203.    bool m_PostProcess;
  204. +  EPOSTPROCESSINGMODE m_PostProcessingMode;
  205.    float m_Sharpness;
  206.    float m_AudioDelay;
  207.    int m_ResumeTime;
  208. diff -Naur xbmc-9999.old/xbmc/video/dialogs/GUIDialogVideoSettings.cpp xbmc-9999/xbmc/video/dialogs/GUIDialogVideoSettings.cpp
  209. --- xbmc-9999.old/xbmc/video/dialogs/GUIDialogVideoSettings.cpp 2013-01-31 08:38:49.746478162 +0100
  210. +++ xbmc-9999/xbmc/video/dialogs/GUIDialogVideoSettings.cpp     2013-01-31 08:43:25.924470131 +0100
  211. @@ -67,6 +67,7 @@
  212.  #define VIDEO_SETTINGS_POSTPROCESS        22
  213.  #define VIDEO_SETTINGS_VERTICAL_SHIFT     23
  214.  #define VIDEO_SETTINGS_DEINTERLACEMODE    24
  215. +#define VIDEO_SETTINGS_POSTPROCESS_MODE   25
  216.  
  217.  void CGUIDialogVideoSettings::CreateSettings()
  218.  {
  219. @@ -172,6 +173,12 @@
  220.      AddSlider(VIDEO_SETTINGS_PIXEL_RATIO, 217, &g_settings.m_currentVideoSettings.m_CustomPixelRatio, 0.5f, 0.01f, 2.0f, FormatFloat);
  221.    if (g_renderManager.Supports(RENDERFEATURE_POSTPROCESS))
  222.      AddBool(VIDEO_SETTINGS_POSTPROCESS, 16400, &g_settings.m_currentVideoSettings.m_PostProcess);
  223. +  {
  224. +    const int entries[] = {16402, 16403, 16404, 16405};
  225. +    AddSpin(VIDEO_SETTINGS_POSTPROCESS_MODE, 16401, (int*)&g_settings.m_currentVideoSettings.m_PostProcessingMode, 4, entries);
  226. +    EnableSettings(VIDEO_SETTINGS_POSTPROCESS_MODE, g_settings.m_currentVideoSettings.m_PostProcess);
  227. +    UpdateSetting(VIDEO_SETTINGS_POSTPROCESS_MODE);
  228. +  }
  229.  
  230.  #ifdef HAS_VIDEO_PLAYBACK
  231.    if (g_renderManager.Supports(RENDERFEATURE_BRIGHTNESS))
  232. @@ -250,6 +257,12 @@
  233.      EnableSettings(VIDEO_SETTINGS_INTERLACEMETHOD, g_settings.m_currentVideoSettings.m_DeinterlaceMode != VS_DEINTERLACEMODE_OFF);
  234.    }
  235.  
  236. +  else if (setting.id == VIDEO_SETTINGS_POSTPROCESS)
  237. +  {
  238. +    EnableSettings(VIDEO_SETTINGS_POSTPROCESS_MODE, g_settings.m_currentVideoSettings.m_PostProcess);
  239. +    UpdateSetting(VIDEO_SETTINGS_POSTPROCESS_MODE);
  240. +  }
  241. +
  242.    if (g_PVRManager.IsPlayingRadio() || g_PVRManager.IsPlayingTV())
  243.      g_PVRManager.TriggerSaveChannelSettings();
  244.  }
  245. diff -Naur xbmc-9999.old/xbmc/video/VideoDatabase.cpp xbmc-9999/xbmc/video/VideoDatabase.cpp
  246. --- xbmc-9999.old/xbmc/video/VideoDatabase.cpp  2013-01-31 08:38:49.748478162 +0100
  247. +++ xbmc-9999/xbmc/video/VideoDatabase.cpp      2013-01-31 08:43:25.928470131 +0100
  248. @@ -106,7 +106,7 @@
  249.                  "SubtitleDelay float, SubtitlesOn bool, Brightness float, Contrast float, Gamma float,"
  250.                  "VolumeAmplification float, AudioDelay float, OutputToAllSpeakers bool, ResumeTime integer, Crop bool, CropLeft integer,"
  251.                  "CropRight integer, CropTop integer, CropBottom integer, Sharpness float, NoiseReduction float, NonLinStretch bool, PostProcess bool,"
  252. -                "ScalingMethod integer, DeinterlaceMode integer)\n");
  253. +                "ScalingMethod integer, DeinterlaceMode integer, PostProcessingMode integer)\n");
  254.      m_pDS->exec("CREATE UNIQUE INDEX ix_settings ON settings ( idFile )\n");
  255.  
  256.      CLog::Log(LOGINFO, "create stacktimes table");
  257. @@ -3526,6 +3526,7 @@
  258.        settings.m_CustomNonLinStretch = m_pDS->fv("NonLinStretch").get_asBool();
  259.        settings.m_NoiseReduction = m_pDS->fv("NoiseReduction").get_asFloat();
  260.        settings.m_PostProcess = m_pDS->fv("PostProcess").get_asBool();
  261. +      settings.m_PostProcessingMode = (EPOSTPROCESSINGMODE)m_pDS->fv("PostProcessingMode").get_asInt();
  262.        settings.m_Sharpness = m_pDS->fv("Sharpness").get_asFloat();
  263.        settings.m_CustomZoomAmount = m_pDS->fv("ZoomAmount").get_asFloat();
  264.        settings.m_CustomVerticalShift = m_pDS->fv("VerticalShift").get_asFloat();
  265. @@ -3578,12 +3579,12 @@
  266.        strSQL=PrepareSQL("update settings set Deinterlace=%i,ViewMode=%i,ZoomAmount=%f,PixelRatio=%f,VerticalShift=%f,"
  267.                         "AudioStream=%i,SubtitleStream=%i,SubtitleDelay=%f,SubtitlesOn=%i,Brightness=%f,Contrast=%f,Gamma=%f,"
  268.                         "VolumeAmplification=%f,AudioDelay=%f,OutputToAllSpeakers=%i,Sharpness=%f,NoiseReduction=%f,NonLinStretch=%i,PostProcess=%i,ScalingMethod=%i,"
  269. -                       "DeinterlaceMode=%i,",
  270. +                       "DeinterlaceMode=%i,PostProcessingMode=%i,",
  271.                         setting.m_InterlaceMethod, setting.m_ViewMode, setting.m_CustomZoomAmount, setting.m_CustomPixelRatio, setting.m_CustomVerticalShift,
  272.                         setting.m_AudioStream, setting.m_SubtitleStream, setting.m_SubtitleDelay, setting.m_SubtitleOn,
  273.                         setting.m_Brightness, setting.m_Contrast, setting.m_Gamma, setting.m_VolumeAmplification, setting.m_AudioDelay,
  274.                         setting.m_OutputToAllSpeakers,setting.m_Sharpness,setting.m_NoiseReduction,setting.m_CustomNonLinStretch,setting.m_PostProcess,setting.m_ScalingMethod,
  275. -                       setting.m_DeinterlaceMode);
  276. +                       setting.m_DeinterlaceMode,setting.m_PostProcessingMode);
  277.        CStdString strSQL2;
  278.        strSQL2=PrepareSQL("ResumeTime=%i,Crop=%i,CropLeft=%i,CropRight=%i,CropTop=%i,CropBottom=%i where idFile=%i\n", setting.m_ResumeTime, setting.m_Crop, setting.m_CropLeft, setting.m_Cr$
  279.        strSQL += strSQL2;
  280. @@ -3597,7 +3598,7 @@
  281.                  "AudioStream,SubtitleStream,SubtitleDelay,SubtitlesOn,Brightness,"
  282.                  "Contrast,Gamma,VolumeAmplification,AudioDelay,OutputToAllSpeakers,"
  283.                  "ResumeTime,Crop,CropLeft,CropRight,CropTop,CropBottom,"
  284. -                "Sharpness,NoiseReduction,NonLinStretch,PostProcess,ScalingMethod,DeinterlaceMode) "
  285. +                "Sharpness,NoiseReduction,NonLinStretch,PostProcess,ScalingMethod,DeinterlaceMode,PostProcessingMode) "
  286.                "VALUES ";
  287.        strSQL += PrepareSQL("(%i,%i,%i,%f,%f,%f,%i,%i,%f,%i,%f,%f,%f,%f,%f,%i,%i,%i,%i,%i,%i,%i,%f,%f,%i,%i,%i,%i)",
  288.                             idFile, setting.m_InterlaceMethod, setting.m_ViewMode, setting.m_CustomZoomAmount, setting.m_CustomPixelRatio, setting.m_CustomVerticalShift,
  289. @@ -3605,7 +3606,7 @@
  290.                             setting.m_Contrast, setting.m_Gamma, setting.m_VolumeAmplification, setting.m_AudioDelay, setting.m_OutputToAllSpeakers,
  291.                             setting.m_ResumeTime, setting.m_Crop, setting.m_CropLeft, setting.m_CropRight, setting.m_CropTop, setting.m_CropBottom,
  292.                             setting.m_Sharpness, setting.m_NoiseReduction, setting.m_CustomNonLinStretch, setting.m_PostProcess, setting.m_ScalingMethod,
  293. -                           setting.m_DeinterlaceMode);
  294. +                           setting.m_DeinterlaceMode,setting.m_PostProcessingMode);
  295.        m_pDS->exec(strSQL.c_str());
  296.      }
  297.    }
  298. @@ -4091,7 +4092,11 @@
  299.      m_pDS->exec("UPDATE settings SET DeinterlaceMode = 1 WHERE Deinterlace = 1"); // method auto => mode auto
  300.      m_pDS->exec("UPDATE settings SET DeinterlaceMode = 0, Deinterlace = 1 WHERE Deinterlace = 0"); // method none => mode off, method auto
  301.    }
  302. -
  303. +  if (iVersion < 57)
  304. +  {
  305. +    m_pDS->exec("ALTER table settings add PostProcessingMode integer");
  306. +    m_pDS->exec(PrepareSQL("UPDATE settings set PostProcessingMode=%i", g_settings.m_defaultVideoSettings.m_PostProcessingMode));
  307. +  }
  308.    if (iVersion < 59)
  309.    { // base paths for video_ts and bdmv files was wrong (and inconsistent depending on where and when they were scanned)
  310.      CStdString where = PrepareSQL(" WHERE files.strFileName LIKE 'VIDEO_TS.IFO' or files.strFileName LIKE 'index.BDMV'");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement