Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3dlut and simple ICC linking support for color correction #9731

Merged
merged 24 commits into from Jul 1, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
a4a776a
color: ColorManager class and settings
laurimyllari May 1, 2016
e8caa4c
color: add 3D LUT support to Linux GL renderer
laurimyllari May 2, 2016
83b4f0a
colormanager: returns on new line
laurimyllari May 7, 2016
037629e
colormanager: strip extra debug
laurimyllari May 7, 2016
9e16ce4
colormanager: fix indentation
laurimyllari May 7, 2016
057195c
glsloutput: braces on a new line
laurimyllari May 7, 2016
fc07445
colormanager: strip extra debug fixup
laurimyllari May 7, 2016
99be6a6
colormanager: add override keyword to virtual methods
laurimyllari May 8, 2016
b1a206a
settings: clean up colormanager settings
laurimyllari May 8, 2016
479d066
colormanager: don't use singleton
laurimyllari Jun 2, 2016
2bcb5c5
settings: kodify copyright header
laurimyllari Jun 2, 2016
a10b35f
colormanager: use m_ prefix for members
laurimyllari Jun 9, 2016
2806ed0
colormanager: fix build without lcms2
laurimyllari Jun 9, 2016
b3c8c8c
gl: remove unnecessary null check
laurimyllari Jun 9, 2016
818ab18
gl: use unique_ptr for ColorManager
laurimyllari Jun 10, 2016
cca2953
gl: don't use vertical alignment
laurimyllari Jun 10, 2016
8b3dea8
dialog: don't check obsolete HAS_VIDEO_PLAYBACK
laurimyllari Jun 10, 2016
6726efc
settings: move cms settings to the right group
laurimyllari Jun 10, 2016
444bd8d
gl: Try to unbreak GLES builds
laurimyllari Jun 13, 2016
b785d98
dialog: Try to unbreak Windows builds
laurimyllari Jun 13, 2016
72616d9
update XCode for 3dlut
FernetMenta Jun 13, 2016
aaff787
dialog: do not build CMS settings dialog unless HAS_GL
laurimyllari Jun 20, 2016
7b46053
settings: color->colour for proper English
laurimyllari Jun 23, 2016
9429959
dialog: hide CMS OSD if not available
laurimyllari Jun 23, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
16 changes: 16 additions & 0 deletions Kodi.xcodeproj/project.pbxproj
Expand Up @@ -464,6 +464,10 @@
7CAA469119427AED00008885 /* PosixDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CAA468E19427AED00008885 /* PosixDirectory.cpp */; };
7CAA57471C8AF6C20032A326 /* DebugRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CAA57451C8AF6C20032A326 /* DebugRenderer.cpp */; };
7CAA57481C8AF6C20032A326 /* DebugRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CAA57451C8AF6C20032A326 /* DebugRenderer.cpp */; };
7CAEF0CE1D0E9E3800B1316C /* ColorManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CAEF0CC1D0E9E3800B1316C /* ColorManager.cpp */; };
7CAEF0CF1D0E9E3800B1316C /* ColorManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CAEF0CC1D0E9E3800B1316C /* ColorManager.cpp */; };
7CAEF0D21D0E9F0D00B1316C /* GUIDialogCMSSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CAEF0D01D0E9F0D00B1316C /* GUIDialogCMSSettings.cpp */; };
7CAEF0D31D0E9F0D00B1316C /* GUIDialogCMSSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CAEF0D01D0E9F0D00B1316C /* GUIDialogCMSSettings.cpp */; };
7CBEBB8412912BA400431822 /* fstrcmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 7CBEBB8212912BA300431822 /* fstrcmp.c */; };
7CC30DB116291A5C003E7579 /* MusicThumbLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CC30DAF16291A5C003E7579 /* MusicThumbLoader.cpp */; };
7CC30DC016291C2C003E7579 /* VideoThumbLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CC30DBE16291C2C003E7579 /* VideoThumbLoader.cpp */; };
Expand Down Expand Up @@ -3016,6 +3020,10 @@
7CAA468F19427AED00008885 /* PosixDirectory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PosixDirectory.h; sourceTree = "<group>"; };
7CAA57451C8AF6C20032A326 /* DebugRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DebugRenderer.cpp; sourceTree = "<group>"; };
7CAA57461C8AF6C20032A326 /* DebugRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DebugRenderer.h; sourceTree = "<group>"; };
7CAEF0CC1D0E9E3800B1316C /* ColorManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ColorManager.cpp; sourceTree = "<group>"; };
7CAEF0CD1D0E9E3800B1316C /* ColorManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColorManager.h; sourceTree = "<group>"; };
7CAEF0D01D0E9F0D00B1316C /* GUIDialogCMSSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GUIDialogCMSSettings.cpp; sourceTree = "<group>"; };
7CAEF0D11D0E9F0D00B1316C /* GUIDialogCMSSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GUIDialogCMSSettings.h; sourceTree = "<group>"; };
7CBEBB8212912BA300431822 /* fstrcmp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fstrcmp.c; sourceTree = "<group>"; };
7CC30DAF16291A5C003E7579 /* MusicThumbLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MusicThumbLoader.cpp; sourceTree = "<group>"; };
7CC30DB016291A5C003E7579 /* MusicThumbLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MusicThumbLoader.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -5985,6 +5993,8 @@
children = (
18B7C8FE12942761009E7A26 /* GUIDialogAudioSubtitleSettings.cpp */,
18B7C8FF12942761009E7A26 /* GUIDialogAudioSubtitleSettings.h */,
7CAEF0D01D0E9F0D00B1316C /* GUIDialogCMSSettings.cpp */,
7CAEF0D11D0E9F0D00B1316C /* GUIDialogCMSSettings.h */,
886328150E07B37200BB3DAB /* GUIDialogFullScreenInfo.cpp */,
886328160E07B37200BB3DAB /* GUIDialogFullScreenInfo.h */,
7C4E6F701829AA9700F1068F /* GUIDialogSubtitles.cpp */,
Expand Down Expand Up @@ -8114,6 +8124,8 @@
E38E166B0D25F9FA00618676 /* VideoShaders */,
7CAA204F1079C8160096DE39 /* BaseRenderer.cpp */,
7CAA20501079C8160096DE39 /* BaseRenderer.h */,
7CAEF0CC1D0E9E3800B1316C /* ColorManager.cpp */,
7CAEF0CD1D0E9E3800B1316C /* ColorManager.h */,
7CAA57461C8AF6C20032A326 /* DebugRenderer.h */,
7CAA57451C8AF6C20032A326 /* DebugRenderer.cpp */,
7C921F8F1CD603C600684D0B /* FrameBufferObject.cpp */,
Expand Down Expand Up @@ -10539,9 +10551,11 @@
7C8FC6EE1829A4580045153D /* DirectoryProvider.cpp in Sources */,
7C4E6F721829AA9700F1068F /* GUIDialogSubtitles.cpp in Sources */,
7C140989183224B8009F9411 /* ISetting.cpp in Sources */,
7CAEF0D21D0E9F0D00B1316C /* GUIDialogCMSSettings.cpp in Sources */,
7C14098C183224B8009F9411 /* ISettingControl.cpp in Sources */,
68AE5BDF1C92421800C4D527 /* AddonButtonMap.cpp in Sources */,
7C14098F183224B8009F9411 /* Setting.cpp in Sources */,
7CAEF0CE1D0E9E3800B1316C /* ColorManager.cpp in Sources */,
DF56EF241A798A5E00CAAEFB /* HttpRangeUtils.cpp in Sources */,
7C140992183224B8009F9411 /* SettingCategoryAccess.cpp in Sources */,
7C140995183224B8009F9411 /* SettingConditions.cpp in Sources */,
Expand Down Expand Up @@ -11274,6 +11288,7 @@
E49913A6174E5F2100741B6D /* HTTPWebinterfaceAddonsHandler.cpp in Sources */,
E49913A7174E5F2100741B6D /* HTTPWebinterfaceHandler.cpp in Sources */,
DFD7175C1C0A031B0025D964 /* IOSEAGLView.mm in Sources */,
7CAEF0CF1D0E9E3800B1316C /* ColorManager.cpp in Sources */,
E49913A8174E5F2100741B6D /* IHTTPRequestHandler.cpp in Sources */,
3994425C1A8DD8D0006C39E9 /* ProgressJob.cpp in Sources */,
E49913A9174E5F2100741B6D /* NetworkLinux.cpp in Sources */,
Expand Down Expand Up @@ -11427,6 +11442,7 @@
E4991438174E604700741B6D /* Atomics.cpp in Sources */,
E4991439174E604700741B6D /* Event.cpp in Sources */,
E499143B174E604700741B6D /* SystemClock.cpp in Sources */,
7CAEF0D31D0E9F0D00B1316C /* GUIDialogCMSSettings.cpp in Sources */,
E499143C174E604700741B6D /* Thread.cpp in Sources */,
E499143D174E604700741B6D /* Timer.cpp in Sources */,
E499143E174E605900741B6D /* AlarmClock.cpp in Sources */,
Expand Down
183 changes: 182 additions & 1 deletion addons/resource.language.en_gb/resources/strings.po
Expand Up @@ -18502,7 +18502,188 @@ msgctxt "#36552"
msgid "Defines the number of presentation buffers used by the graphics driver. Select 2 if the driver uses double buffering or 3 for triple buffering."
msgstr ""

