Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/LAVFilters.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHendrik Leppkes <h.leppkes@gmail.com>2017-07-07 12:06:44 +0300
committerHendrik Leppkes <h.leppkes@gmail.com>2017-07-07 12:41:04 +0300
commit1fb5005d17383afcdad9add3679eafb474886322 (patch)
tree80f4dbd4c95112244f48bf83b79458cf598e8674
parentc96e7975b5728186bbf5a3add87c6d4196d1d7da (diff)
Update color enumeration values
-rw-r--r--decoder/LAVVideo/LAVVideo.cpp8
-rw-r--r--decoder/LAVVideo/Media.cpp16
2 files changed, 18 insertions, 6 deletions
diff --git a/decoder/LAVVideo/LAVVideo.cpp b/decoder/LAVVideo/LAVVideo.cpp
index e26c536f..42b4d92a 100644
--- a/decoder/LAVVideo/LAVVideo.cpp
+++ b/decoder/LAVVideo/LAVVideo.cpp
@@ -1114,11 +1114,13 @@ HRESULT CLAVVideo::ReconnectOutput(int width, int height, AVRational ar, DXVA2_E
// Remove custom matrix settings, which are not understood upstream
if (dxvaExtFlags.VideoTransferMatrix == 6) {
dxvaExtFlags.VideoTransferMatrix = DXVA2_VideoTransferMatrix_BT601;
- } else if (dxvaExtFlags.VideoTransferMatrix > 4 && !m_bMadVR) {
+ } else if (dxvaExtFlags.VideoTransferMatrix > 5 && !m_bMadVR) {
dxvaExtFlags.VideoTransferMatrix = DXVA2_VideoTransferMatrix_Unknown;
}
- if (dxvaExtFlags.VideoTransferFunction > MFVideoTransFunc_Log_316 && !m_bMadVR) {
- dxvaExtFlags.VideoTransferFunction = DXVA2_VideoTransFunc_Unknown;
+
+ // madVR uses a different value for SMPTE ST 2084
+ if (dxvaExtFlags.VideoTransferFunction == 15 && m_bMadVR) {
+ dxvaExtFlags.VideoTransferFunction = 16;
}
if (mt.formattype == FORMAT_VideoInfo) {
diff --git a/decoder/LAVVideo/Media.cpp b/decoder/LAVVideo/Media.cpp
index 8b16010e..20daae6f 100644
--- a/decoder/LAVVideo/Media.cpp
+++ b/decoder/LAVVideo/Media.cpp
@@ -701,9 +701,18 @@ void fillDXVAExtFormat(DXVA2_ExtendedFormat &fmt, int range, int primaries, int
case AVCOL_PRI_SMPTE240M:
fmt.VideoPrimaries = DXVA2_VideoPrimaries_SMPTE240M;
break;
+ // Values from newer Windows SDK (MediaFoundation)
case AVCOL_PRI_BT2020:
fmt.VideoPrimaries = (DXVA2_VideoPrimaries)9;
break;
+ case AVCOL_PRI_SMPTE428:
+ // XYZ
+ fmt.VideoPrimaries = (DXVA2_VideoPrimaries)10;
+ break;
+ case AVCOL_PRI_SMPTE431:
+ // DCI-P3
+ fmt.VideoPrimaries = (DXVA2_VideoPrimaries)11;
+ break;
}
// Color Space / Transfer Matrix
@@ -718,11 +727,12 @@ void fillDXVAExtFormat(DXVA2_ExtendedFormat &fmt, int range, int primaries, int
case AVCOL_SPC_SMPTE240M:
fmt.VideoTransferMatrix = DXVA2_VideoTransferMatrix_SMPTE240M;
break;
- // Custom values, not official standard, but understood by madVR
+ // Values from newer Windows SDK (MediaFoundation)
case AVCOL_SPC_BT2020_CL:
case AVCOL_SPC_BT2020_NCL:
fmt.VideoTransferMatrix = (DXVA2_VideoTransferMatrix)4;
break;
+ // Custom values, not official standard, but understood by madVR
case AVCOL_SPC_FCC:
fmt.VideoTransferMatrix = (DXVA2_VideoTransferMatrix)6;
break;
@@ -754,9 +764,9 @@ void fillDXVAExtFormat(DXVA2_ExtendedFormat &fmt, int range, int primaries, int
case AVCOL_TRC_LOG_SQRT:
fmt.VideoTransferFunction = MFVideoTransFunc_Log_316;
break;
- // Custom values, not official standard, but understood by madVR
+ // Values from newer Windows SDK (MediaFoundation)
case AVCOL_TRC_SMPTEST2084:
- fmt.VideoTransferFunction = 16;
+ fmt.VideoTransferFunction = 15;
break;
}