Skip to content

Commit 1290bba

Browse files
Bossonorintel-mediadev
authored andcommitted
[Encode] Adaptive TU Enable
* [Encode] adaptive TU for AVC/HEVC/AV1 adaptive tu
1 parent 4fe64bd commit 1290bba

14 files changed

+169
-24
lines changed

media_common/agnostic/common/codec/shared/codec_def_encode_av1.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ typedef struct _CODEC_AV1_ENCODE_PICTURE_PARAMS
366366
uint8_t ref_frame_idx[7]; // [0..6]
367367
uint8_t HierarchLevelPlus1;
368368
uint8_t primary_ref_frame; // [0..7]
369-
uint8_t Reserved8b3;
369+
uint8_t AdaptiveTUEnabled;
370370
uint8_t Reserved8b4;
371371
uint8_t order_hint;
372372

media_common/agnostic/common/codec/shared/codec_def_encode_avc.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,6 +1050,8 @@ typedef struct _CODEC_AVC_ENCODE_PIC_PARAMS
10501050
*/
10511051
uint8_t QpModulationStrength;
10521052

1053+
uint8_t AdaptiveTUEnabled;
1054+
10531055
/*! \brief StatusReportEnable
10541056
*
10551057
* Request features to be enabled at status report.

media_common/agnostic/common/codec/shared/codec_def_encode_hevc.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -978,6 +978,8 @@ typedef struct _CODEC_HEVC_ENCODE_PICTURE_PARAMS
978978
} fields;
979979
uint8_t value;
980980
} QualityInfoSupportFlags;
981+
982+
uint8_t AdaptiveTUEnabled;
981983
} CODEC_HEVC_ENCODE_PICTURE_PARAMS, *PCODEC_HEVC_ENCODE_PICTURE_PARAMS;
982984

983985
/*! \brief Slice-level parameters of a compressed picture for HEVC encoding.

media_softlet/agnostic/common/codec/hal/enc/av1/features/encode_av1_brc.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,15 @@ namespace encode
8585
"Encode RateControl Method",
8686
m_rcMode,
8787
MediaUserSetting::Group::Sequence);
88+
89+
ENCODE_CHK_NULL_RETURN(m_basicFeature->m_av1PicParams);
90+
MediaUserSetting::Value outValue;
91+
ReadUserSetting(
92+
m_userSettingPtr,
93+
outValue,
94+
"Adaptive TU Enable",
95+
MediaUserSetting::Group::Sequence);
96+
m_basicFeature->m_av1PicParams->AdaptiveTUEnabled |= outValue.Get<uint8_t>();
8897
#endif
8998
return MOS_STATUS_SUCCESS;
9099
}
@@ -211,6 +220,7 @@ namespace encode
211220
dmem->UPD_CurHeight = (uint16_t)m_basicFeature->m_oriFrameHeight;
212221
dmem->UPD_Asyn = 0;
213222
dmem->UPD_EnableAdaptiveRounding = (m_basicFeature->m_roundingMethod == RoundingMethod::adaptiveRounding);
223+
dmem->UPD_AdaptiveTUEnabled = picParams->AdaptiveTUEnabled;
214224

215225
if (seqParams->GopRefDist == 16 && m_rcMode == RATECONTROL_CQL)
216226
dmem->UPD_MaxBRCLevel = 4;

media_softlet/agnostic/common/codec/hal/enc/av1/packet/encode_av1_brc_update_packet.cpp

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,19 @@ namespace encode
115115
{
116116
// VDEnc read batch buffer (input for HuC FW)
117117
allocParamsForBufferLinear.dwBytes = MOS_ALIGN_CEIL(m_hwInterface->m_vdencReadBatchBufferSize, CODECHAL_PAGE_SIZE);
118-
allocParamsForBufferLinear.pBufName = "VDENC Read Batch Buffer";
118+
allocParamsForBufferLinear.pBufName = "VDENC Read Origin Batch Buffer";
119119
allocParamsForBufferLinear.ResUsageType = MOS_HW_RESOURCE_USAGE_ENCODE_INTERNAL_WRITE;
120120
allocatedbuffer = m_allocator->AllocateResource(allocParamsForBufferLinear, true);
121121
ENCODE_CHK_NULL_RETURN(allocatedbuffer);
122-
m_vdencReadBatchBuffer[k][i] = *allocatedbuffer;
122+
m_vdencReadBatchBufferOrigin[k][i] = *allocatedbuffer;
123+
124+
// VDEnc read batch buffer (input for HuC FW)
125+
allocParamsForBufferLinear.dwBytes = MOS_ALIGN_CEIL(m_hwInterface->m_vdencReadBatchBufferSize, CODECHAL_PAGE_SIZE);
126+
allocParamsForBufferLinear.pBufName = "VDENC Read TU7 Batch Buffer";
127+
allocParamsForBufferLinear.ResUsageType = MOS_HW_RESOURCE_USAGE_ENCODE_INTERNAL_WRITE;
128+
allocatedbuffer = m_allocator->AllocateResource(allocParamsForBufferLinear, true);
129+
ENCODE_CHK_NULL_RETURN(allocatedbuffer);
130+
m_vdencReadBatchBufferTU7[k][i] = *allocatedbuffer;
123131

124132
// BRC update DMEM
125133
allocParamsForBufferLinear.dwBytes = MOS_ALIGN_CEIL(m_vdencBrcUpdateDmemBufferSize, CODECHAL_CACHELINE_SIZE);
@@ -156,8 +164,19 @@ namespace encode
156164

157165
ENCODE_CHK_NULL_RETURN(m_basicFeature);
158166
ENCODE_CHK_NULL_RETURN(m_basicFeature->m_recycleBuf);
167+
ENCODE_CHK_NULL_RETURN(m_basicFeature->m_av1PicParams);
168+
ENCODE_CHK_NULL_RETURN(m_basicFeature->m_av1SeqParams);
169+
170+
ENCODE_CHK_STATUS_RETURN(ConstructBatchBufferHuCBRC(&m_vdencReadBatchBufferOrigin[m_pipeline->m_currRecycledBufIdx][m_pipeline->GetCurrentPass()]));
171+
172+
if (m_basicFeature->m_av1PicParams->AdaptiveTUEnabled != 0)
173+
{
174+
auto original_TU = m_basicFeature->m_targetUsage;
175+
m_basicFeature->m_targetUsage = m_basicFeature->m_av1SeqParams->TargetUsage = 7;
176+
ENCODE_CHK_STATUS_RETURN(ConstructBatchBufferHuCBRC(&m_vdencReadBatchBufferTU7[m_pipeline->m_currRecycledBufIdx][m_pipeline->GetCurrentPass()]));
177+
m_basicFeature->m_targetUsage = m_basicFeature->m_av1SeqParams->TargetUsage = original_TU;
178+
}
159179

160-
ENCODE_CHK_STATUS_RETURN(ConstructBatchBufferHuCBRC(&m_vdencReadBatchBuffer[m_pipeline->m_currRecycledBufIdx][m_pipeline->GetCurrentPass()]));
161180
ENCODE_CHK_STATUS_RETURN(ConstructPakInsertHucBRC(&m_vdencPakInsertBatchBuffer[m_pipeline->m_currRecycledBufIdx]));
162181

163182
bool firstTaskInPhase = packetPhase & firstPacket;
@@ -502,11 +521,15 @@ namespace encode
502521

503522
ENCODE_CHK_STATUS_RETURN(DumpRegion(0, "_BrcHistory", true, hucRegionDumpUpdate, 6080));
504523
ENCODE_CHK_STATUS_RETURN(DumpRegion(1, "_VdencStats", true, hucRegionDumpUpdate, 48*4));
505-
ENCODE_CHK_STATUS_RETURN(DumpRegion(3, "_InputSLBB", true, hucRegionDumpUpdate, 600*4));
524+
ENCODE_CHK_STATUS_RETURN(DumpRegion(3, "_InputSLBB_Origin", true, hucRegionDumpUpdate, 600*4));
506525
ENCODE_CHK_STATUS_RETURN(DumpRegion(5, "_ConstData", true, hucRegionDumpUpdate, MOS_ALIGN_CEIL(m_vdencBrcConstDataBufferSize, CODECHAL_PAGE_SIZE)));
507526
ENCODE_CHK_STATUS_RETURN(DumpRegion(7, "_PakMmio", true, hucRegionDumpUpdate, 16*4));
508527
ENCODE_CHK_STATUS_RETURN(DumpRegion(8, "_InputPakInsert", true, hucRegionDumpUpdate, 100));
509528
ENCODE_CHK_STATUS_RETURN(DumpRegion(10, "_InputCdfTable", true, hucRegionDumpUpdate, 4 * MOS_ALIGN_CEIL(m_basicFeature->m_cdfMaxNumBytes, CODECHAL_CACHELINE_SIZE)));
529+
if (m_basicFeature->m_av1PicParams->AdaptiveTUEnabled != 0)
530+
{
531+
ENCODE_CHK_STATUS_RETURN(DumpRegion(12, "_InputSLBB_TU7", true, hucRegionDumpUpdate, 600 * 4));
532+
}
510533

511534
return MOS_STATUS_SUCCESS;
512535
}
@@ -598,8 +621,8 @@ namespace encode
598621
// Region 1 - VDenc Stats Buffer (Input)
599622
params.regionParams[1].presRegion = resTileBasedStatisticsBuffer;
600623
params.regionParams[1].dwOffset = offset;
601-
// Region 3 - Input SLB Buffer (Input)
602-
params.regionParams[3].presRegion = const_cast<PMOS_RESOURCE>(&m_vdencReadBatchBuffer[bufIdx][currentPass]);
624+
// Region 3 - Input SLB Buffer (Input Origin)
625+
params.regionParams[3].presRegion = const_cast<PMOS_RESOURCE>(&m_vdencReadBatchBufferOrigin[bufIdx][currentPass]);
603626
// Region 4 - BRC Data for next frame's width/height - (Output)
604627
params.regionParams[4].presRegion = resBrcDataBuffer;
605628
params.regionParams[4].isWritable = true;
@@ -620,6 +643,11 @@ namespace encode
620643
// Region 11 - CDF (output)
621644
params.regionParams[11].presRegion = m_basicFeature->m_defaultCdfBufferInUse;
622645
params.regionParams[11].isWritable = true;
646+
// Region 12 - Input SLB Buffer (Input TU7)
647+
if (m_basicFeature->m_av1PicParams->AdaptiveTUEnabled != 0)
648+
{
649+
params.regionParams[12].presRegion = const_cast<PMOS_RESOURCE>(&m_vdencReadBatchBufferTU7[bufIdx][currentPass]);
650+
}
623651

624652
return MOS_STATUS_SUCCESS;
625653
}

media_softlet/agnostic/common/codec/hal/enc/av1/packet/encode_av1_brc_update_packet.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,9 @@ namespace encode
143143
uint8_t UPD_CQMEnabled;
144144
uint8_t UPD_TempCurrentlayer;
145145
uint8_t UPD_TempScalable;
146+
uint8_t UPD_AdaptiveTUEnabled;
146147

147-
uint8_t RSVD8[62];
148+
uint8_t RSVD8[61];
148149
};
149150

150151
typedef struct _HUC_MODE_COST
@@ -235,7 +236,8 @@ namespace encode
235236
static constexpr uint32_t m_vdboxHucAv1BrcUpdateKernelDescriptor = 19;//!< Huc AV1 Brc init kernel descriptor
236237

237238
// Batch Buffer for VDEnc
238-
MOS_RESOURCE m_vdencReadBatchBuffer[CODECHAL_ENCODE_RECYCLED_BUFFER_NUM][VDENC_BRC_NUM_OF_PASSES] = {}; //!< VDEnc read batch buffer
239+
MOS_RESOURCE m_vdencReadBatchBufferOrigin[CODECHAL_ENCODE_RECYCLED_BUFFER_NUM][VDENC_BRC_NUM_OF_PASSES] = {}; //!< VDEnc read batch buffer
240+
MOS_RESOURCE m_vdencReadBatchBufferTU7[CODECHAL_ENCODE_RECYCLED_BUFFER_NUM][VDENC_BRC_NUM_OF_PASSES] = {}; //!< VDEnc read batch buffer
239241
MOS_RESOURCE m_vdencPakInsertBatchBuffer[CODECHAL_ENCODE_RECYCLED_BUFFER_NUM] = {}; //!< VDEnc read batch buffer
240242
MOS_RESOURCE m_vdencBrcConstDataBuffer[CODECHAL_ENCODE_RECYCLED_BUFFER_NUM] = {}; //!< VDEnc brc constant data buffer
241243

media_softlet/agnostic/common/codec/hal/enc/avc/features/encode_avc_brc.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,14 @@ MOS_STATUS AvcEncodeBRC::Update(void *params)
190190
"Encode RateControl Method",
191191
m_rcMode,
192192
MediaUserSetting::Group::Sequence);
193+
194+
MediaUserSetting::Value outValue;
195+
ReadUserSetting(
196+
m_userSettingPtr,
197+
outValue,
198+
"Adaptive TU Enable",
199+
MediaUserSetting::Group::Sequence);
200+
m_basicFeature->m_picParam->AdaptiveTUEnabled |= outValue.Get<uint8_t>();
193201
#endif
194202
return MOS_STATUS_SUCCESS;
195203
}
@@ -640,6 +648,8 @@ MOS_STATUS AvcEncodeBRC::SetDmemForUpdate(void *params, uint16_t currPass, bool
640648
hucVdencBrcUpdateDmem->UPD_PAKPassNum_U8 = (uint8_t)currPass;
641649
hucVdencBrcUpdateDmem->UPD_MaxNumPass_U8 = m_featureManager->GetNumPass();
642650

651+
hucVdencBrcUpdateDmem->UPD_AdaptiveTUEnabled = avcPicParams->AdaptiveTUEnabled;
652+
643653
uint32_t numP = 0;
644654
if (avcSeqParams->GopRefDist && (avcSeqParams->GopPicSize > 0))
645655
{

media_softlet/agnostic/common/codec/hal/enc/avc/packet/encode_avc_huc_brc_update_packet.cpp

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,15 @@ MOS_STATUS AvcHucBrcUpdatePkt::AllocateResources()
141141
allocParamsForBufferLinear.ResUsageType = MOS_HW_RESOURCE_USAGE_ENCODE_INTERNAL_READ_WRITE_CACHE;
142142
allocatedbuffer = m_allocator->AllocateResource(allocParamsForBufferLinear, true);
143143
ENCODE_CHK_NULL_RETURN(allocatedbuffer);
144-
m_vdencBrcImageStatesReadBuffer[k] = allocatedbuffer;
144+
m_vdencBrcImageStatesReadBufferOrigin[k] = allocatedbuffer;
145+
146+
// VDENC IMG STATE read buffer
147+
allocParamsForBufferLinear.dwBytes = m_brcFeature->GetVdencBRCImgStateBufferSize();
148+
allocParamsForBufferLinear.pBufName = "VDENC BRC IMG State Read Buffer";
149+
allocParamsForBufferLinear.ResUsageType = MOS_HW_RESOURCE_USAGE_ENCODE_INTERNAL_READ_WRITE_CACHE;
150+
allocatedbuffer = m_allocator->AllocateResource(allocParamsForBufferLinear, true);
151+
ENCODE_CHK_NULL_RETURN(allocatedbuffer);
152+
m_vdencBrcImageStatesReadBufferTU7[k] = allocatedbuffer;
145153

146154
for (auto i = 0; i < VDENC_BRC_NUM_OF_PASSES; i++)
147155
{
@@ -334,8 +342,18 @@ MOS_STATUS AvcHucBrcUpdatePkt::Execute(PMOS_COMMAND_BUFFER cmdBuffer, bool store
334342
MOS_STATUS AvcHucBrcUpdatePkt::Submit(MOS_COMMAND_BUFFER *commandBuffer, uint8_t packetPhase)
335343
{
336344
ENCODE_FUNC_CALL();
345+
ENCODE_CHK_NULL_RETURN(m_basicFeature->m_picParam);
346+
ENCODE_CHK_NULL_RETURN(m_basicFeature->m_seqParam);
347+
348+
ENCODE_CHK_STATUS_RETURN(ConstructImageStateReadBuffer(m_vdencBrcImageStatesReadBufferOrigin[m_pipeline->m_currRecycledBufIdx]));
337349

338-
ENCODE_CHK_STATUS_RETURN(ConstructImageStateReadBuffer(m_vdencBrcImageStatesReadBuffer[m_pipeline->m_currRecycledBufIdx]));
350+
if (m_basicFeature->m_picParam->AdaptiveTUEnabled != 0)
351+
{
352+
auto original_TU = m_basicFeature->m_targetUsage;
353+
m_basicFeature->m_targetUsage = m_basicFeature->m_seqParam->TargetUsage = 7;
354+
ENCODE_CHK_STATUS_RETURN(ConstructImageStateReadBuffer(m_vdencBrcImageStatesReadBufferTU7[m_pipeline->m_currRecycledBufIdx]));
355+
m_basicFeature->m_targetUsage = m_basicFeature->m_seqParam->TargetUsage = original_TU;
356+
}
339357

340358
bool firstTaskInPhase = packetPhase & firstPacket;
341359
bool requestProlog = false;
@@ -525,7 +543,7 @@ MHW_SETPAR_DECL_SRC(HUC_VIRTUAL_ADDR_STATE, AvcHucBrcUpdatePkt)
525543
// Input regions
526544
params.regionParams[1].presRegion = m_basicFeature->m_recycleBuf->GetBuffer(VdencStatsBuffer, 0);
527545
params.regionParams[2].presRegion = m_basicFeature->m_recycleBuf->GetBuffer(BrcPakStatisticBuffer, 0);
528-
params.regionParams[3].presRegion = m_vdencBrcImageStatesReadBuffer[m_pipeline->m_currRecycledBufIdx];
546+
params.regionParams[3].presRegion = m_vdencBrcImageStatesReadBufferOrigin[m_pipeline->m_currRecycledBufIdx];
529547
params.regionParams[5].presRegion = m_vdencBrcConstDataBuffer[GetCurrConstDataBufIdx()];
530548
params.regionParams[7].presRegion = m_basicFeature->m_recycleBuf->GetBuffer(PakSliceSizeStreamOutBuffer, m_pipeline->GetCurrentPass() ?
531549
m_basicFeature->m_frameNum : m_basicFeature->m_frameNum ? m_basicFeature->m_frameNum-1 : 0); // use stats from previous frame for pass 0
@@ -542,6 +560,11 @@ MHW_SETPAR_DECL_SRC(HUC_VIRTUAL_ADDR_STATE, AvcHucBrcUpdatePkt)
542560
params.regionParams[8].presRegion = m_basicFeature->m_recycleBuf->GetBuffer(RecycleResId::HucRoiMapBuffer, m_basicFeature->m_frameNum);
543561
}
544562

563+
if (m_basicFeature->m_picParam->AdaptiveTUEnabled != 0)
564+
{
565+
params.regionParams[12].presRegion = m_vdencBrcImageStatesReadBufferTU7[m_pipeline->m_currRecycledBufIdx];
566+
}
567+
545568
return MOS_STATUS_SUCCESS;
546569
}
547570

media_softlet/agnostic/common/codec/hal/enc/avc/packet/encode_avc_huc_brc_update_packet.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,8 @@ struct VdencAvcHucBrcUpdateDmem
123123
uint16_t UPD_NumSlicesForRounding;
124124
uint32_t UPD_UserMaxFramePB; // In Bytes
125125
uint8_t UPD_ExtCurrFrameType; // correctly calculated FrameType for all cases (including hierarchy golden BGops)
126-
uint8_t RSVD2[3];
126+
uint8_t UPD_AdaptiveTUEnabled;
127+
uint8_t RSVD2[2];
127128
};
128129

129130
struct VdencAvcHucBrcConstantData
@@ -248,7 +249,8 @@ class AvcHucBrcUpdatePkt : public EncodeHucPkt
248249
uint32_t m_vdencBrcUpdateDmemBufferSize = sizeof(VdencAvcHucBrcUpdateDmem); //!< Offset of BRC update DMEM buffer
249250
uint32_t m_vdencBrcConstDataBufferSize = sizeof(VdencAvcHucBrcConstantData); //!< Offset of BRC const data buffer
250251

251-
PMOS_RESOURCE m_vdencBrcImageStatesReadBuffer[CODECHAL_ENCODE_RECYCLED_BUFFER_NUM] = {}; //!< Read-only VDENC+PAK IMG STATE buffer.
252+
PMOS_RESOURCE m_vdencBrcImageStatesReadBufferOrigin[CODECHAL_ENCODE_RECYCLED_BUFFER_NUM] = {}; //!< Read-only VDENC+PAK IMG STATE buffer.
253+
PMOS_RESOURCE m_vdencBrcImageStatesReadBufferTU7[CODECHAL_ENCODE_RECYCLED_BUFFER_NUM] = {}; //!< Read-only VDENC+PAK IMG STATE buffer.
252254
PMOS_RESOURCE m_vdencBrcUpdateDmemBuffer[CODECHAL_ENCODE_RECYCLED_BUFFER_NUM][VDENC_BRC_NUM_OF_PASSES] = {}; //!< Brc Update DMEM Buffer Array.
253255
PMOS_RESOURCE m_vdencBrcConstDataBuffer[CODECHAL_ENCODE_VDENC_BRC_CONST_BUFFER_NUM] = {}; //!< BRC Const Data Buffer for each frame type.
254256

media_softlet/agnostic/common/codec/hal/enc/hevc/features/encode_hevc_brc.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,15 @@ namespace encode
104104
"HEVC VDEnc ACQP Enable",
105105
m_hevcVDEncAcqpEnabled,
106106
MediaUserSetting::Group::Sequence);
107+
108+
ENCODE_CHK_NULL_RETURN(m_basicFeature->m_hevcPicParams);
109+
MediaUserSetting::Value outValue;
110+
ReadUserSetting(
111+
m_userSettingPtr,
112+
outValue,
113+
"Adaptive TU Enable",
114+
MediaUserSetting::Group::Sequence);
115+
m_basicFeature->m_hevcPicParams->AdaptiveTUEnabled |= outValue.Get<uint8_t>();
107116
#endif
108117
return MOS_STATUS_SUCCESS;
109118
}
@@ -286,6 +295,8 @@ namespace encode
286295

287296
hucVdencBrcUpdateDmem->UPD_Randomaccess = m_basicFeature->m_hevcSeqParams->LowDelayMode == 1 ? 0 : 1;
288297

298+
hucVdencBrcUpdateDmem->UPD_AdaptiveTUEnabled = m_basicFeature->m_hevcPicParams->AdaptiveTUEnabled;
299+
289300
return MOS_STATUS_SUCCESS;
290301
}
291302

media_softlet/agnostic/common/codec/hal/enc/hevc/packet/encode_hevc_vdenc_packet.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1397,6 +1397,10 @@ namespace encode
13971397
secondLevelBatchBufferUsed->dwOffset,
13981398
false,
13991399
m_basicFeature->m_vdencBatchBufferPerSlicePart2Size[currSlcIdx]);
1400+
if (m_basicFeature->m_hevcPicParams->AdaptiveTUEnabled == 0)
1401+
{
1402+
SETPAR_AND_ADDCMD(VDENC_HEVC_VP9_TILE_SLICE_STATE, m_vdencItf, &cmdBuffer);
1403+
}
14001404
}
14011405
else
14021406
{
@@ -1412,8 +1416,10 @@ namespace encode
14121416
ENCODE_CHK_STATUS_RETURN(AddAllCmds_HCP_PAK_INSERT_OBJECT(&cmdBuffer));
14131417

14141418
SETPAR_AND_ADDCMD(VDENC_WEIGHTSOFFSETS_STATE, m_vdencItf, &cmdBuffer);
1419+
1420+
SETPAR_AND_ADDCMD(VDENC_HEVC_VP9_TILE_SLICE_STATE, m_vdencItf, &cmdBuffer);
14151421
}
1416-
SETPAR_AND_ADDCMD(VDENC_HEVC_VP9_TILE_SLICE_STATE, m_vdencItf, &cmdBuffer);
1422+
14171423
SETPAR_AND_ADDCMD(VDENC_WALKER_STATE, m_vdencItf, &cmdBuffer);
14181424
return eStatus;
14191425
}

0 commit comments

Comments
 (0)