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

Open
wants to merge 23 commits into
base: master
Choose a base branch
from

Conversation

cjee21
Copy link
Contributor

@cjee21 cjee21 commented Jan 30, 2025

  • Set C++ standard in MSVC Project for all configurations to C++20. Previously it was set to C++20 only for debug x64 in commit ee81209.
  • Fix following issues in MediaInfo_Inform and File_Mpeg4_Elements flagged by Visual Studio Code analysis:
    Warning	C26495	Variable 'MediaInfoLib::`anonymous-namespace'::nested::Target' is uninitialized. Always initialize a member variable (type.6).	MediaInfoLib	MediaInfo_Inform.cpp	647		
    
    Warning	C26819	Unannotated fallthrough between switch labels (es.78).	MediaInfoLib	Multiple\File_Mpeg4_Elements.cpp	1669		
    Warning	C26819	Unannotated fallthrough between switch labels (es.78).	MediaInfoLib	Multiple\File_Mpeg4_Elements.cpp	1681		
    Warning	C26819	Unannotated fallthrough between switch labels (es.78).	MediaInfoLib	Multiple\File_Mpeg4_Elements.cpp	2221		
    Warning	C26819	Unannotated fallthrough between switch labels (es.78).	MediaInfoLib	Multiple\File_Mpeg4_Elements.cpp	2234		
    Warning	C6031	Return value ignored: 'std::_Vector_iterator<std::_Vector_val<std::_Simple_types<MediaInfoLib::File__Analyze *> > >::*'.	MediaInfoLib	Multiple\File_Mpeg4_Elements.cpp	2292		
    Warning	C6031	Return value ignored: 'std::_Vector_iterator<std::_Vector_val<std::_Simple_types<MediaInfoLib::File__Analyze *> > >::*'.	MediaInfoLib	Multiple\File_Mpeg4_Elements.cpp	2302		
    Warning	C26819	Unannotated fallthrough between switch labels (es.78).	MediaInfoLib	Multiple\File_Mpeg4_Elements.cpp	3562		
    Warning	C26819	Unannotated fallthrough between switch labels (es.78).	MediaInfoLib	Multiple\File_Mpeg4_Elements.cpp	3998			
    Warning	C26819	Unannotated fallthrough between switch labels (es.78).	MediaInfoLib	Multiple\File_Mpeg4_Elements.cpp	4408	
    Warning	C6001	Using uninitialized memory 'default_length'.	MediaInfoLib	Multiple\File_Mpeg4_Elements.cpp	5142		
    
  • Fix 43 cases of unannotated fallthroughs
  • Other fixes to resolve warnings from Visual Studio Code analysis

@cjee21
Copy link
Contributor Author

cjee21 commented Jan 30, 2025

@JeromeMartinez Is it supposed to be a fall-through or a break here?

mdat_MustParse=true; //Data is in MDAT
case Elements::moov_trak_mdia_hdlr_alis :

@JeromeMartinez
Copy link
Member

Is it supposed to be a fall-through or a break here?

A break.

Copy link
Member

@JeromeMartinez JeromeMartinez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't remark that since we switched to C++11 we can use attributes.

You forgot fall through comment one in TimeCode.cpp

Project/MSVC2022/Dll/MediaInfoDll.vcxproj Outdated Show resolved Hide resolved
Source/MediaInfo/Multiple/File_Mpeg4_Elements.cpp Outdated Show resolved Hide resolved
@cjee21
Copy link
Contributor Author

cjee21 commented Jan 30, 2025

You forgot fall through comment one in TimeCode.cpp

This PR just resolves all errors in the two files mentioned since I touched those 2 files recently. There are still around a thousand warnings in other files including things like the divide by zero reported in an issue last year.

The warning level is not set to level 3 (VS IDE default) or 4 in the project so many things are only shown if running code analysis or by intelisense for current open file. Since not set, it default to level 1.

@JeromeMartinez
Copy link
Member

This PR just resolves all errors in the two files mentioned since I touched those 2 files recently

But I prefer to have a PR resolving the same issue everywhere, as we are there...

There are still around a thousand warnings in other files including things like the divide by zero reported in an issue last year.

I am interested in PR for fixing that if you are motivated ;-).
(on my todo-list... For years :( )

@cjee21
Copy link
Contributor Author

cjee21 commented Jan 30, 2025

I am interested in PR for fixing that if you are motivated ;-). (on my todo-list... For years :( )

Some issues difficult for me to fix since I do not know what exactly the code does in some areas and have no files to test for regressions. I can try fix some in my free time to reduce the warnings so that major ones don't get drowned in the warning list.

@JeromeMartinez
Copy link
Member

have no files to test for regressions.

I will do QA before merging so no risk about regression.
It is just that when the work is shared, with more than 2 eyes on something, it is motivating.

I can try fix some in my free time

Appreciated.

@cjee21
Copy link
Contributor Author

cjee21 commented Jan 30, 2025

Visual Studio warnings remaining:
ZenLib - 20
zlibstat - 36
MediaInfoLib - 1156
MediaInfo CLI - 2

Can fix the CLI one first since only two, then it'll be warning free :)
It is this:

        _setmode(_fileno(stdout), _O_U8TEXT);
        _setmode(_fileno(stderr), _O_U8TEXT);

The return value for _setmode is not checked for failure. How to handle case of failure?


But I prefer to have a PR resolving the same issue everywhere, as we are there...

49 cases of unannotated fallthrough.... this will take some time.

@JeromeMartinez
Copy link
Member

The return value for _setmode is not checked for failure. How to handle case of failure?

Ignored, it is just "best effort" and user will handle with how the terminal is configured by default. But also it would never happen :).
A way to remove the warning is a nasty "(void)" prefix saying that it is wanted.

zlibstat - 36

not our code, not to be touched. Should be suggested upstream if you are super motivated.
On our side we need to update from upstream...

49 cases of unannotated fallthrough.... this will take some time.

Oops.

@cjee21
Copy link
Contributor Author

cjee21 commented Jan 30, 2025

In two files, I left a blank line because I do not know what to put there. Hope I did not make any mistakes with the rest.

@cjee21 cjee21 changed the title MediaInfo_Inform/File_Mpeg4_Elements: Fix issues flagged by Visual Studio Code analysis Fix issues flagged by Visual Studio Code analysis in MediaInfo_Inform/File_Mpeg4_Elements + fix unannotated fallthroughs in others Jan 30, 2025
@@ -219,6 +219,7 @@ Ztring Mpeg7_ContentCS_Name(int32u termID, MediaInfo_Internal &MI, size_t) //xxy
case 1 : return __T("Image");
case 2 : return __T("Video");
case 3 : return __T("Graphics");

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"break" after the "}" and move of the content of default below (default can then be removed) after the switch so any unknown value uses this default.

@@ -1829,6 +1829,7 @@ size_t File__Analyze::Read_Buffer_Seek_OneFramePerFile (size_t Method, int64u Va
if (Config->Demux_Rate_Get()==0)
return (size_t)-1; //Not supported
Value=float64_int64s(((float64)Value)/1000000000*Config->Demux_Rate_Get());

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

return 1;

@cjee21 cjee21 changed the title Fix issues flagged by Visual Studio Code analysis in MediaInfo_Inform/File_Mpeg4_Elements + fix unannotated fallthroughs in others Fix issues flagged by Visual Studio Code analysis in MediaInfo_Inform/File_Mpeg4_Elements + fix misc warnings in others Jan 30, 2025
@cjee21
Copy link
Contributor Author

cjee21 commented Jan 30, 2025

Breakdown of MediaInfoLib warnings:
989 - Variable 'variable' is uninitialized. Always initialize a member variable (type.6).
5 - Use 'bitwise and' to check if a flag is set
4 - The pointer is dangling because it points at a temporary instance that was destroyed. (ES.65)
1 - This is a potentially expensive copy operation. Consider using a reference unless a copy is required (p.9)
1 - Dereferencing NULL pointer.
2 - The argument could be one value, and is a copy of the value found in the pointer
12 - Unchecked lower bound for enum 'enum' used as index.
30 - Using uninitialized memory 'variable'.
16 - Return value ignored: 'called-function' could return unexpected value
1 - Labeled code is unreachable: ('expression' & 'constant') in switch-expr cannot evaluate to 'case-label'
1 - Function uses constant_1 bytes of stack: exceeds /analyze:stacksize constant_2. Consider moving some data to heap
5 - Redundant code: the left and right subexpressions are identical
2 - Ill-defined for-loop: counts down from minimum
7 - Invalid data: accessing buffer-name, the readable size is size1 bytes, but size2 bytes may be read: Lines: x, y
1 - Buffer overrun: accessing 'buffer name', the writable size is 'size1' bytes, but 'size2' bytes may be written: Lines: x, y
7 - 'argument' may be 'value': this does not adhere to the specification for the function 'function name': Lines: x, y

@cjee21
Copy link
Contributor Author

cjee21 commented Jan 30, 2025

5 - Redundant code: the left and right subexpressions are identical looks interesting...

Why are these repeated?

if (IsAdvSSE_Levels.back() > 2 && (Profile == "ITU-R BS.[ADM-NGA-EMISSION]-0" || Profile == "ITU-R BS.[ADM-NGA-EMISSION]-0")) {

if (dataid || numpacks >= 8 || numpacks >= 8 || !pno_IsValid) {

if (HI_D_Pos==(size_t)-1 && (Item==HI_D_Text || Item==HI_D_Text))

if (FSC_WasSet_Sum && FSC_WasSet_Sum)

else if ((*seq_parameter_set_Item)->vui_parameters->flags[fixed_frame_rate_flag] && (*seq_parameter_set_Item)->vui_parameters->time_scale && (*seq_parameter_set_Item)->vui_parameters->time_scale && (*seq_parameter_set_Item)->vui_parameters->num_units_in_tick)

@JeromeMartinez
Copy link
Member

if (IsAdvSSE_Levels.back() > 2 && (Profile == "ITU-R BS.[ADM-NGA-EMISSION]-0" || Profile == "ITU-R BS.[ADM-NGA-EMISSION]-0")) {

typo

if (dataid || numpacks >= 8 || numpacks >= 8 || !pno_IsValid) {

typo

if (HI_D_Pos==(size_t)-1 && (Item==HI_D_Text || Item==HI_D_Text))

second HI_D_Text --> VI_D_Text

if (FSC_WasSet_Sum && FSC_WasSet_Sum)

&& --> ||

else if ((*seq_parameter_set_Item)->vui_parameters->flags[fixed_frame_rate_flag] && (*seq_parameter_set_Item)->vui_parameters->time_scale && (*seq_parameter_set_Item)->vui_parameters->time_scale && (*seq_parameter_set_Item)->vui_parameters->num_units_in_tick)

typo

@cjee21
Copy link
Contributor Author

cjee21 commented Jan 30, 2025

&& --> ||

Both sides are FSC_WasSet_Sum...

@JeromeMartinez
Copy link
Member

Both sides are FSC_WasSet_Sum...

FSC_WasNotSet_Sum || FSC_WasSet_Sum

@@ -2836,8 +2836,8 @@ static void CheckErrors_formatLabelDefinition(file_adm_private* File_Adm_Private
const auto& Definition = Item.Attributes[label_Info.Definition_Pos];
const auto Style = label_Info.Label_Style;
const auto& Style_Info = Style_Infos[Style];
const auto List = (Style == (style)-1) ? nullptr : Style_Infos[Style].formatDefinition_List;
const unsigned long List_Size = (Style == (style)-1) ? 0 : Style_Infos[Style].formatDefinition_Size;
const auto List = (Style & (style)-1) ? nullptr : Style_Infos[Style].formatDefinition_List;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems that it is wrongly seen as a power of two but the enum is:

enum style : int8u {
    Style_Format,
    Style_Type,
    Style_Max = (style)-1
};

a third style would be 3 so no more powers of 2.
this warning here is weird because Style_Max is not a power of 2, I don't see how to remove the warning.
Hmmm... Actually a better code could be to remove Style_Max and (style)-1, and to put Style_None as the first element of the list.
checks would become (Style == Style_None) and the compiler will convert to "Style" , micro-optimization.

@cjee21
Copy link
Contributor Author

cjee21 commented Jan 31, 2025

I think that is all I can/will do.


Things remaining that I do not know what to do about:

2 cases of array may be accessed out-of-bounds:

Severity	Code	Description	Project	File	Line	Suppression State	Details
Warning	C6385	Reading invalid data from 'MI_Offsets'.	MediaInfoLib	MediaInfo\Archive\File_Iso9660.cpp	100		
Warning	C6385	Reading invalid data from 'C.sbrHandler.bs_df_noise[ch]'.	MediaInfoLib	MediaInfo\Audio\File_Usac.cpp	4702		

Labeled code is unreachable:

case Essences::IAB_Temp:

case Essences::IAB_Temp: unreachable because it has value of 0x0D010301167F107F while there is a switch (Code.lo & 0xFFFFFFFFFF00FF00) at the top.

0xFFFFFFFFFF00FF00
0x0D010301167F107F

Function uses more than 16 KB of stack:

Severity	Code	Description	Project	File	Line	Suppression State	Details
Warning	C6262	Function uses '27592' bytes of stack.  Consider moving some data to heap.	MediaInfoLib	MediaInfo\Video\File_Hevc.cpp	1526		

Access violation and debug assertion failed + allocate memory error as in issues 2105 and 2108.


989 cases of uninitialized member variables remain which I do not feel like fixing 😅


Notable things flagged by level 3 warnings but not by Code analysis:

19x signed/unsigned mismatch
454x conversion from to , possible loss of data
318x conversion from 'size_t' to , possible loss of data
40x truncation from 'double' to 'float'
15x truncation of constant value

@JeromeMartinez
Copy link
Member

I think that is all I can/will do.

Thank you, very appreciated.
I am afk for a couple of days, I'll review and run regression tests when I am back to home.

989 cases of uninitialized member variables remain which I do not feel like fixing 😅

Another topic, when it is initialized but not in the constructor, only when I need, I need to refactor for having the constructor called when I need the value (and I initialize here) and not in advance, long term...

Notable things flagged by level 3 warnings but not by Code analysis

Definitely stuff I should care about, even if it is not impacting in practice it denotes a bad design somewhere in theory, I need to check that... when I have some free time :(.

@cjee21 cjee21 changed the title Fix issues flagged by Visual Studio Code analysis in MediaInfo_Inform/File_Mpeg4_Elements + fix misc warnings in others Fix Visual Studio Code analysis warnings Jan 31, 2025
@cjee21
Copy link
Contributor Author

cjee21 commented Jan 31, 2025

Cppcheck found more issues....

Most are similar to remaining ones from VS Code analysis as well as style-related that may or may not cause issues but some more significant ones are as below. Not sure if some may be false positives.

Out-of-bounds, portability and performance

[MediaInfoLib\Source\MediaInfo\Export\Export_Graph.cpp:143] -> [MediaInfoLib\Source\MediaInfo\Export\Export_Graph.cpp:143] -> [MediaInfoLib\Source\MediaInfo\Export\Export_Graph.cpp:143] -> [MediaInfoLib\Source\MediaInfo\Export\Export_Graph.cpp:144]: (error) Using pointer that is a temporary.
[MediaInfoLib\Source\MediaInfo\Multiple\File_MpegPs.h:223]: (error) valueFlowForwardConst: start token does not precede the end token.
[MediaInfoLib\Source\MediaInfo\Audio\File_DtsUhd.cpp:475]: (error) Invalid resize() argument nr 1. A non-boolean value is required.
[MediaInfoLib\Source\MediaInfo\Video\File_Ffv1.cpp:1465]: (error) Array 'sample[2]' accessed at index sample[*][-1], which is out of bounds.
[MediaInfoLib\Source\MediaInfo\Video\File_Ffv1.cpp:1516]: (error) Array 'sample[4][2]' accessed at index sample[*][*][-1], which is out of bounds.
[MediaInfoLib\Source\MediaInfo\Reader\Reader_libcurl.cpp:537] -> [MediaInfoLib\Source\MediaInfo\Reader\Reader_libcurl.cpp:537] -> [MediaInfoLib\Source\MediaInfo\Reader\Reader_libcurl.cpp:538] -> [MediaInfoLib\Source\MediaInfo\Reader\Reader_libcurl.cpp:537] -> [MediaInfoLib\Source\MediaInfo\Reader\Reader_libcurl.cpp:538]: (error) Using pointer that is a temporary.
[MediaInfoLib\Source\MediaInfo\MediaInfo_Config.cpp:702] -> [MediaInfoLib\Source\MediaInfo\MediaInfo_Config.cpp:666]: (warning) Either the condition 'Option_Lower.empty()' is redundant or expression 'Option_Lower.begin()+Egal_Pos' causes access out of bounds.
[MediaInfoLib\Source\ThirdParty\tinyxml2\tinyxml2.h:412]: (portability) %d in format string (no. 3) requires 'int' but the argument type is 'size_t {aka unsigned long long}'.
[MediaInfoLib\Source\ThirdParty\tinyxml2\tinyxml2.h:412]: (portability) %d in format string (no. 5) requires 'int' but the argument type is 'size_t {aka unsigned long long}'.
[MediaInfoLib\Source\MediaInfo\Audio\File_Dat.cpp:548]: (portability) Shifting signed 32-bit value by 31 bits is implementation-defined behaviour
[MediaInfoLib\Source\MediaInfo\Audio\File_Ac4.cpp:239]: (portability) Shifting signed 32-bit value by 31 bits is implementation-defined behaviour
[MediaInfoLib\Source\MediaInfo\Image\File_Jpeg.cpp:710] -> [MediaInfoLib\Source\MediaInfo\Image\File_Jpeg.cpp:712]: (portability) Shifting signed 32-bit value by 31 bits is implementation-defined behaviour
[MediaInfoLib\Source\MediaInfo\Multiple\File_DvDif_Analysis.cpp:1103]: (portability) Shifting signed 32-bit value by 31 bits is implementation-defined behaviour
[MediaInfoLib\Source\MediaInfo\Multiple\File_DvDif_Analysis.cpp:1147]: (portability) Shifting signed 32-bit value by 31 bits is implementation-defined behaviour
[MediaInfoLib\Source\MediaInfo\Audio\File_Aac.cpp:150]: (performance) Searching before insertion is not necessary. Instead of 'Infos[Info_AudioSpecificConfig->first]=Info_AudioSpecificConfig->second' consider using 'Infos.try_emplace(Info_AudioSpecificConfig->first, Info_AudioSpecificConfig->second);'.
[MediaInfoLib\Source\MediaInfo\Audio\File_Adm.cpp:107]: (performance) Function parameter 'v' should be passed by const reference.
[MediaInfoLib\Source\MediaInfo\Audio\File_Adm.cpp:6255]: (performance) Searching before insertion is not necessary.
[MediaInfoLib\Source\MediaInfo\Audio\File_Amr.cpp:65]: (performance) Variable 'Header_Size' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Amr.cpp:67]: (performance) Variable 'FrameType' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Pcm.h:39]: (performance) Variable 'Endianness' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Pcm.h:40]: (performance) Variable 'BitDepth' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Usac.cpp:1475]: (performance) Variable 'channelConfiguration' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Usac.cpp:1476]: (performance) Variable 'sampling_frequency_index' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Usac.cpp:1477]: (performance) Variable 'extension_sampling_frequency_index' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Usac.cpp:1478]: (performance) Variable 'IsParsingRaw' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Usac.cpp:1480]: (performance) Variable 'ProfileLevel' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Wvpk.cpp:116]: (performance) Variable 'Frame_Count_Valid' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Wvpk.cpp:121]: (performance) Variable 'total_samples_FirstFrame' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Wvpk.cpp:122]: (performance) Variable 'block_index_FirstFrame' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Wvpk.cpp:123]: (performance) Variable 'block_index_LastFrame' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Wvpk.cpp:124]: (performance) Variable 'SamplingRate_Index' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Wvpk.cpp:125]: (performance) Variable 'SamplingRate_Shift' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Wvpk.cpp:126]: (performance) Variable 'SamplingRate' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Wvpk.cpp:127]: (performance) Variable 'num_channels' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Audio\File_Wvpk.cpp:128]: (performance) Variable 'channel_mask' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Duplicate\File__Duplicate_MpegTs.h:78]: (performance) Variable 'continuity_counter' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Duplicate\File__Duplicate_MpegTs.h:79]: (performance) Variable 'version_number' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Duplicate\File__Duplicate_MpegTs.h:80]: (performance) Variable 'FromTS_version_number_Last' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\File__Analyze.h:189]: (performance) Variable 'Buffer_Offset_End' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\File__Analyze.h:190]: (performance) Variable 'PCR' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\File__Analyze.h:191]: (performance) Variable 'PTS' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\File__Analyze.h:192]: (performance) Variable 'DTS' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\File__Analyze.h:193]: (performance) Variable 'DUR' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Image\File_Ico.cpp:37]: (performance) Variable 'IcoDataSize' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\MediaInfo_Config.cpp:671]: (performance) Inefficient usage of string::find() in condition; string::starts_with() could be faster.
[MediaInfoLib\Source\MediaInfo\MediaInfo_Config_MediaInfo.cpp:1947]: (performance) Function parameter 'NewValue' should be passed by const reference.
[MediaInfoLib\Source\MediaInfo\MediaInfo_Config_MediaInfo.cpp:1218]: (performance) Inefficient usage of string::find() in condition; string::starts_with() could be faster.
[MediaInfoLib\Source\MediaInfo\MediaInfo_Config_MediaInfo.h:563]: (performance) Variable 'File_Name' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\MediaInfo_Internal.cpp:2461]: (performance) Inefficient usage of string::find() in condition; string::starts_with() could be faster.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DashMpd.cpp:140]: (performance) Variable 't' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DashMpd.cpp:141]: (performance) Variable 'd' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DashMpd.cpp:142]: (performance) Variable 'r' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DashMpd.cpp:151]: (performance) Variable 'BaseURL' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DashMpd.cpp:152]: (performance) Variable 'SourceDir' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DashMpd.cpp:153]: (performance) Variable 'duration' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DashMpd.cpp:154]: (performance) Variable 'startNumber' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DashMpd.cpp:155]: (performance) Variable 'duration_Max' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DashMpd.cpp:156]: (performance) Variable 'startNumber_Max' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DvDif.h:181]: (performance) Variable 'Value' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DvDif.h:182]: (performance) Variable 'Trust' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DvDif.h:255]: (performance) Variable 'Frames' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DvDif.h:256]: (performance) Variable 'Seconds' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DvDif.h:257]: (performance) Variable 'Minutes' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DvDif.h:258]: (performance) Variable 'Hours' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DvDif.h:338]: (performance) Variable 'FramePos' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DvDif.h:354]: (performance) Variable 'FramePos' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_DvDif.h:372]: (performance) Variable 'FramePos' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:612]: (performance) Variable 'hdlr_Type' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:613]: (performance) Variable 'hdlr_SubType' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:614]: (performance) Variable 'hdlr_Manufacturer' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:615]: (performance) Variable 'FramePos_Offset' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:616]: (performance) Variable 'stsz_StreamSize' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:617]: (performance) Variable 'stsz_MoreThan2_Count' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:618]: (performance) Variable 'stsz_Sample_Size' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:619]: (performance) Variable 'stsz_Sample_Multiplier' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:620]: (performance) Variable 'stsz_Sample_Count' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:621]: (performance) Variable 'tkhd_Duration' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:622]: (performance) Variable 'mdhd_TimeScale' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:623]: (performance) Variable 'mdhd_Duration' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:624]: (performance) Variable 'stts_Min' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:625]: (performance) Variable 'stts_Max' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:626]: (performance) Variable 'stts_FrameCount' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:627]: (performance) Variable 'stts_Duration' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:628]: (performance) Variable 'stts_Duration_FirstFrame' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:629]: (performance) Variable 'stts_Duration_LastFrame' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:630]: (performance) Variable 'stts_SampleDuration' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:631]: (performance) Variable 'FirstUsedOffset' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:632]: (performance) Variable 'LastUsedOffset' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:633]: (performance) Variable 'mvex_trex_default_sample_duration' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:634]: (performance) Variable 'mvex_trex_default_sample_size' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:635]: (performance) Variable 'TimeCode_TrackID' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:636]: (performance) Variable 'HasAtomStyle' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:653]: (performance) Variable 'CleanAperture_Width' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:654]: (performance) Variable 'CleanAperture_Height' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:655]: (performance) Variable 'CleanAperture_PixelAspectRatio' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:657]: (performance) Variable 'Demux_Level' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:658]: (performance) Variable 'Demux_Offset' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:660]: (performance) Variable 'stts_FramePos' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:665]: (performance) Variable 'CodecID' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mpeg4.h:670]: (performance) Variable 'default_sample_is_non_sync_sample_PresenceAndValue' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_MpegPs.h:57]: (performance) Variable 'DTS' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_MpegPs.h:243]: (performance) Variable 'stream_type' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_MpegPs.h:244]: (performance) Variable 'program_format_identifier' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_MpegPs.h:245]: (performance) Variable 'format_identifier' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_MpegPs.h:246]: (performance) Variable 'descriptor_tag' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_MpegPs.h:247]: (performance) Variable 'DVD_Identifier' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_MpegTs_Duplicate.cpp:184]: (performance) Searching before insertion is not necessary. Instead of 'Complete_Stream->Duplicates[**Target]=new File__Duplicate_MpegTs(**Target)' consider using 'Complete_Stream->Duplicates.try_emplace(**Target, new File__Duplicate_MpegTs(**Target));'.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.cpp:1901]: (performance) Variable 'OperationalPattern' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:774]: (performance) Variable 'Descriptor' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:795]: (performance) Variable 'Sequence' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:796]: (performance) Variable 'TrackID' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:797]: (performance) Variable 'TrackNumber' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:798]: (performance) Variable 'EditRate_Real' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:799]: (performance) Variable 'EditRate' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:800]: (performance) Variable 'Origin' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:837]: (performance) Variable 'Stream_Size' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:838]: (performance) Variable 'TrackID' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:844]: (performance) Variable 'Field_Count_InThisBlock_1' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:845]: (performance) Variable 'Field_Count_InThisBlock_2' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:846]: (performance) Variable 'Frame_Count_NotParsedIncluded' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:848]: (performance) Variable 'Trace_Count' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:850]: (performance) Variable 'ShouldCheckAvcHeaders' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:953]: (performance) Variable 'SampleRate' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:954]: (performance) Variable 'DisplayAspectRatio' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:961]: (performance) Variable 'LinkedTrackID' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:962]: (performance) Variable 'Width' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:963]: (performance) Variable 'Width_Display' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:964]: (performance) Variable 'Width_Display_Offset' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:965]: (performance) Variable 'Height' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:966]: (performance) Variable 'Height_Display' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:967]: (performance) Variable 'Height_Display_Offset' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:968]: (performance) Variable 'SubSampling_Horizontal' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:969]: (performance) Variable 'SubSampling_Vertical' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:970]: (performance) Variable 'MinRefLevel' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:971]: (performance) Variable 'MaxRefLevel' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:972]: (performance) Variable 'ColorRange' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:973]: (performance) Variable 'ChannelCount' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:976]: (performance) Variable 'BlockAlign' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:977]: (performance) Variable 'QuantizationBits' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:978]: (performance) Variable 'Duration' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:979]: (performance) Variable 'ActiveFormat' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:980]: (performance) Variable 'Jp2kContentKind' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:981]: (performance) Variable 'FieldTopness' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:982]: (performance) Variable 'FieldDominance' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:987]: (performance) Variable 'ByteRate' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:989]: (performance) Variable 'Jpeg2000_Rsiz' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1003]: (performance) Variable 'SID' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1038]: (performance) Variable 'LinkedTrackID' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1063]: (performance) Variable 'Duration' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1064]: (performance) Variable 'SourceTrackID' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1101]: (performance) Variable 'Duration' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1194]: (performance) Variable 'AudioTrackLayout' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1195]: (performance) Variable 'ClosedCaptionsPresent' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1196]: (performance) Variable 'ClosedCaptionsType' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1197]: (performance) Variable 'ShimVersion_Major' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1198]: (performance) Variable 'ShimVersion_Minor' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1199]: (performance) Variable 'PartNumber' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1200]: (performance) Variable 'PartTotal' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1201]: (performance) Variable 'CopyrightYear' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1202]: (performance) Variable 'PictureRatio_N' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1203]: (performance) Variable 'PictureRatio_D' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1204]: (performance) Variable 'ThreeD' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1205]: (performance) Variable 'ThreeDType' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1206]: (performance) Variable 'ProductPlacement' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1207]: (performance) Variable 'AudioLoudnessStandard' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1208]: (performance) Variable 'LineUpStart' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1209]: (performance) Variable 'IdentClockStart' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1210]: (performance) Variable 'TotalNumberOfParts' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1211]: (performance) Variable 'TotalProgrammeDuration' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1212]: (performance) Variable 'AudioDescriptionPresent' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1213]: (performance) Variable 'AudioDescriptionType' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1214]: (performance) Variable 'OpenCaptionsPresent' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1215]: (performance) Variable 'OpenCaptionsType' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1216]: (performance) Variable 'SigningPresent' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1217]: (performance) Variable 'SignLanguage' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1218]: (performance) Variable 'CompletionDate' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1219]: (performance) Variable 'TextlessElementsExist' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1220]: (performance) Variable 'ProgrammeHasText' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1221]: (performance) Variable 'FpaPass' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1359]: (performance) Variable 'StreamOffset' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1360]: (performance) Variable 'PartitionPackByteCount' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1361]: (performance) Variable 'FooterPartition' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1362]: (performance) Variable 'HeaderByteCount' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1363]: (performance) Variable 'IndexByteCount' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1364]: (performance) Variable 'BodyOffset' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1365]: (performance) Variable 'BodySID' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1480]: (performance) Variable 'StreamOffset' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1481]: (performance) Variable 'IndexStartPosition' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1482]: (performance) Variable 'IndexDuration' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1483]: (performance) Variable 'EditUnitByteCount' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Mxf.h:1484]: (performance) Variable 'IndexEditRate' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Ogg.cpp:47]: (performance) Variable 'StreamsToDo' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Ogg.cpp:52]: (performance) Variable 'packet_type' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Ogg.h:78]: (performance) Variable 'absolute_granule_position' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Ogg.h:79]: (performance) Variable 'absolute_granule_position_Resolution' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Riff.h:98]: (performance) Variable 'fccType' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Riff.h:99]: (performance) Variable 'fccHandler' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Riff.h:100]: (performance) Variable 'Scale' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Riff.h:101]: (performance) Variable 'Rate' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Riff.h:102]: (performance) Variable 'Start' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Riff.h:103]: (performance) Variable 'Length' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Riff.h:104]: (performance) Variable 'Compression' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Riff.h:107]: (performance) Variable 'AvgBytesPerSec' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Riff.h:110]: (performance) Variable 'StreamSize' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Riff.h:111]: (performance) Variable 'indx_Duration' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Rm.cpp:372]: (performance) Inefficient usage of string::find() in condition; string::starts_with() could be faster.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Rm.cpp:385]: (performance) Inefficient usage of string::find() in condition; string::starts_with() could be faster.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Rm.cpp:389]: (performance) Inefficient usage of string::find() in condition; string::starts_with() could be faster.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Swf.cpp:285]: (performance) Variable 'Frame_Count_Valid' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Swf.cpp:286]: (performance) Variable 'FileLength' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Swf.cpp:287]: (performance) Variable 'Version' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Umf.cpp:40]: (performance) Variable 'GopSize' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Wm.cpp:65]: (performance) Variable 'MaximumDataPacketSize' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Wm.cpp:66]: (performance) Variable 'Header_ExtendedContentDescription_AspectRatioX' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Wm.cpp:67]: (performance) Variable 'Header_ExtendedContentDescription_AspectRatioY' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Wm.cpp:68]: (performance) Variable 'SizeOfMediaObject_BytesAlreadyParsed' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Wm.cpp:69]: (performance) Variable 'FileProperties_Preroll' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Wm.cpp:71]: (performance) Variable 'Stream_Number' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Wm.cpp:72]: (performance) Variable 'Data_Parse_Padding' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Wm.cpp:73]: (performance) Variable 'NumberPayloads' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Wm.cpp:74]: (performance) Variable 'NumberPayloads_Pos' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Wm.h:120]: (performance) Variable 'AverageTimePerFrame' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Wm.h:121]: (performance) Variable 'AverageBitRate' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Wm.h:122]: (performance) Variable 'LanguageID' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File_Wm.h:125]: (performance) Variable 'TimeCode_First' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Multiple\File__ReferenceFilesHelper_Sequence.cpp:36]: (performance) Variable 'StreamID' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Reader\Reader_libcurl.cpp:507]: (performance) Inefficient usage of string::find() in condition; string::starts_with() could be faster.
[MediaInfoLib\Source\MediaInfo\Reader\Reader_libcurl.cpp:543]: (performance) Inefficient usage of string::find() in condition; string::starts_with() could be faster.
[MediaInfoLib\Source\MediaInfo\Reader\Reader_libcurl.cpp:386]: (performance) Variable 'FileSize' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Reader\Reader_libcurl.cpp:387]: (performance) Variable 'FileOffset' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Reader\Reader_libcurl.cpp:403]: (performance) Variable 'Time_Max' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Reader\Reader_libcurl.cpp:88]: (performance) Ineffective call of function 'substr' because a prefix of the string is assigned to itself. Use resize() or pop_back() instead.
[MediaInfoLib\Source\MediaInfo\Tag\File_Id3v2.cpp:305]: (performance) Variable 'Id3v2_Size' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Tag\File_Lyrics3.cpp:39]: (performance) Variable 'TotalSize' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Tag\File_Lyrics3v2.cpp:57]: (performance) Variable 'TotalSize' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Tag\File__Tags.cpp:53]: (performance) Variable 'TagsSize' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Tag\File__Tags.cpp:54]: (performance) Variable 'File_BeginTagSize' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Tag\File__Tags.cpp:55]: (performance) Variable 'File_EndTagSize' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Tag\File__Tags.cpp:59]: (performance) Variable 'Id3v1_Offset' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Tag\File__Tags.cpp:60]: (performance) Variable 'Lyrics3_Offset' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Tag\File__Tags.cpp:61]: (performance) Variable 'Lyrics3v2_Offset' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Tag\File__Tags.cpp:62]: (performance) Variable 'ApeTag_Offset' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Tag\File__Tags.cpp:63]: (performance) Variable 'JumpTo_WantedByParser' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Tag\File__Tags.cpp:64]: (performance) Variable 'Id3v1_Size' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Tag\File__Tags.cpp:65]: (performance) Variable 'Lyrics3_Size' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Tag\File__Tags.cpp:66]: (performance) Variable 'Lyrics3v2_Size' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Tag\File__Tags.cpp:67]: (performance) Variable 'ApeTag_Size' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia608.h:147]: (performance) Variable 'Attribute_Current' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia608.h:152]: (performance) Variable 'Count_PopOn' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia608.h:153]: (performance) Variable 'Count_RollUp' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia608.h:155]: (performance) Variable 'LineCount' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia608.h:156]: (performance) Variable 'LineMaxCountPerEvent' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia608.h:158]: (performance) Variable 'FirstDisplay_Delay_Type' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia608.h:160]: (performance) Variable 'Duration_Start_Command' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia608.h:161]: (performance) Variable 'Duration_Start' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia608.h:162]: (performance) Variable 'Duration_End' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia608.h:163]: (performance) Variable 'Duration_End_Command' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia708.h:102]: (performance) Variable 'Window_x' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia708.h:103]: (performance) Variable 'Window_y' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia708.h:104]: (performance) Variable 'x' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia708.h:105]: (performance) Variable 'y' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia708.h:115]: (performance) Variable 'row_count' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia708.h:116]: (performance) Variable 'column_count' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia708.h:118]: (performance) Variable 'anchor_vertical' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia708.h:119]: (performance) Variable 'anchor_horizontal' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia708.h:120]: (performance) Variable 'PenSize' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Text\File_Eia708.h:135]: (performance) Variable 'WindowID' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Video\File_Avc.cpp:3525]: (performance) Inefficient usage of string::find() in condition; string::starts_with() could be faster.
[MediaInfoLib\Source\MediaInfo\Video\File_Avc.cpp:4973]: (performance) Inefficient usage of string::find() in condition; string::starts_with() could be faster.
[MediaInfoLib\Source\MediaInfo\Video\File_Avc.cpp:4975]: (performance) Inefficient usage of string::find() in condition; string::starts_with() could be faster.
[MediaInfoLib\Source\MediaInfo\Video\File_Avc.h:159]: (performance) Variable 'SchedSel' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Video\File_Avc.h:160]: (performance) Variable 'initial_cpb_removal_delay_length_minus1' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Video\File_Avc.h:161]: (performance) Variable 'cpb_removal_delay_length_minus1' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Video\File_Avc.h:162]: (performance) Variable 'dpb_output_delay_length_minus1' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Video\File_Avc.h:163]: (performance) Variable 'time_offset_length' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Video\File_Avc.h:494]: (performance) Variable 'slice_type' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Video\File_AvsV.cpp:175]: (performance) Variable 'Frame_Count_Valid' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Video\File_Dirac.cpp:412]: (performance) Variable 'Frame_Count_Valid' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Video\File_Hevc.cpp:3520]: (performance) Inefficient usage of string::find() in condition; string::starts_with() could be faster.
[MediaInfoLib\Source\MediaInfo\Video\File_Hevc.h:451]: (performance) Variable 'slice_type' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Video\File_Mpeg4v.cpp:1373]: (performance) Inefficient usage of string::find() in condition; string::starts_with() could be faster.
[MediaInfoLib\Source\MediaInfo\Video\File_Mpegv.h:138]: (performance) Variable 'picture_coding_type' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Video\File_Mpegv.h:139]: (performance) Variable 'picture_structure' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Video\File_Vc3.cpp:439]: (performance) Variable 'Frame_Count_Valid' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Video\File_Vc3.cpp:440]: (performance) Variable 'FrameRate' is assigned in constructor body. Consider performing initialization in initialization list.
[MediaInfoLib\Source\MediaInfo\Video\File_Vc3.cpp:448]: (performance) Variable 'FFC_FirstFrame' is assigned in constructor body. Consider performing initialization in initialization list.