#empty strings from id 36553 to 36597
#: system/settings/settings.xml
msgctxt "#36560"
msgid "Colour management"
msgstr ""

#. Description of setting "System -> Video output -> Colour management" with label #36560
#: system/settings/settings.xml
msgctxt "#36561"
msgid "Reproduce video colours accurately using a display profile or a 3D lookup table."
msgstr ""

#: system/settings/settings.xml
msgctxt "#36562"
msgid "Colour management mode"
msgstr ""

#. Description of setting "System -> Video output -> Colour management mode" with label #36562
#: system/settings/settings.xml
msgctxt "#36563"
msgid "Use a precalculated 3D lookup table for video colour correction, or calculate the transformation for each video from a profile of your display. A precalculated 3D lookup table is preferred as it allows you to take advantage of the advanced features and high precision in ArgyllCMS. Display profile based correction is useful for testing different parameters, or emulating display settings that you don't have a 3D LUT prepared for."
msgstr ""

#: system/settings/settings.xml
msgctxt "#36564"
msgid "3D LUT"
msgstr ""

#. Description of setting "System -> Video output -> 3D LUT" with label #36564
#: system/settings/settings.xml
msgctxt "#36565"
msgid "TODO: 3D LUT filename description"
msgstr ""

#: system/settings/settings.xml
msgctxt "#36566"
msgid "ICC display profile"
msgstr ""

#. Description of setting "System -> Video output -> ICC display profile" with label #36566
#: system/settings/settings.xml
msgctxt "#36567"
msgid "TODO: ICC display profile filename description"
msgstr ""

#: system/settings/settings.xml
msgctxt "#36568"
msgid "Whitepoint"
msgstr ""

#. Description of setting "System -> Video output -> Whitepoint" with label #36568
#: system/settings/settings.xml
msgctxt "#36569"
msgid "TODO: Whitepoint selection description"
msgstr ""

#: system/settings/settings.xml
msgctxt "#36570"
msgid "Primaries"
msgstr ""

#. Description of setting "System -> Video output -> Primaries" with label #36570
#: system/settings/settings.xml
msgctxt "#36571"
msgid "TODO: Primary coordinates description"
msgstr ""

#: system/settings/settings.xml
msgctxt "#36572"
msgid "Gamma mode"
msgstr ""

#. Description of setting "System -> Video output -> Gamma mode" with label #36572
#: system/settings/settings.xml
msgctxt "#36573"
msgid "TODO: Gamma mode description"
msgstr ""

#: system/settings/settings.xml
msgctxt "#36574"
msgid "Gamma"
msgstr ""

#. Description of setting "System -> Video output -> Gamma" with label #36574
#: system/settings/settings.xml
msgctxt "#36575"
msgid "TODO: Gamma description"
msgstr ""

#: system/settings/settings.xml
msgctxt "#36576"
msgid "Lookup table size"
msgstr ""

#. Description of setting "System -> Video output -> Lookup table size" with label #36576
#: system/settings/settings.xml
msgctxt "#36577"
msgid "TODO: Lookup table size description"
msgstr ""

# Dialog title for 3D LUT file picker
#: xbmc/video/dialogs/GUIDialogVideoSettings.cpp
msgctxt "#36580"
msgid "3D LUT file"
msgstr ""

# Dialog title for ICC display profile file picker
#: xbmc/video/dialogs/GUIDialogVideoSettings.cpp
msgctxt "#36581"
msgid "ICC Profile"
msgstr ""

#: xbmc/video/dialogs/GUIDialogVideoSettings.cpp
#. gamma type labels
msgctxt "#36582"
msgid "BT.1886"
msgstr ""

msgctxt "#36583"
msgid "Input offset"
msgstr ""

msgctxt "#36584"
msgid "Output offset"
msgstr ""

msgctxt "#36585"
msgid "Absolute"
msgstr ""

#: xbmc/video/dialogs/GUIDialogCMSSettings.cpp
#. whitepoint labels
msgctxt "#36586"
msgid "D65 (standard)"
msgstr ""

msgctxt "#36587"
msgid "D93 (Japanese NTSC)"
msgstr ""

#: xbmc/video/dialogs/GUIDialogCMSSettings.cpp
#. primaries labels
msgctxt "#36588"
msgid "Automatic"
msgstr ""

msgctxt "#36589"
msgid "HDTV (BT.709)"
msgstr ""

msgctxt "#36590"
msgid "SDTV (SMPTE C)"
msgstr ""

msgctxt "#36591"
msgid "NTSC 1953 (BT.470 M)"
msgstr ""

msgctxt "#36592"
msgid "PAL/SECAM 1975 (BT.470 B/G)"
msgstr ""

msgctxt "#36593"
msgid "HDTV 1988 (SMPTE 240M)"
msgstr ""

#: xbmc/video/dialogs/GUIDialogCMSSettings.cpp
#. 3D LUT size labels
msgctxt "#36594"
msgid "16x16x16"
msgstr ""

