Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Visual Studio Code analysis warnings + some other issues #2181

Merged
merged 25 commits into from
Feb 9, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
8ca89e8
MSVC2022: Consistent C++ std for all configs
cjee21 Jan 30, 2025
e2b2a9b
Fix issues flagged by Visual Studio Code analysis
cjee21 Jan 30, 2025
4d8fd30
Fix unannotated fallthroughs
cjee21 Jan 30, 2025
8d2c0d3
Resolve arithmetic overflow warnings
cjee21 Jan 30, 2025
d8697e3
Resolve logic warning
cjee21 Jan 30, 2025
37ca3ea
Fix dangling pointers due to temporary instances that were destroyed
cjee21 Jan 30, 2025
db27efb
Fix typos and bugs flagged by C6287 Redundant code warnings
cjee21 Jan 30, 2025
9709651
Fix C6001 Using uninitialized memory
cjee21 Jan 30, 2025
f3eacfa
Use reference for performance
cjee21 Jan 30, 2025
35fcb29
Suppress warning C26813 false positive
cjee21 Jan 30, 2025
e43dec5
Prevent dereferencing NULL pointer
cjee21 Jan 31, 2025
6a76575
Fix argument pointer may be null
cjee21 Jan 31, 2025
34037fc
Fix C6385 Reading invalid data (not all)
cjee21 Jan 31, 2025
8282695
Fix unchecked lower bound for enum
cjee21 Jan 31, 2025
3e9dc9c
Resolve C6031 Return value ignored
cjee21 Jan 31, 2025
c28ae12
Fix arithmetic exception: division by zero (#2107)
cjee21 Jan 31, 2025
cc920bf
Prefer prefix ++/-- operators for non-primitive types (performance)
cjee21 Jan 31, 2025
b85161f
Fix uninitialized variable (legacyUninitvar)
cjee21 Jan 31, 2025
d7b9eb6
File_Mpeg4_Elements: Code clean-up
cjee21 Feb 1, 2025
afa4295
Remove identical inner 'if' conditions that are always true
cjee21 Feb 2, 2025
b66fa45
Fix out-of-bounds flagged by Cppcheck
cjee21 Feb 2, 2025
033156e
File_Usac: More fixes and improvements
cjee21 Feb 2, 2025
5dccd93
Fix C6293 'ill-defined for-loop'
cjee21 Feb 2, 2025
2867847
Revert "x Avoid 'byte' ambiguous symbol when "windows.h" is included …
cjee21 Feb 9, 2025
5af848c
Fix ARM64 builds by removing `WindowsNamespace`
cjee21 Feb 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Project/MSVC2022/Dll/MediaInfoDll.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand All @@ -198,6 +199,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand All @@ -212,6 +214,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand All @@ -226,6 +229,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand Down Expand Up @@ -258,6 +262,7 @@
<EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
<SDLCheck>true</SDLCheck>
<ControlFlowGuard>Guard</ControlFlowGuard>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand All @@ -279,6 +284,7 @@
<DebugInformationFormat>None</DebugInformationFormat>
<SDLCheck>true</SDLCheck>
<ControlFlowGuard>Guard</ControlFlowGuard>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand All @@ -301,6 +307,7 @@
<ControlFlowGuard>Guard</ControlFlowGuard>
<GuardEHContMetadata>true</GuardEHContMetadata>
<GuardSignedReturns>true</GuardSignedReturns>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand All @@ -323,6 +330,7 @@
<ControlFlowGuard>Guard</ControlFlowGuard>
<GuardEHContMetadata>true</GuardEHContMetadata>
<GuardSignedReturns>true</GuardSignedReturns>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand All @@ -343,6 +351,7 @@
<SDLCheck>true</SDLCheck>
<ControlFlowGuard>Guard</ControlFlowGuard>
<GuardEHContMetadata>true</GuardEHContMetadata>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand Down
9 changes: 9 additions & 0 deletions Project/MSVC2022/Library/MediaInfoLib.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
Expand All @@ -198,6 +199,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
Expand All @@ -210,6 +212,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64EC'">
Expand All @@ -222,6 +225,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
Expand Down Expand Up @@ -253,6 +257,7 @@
<EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
<SDLCheck>true</SDLCheck>
<ControlFlowGuard>Guard</ControlFlowGuard>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
Expand All @@ -267,6 +272,7 @@
<DebugInformationFormat>None</DebugInformationFormat>
<SDLCheck>true</SDLCheck>
<ControlFlowGuard>Guard</ControlFlowGuard>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
Expand All @@ -283,6 +289,7 @@
<ControlFlowGuard>Guard</ControlFlowGuard>
<GuardEHContMetadata>true</GuardEHContMetadata>
<GuardSignedReturns>true</GuardSignedReturns>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64EC'">
Expand All @@ -299,6 +306,7 @@
<ControlFlowGuard>Guard</ControlFlowGuard>
<GuardEHContMetadata>true</GuardEHContMetadata>
<GuardSignedReturns>true</GuardSignedReturns>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
Expand All @@ -313,6 +321,7 @@
<SDLCheck>true</SDLCheck>
<ControlFlowGuard>Guard</ControlFlowGuard>
<GuardEHContMetadata>true</GuardEHContMetadata>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
Expand Down
1 change: 1 addition & 0 deletions Source/MediaInfo/Audio/File_Aac.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ void File_Aac::Streams_Accept()
case Mode_ADTS :
if (!IsSub)
TestContinuousFileNames();
break;
default : ;
}
if (Frame_Count_NotParsedIncluded==(int64u)-1)
Expand Down
2 changes: 1 addition & 1 deletion Source/MediaInfo/Audio/File_Aac_GeneralAudio_Sbr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -893,7 +893,7 @@ bool Aac_f_master_Compute(int8u &num_env_bands_Master, int8u* f_Master, sbr_hand
}

