2016-07-19 26 views
0

Ich lese Video Usability Informationen und es ist korrekt für alle 29.97fps Dateien, aber für eine 25fps Datei bekomme ich falsche Werte.Warum bekomme ich beim Lesen von VUI ungültige num_units_in_tick und time_scale?

Für die num_units_in_tick I 771 erhalten und für die time_scale ich 3892314307.

Der Standard macht keinen Unterschied in Bezug auf die fps:

if(timing_info_present_flag) 
{ 
    num_units_in_tick     u (32) 
    time_scale       u (32) 
    fixed_frame_rate_flag    u (1) 
} 

Warum bin ich in der Lage korrekte Werte aus einer Datei zu lesen, aber nicht von dem anderen?

Edit: NALU:

 
00 00 00 01 67 64 00 28 AD 84 3F FF C2 1F FF E1 
0F FF F0 87 FF F8 43 FF FC 21 FF FE 10 FF FF FF 
FF FF FF FF FF 08 7F FF FF FF FF FF FF FF 2C C5 
01 E0 11 3F 78 0A 10 10 10 1F 00 00 03 03 E8 00 
00 C3 50 94

Antwort

0

Das Problem ist in der emulation byte. Wenn wir einen Blick auf die letzten 10 Bytes nehmen, haben wir:

00 00 03 03 E8 00 00 C3 50 94

Der erste 03 ist ein Emulationsverhinderungs Byte und es sollte übersprungen werden. Dann haben wir num_units_in_tick = 1000 und time_scale = 50000.