MCPcopy Create free account
hub / github.com/FFMS/ffms2 / ReadFrame

Function ReadFrame

src/core/track.cpp:38–56  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

36
37namespace {
38FrameInfo ReadFrame(ZipFile &stream, FrameInfo const& prev, const FFMS_TrackType TT) {
39 FrameInfo f{};
40 f.PTS = stream.Read<int64_t>() + prev.PTS;
41 f.OriginalPTS = stream.Read<int64_t>() + prev.OriginalPTS;
42 f.KeyFrame = !!stream.Read<int8_t>();
43 f.FilePos = stream.Read<int64_t>() + prev.FilePos;
44 f.MarkedHidden = !!stream.Read<int8_t>();
45
46 if (TT == FFMS_TYPE_AUDIO) {
47 f.SampleStart = prev.SampleStart + prev.SampleCount;
48 f.SampleCount = stream.Read<uint32_t>() + prev.SampleCount;
49 } else if (TT == FFMS_TYPE_VIDEO) {
50 f.OriginalPos = static_cast<size_t>(stream.Read<uint64_t>() + prev.OriginalPos + 1);
51 f.PosInDecodingOrder = static_cast<size_t>(stream.Read<uint64_t>() + prev.PosInDecodingOrder + 1);
52 f.RepeatPict = stream.Read<int32_t>();
53 f.SecondField = !!stream.Read<int8_t>();
54 }
55 return f;
56}
57
58static void WriteFrame(ZipFile &stream, FrameInfo const& f, FrameInfo const& prev, const FFMS_TrackType TT) {
59 stream.Write(f.PTS - prev.PTS);

Callers 1

FFMS_TrackMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected