Skip to content

Commit f4461b5

Browse files
zhangyichixsysopenci
authored andcommitted
[c2][decoder] Fixed the color aspects issues
cases: android.mediav2.cts.DecoderColorAspectsTest#testColorAspects Refactor the color aspects related code, fixed several issues and made the logic simpler. Tracked-On: OAM-112687 Signed-off-by: zhangyichix <yichix.zhang@intel.com>
1 parent ac134ba commit f4461b5

File tree

5 files changed

+141
-393
lines changed

5 files changed

+141
-393
lines changed

c2_components/include/mfx_c2_decoder_component.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
#include "mfx_c2_bitstream_in.h"
2929
#include "mfx_frame_pool_allocator.h"
3030
#include "mfx_gralloc_instance.h"
31-
#include "mfx_c2_color_aspects_wrapper.h"
3231
#include "mfx_c2_setters.h"
3332
#include <cutils/properties.h>
3433

@@ -161,7 +160,7 @@ class MfxC2DecoderComponent : public MfxC2Component
161160

162161
void UpdateHdrStaticInfo();
163162

164-
std::shared_ptr<C2StreamColorAspectsInfo::output> getColorAspects_l() const;
163+
void UpdateColorAspectsFromBitstream(const mfxExtVideoSignalInfo &signalInfo);
165164

166165
private:
167166
DecoderType m_decoderType;
@@ -237,8 +236,6 @@ class MfxC2DecoderComponent : public MfxC2Component
237236
std::shared_ptr<C2StreamHdrStaticInfo::output> m_hdrStaticInfo;
238237
bool m_bSetHdrStatic;
239238

240-
MfxC2ColorAspectsWrapper m_colorAspectsWrapper;
241-
242239
std::shared_ptr<C2StreamPixelFormatInfo::output> m_pixelFormat;
243240

244241
std::vector<std::unique_ptr<C2Param>> m_updatingC2Configures;
@@ -279,8 +276,8 @@ class MfxC2DecoderComponent : public MfxC2Component
279276
std::shared_ptr<C2PortActualDelayTuning::input> m_actualInputDelay;
280277
std::shared_ptr<C2PortDelayTuning::input> m_inputDelay;
281278
std::shared_ptr<C2StreamColorAspectsTuning::output> m_defaultColorAspects;
282-
std::shared_ptr<C2StreamColorAspectsInfo::input> m_codedColorAspects;
283-
std::shared_ptr<C2StreamColorAspectsInfo::output> m_colorAspects;
279+
std::shared_ptr<C2StreamColorAspectsInfo::input> m_inColorAspects;
280+
std::shared_ptr<C2StreamColorAspectsInfo::output> m_outColorAspects;
284281
/* ----------------------------------------Setters------------------------------------------- */
285282
static C2R OutputSurfaceAllocatorSetter(bool mayBlock, C2P<C2PortSurfaceAllocatorTuning::output> &me);
286283
static C2R SizeSetter(bool mayBlock, const C2P<C2StreamPictureSizeInfo::output> &oldMe,

c2_components/src/mfx_c2_decoder_component.cpp

Lines changed: 81 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
#include "mfx_c2_allocator_id.h"
3030
#include "mfx_c2_buffer_queue.h"
3131
#include "C2PlatformSupport.h"
32+
#include "mfx_c2_color_aspects_utils.h"
3233

3334
#include <C2AllocatorGralloc.h>
3435
#include <Codec2Mapper.h>
@@ -172,8 +173,6 @@ MfxC2DecoderComponent::MfxC2DecoderComponent(const C2String name, const CreateCo
172173
{
173174
MFX_DEBUG_TRACE_FUNC;
174175
const unsigned int SINGLE_STREAM_ID = 0u;
175-
uint32_t max_w = 0u;
176-
uint32_t max_h = 0u;
177176

178177
addParameter(
179178
DefineParam(m_kind, C2_PARAMKEY_COMPONENT_KIND)
@@ -588,42 +587,43 @@ MfxC2DecoderComponent::MfxC2DecoderComponent(const C2String name, const CreateCo
588587
.withSetter(DefaultColorAspectsSetter)
589588
.build());
590589

591-
addParameter(
592-
DefineParam(m_codedColorAspects, C2_PARAMKEY_VUI_COLOR_ASPECTS)
593-
.withDefault(new C2StreamColorAspectsInfo::input(
594-
SINGLE_STREAM_ID, C2Color::RANGE_LIMITED, C2Color::PRIMARIES_UNSPECIFIED,
595-
C2Color::TRANSFER_UNSPECIFIED, C2Color::MATRIX_UNSPECIFIED))
596-
.withFields({
597-
C2F(m_codedColorAspects, range).inRange(
598-
C2Color::RANGE_UNSPECIFIED, C2Color::RANGE_OTHER),
599-
C2F(m_codedColorAspects, primaries).inRange(
600-
C2Color::PRIMARIES_UNSPECIFIED, C2Color::PRIMARIES_OTHER),
601-
C2F(m_codedColorAspects, transfer).inRange(
602-
C2Color::TRANSFER_UNSPECIFIED, C2Color::TRANSFER_OTHER),
603-
C2F(m_codedColorAspects, matrix).inRange(
604-
C2Color::MATRIX_UNSPECIFIED, C2Color::MATRIX_OTHER)
605-
})
606-
.withSetter(CodedColorAspectsSetter)
607-
.build());
608-
609-
addParameter(
610-
DefineParam(m_colorAspects, C2_PARAMKEY_COLOR_ASPECTS)
611-
.withDefault(new C2StreamColorAspectsInfo::output(
612-
SINGLE_STREAM_ID, C2Color::RANGE_UNSPECIFIED, C2Color::PRIMARIES_UNSPECIFIED,
613-
C2Color::TRANSFER_UNSPECIFIED, C2Color::MATRIX_UNSPECIFIED))
614-
.withFields({
615-
C2F(m_colorAspects, range).inRange(
616-
C2Color::RANGE_UNSPECIFIED, C2Color::RANGE_OTHER),
617-
C2F(m_colorAspects, primaries).inRange(
618-
C2Color::PRIMARIES_UNSPECIFIED, C2Color::PRIMARIES_OTHER),
619-
C2F(m_colorAspects, transfer).inRange(
620-
C2Color::TRANSFER_UNSPECIFIED, C2Color::TRANSFER_OTHER),
621-
C2F(m_colorAspects, matrix).inRange(
622-
C2Color::MATRIX_UNSPECIFIED, C2Color::MATRIX_OTHER)
623-
})
624-
.withSetter(ColorAspectsSetter, m_defaultColorAspects, m_codedColorAspects)
625-
.build());
626-
590+
if (DECODER_VP9 != m_decoderType && DECODER_VP8 != m_decoderType) {
591+
addParameter(
592+
DefineParam(m_inColorAspects, C2_PARAMKEY_VUI_COLOR_ASPECTS)
593+
.withDefault(new C2StreamColorAspectsInfo::input(
594+
SINGLE_STREAM_ID, C2Color::RANGE_LIMITED, C2Color::PRIMARIES_UNSPECIFIED,
595+
C2Color::TRANSFER_UNSPECIFIED, C2Color::MATRIX_UNSPECIFIED))
596+
.withFields({
597+
C2F(m_inColorAspects, range).inRange(
598+
C2Color::RANGE_UNSPECIFIED, C2Color::RANGE_OTHER),
599+
C2F(m_inColorAspects, primaries).inRange(
600+
C2Color::PRIMARIES_UNSPECIFIED, C2Color::PRIMARIES_OTHER),
601+
C2F(m_inColorAspects, transfer).inRange(
602+
C2Color::TRANSFER_UNSPECIFIED, C2Color::TRANSFER_OTHER),
603+
C2F(m_inColorAspects, matrix).inRange(
604+
C2Color::MATRIX_UNSPECIFIED, C2Color::MATRIX_OTHER)
605+
})
606+
.withSetter(CodedColorAspectsSetter)
607+
.build());
608+
609+
addParameter(
610+
DefineParam(m_outColorAspects, C2_PARAMKEY_COLOR_ASPECTS)
611+
.withDefault(new C2StreamColorAspectsInfo::output(
612+
SINGLE_STREAM_ID, C2Color::RANGE_UNSPECIFIED, C2Color::PRIMARIES_UNSPECIFIED,
613+
C2Color::TRANSFER_UNSPECIFIED, C2Color::MATRIX_UNSPECIFIED))
614+
.withFields({
615+
C2F(m_outColorAspects, range).inRange(
616+
C2Color::RANGE_UNSPECIFIED, C2Color::RANGE_OTHER),
617+
C2F(m_outColorAspects, primaries).inRange(
618+
C2Color::PRIMARIES_UNSPECIFIED, C2Color::PRIMARIES_OTHER),
619+
C2F(m_outColorAspects, transfer).inRange(
620+
C2Color::TRANSFER_UNSPECIFIED, C2Color::TRANSFER_OTHER),
621+
C2F(m_outColorAspects, matrix).inRange(
622+
C2Color::MATRIX_UNSPECIFIED, C2Color::MATRIX_OTHER)
623+
})
624+
.withSetter(ColorAspectsSetter, m_defaultColorAspects, m_inColorAspects)
625+
.build());
626+
}
627627
// Pixel format info. Set to NV12 by default
628628
m_pixelFormat = std::make_unique<C2StreamPixelFormatInfo::output>(SINGLE_STREAM_ID, HAL_PIXEL_FORMAT_NV12_Y_TILED_INTEL);
629629

@@ -1027,8 +1027,7 @@ mfxStatus MfxC2DecoderComponent::ResetSettings()
10271027
break;
10281028
}
10291029

1030-
m_colorAspectsWrapper.SetCodecID(m_mfxVideoParams.mfx.CodecId);
1031-
1030+
m_signalInfo.VideoFullRange = 2; // UNSPECIFIED Range
10321031
mfx_set_defaults_mfxVideoParam_dec(&m_mfxVideoParams);
10331032

10341033
if (m_device)
@@ -1158,8 +1157,8 @@ mfxStatus MfxC2DecoderComponent::InitDecoder(std::shared_ptr<C2BlockPool> c2_all
11581157
}
11591158

11601159
if (MFX_ERR_NONE == mfx_res) {
1161-
MFX_DEBUG_TRACE_MSG("InitDecoder: UpdateBitstreamColorAspects");
1162-
m_colorAspectsWrapper.UpdateBitstreamColorAspects(m_signalInfo);
1160+
MFX_DEBUG_TRACE_MSG("InitDecoder: UpdateColorAspectsFromBitstream");
1161+
UpdateColorAspectsFromBitstream(m_signalInfo);
11631162

11641163
MFX_DEBUG_TRACE_MSG("InitDecoder: GetAsyncDepth");
11651164
m_mfxVideoParams.AsyncDepth = GetAsyncDepth();
@@ -1360,22 +1359,6 @@ c2_status_t MfxC2DecoderComponent::UpdateC2Param(const mfxVideoParam* src, C2Par
13601359
}
13611360
break;
13621361
}
1363-
case kParamIndexColorAspects: {
1364-
auto color = getColorAspects_l();
1365-
m_colorAspects->range = color->range;
1366-
m_colorAspects->primaries = color->primaries;
1367-
m_colorAspects->transfer = color->transfer;
1368-
m_colorAspects->matrix = color->matrix;
1369-
break;
1370-
}
1371-
case kParamIndexDefaultColorAspects: {
1372-
auto color = getColorAspects_l();
1373-
m_defaultColorAspects->range = color->range;
1374-
m_defaultColorAspects->primaries = color->primaries;
1375-
m_defaultColorAspects->transfer = color->transfer;
1376-
m_defaultColorAspects->matrix = color->matrix;
1377-
break;
1378-
}
13791362
default:
13801363
MFX_DEBUG_TRACE_STREAM("attempt to query "
13811364
<< index.typeIndex() << " type, but not found.");
@@ -1472,52 +1455,6 @@ void MfxC2DecoderComponent::DoUpdateMfxParam(const std::vector<C2Param*> &params
14721455
}
14731456
break;
14741457
}
1475-
case kParamIndexColorAspects: {
1476-
android::ColorAspects ca;
1477-
MFX_DEBUG_TRACE_U32(m_colorAspects->range);
1478-
MFX_DEBUG_TRACE_U32(m_colorAspects->primaries);
1479-
MFX_DEBUG_TRACE_U32(m_colorAspects->transfer);
1480-
MFX_DEBUG_TRACE_U32(m_colorAspects->matrix);
1481-
1482-
ca.mRange = (android::ColorAspects::Range)m_colorAspects->range;
1483-
ca.mTransfer = (android::ColorAspects::Transfer)m_colorAspects->transfer;
1484-
ca.mMatrixCoeffs = (android::ColorAspects::MatrixCoeffs)m_colorAspects->matrix;
1485-
ca.mPrimaries = (android::ColorAspects::Primaries)m_colorAspects->primaries;
1486-
1487-
mfxExtVideoSignalInfo signal_info;
1488-
MFX_ZERO_MEMORY(signal_info);
1489-
signal_info.VideoFullRange = m_colorAspects->range;
1490-
signal_info.ColourPrimaries = m_colorAspects->primaries;
1491-
signal_info.TransferCharacteristics = m_colorAspects->transfer;
1492-
signal_info.MatrixCoefficients = m_colorAspects->matrix;
1493-
1494-
m_colorAspectsWrapper.UpdateBitstreamColorAspects(signal_info);
1495-
m_colorAspectsWrapper.SetFrameworkColorAspects(ca);
1496-
break;
1497-
}
1498-
case kParamIndexDefaultColorAspects: {
1499-
android::ColorAspects ca;
1500-
MFX_DEBUG_TRACE_U32(m_defaultColorAspects->range);
1501-
MFX_DEBUG_TRACE_U32(m_defaultColorAspects->primaries);
1502-
MFX_DEBUG_TRACE_U32(m_defaultColorAspects->transfer);
1503-
MFX_DEBUG_TRACE_U32(m_defaultColorAspects->matrix);
1504-
1505-
ca.mRange = (android::ColorAspects::Range)m_defaultColorAspects->range;
1506-
ca.mTransfer = (android::ColorAspects::Transfer)m_defaultColorAspects->transfer;
1507-
ca.mMatrixCoeffs = (android::ColorAspects::MatrixCoeffs)m_defaultColorAspects->matrix;
1508-
ca.mPrimaries = (android::ColorAspects::Primaries)m_defaultColorAspects->primaries;
1509-
1510-
mfxExtVideoSignalInfo signal_info;
1511-
MFX_ZERO_MEMORY(signal_info);
1512-
signal_info.VideoFullRange = m_defaultColorAspects->range;
1513-
signal_info.ColourPrimaries = m_defaultColorAspects->primaries;
1514-
signal_info.TransferCharacteristics = m_defaultColorAspects->transfer;
1515-
signal_info.MatrixCoefficients = m_defaultColorAspects->matrix;
1516-
1517-
m_colorAspectsWrapper.UpdateBitstreamColorAspects(signal_info);
1518-
m_colorAspectsWrapper.SetFrameworkColorAspects(ca);
1519-
break;
1520-
}
15211458
default:
15221459
MFX_DEBUG_TRACE_STREAM("attempt to configure "
15231460
<< C2Param::Type(param->type()).typeIndex() << " type, but not found");
@@ -2393,18 +2330,12 @@ void MfxC2DecoderComponent::WaitWork(MfxC2FrameOut&& frame_out, mfxSyncPoint syn
23932330
// set pixel info
23942331
out_buffer->setInfo(m_pixelFormat);
23952332

2396-
// set color aspects info
2397-
out_buffer->setInfo(getColorAspects_l());
2398-
2399-
if (m_colorAspectsWrapper.IsColorAspectsChanged()) {
2400-
m_colorAspectsWrapper.SignalChangedColorAspectsIsSent();
2401-
}
24022333

24032334
std::unique_ptr<C2Worklet>& worklet = work->worklets.front();
24042335
// Pass end of stream flag only.
24052336
worklet->output.flags = (C2FrameData::flags_t)(work->input.flags & C2FrameData::FLAG_END_OF_STREAM);
24062337
worklet->output.ordinal = work->input.ordinal;
2407-
if (m_mfxVideoParams.mfx.FrameInfo.Width != m_size->width || m_mfxVideoParams.mfx.FrameInfo.Height != m_size->height) {
2338+
if (m_mfxVideoParams.mfx.FrameInfo.Width != m_size->width || m_mfxVideoParams.mfx.FrameInfo.Height != m_size->height) {
24082339
MFX_DEBUG_TRACE_STREAM("find m_size different from m_mfxVideoParams, update width from " << m_size->width
24092340
<< " to " << m_mfxVideoParams.mfx.FrameInfo.Width << ", height from " << m_size->height
24102341
<< " to " << m_mfxVideoParams.mfx.FrameInfo.Height);
@@ -2677,31 +2608,52 @@ void MfxC2DecoderComponent::UpdateHdrStaticInfo()
26772608
MFX_DEBUG_TRACE__hdrStaticInfo(m_hdrStaticInfo);
26782609
}
26792610

2680-
std::shared_ptr<C2StreamColorAspectsInfo::output> MfxC2DecoderComponent::getColorAspects_l() const {
2611+
void MfxC2DecoderComponent::UpdateColorAspectsFromBitstream(const mfxExtVideoSignalInfo &signalInfo)
2612+
{
26812613
MFX_DEBUG_TRACE_FUNC;
2682-
android::ColorAspects sfAspects;
2683-
std::shared_ptr<C2StreamColorAspectsInfo::output> codedAspects = std::make_shared<C2StreamColorAspectsInfo::output>(0u);
2684-
if (!codedAspects) return nullptr;
26852614

2686-
m_colorAspectsWrapper.GetOutputColorAspects(sfAspects);
2615+
if (DECODER_VP9 == m_decoderType || DECODER_VP8 == m_decoderType) return;
2616+
2617+
MFX_DEBUG_TRACE_I32(signalInfo.VideoFullRange);
2618+
MFX_DEBUG_TRACE_I32(signalInfo.ColourPrimaries);
2619+
MFX_DEBUG_TRACE_I32(signalInfo.TransferCharacteristics);
2620+
MFX_DEBUG_TRACE_I32(signalInfo.MatrixCoefficients);
26872621

2688-
if (!C2Mapper::map(sfAspects.mPrimaries, &codedAspects->primaries)) {
2689-
codedAspects->primaries = C2Color::PRIMARIES_UNSPECIFIED;
2622+
android::ColorAspects bitstreamColorAspects;
2623+
2624+
MfxC2ColorAspectsUtils::MfxToC2VideoRange(signalInfo.VideoFullRange, bitstreamColorAspects.mRange);
2625+
MfxC2ColorAspectsUtils::MfxToC2ColourPrimaries(signalInfo.ColourPrimaries, bitstreamColorAspects.mPrimaries);
2626+
MfxC2ColorAspectsUtils::MfxToC2TransferCharacteristics(signalInfo.TransferCharacteristics, bitstreamColorAspects.mTransfer);
2627+
MfxC2ColorAspectsUtils::MfxToC2MatrixCoefficients(signalInfo.MatrixCoefficients, bitstreamColorAspects.mMatrixCoeffs);
2628+
2629+
if (!C2Mapper::map(bitstreamColorAspects.mRange, &m_outColorAspects->range)) {
2630+
m_outColorAspects->range = C2Color::RANGE_UNSPECIFIED;
26902631
}
2691-
if (!C2Mapper::map(sfAspects.mRange, &codedAspects->range)) {
2692-
codedAspects->range = C2Color::RANGE_UNSPECIFIED;
2632+
if (!C2Mapper::map(bitstreamColorAspects.mPrimaries, &m_outColorAspects->primaries)) {
2633+
m_outColorAspects->primaries = C2Color::PRIMARIES_UNSPECIFIED;
26932634
}
2694-
if (!C2Mapper::map(sfAspects.mMatrixCoeffs, &codedAspects->matrix)) {
2695-
codedAspects->matrix = C2Color::MATRIX_UNSPECIFIED;
2635+
if (!C2Mapper::map(bitstreamColorAspects.mTransfer, &m_outColorAspects->transfer)) {
2636+
m_outColorAspects->transfer = C2Color::TRANSFER_UNSPECIFIED;
26962637
}
2697-
if (!C2Mapper::map(sfAspects.mTransfer, &codedAspects->transfer)) {
2698-
codedAspects->transfer = C2Color::TRANSFER_UNSPECIFIED;
2638+
if (!C2Mapper::map(bitstreamColorAspects.mMatrixCoeffs, &m_outColorAspects->matrix)) {
2639+
m_outColorAspects->matrix = C2Color::MATRIX_UNSPECIFIED;
26992640
}
27002641

2701-
MFX_DEBUG_TRACE_I32(codedAspects->primaries);
2702-
MFX_DEBUG_TRACE_I32(codedAspects->range);
2703-
MFX_DEBUG_TRACE_I32(codedAspects->matrix);
2704-
MFX_DEBUG_TRACE_I32(codedAspects->transfer);
2642+
// VideoFormat == 5 indicates that video_format syntax element is not present
2643+
if (signalInfo.VideoFormat == 5 && signalInfo.VideoFullRange == 0 && signalInfo.ColourDescriptionPresent == 0) {
2644+
m_outColorAspects->range = C2Color::RANGE_UNSPECIFIED;
2645+
m_outColorAspects->primaries = C2Color::PRIMARIES_UNSPECIFIED;
2646+
m_outColorAspects->transfer = C2Color::TRANSFER_UNSPECIFIED;
2647+
m_outColorAspects->matrix = C2Color::MATRIX_UNSPECIFIED;
2648+
}
27052649

2706-
return codedAspects;
2650+
if (C2Color::RANGE_UNSPECIFIED != m_outColorAspects->range || C2Color::PRIMARIES_UNSPECIFIED != m_outColorAspects->primaries
2651+
|| C2Color::TRANSFER_UNSPECIFIED != m_outColorAspects->transfer || C2Color::MATRIX_UNSPECIFIED != m_outColorAspects->matrix) {
2652+
MFX_DEBUG_TRACE_MSG("m_outColorAspects have been changed by decoderHeader.");
2653+
MFX_DEBUG_TRACE_I32(m_outColorAspects->range);
2654+
MFX_DEBUG_TRACE_I32(m_outColorAspects->primaries);
2655+
MFX_DEBUG_TRACE_I32(m_outColorAspects->transfer);
2656+
MFX_DEBUG_TRACE_I32(m_outColorAspects->matrix);
2657+
m_updatingC2Configures.push_back(C2Param::Copy(*m_outColorAspects));
2658+
}
27072659
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// Copyright (c) 2018-2021 Intel Corporation
2+
//
3+
// Permission is hereby granted, free of charge, to any person obtaining a copy
4+
// of this software and associated documentation files (the "Software"), to deal
5+
// in the Software without restriction, including without limitation the rights
6+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7+
// copies of the Software, and to permit persons to whom the Software is
8+
// furnished to do so, subject to the following conditions:
9+
//
10+
// The above copyright notice and this permission notice shall be included in all
11+
// copies or substantial portions of the Software.
12+
//
13+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19+
// SOFTWARE.
20+
21+
#ifndef __MFX_C2_COLOR_ASPECTS_UTILS_H__
22+
#define __MFX_C2_COLOR_ASPECTS_UTILS_H__
23+
24+
#include "mfx_c2_utils.h"
25+
#include <media/stagefright/foundation/ColorUtils.h>
26+
27+
class MfxC2ColorAspectsUtils
28+
{
29+
public:
30+
// mfx to C2
31+
// converters VideoSignalInfo from MFX to C2 API
32+
static void MfxToC2VideoRange(mfxU16 videoRange, android::ColorAspects::Range &out);
33+
static void MfxToC2ColourPrimaries(mfxU16 colourPrimaries, android::ColorAspects::Primaries &out);
34+
static void MfxToC2TransferCharacteristics(mfxU16 transferCharacteristics, android::ColorAspects::Transfer &out);
35+
static void MfxToC2MatrixCoefficients(mfxU16 MatrixCoefficients, android::ColorAspects::MatrixCoeffs &out);
36+
37+
// C2 to mfx
38+
// converters VideoSignalInfo from C2 API to MFX
39+
static void C2ToMfxVideoRange(android::ColorAspects::Range videoRange, mfxU16 &out);
40+
static void C2ToMfxColourPrimaries(android::ColorAspects::Primaries colourPrimaries, mfxU16 &out);
41+
static void C2ToMfxTransferCharacteristics(android::ColorAspects::Transfer transferCharacteristics, mfxU16 &out);
42+
static void C2ToMfxMatrixCoefficients(android::ColorAspects::MatrixCoeffs matrixCoefficients, mfxU16 &out);
43+
44+
MFX_CLASS_NO_COPY(MfxC2ColorAspectsUtils)
45+
};
46+
47+
#endif // __MFX_C2_COLOR_ASPECTS_UTILS_H__

0 commit comments

Comments
 (0)