Skip to content

Commit fe9fb5b

Browse files
committed
Capture Image shows as scRGB
1 parent 3874001 commit fe9fb5b

20 files changed

+278
-136
lines changed

HDR10Capture2019/HDR10Capture.vcxproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
</ProjectConfiguration>
1212
</ItemGroup>
1313
<ItemGroup>
14+
<ClInclude Include="IMLVideoCapUserCallback.h" />
1415
<ClInclude Include="MLAVICommon.h" />
1516
<ClInclude Include="MLAviReader.h" />
1617
<ClInclude Include="MLAviWriter.h" />

HDR10Capture2019/HDR10Capture.vcxproj.filters

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,9 @@
183183
<ClInclude Include="MLExrWriter.h">
184184
<Filter>Headers</Filter>
185185
</ClInclude>
186+
<ClInclude Include="IMLVideoCapUserCallback.h">
187+
<Filter>Headers</Filter>
188+
</ClInclude>
186189
</ItemGroup>
187190
<ItemGroup>
188191
<CustomBuild Include="shaderColorConvPS.hlsl">
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#pragma once
2+
3+
#include "MLVideoCaptureVideoFormat.h"
4+
5+
class IMLVideoCapUserCallback {
6+
public:
7+
/// <summary>
8+
/// 入力ビデオフォーマット変更イベント。
9+
/// </summary>
10+
virtual void MLVideoCapUserCallback_VideoInputFormatChanged(const MLVideoCaptureVideoFormat& vFmt) = 0;
11+
};

