MCPcopy Create free account
hub / github.com/MediaArea/MediaInfoLib / Open_Buffer_Continue

Method Open_Buffer_Continue

Source/MediaInfo/File__Analyze.cpp:947–1350  ·  view source on GitHub ↗

MEDIAINFO_TRACE ---------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

945#endif // MEDIAINFO_TRACE
946//---------------------------------------------------------------------------
947void File__Analyze::Open_Buffer_Continue (const int8u* ToAdd, size_t ToAdd_Size)
948{
949 //Deleyed events
950 #if MEDIAINFO_DEMUX
951 if (Config->Events_Delayed_CurrentSource)
952 {
953 File__Analyze* Temp=Config->Events_Delayed_CurrentSource;
954 Config->Events_Delayed_CurrentSource=NULL;
955 Config->Event_Accepted(Temp);
956 if (Config->Events_Delayed_CurrentSource)
957 return;
958 }
959 #endif //MEDIAINFO_DEMUX
960
961 if (ToAdd_Size)
962 {
963 Frame_Count_InThisBlock=0;
964 Field_Count_InThisBlock=0;
965 }
966
967 //Hash
968 #if MEDIAINFO_HASH
969 if (ToAdd_Size)
970 {
971 if (!IsSub && !Buffer_Temp_Size && File_Offset==Config->File_Current_Offset && Config->File_Hash_Get().to_ulong())
972 {
973 delete Hash; Hash=new HashWrapper(Config->File_Hash_Get().to_ulong());
974 }
975 if (Hash)
976 {
977 if (File_Offset+Buffer_Size==Hash_Offset)
978 {
979 Hash->Update(ToAdd, ToAdd_Size);
980 Hash_Offset+=ToAdd_Size;
981 }
982 else if (Hash_Offset>File_Offset+Buffer_Size && Hash_Offset<File_Offset+Buffer_Size+ToAdd_Size)
983 {
984 size_t ToAdd_ToHashSize=(size_t)(File_Offset+Buffer_Size+ToAdd_Size-Hash_Offset);
985 Hash->Update(ToAdd+ToAdd_Size-ToAdd_ToHashSize, ToAdd_ToHashSize);
986 Hash_Offset+=ToAdd_ToHashSize;
987 }
988 }
989 }
990 #endif //MEDIAINFO_HASH
991
992 //AES
993 #if MEDIAINFO_AES
994 if (ToAdd_Size)
995 {
996 if (!IsSub && !Buffer_Temp_Size && File_Offset==Config->File_Current_Offset
997 && Config->Encryption_Format_Get()==Encryption_Format_Aes
998 && Config->Encryption_Key_Get().size()==16
999 && Config->Encryption_Method_Get()==Encryption_Method_Segment
1000 && Config->Encryption_Mode_Get()==Encryption_Mode_Cbc
1001 && Config->Encryption_Padding_Get()==Encryption_Padding_Pkcs7
1002 && Config->Encryption_InitializationVector_Get()=="Sequence number")
1003 {
1004 delete AES; AES=new AESdecrypt;

Callers

nothing calls this directly

Calls 15

Event_AcceptedMethod · 0.80
File_Hash_GetMethod · 0.80
Encryption_Format_GetMethod · 0.80
Encryption_Key_GetMethod · 0.80
Encryption_Method_GetMethod · 0.80
Encryption_Mode_GetMethod · 0.80
cbc_decryptMethod · 0.80
State_SetMethod · 0.80
File_IsSeekable_GetMethod · 0.80
push_backMethod · 0.80

Tested by

no test coverage detected