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

Method Format_Test_PerParser

Source/MediaInfo/Reader/Reader_File.cpp:227–306  ·  view source on GitHub ↗

---------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

225
226//---------------------------------------------------------------------------
227size_t Reader_File::Format_Test_PerParser(MediaInfo_Internal* MI, const String &File_Name)
228{
229 //Init
230 MI_Internal=MI;
231 #if MEDIAINFO_READTHREAD
232 ThreadInstance=NULL;
233 Buffer_End2=0; //Is also used for counting bytes before activating the thread
234 #endif //MEDIAINFO_READTHREAD
235
236 //Opening the file
237 F.Open(File_Name);
238 if (!F.Opened_Get())
239 return 0;
240
241 //Info
242 Status=0;
243 MI->Config.File_Size=F.Size_Get();
244 MI->Config.File_Current_Offset=0;
245 MI->Config.File_Current_Size=MI->Config.File_Size;
246 MI->Config.File_Sizes.clear();
247 MI->Config.File_Sizes.push_back(MI->Config.File_Size);
248 MI->Config.File_Names_Pos=1;
249 if (MI->Config.File_Names.size()>1)
250 {
251 #if MEDIAINFO_ADVANCED
252 if (MI->Config.File_IgnoreSequenceFileSize_Get())
253 {
254 MI->Config.File_Size=(int64u)-1;
255 }
256 else
257 #endif //MEDIAINFO_ADVANCED
258 {
259 for (size_t Pos=1; Pos<MI->Config.File_Names.size(); Pos++)
260 {
261 int64u Size=File::Size_Get(MI->Config.File_Names[Pos]);
262 MI->Config.File_Sizes.push_back(Size);
263 MI->Config.File_Size+=Size;
264 }
265 }
266 }
267
268 //Partial file handling
269 Ztring Config_Partial_Begin=MI->Config.File_Partial_Begin_Get();
270 if (!Config_Partial_Begin.empty() && Config_Partial_Begin[0]>=__T('0') && Config_Partial_Begin[0]<=__T('9'))
271 {
272 if (Config_Partial_Begin.find(__T('%'))==Config_Partial_Begin.size()-1)
273 Partial_Begin=float64_int64s(MI->Config.File_Size*Config_Partial_Begin.To_float64()/100);
274 else
275 Partial_Begin=Config_Partial_Begin.To_int64u();
276 if (Partial_Begin)
277 F.GoTo(Partial_Begin);
278 }
279 else
280 Partial_Begin=0;
281 Ztring Config_Partial_End=MI->Config.File_Partial_End_Get();
282 if (!Config_Partial_End.empty() && Config_Partial_End[0]>=__T('0') && Config_Partial_End[0]<=__T('9'))
283 {
284 if (Config_Partial_End.find(__T('%'))==Config_Partial_End.size()-1)

Callers 1

ListFormatsMethod · 0.45

Calls 11

push_backMethod · 0.80
File_Partial_End_GetMethod · 0.80
OpenMethod · 0.65
Open_Buffer_InitMethod · 0.65
OptionMethod · 0.65
clearMethod · 0.45
sizeMethod · 0.45
emptyMethod · 0.45
GoToMethod · 0.45

Tested by

no test coverage detected