HDR10Capture2019/MLColorGamut.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const char* MLColorGamutToStr(MLColorGamutType t)
88
case ML_CG_AdobeRGB: return "Adobe RGB";
99
case ML_CG_Rec2020: return "Rec.2020";
1010
case ML_CG_DCIP3: return "DCIP3";
11+
case ML_CG_scRGB: return "scRGB";
1112
default:
1213
assert(0);
1314
return "";
@@ -18,6 +19,7 @@ const char* MLColorGamutToStr(MLColorGamutType t)
1819
MLColorGamutConv::MLColorGamutConv(void) {
1920
// from to
2021
mConvMat[ML_CG_Rec709][ML_CG_Rec709] = DirectX::XMMatrixIdentity();
22+
mConvMat[ML_CG_Rec709][ML_CG_scRGB] = DirectX::XMMatrixIdentity();
2123
mConvMat[ML_CG_Rec709][ML_CG_AdobeRGB] = DirectX::XMMATRIX(
2224
0.7151f, 0.2849f, 0.0000f, 0.0f,
2325
0.0000f, 1.0000f, 0.0000f, 0.0f,
@@ -39,6 +41,11 @@ MLColorGamutConv::MLColorGamutConv(void) {
3941
- 0.0000f, 1.0000f, - 0.0000f, 0.0f,
4042
- 0.0000f, - 0.0429f, 1.0429f, 0.0f,
4143
0.0f, 0.0f, 0.0f, 1.0f);
44+
mConvMat[ML_CG_AdobeRGB][ML_CG_scRGB] = DirectX::XMMATRIX(
45+
1.3984f, -0.3983f, 0.0000f, 0.0f,
46+
-0.0000f, 1.0000f, -0.0000f, 0.0f,
47+
-0.0000f, -0.0429f, 1.0429f, 0.0f,
48+
0.0f, 0.0f, 0.0f, 1.0f);
4249
mConvMat[ML_CG_AdobeRGB][ML_CG_AdobeRGB] = DirectX::XMMatrixIdentity();
4350
mConvMat[ML_CG_AdobeRGB][ML_CG_Rec2020] = DirectX::XMMATRIX(
4451
0.8773f, 0.0775f, 0.0452f, 0.0f,
@@ -56,6 +63,11 @@ MLColorGamutConv::MLColorGamutConv(void) {
5663
- 0.1246f, 1.1329f, - 0.0083f, 0.0f,
5764
- 0.0182f, - 0.1006f, 1.1185f, 0.0f,
5865
0.0f, 0.0f, 0.0f, 1.0f);
66+
mConvMat[ML_CG_Rec2020][ML_CG_scRGB] = DirectX::XMMATRIX(
67+
1.6606f, -0.5876f, -0.0728f, 0.0f,
68+
-0.1246f, 1.1329f, -0.0083f, 0.0f,
69+
-0.0182f, -0.1006f, 1.1185f, 0.0f,
70+
0.0f, 0.0f, 0.0f, 1.0f);
5971
mConvMat[ML_CG_Rec2020][ML_CG_AdobeRGB] = DirectX::XMMATRIX(
6072
1.1521f, - 0.0975f, - 0.0545f, 0.0f,
6173
- 0.1246f, 1.1329f, - 0.0083f, 0.0f,
@@ -73,6 +85,11 @@ MLColorGamutConv::MLColorGamutConv(void) {
7385
- 0.0421f, 1.0420f, 0.0000f, 0.0f,
7486
- 0.0196f, - 0.0786f, 1.0980f, 0.0f,
7587
0.0f, 0.0f, 0.0f, 1.0f);
88+
mConvMat[ML_CG_DCIP3][ML_CG_scRGB] = DirectX::XMMATRIX(
89+
1.2251f, -0.2249f, -0.0000f, 0.0f,
90+
-0.0421f, 1.0420f, 0.0000f, 0.0f,
91+
-0.0196f, -0.0786f, 1.0980f, 0.0f,
92+
0.0f, 0.0f, 0.0f, 1.0f);
7693
mConvMat[ML_CG_DCIP3][ML_CG_AdobeRGB] = DirectX::XMMATRIX(
7794
0.8641f, 0.1360f, 0.0000f, 0.0f,
7895
- 0.0421f, 1.0420f, 0.0000f, 0.0f,

HDR10Capture2019/MLColorGamut.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ enum MLColorGamutType {
77
ML_CG_AdobeRGB,
88
ML_CG_Rec2020,
99
ML_CG_DCIP3,
10+
ML_CG_scRGB,
1011
};
1112

1213
const char* MLColorGamutToStr(MLColorGamutType t);
@@ -18,6 +19,6 @@ class MLColorGamutConv {
1819

1920
private:
2021
// from to
21-
DirectX::XMMATRIX mConvMat[4][4];
22+
DirectX::XMMATRIX mConvMat[5][5];
2223
};
2324

HDR10Capture2019/MLConverter.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ Rec2020_Yuv10ToRgb10(
158158

159159
static void
160160
Yuv8ToRgb8(
161-
MLConverter::ColorSpace colorSpace,
161+
const MLConverter::ColorSpace colorSpace,
162162
const uint8_t y8, const uint8_t u8, const uint8_t v8,
163163
uint8_t* r8_return, uint8_t* g8_return, uint8_t* b8_return)
164164
{
@@ -177,7 +177,7 @@ Yuv8ToRgb8(
177177

178178
static void
179179
Yuv10ToRgb10(
180-
MLConverter::ColorSpace colorSpace,
180+
const MLConverter::ColorSpace colorSpace,
181181
const uint16_t y10, const uint16_t u10, const uint16_t v10,
182182
uint16_t* r10_return, uint16_t* g10_return, uint16_t* b10_return)
183183
{
@@ -237,7 +237,7 @@ MLConverter::MLConverter(void)
237237
}
238238

239239
void
240-
MLConverter::Uyvy8bitToR8G8B8A8(ColorSpace colorSpace, const uint32_t* pFrom, uint32_t* pTo, const int width, const int height)
240+
MLConverter::Uyvy8bitToR8G8B8A8(const ColorSpace colorSpace, const uint32_t* pFrom, uint32_t* pTo, const int width, const int height)
241241
{
242242
// widthは2で割り切れる。
243243
assert((width & 1) == 0);
@@ -282,7 +282,7 @@ MLConverter::Uyvy8bitToR8G8B8A8(ColorSpace colorSpace, const uint32_t* pFrom, ui
282282
/// bmdFormat10BitYUV v210 → DXGI_FORMAT_R10G10B10A2_UNORM
283283
/// </summary>
284284
void
285-
MLConverter::Yuv422_10bitToR10G10B10A2(ColorSpace colorSpace, const uint32_t* pFrom, uint32_t* pTo, const int width, const int height, const uint8_t alpha)
285+
MLConverter::Yuv422_10bitToR10G10B10A2(const ColorSpace colorSpace, const uint32_t* pFrom, uint32_t* pTo, const int width, const int height, const uint8_t alpha)
286286
{
287287
const uint32_t a = (alpha >> 6) & 0x3;
288288

HDR10Capture2019/MLConverter.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ class MLConverter {
1717
/// <summary>
1818
/// bmdFormat8BitYUV UYVY ¨ DXGI_FORMAT_R8G8B8A8_UNORM
1919
/// </summary>
20-
static void Uyvy8bitToR8G8B8A8(ColorSpace colorSpace, const uint32_t* pFrom, uint32_t* pTo, const int width, const int height);
20+
static void Uyvy8bitToR8G8B8A8(const ColorSpace colorSpace, const uint32_t* pFrom, uint32_t* pTo, const int width, const int height);
2121

2222
/// <summary>
2323
/// bmdFormat10BitYUV v210 ¨ DXGI_FORMAT_R10G10B10A2_UNORM
2424
/// </summary>
25-
static void Yuv422_10bitToR10G10B10A2(ColorSpace colorSpace, const uint32_t* pFrom, uint32_t* pTo, const int width, const int height, const uint8_t alpha = 0xff);
25+
static void Yuv422_10bitToR10G10B10A2(const ColorSpace colorSpace, const uint32_t* pFrom, uint32_t* pTo, const int width, const int height, const uint8_t alpha = 0xff);
2626

2727
/// <summary>
2828
/// bmdFormat8BitARGB ¨ DXGI_FORMAT_R8G8B8A8_UNORM

0 commit comments

Comments
 (0)