msgctxt "#36595"
msgid "64x64x64"
msgstr ""

msgctxt "#36596"
msgid "256x256x256"
msgstr ""

msgctxt "#36597"
msgid "%1.2f"
msgstr ""

#. Description of setting with label #36099 "Dither"
#: system/settings/settings.xml
Expand Down
9 changes: 8 additions & 1 deletion addons/skin.estuary/1080i/VideoOSD.xml
Expand Up @@ -22,7 +22,7 @@
<animation effect="fade" start="100" end="0" time="200">WindowClose</animation>
<control type="group">
<top>900</top>
<visible>!Window.IsVisible(fullscreeninfo) + !Window.IsActive(osdaudiosettings) + !Window.IsActive(osdvideosettings) + !Window.IsActive(PVROSDChannels) + !Window.IsActive(PVROSDGuide)</visible>
<visible>!Window.IsVisible(fullscreeninfo) + !Window.IsActive(osdaudiosettings) + !Window.IsActive(osdvideosettings) + !Window.IsActive(osdcmssettings) + !Window.IsActive(PVROSDChannels) + !Window.IsActive(PVROSDGuide)</visible>
<animation effect="fade" end="100" time="200">WindowOpen</animation>
<animation effect="fade" time="200">VisibleChange</animation>
<animation effect="fade" start="100" end="0" time="200">WindowClose</animation>
Expand Down Expand Up @@ -310,6 +310,13 @@
<label>$LOCALIZE[13395]</label>
<onclick>ActivateWindow(osdvideosettings)</onclick>
</control>
<control type="button" id="11105">
<width>470</width>
<include>DefaultSettingButton</include>
<label>$LOCALIZE[36560]</label>
<onclick>ActivateWindow(osdcmssettings)</onclick>
<visible>System.HasCMS</visible>
</control>
<control type="button" id="11103">
<width>470</width>
<include>DefaultSettingButton</include>
Expand Down
30 changes: 30 additions & 0 deletions configure.ac
Expand Up @@ -208,6 +208,9 @@ libusb_disabled="== libusb disabled. Plug and play USB device support will not b
libusb_disabled_udev_found="== libusb disabled. =="
libcec_enabled="== libcec enabled. =="
libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
lcms2_enabled="== lcms2 enabled. =="
lcms2_not_found="== Could not find lcms2. ICC profile support will not be available. =="
lcms2_disabled="== lcms2 disabled. ICC profile support will not be available. =="
libbluetooth_not_found="== Could not find libbluetooth. Bluetooth support will not be available =="
libbluetooth_enabled="== libbluetooth enabled. =="
libbluetooth_disabled="== libbluetooth disabled. Bluetooth support will not be available. =="
Expand Down Expand Up @@ -442,6 +445,12 @@ AC_ARG_ENABLE([libcec],
[use_libcec=$enableval],
[use_libcec=auto])

AC_ARG_ENABLE([lcms2],
[AS_HELP_STRING([--enable-lcms2],
[enable lcms2 support (default is auto)])],
[use_lcms2=$enableval],
[use_lcms2=auto])

AC_ARG_ENABLE([libbluetooth],
[AS_HELP_STRING([--enable-libbluetooth],
[enable libbluetooth support (default is auto)])],
Expand Down Expand Up @@ -1444,6 +1453,21 @@ else
AC_MSG_NOTICE($libcec_disabled)
fi

# lcms2
if test "$use_lcms2" = "auto"; then
PKG_CHECK_MODULES([LCMS2],[lcms2],,[use_lcms2="no";AC_MSG_RESULT($lcms2_not_found)])
elif test "$use_lcms2" = "yes" ; then
PKG_CHECK_MODULES([LCMS2],[lcms2],,[use_lcms2="no";AC_MSG_ERROR($lcms2_not_found)])
else
AC_MSG_NOTICE($lcms2_disabled)
fi

if test "x$use_lcms2" != "xno"; then
USE_LCMS2=1;INCLUDES="$INCLUDES $LCMS2_CFLAGS";LIBS="$LIBS $LCMS2_LIBS"
AC_DEFINE([HAVE_LCMS2],[1],["Define to 1 if lcms2 is installed"])
AC_MSG_NOTICE($lcms2_enabled)
fi

# libbluetooth
USE_LIBBLUETOOTH=0
if test "$use_libbluetooth" = "auto"; then
Expand Down Expand Up @@ -2074,6 +2098,12 @@ else
final_message="$final_message\n libcec support:\tNo"
fi

if test "x$use_lcms2" != "xno"; then
final_message="$final_message\n lcms2 support:\tYes"
else
final_message="$final_message\n lcms2 support:\tNo"
fi

if test "x$use_libbluetooth" != "xno"; then
final_message="$final_message\n libbluetooth support:\tYes"
else
Expand Down