int8u numBands0=2*Aac_bands_Compute(false, bands, k0, k1, divisor);
if (numBands0 == 0 || numBands0 >= 64)
if (numBands0 <= 0 || numBands0 >= 64)
return false;

int8u vDk0[64];
Expand Down
1 change: 1 addition & 0 deletions Source/MediaInfo/Audio/File_Aac_Main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -723,6 +723,7 @@ void File_Aac::AudioSpecificConfig (size_t End)
Frame_Count=(size_t)-1; //Forcing not to parse following data anymore
}
}
break;
default : ;
}

Expand Down
14 changes: 7 additions & 7 deletions Source/MediaInfo/Audio/File_Ac4.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1152,7 +1152,7 @@ void File_Ac4::Streams_Fill()
{
set<size_t>::iterator It=IFrames_IsVariable.begin();
size_t Value1=*It;
It++;
++It;
size_t Value2=*It;
if (Value1+1==Value2)
{
Expand Down Expand Up @@ -1577,7 +1577,7 @@ void File_Ac4::Streams_Fill()
continue;
size_t AudioSubstream_Pos=0;
std::map<int8u, substream_type_t>::iterator Substream_Type_Item=Substream_Type.begin();
for (; Substream_Type_Item!=Substream_Type.end() && Substream_Type_Item->first!=GroupInfo.substream_index; Substream_Type_Item++)
for (; Substream_Type_Item!=Substream_Type.end() && Substream_Type_Item->first!=GroupInfo.substream_index; ++Substream_Type_Item)
if (Substream_Type_Item->second==Type_Ac4_Substream)
AudioSubstream_Pos++;
if (Substream_Type_Item==Substream_Type.end())
Expand All @@ -1592,7 +1592,7 @@ void File_Ac4::Streams_Fill()
Fill(Stream_Audio, 0, (G+" LinkedTo_Substream_Pos/String").c_str(), SubstreamNum.Read());
Fill_SetOptions(Stream_Audio, 0, (G+" LinkedTo_Substream_Pos/String").c_str(), "Y NIN");
}
for (map<int8u, audio_substream>::iterator Substream_Info=AudioSubstreams.begin(); Substream_Info!=AudioSubstreams.end(); Substream_Info++)
for (map<int8u, audio_substream>::iterator Substream_Info=AudioSubstreams.begin(); Substream_Info!=AudioSubstreams.end(); ++Substream_Info)
{
string ChannelMode, ImmersiveStereo;
for (size_t g=0; g<Groups.size(); g++)
Expand Down Expand Up @@ -1670,7 +1670,7 @@ void File_Ac4::Streams_Fill()
Summary="?";
}
size_t AudioSubstream_Pos=0;
for (std::map<int8u, substream_type_t>::iterator Substream_Type_Item=Substream_Type.begin(); Substream_Type_Item!=Substream_Type.end() && Substream_Type_Item->first!=Substream_Info->first; Substream_Type_Item++)
for (std::map<int8u, substream_type_t>::iterator Substream_Type_Item=Substream_Type.begin(); Substream_Type_Item!=Substream_Type.end() && Substream_Type_Item->first!=Substream_Info->first; ++Substream_Type_Item)
if (Substream_Type_Item->second==Type_Ac4_Substream)
AudioSubstream_Pos++;
string S=Ztring(__T("Substream")+Ztring::ToZtring(AudioSubstream_Pos)).To_UTF8();
Expand Down Expand Up @@ -1820,7 +1820,7 @@ void File_Ac4::Read_Buffer_Unsynched()
bool File_Ac4::Synchronize()
{
//Synchronizing
size_t Buffer_Offset_Current;
size_t Buffer_Offset_Current{};
while (Buffer_Offset<Buffer_Size)
{
Buffer_Offset_Current=Buffer_Offset;
Expand Down Expand Up @@ -2170,7 +2170,7 @@ void File_Ac4::ac4_toc()
{
//We parse only Iframes, but also the frames associated to this I-frame
if (!AudioSubstreams.empty())
for (map<int8u, audio_substream>::iterator Substream_Info=AudioSubstreams.begin(); Substream_Info!=AudioSubstreams.end(); Substream_Info++)
for (map<int8u, audio_substream>::iterator Substream_Info=AudioSubstreams.begin(); Substream_Info!=AudioSubstreams.end(); ++Substream_Info)
if (Substream_Info->second.Buffer_Index)
NoSkip=true;
}
Expand Down Expand Up @@ -3799,7 +3799,7 @@ void File_Ac4::metadata(audio_substream& AudioSubstream, size_t Substream_Index)
Get_SB (b_discard_unknown_payload, "b_discard_unknown_payload");
if (!b_discard_unknown_payload)
{
bool b_payload_frame_aligned;
bool b_payload_frame_aligned{};
if (!b_smpoffst)
{
TEST_SB_GET(b_payload_frame_aligned, "b_payload_frame_aligned");
Expand Down
6 changes: 4 additions & 2 deletions Source/MediaInfo/Audio/File_Ac4.h
Original file line number Diff line number Diff line change
Expand Up @@ -360,10 +360,12 @@ private :
uint8_t* Data_ToDelete=Data;
Size=NewOffset;
Data=new int8u[Size];
memcpy(Data, Data_ToDelete, Offset);
if (Data_ToDelete)
memcpy(Data, Data_ToDelete, Offset);
delete[] Data_ToDelete;
}
memcpy(Data+Offset, BufferToAdd, SizeToAdd);
if (Data+Offset)
memcpy(Data+Offset, BufferToAdd, SizeToAdd);
Offset=NewOffset;
}

Expand Down
18 changes: 12 additions & 6 deletions Source/MediaInfo/Audio/File_Adm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2141,7 +2141,10 @@ size_t Atmos_zone_Pos(const string& Name, float32* Values) {
}

string CraftName(const char* Name, bool ID = false) {
return (ID && !strcmp(Name, "Track")) ? "track" : ((Name && Name[0] < 'a' ? "audio" : "") + string(Name));
if (Name)
return (ID && !strcmp(Name, "Track")) ? "track" : ((Name && Name[0] < 'a' ? "audio" : "") + string(Name));
else
return "";
}

enum class E {
Expand Down Expand Up @@ -2398,7 +2401,7 @@ class file_adm_private : public tfsxml
file_adm_private()
{
auto OldLocale_Temp = setlocale(LC_NUMERIC, nullptr);
if (*OldLocale_Temp != 'C' || *(OldLocale_Temp + 1)) {
if (OldLocale_Temp && (*OldLocale_Temp != 'C' || *(OldLocale_Temp + 1))) {
OldLocale = OldLocale_Temp;
setlocale(LC_NUMERIC, "C");
}
Expand Down Expand Up @@ -2827,6 +2830,8 @@ static void CheckErrors_ID_Additions(file_adm_private* File_Adm_Private, item it
};

//---------------------------------------------------------------------------
#pragma warning( push )
#pragma warning( disable : 26813 ) //false positive "Use 'bitwise and' to check if a flag is set."
static void CheckErrors_formatLabelDefinition(file_adm_private* File_Adm_Private, item item_Type, size_t i, const label_info& label_Info) {
const bool IsAtmos = File_Adm_Private->IsAtmos;
auto& Item = File_Adm_Private->Items[item_Type].Items[i];
Expand Down Expand Up @@ -2892,6 +2897,7 @@ static void CheckErrors_formatLabelDefinition(file_adm_private* File_Adm_Private
}
}
};
#pragma warning( pop )

//---------------------------------------------------------------------------
static void CheckErrors_Attributes(file_adm_private* File_Adm_Private, item Item_Type, const vector<size_t>& Attributes_Counts) {
Expand Down Expand Up @@ -2923,7 +2929,7 @@ static void CheckErrors_Attributes(file_adm_private* File_Adm_Private, item Item
break;
default:
Item.AddError(Error, ':' + CraftName(item_Infos[Item_Type].Name) + to_string(i) + ":" + CraftName(Attribute_Infos[j].Name) + ":" + string(Attribute_Infos[j].Name) + " attribute shall be unique");
// Fallthrough
[[fallthrough]];
case 1:
{
Attributes_Present[j] = true;
Expand Down Expand Up @@ -3027,7 +3033,7 @@ static void CheckErrors_Elements(file_adm_private* File_Adm_Private, item Item_T
}
else if (Elem.empty() && Item_Type) {
#define ITEM_ELEM(A,B) ((A << 8) | B)
switch (ITEM_ELEM(Item_Type, j)) {
switch (ITEM_ELEM(static_cast<size_t>(Item_Type), j)) {
case ITEM_ELEM(item_audioProgrammeReferenceScreen, audioProgrammeReferenceScreen_screenCentrePosition):
case ITEM_ELEM(item_audioProgrammeReferenceScreen, audioProgrammeReferenceScreen_screenWidth):
case ITEM_ELEM(item_audioBlockFormat, audioBlockFormat_headphoneVirtualise):
Expand Down Expand Up @@ -3572,7 +3578,7 @@ void audioBlockFormat_Check(file_adm_private* File_Adm_Private) {
BlockFormat.AddError(Error, ":GeneralCompliance:jumpPosition subelement count " + to_string(jumpPositions.size()) + " is not permitted, max is 1", Source_Atmos_1_0);
break;
}
// Fallthrough
[[fallthrough]];
case 1:
switch (Type) {
case Type_Objects: {
Expand Down Expand Up @@ -5482,7 +5488,7 @@ void File_Adm::Streams_Fill()
IsAdvSSE = true;
IsAdvSSE_Versions.push_back(strtoul(Profile_Item.Attributes[profile_profileVersion].c_str(), nullptr, 10));
IsAdvSSE_Levels.push_back(strtoul(Profile_Item.Attributes[profile_profileLevel].c_str(), nullptr, 10));
if (IsAdvSSE_Levels.back() > 2 && (Profile == "ITU-R BS.[ADM-NGA-EMISSION]-0" || Profile == "ITU-R BS.[ADM-NGA-EMISSION]-0")) {
if (IsAdvSSE_Levels.back() > 2 && (Profile == "ITU-R BS.[ADM-NGA-EMISSION]-0")) {
Profiles.back().AddError(Error, ':' + CraftName(item_Infos[item_profile].Name) + to_string(i) + ":profileLevel:profileLevel attribute value " + Profile_Item.Attributes[profile_profileLevel] + " is not permitted, max is 2", Source_AdvSSE_1);
}
}
Expand Down
4 changes: 2 additions & 2 deletions Source/MediaInfo/Audio/File_ChannelGrouping.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ void File_ChannelGrouping::Read_Buffer_Continue()
{
if (!Common->Parsers[Pos]->Status[IsAccepted] && Common->Parsers[Pos]->Status[IsFinished])
{
delete *(Common->Parsers.begin()+Pos);
delete static_cast<MediaInfoLib::File__Analyze*>(*(Common->Parsers.begin()+Pos));
Common->Parsers.erase(Common->Parsers.begin()+Pos);
Pos--;
}
Expand All @@ -339,7 +339,7 @@ void File_ChannelGrouping::Read_Buffer_Continue()
for (size_t Pos2=0; Pos2<Common->Parsers.size(); Pos2++)
{
if (Pos2!=Pos)
delete *(Common->Parsers.begin()+Pos2);
delete static_cast<MediaInfoLib::File__Analyze*>(*(Common->Parsers.begin()+Pos2));
}
Common->Parsers.clear();
Common->Parsers.push_back(Parser);
Expand Down
4 changes: 2 additions & 2 deletions Source/MediaInfo/Audio/File_ChannelSplitting.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,7 @@ void File_ChannelSplitting::Read_Buffer_Continue_Parse()
}
if (!SplittedChannel->Parsers[Pos]->Status[IsAccepted] && SplittedChannel->Parsers[Pos]->Status[IsFinished])
{
delete *(SplittedChannel->Parsers.begin()+Pos);
delete static_cast<MediaInfoLib::File__Analyze*>(*(SplittedChannel->Parsers.begin()+Pos));
SplittedChannel->Parsers.erase(SplittedChannel->Parsers.begin()+Pos);
Pos--;
}
Expand All @@ -443,7 +443,7 @@ void File_ChannelSplitting::Read_Buffer_Continue_Parse()
for (size_t Pos2=0; Pos2<SplittedChannel->Parsers.size(); Pos2++)
{
if (Pos2!=Pos)
delete *(SplittedChannel->Parsers.begin()+Pos2);
delete static_cast<MediaInfoLib::File__Analyze*>(*(SplittedChannel->Parsers.begin()+Pos2));
}
SplittedChannel->Parsers.clear();
SplittedChannel->Parsers.push_back(Parser);
Expand Down
2 changes: 1 addition & 1 deletion Source/MediaInfo/Audio/File_Dat.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -564,7 +564,7 @@ void File_Dat::Data_Parse()
Previous = Priv->Frame_Last.TCs[i];
Previous.SetFramesMax(Frame.TCs[i].GetFramesMax());
Ref = Previous;
Ref++;
++Ref;
}
int32u Value = 0;
Value |= (int32u)Frame.TCs[i].ToSeconds() << 8;
Expand Down
2 changes: 1 addition & 1 deletion Source/MediaInfo/Audio/File_DolbyE.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2388,7 +2388,7 @@ void File_DolbyE::program_assignment()
{
bool b_standard_chan_assign;
Get_SB (b_standard_chan_assign, "b_standard_chan_assign");
int32u nonstd_bed_channel_assignment_mask;
int32u nonstd_bed_channel_assignment_mask{};
if (b_standard_chan_assign)
{
int16u bed_channel_assignment_mask;
Expand Down
Loading