@cjee21 cjee21 changed the title Fix Visual Studio Code analysis warnings Fix Visual Studio Code analysis warnings + some other issues Feb 2, 2025
@cjee21
Copy link
Contributor Author

cjee21 commented Feb 2, 2025

Dead code block detected:

for (int32u stRpsIdx=0; stRpsIdx<num_short_term_ref_pic_sets; stRpsIdx++)
{
Element_Begin1("short_term_ref_pic_set");
bool inter_ref_pic_set_prediction_flag=false;
if (stRpsIdx)
Get_SB (inter_ref_pic_set_prediction_flag, "inter_ref_pic_set_prediction_flag");
if (inter_ref_pic_set_prediction_flag)
{
int32u delta_idx_minus1=0, abs_delta_rps_minus1;
bool delta_rps_sign;
if (stRpsIdx==num_short_term_ref_pic_sets)
Get_UE (delta_idx_minus1, "delta_idx_minus1");

Get_UE (delta_idx_minus1, "delta_idx_minus1"); will never be executed since stRpsIdx==num_short_term_ref_pic_sets will never be true due to stRpsIdx<num_short_term_ref_pic_sets condition for the entire block.

@cjee21
Copy link
Contributor Author

cjee21 commented Feb 2, 2025

FYI some Id: unknownEvaluationOrder CWE: 768 errors detected by Cppcheck are already fixed upstream (BrianGladman/aes@8798ad8) but not in MediaInfoLib's repo copy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants