File tree Expand file tree Collapse file tree 2 files changed +24
-2
lines changed
Expand file tree Collapse file tree 2 files changed +24
-2
lines changed Original file line number Diff line number Diff line change @@ -184,7 +184,13 @@ bool File_Mz::FileHeader_Begin()
184184void File_Mz::Read_Buffer_Continue ()
185185{
186186 if (rsrc_offset) {
187- Parse_Resources ();
187+ Parse_Resources ();
188+
189+ Finish (" MZ" );
190+ return ;
191+ }
192+ if (sbat_offset) {
193+ Parse_SBAT ();
188194
189195 Finish (" MZ" );
190196 return ;
@@ -333,6 +339,10 @@ void File_Mz::Read_Buffer_Continue()
333339 rsrc_virtual_addr = VirtualAddress;
334340 rsrc_offset = PointerToRawData;
335341 }
342+ if (Name == 0x2E73626174000000 ) { // .sbat
343+ sbat_offset = PointerToRawData;
344+ sbat_size = VirtualSize;
345+ }
336346 Element_End0 ();
337347 }
338348 }
@@ -368,7 +378,9 @@ void File_Mz::Read_Buffer_Continue()
368378 if (rsrc_offset) {
369379 GoTo (rsrc_offset);
370380 }
371- else {
381+ else if (sbat_offset) {
382+ GoTo (sbat_offset);
383+ } else {
372384 // No more need data
373385 Finish (" MZ" );
374386 }
@@ -551,6 +563,13 @@ bool File_Mz::Parse_StringFileInfo(int8u level) {
551563 return true ;
552564}
553565
566+ // ---------------------------------------------------------------------------
567+ void File_Mz::Parse_SBAT () {
568+ Ztring sbat;
569+ Get_UTF8 (sbat_size, sbat, " SBAT" );
570+ Fill (Stream_General, 0 , " SBAT" , sbat);
571+ }
572+
554573} // NameSpace
555574
556575#endif // MEDIAINFO_MZ_YES
Original file line number Diff line number Diff line change @@ -37,11 +37,14 @@ protected :
3737
3838 void Parse_Resources ();
3939 bool Parse_StringFileInfo (int8u level = 0 );
40+ void Parse_SBAT ();
4041
4142 // Temp
4243 int32u rsrc_size{};
4344 int32u rsrc_virtual_addr{};
4445 int32u rsrc_offset{};
46+ int32u sbat_offset{};
47+ int32u sbat_size{};
4548 map<int32u, Ztring> Named_Resource;
4649 map<int32u, int32u> Resource;
4750};
You can’t perform that action at this time.
0 commit comments