@@ -38,7 +38,8 @@ NvEncoder::NvEncoder(NV_ENC_DEVICE_TYPE eDeviceType, void* pDevice, uint32_t nWi
38
38
NVENC_THROW_ERROR (" EncodeAPI not found" , NV_ENC_ERR_NO_ENCODE_DEVICE);
39
39
}
40
40
41
- NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS encodeSessionExParams = { NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS_VER };
41
+ NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS encodeSessionExParams = {};
42
+ encodeSessionExParams.version = NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS_VER;
42
43
encodeSessionExParams.device = m_pDevice;
43
44
encodeSessionExParams.deviceType = m_eDeviceType;
44
45
encodeSessionExParams.apiVersion = NVENCAPI_VERSION;
@@ -58,8 +59,8 @@ void NvEncoder::LoadNvEncApi()
58
59
NVENC_THROW_ERROR (" Current Driver Version does not support this NvEncodeAPI version, please upgrade driver" , NV_ENC_ERR_INVALID_VERSION);
59
60
}
60
61
61
-
62
- m_nvenc = { NV_ENCODE_API_FUNCTION_LIST_VER } ;
62
+ m_nvenc = {};
63
+ m_nvenc. version = NV_ENCODE_API_FUNCTION_LIST_VER;
63
64
NVENC_API_CALL (NvEncodeAPICreateInstance (&m_nvenc));
64
65
}
65
66
@@ -109,7 +110,9 @@ void NvEncoder::CreateDefaultEncoderParams(NV_ENC_INITIALIZE_PARAMS* pIntializeP
109
110
pIntializeParams->enableEncodeAsync = GetCapabilityValue (codecGuid, NV_ENC_CAPS_ASYNC_ENCODE_SUPPORT);
110
111
#endif
111
112
pIntializeParams->tuningInfo = tuningInfo;
112
- NV_ENC_PRESET_CONFIG presetConfig = { NV_ENC_PRESET_CONFIG_VER, { NV_ENC_CONFIG_VER } };
113
+ NV_ENC_PRESET_CONFIG presetConfig = {};
114
+ presetConfig.version = NV_ENC_PRESET_CONFIG_VER;
115
+ presetConfig.presetCfg .version = NV_ENC_CONFIG_VER;
113
116
m_nvenc.nvEncGetEncodePresetConfigEx (m_hEncoder, codecGuid, presetGuid, tuningInfo, &presetConfig);
114
117
memcpy (pIntializeParams->encodeConfig , &presetConfig.presetCfg , sizeof (NV_ENC_CONFIG));
115
118
@@ -200,7 +203,9 @@ void NvEncoder::CreateEncoder(const NV_ENC_INITIALIZE_PARAMS* pEncoderParams)
200
203
}
201
204
else
202
205
{
203
- NV_ENC_PRESET_CONFIG presetConfig = { NV_ENC_PRESET_CONFIG_VER, { NV_ENC_CONFIG_VER } };
206
+ NV_ENC_PRESET_CONFIG presetConfig = {};
207
+ presetConfig.version = NV_ENC_PRESET_CONFIG_VER;
208
+ presetConfig.presetCfg .version = NV_ENC_CONFIG_VER;
204
209
m_nvenc.nvEncGetEncodePresetConfigEx (m_hEncoder, pEncoderParams->encodeGUID , pEncoderParams->presetGUID , pEncoderParams->tuningInfo , &presetConfig);
205
210
memcpy (&m_encodeConfig, &presetConfig.presetCfg , sizeof (NV_ENC_CONFIG));
206
211
}
@@ -283,8 +288,8 @@ const NvEncInputFrame* NvEncoder::GetNextInputFrame()
283
288
284
289
void NvEncoder::MapResources (uint32_t bfrIdx)
285
290
{
286
- NV_ENC_MAP_INPUT_RESOURCE mapInputResource = { NV_ENC_MAP_INPUT_RESOURCE_VER };
287
-
291
+ NV_ENC_MAP_INPUT_RESOURCE mapInputResource = {};
292
+ mapInputResource. version = NV_ENC_MAP_INPUT_RESOURCE_VER;
288
293
mapInputResource.registeredResource = m_vRegisteredResources[bfrIdx];
289
294
NVENC_API_CALL (m_nvenc.nvEncMapInputResource (m_hEncoder, &mapInputResource));
290
295
m_vMappedInputBuffers[bfrIdx] = mapInputResource.mappedResource ;
@@ -319,7 +324,8 @@ void NvEncoder::GetSequenceParams(std::vector<uint8_t>& seqParams)
319
324
{
320
325
uint8_t spsppsData[1024 ]; // Assume maximum spspps data is 1KB or less
321
326
memset (spsppsData, 0 , sizeof (spsppsData));
322
- NV_ENC_SEQUENCE_PARAM_PAYLOAD payload = { NV_ENC_SEQUENCE_PARAM_PAYLOAD_VER };
327
+ NV_ENC_SEQUENCE_PARAM_PAYLOAD payload = {};
328
+ payload.version = NV_ENC_SEQUENCE_PARAM_PAYLOAD_VER;
323
329
uint32_t spsppsSize = 0 ;
324
330
325
331
payload.spsppsBuffer = spsppsData;
@@ -352,7 +358,9 @@ NVENCSTATUS NvEncoder::DoEncode(NV_ENC_INPUT_PTR inputBuffer, NV_ENC_OUTPUT_PTR
352
358
353
359
void NvEncoder::SendEOS ()
354
360
{
355
- NV_ENC_PIC_PARAMS picParams = { NV_ENC_PIC_PARAMS_VER };
361
+ NV_ENC_PIC_PARAMS picParams = {};
362
+ picParams.version = NV_ENC_PIC_PARAMS_VER;
363
+
356
364
picParams.encodePicFlags = NV_ENC_PIC_FLAG_EOS;
357
365
picParams.completionEvent = GetCompletionEvent (m_iToSend % m_nEncoderBuffer);
358
366
NVENC_API_CALL (m_nvenc.nvEncEncodePicture (m_hEncoder, &picParams));
@@ -378,7 +386,8 @@ void NvEncoder::GetEncodedPacket(std::vector<NV_ENC_OUTPUT_PTR>& vOutputBuffer,
378
386
for (; m_iGot < iEnd; m_iGot++)
379
387
{
380
388
WaitForCompletionEvent (m_iGot % m_nEncoderBuffer);
381
- NV_ENC_LOCK_BITSTREAM lockBitstreamData = { NV_ENC_LOCK_BITSTREAM_VER };
389
+ NV_ENC_LOCK_BITSTREAM lockBitstreamData = {};
390
+ lockBitstreamData.version = NV_ENC_LOCK_BITSTREAM_VER;
382
391
lockBitstreamData.outputBitstream = vOutputBuffer[m_iGot % m_nEncoderBuffer];
383
392
lockBitstreamData.doNotWait = false ;
384
393
NVENC_API_CALL (m_nvenc.nvEncLockBitstream (m_hEncoder, &lockBitstreamData));
@@ -424,7 +433,8 @@ NV_ENC_REGISTERED_PTR NvEncoder::RegisterResource(void* pBuffer, NV_ENC_INPUT_RE
424
433
int width, int height, int pitch, NV_ENC_BUFFER_FORMAT bufferFormat, NV_ENC_BUFFER_USAGE bufferUsage,
425
434
NV_ENC_FENCE_POINT_D3D12* pInputFencePoint, NV_ENC_FENCE_POINT_D3D12* pOutputFencePoint)
426
435
{
427
- NV_ENC_REGISTER_RESOURCE registerResource = { NV_ENC_REGISTER_RESOURCE_VER };
436
+ NV_ENC_REGISTER_RESOURCE registerResource = {};
437
+ registerResource.version = NV_ENC_REGISTER_RESOURCE_VER;
428
438
registerResource.resourceType = eResourceType;
429
439
registerResource.resourceToRegister = pBuffer;
430
440
registerResource.width = width;
@@ -569,7 +579,6 @@ uint32_t NvEncoder::GetWidthInBytes(const NV_ENC_BUFFER_FORMAT bufferFormat, con
569
579
return width * 4 ;
570
580
default :
571
581
NVENC_THROW_ERROR (" Invalid Buffer format" , NV_ENC_ERR_INVALID_PARAM);
572
- return 0 ;
573
582
}
574
583
}
575
584
@@ -646,7 +655,6 @@ void NvEncoder::GetChromaSubPlaneOffsets(const NV_ENC_BUFFER_FORMAT bufferFormat
646
655
return ;
647
656
default :
648
657
NVENC_THROW_ERROR (" Invalid Buffer format" , NV_ENC_ERR_INVALID_PARAM);
649
- return ;
650
658
}
651
659
}
652
660
@@ -670,7 +678,6 @@ uint32_t NvEncoder::GetChromaHeight(const NV_ENC_BUFFER_FORMAT bufferFormat, con
670
678
return 0 ;
671
679
default :
672
680
NVENC_THROW_ERROR (" Invalid Buffer format" , NV_ENC_ERR_INVALID_PARAM);
673
- return 0 ;
674
681
}
675
682
}
676
683
@@ -697,7 +704,6 @@ uint32_t NvEncoder::GetChromaWidthInBytes(const NV_ENC_BUFFER_FORMAT bufferForma
697
704
return 0 ;
698
705
default :
699
706
NVENC_THROW_ERROR (" Invalid Buffer format" , NV_ENC_ERR_INVALID_PARAM);
700
- return 0 ;
701
707
}
702
708
}
703
709
@@ -708,7 +714,8 @@ int NvEncoder::GetCapabilityValue(GUID guidCodec, NV_ENC_CAPS capsToQuery)
708
714
{
709
715
return 0 ;
710
716
}
711
- NV_ENC_CAPS_PARAM capsParam = { NV_ENC_CAPS_PARAM_VER };
717
+ NV_ENC_CAPS_PARAM capsParam = {};
718
+ capsParam.version = NV_ENC_CAPS_PARAM_VER;
712
719
capsParam.capsToQuery = capsToQuery;
713
720
int v;
714
721
m_nvenc.nvEncGetEncodeCaps (m_hEncoder, guidCodec, &capsParam, &v);
@@ -737,7 +744,6 @@ int NvEncoder::GetFrameSize() const
737
744
return 4 * GetEncodeWidth () * GetEncodeHeight ();
738
745
default :
739
746
NVENC_THROW_ERROR (" Invalid Buffer format" , NV_ENC_ERR_INVALID_PARAM);
740
- return 0 ;
741
747
}
742
748
}
743
749
@@ -757,7 +763,8 @@ void NvEncoder::InitializeBitstreamBuffer()
757
763
{
758
764
for (int i = 0 ; i < m_nEncoderBuffer; i++)
759
765
{
760
- NV_ENC_CREATE_BITSTREAM_BUFFER createBitstreamBuffer = { NV_ENC_CREATE_BITSTREAM_BUFFER_VER };
766
+ NV_ENC_CREATE_BITSTREAM_BUFFER createBitstreamBuffer = {};
767
+ createBitstreamBuffer.version = NV_ENC_CREATE_BITSTREAM_BUFFER_VER;
761
768
NVENC_API_CALL (m_nvenc.nvEncCreateBitstreamBuffer (m_hEncoder, &createBitstreamBuffer));
762
769
m_vBitstreamOutputBuffer[i] = createBitstreamBuffer.bitstreamBuffer ;
763
770
}
0 commit comments