| 113 | } |
| 114 | |
| 115 | void FFMS_Track::Write(ZipFile &stream) const { |
| 116 | frame_vec &Frames = Data->Frames; |
| 117 | stream.Write<uint8_t>(TT); |
| 118 | stream.Write(TB.Num); |
| 119 | stream.Write(TB.Den); |
| 120 | stream.Write<int64_t>(LastDuration); |
| 121 | stream.Write<int32_t>(MaxBFrames); |
| 122 | stream.Write<uint8_t>(UseDTS); |
| 123 | stream.Write<uint8_t>(HasTS); |
| 124 | stream.Write<uint8_t>(HasDiscontTS); |
| 125 | stream.Write<uint64_t>(size()); |
| 126 | |
| 127 | if (empty()) return; |
| 128 | |
| 129 | FrameInfo temp{}; |
| 130 | for (size_t i = 0; i < size(); ++i) |
| 131 | WriteFrame(stream, Frames[i], i == 0 ? temp : Frames[i - 1], TT); |
| 132 | } |
| 133 | |
| 134 | void FFMS_Track::AddVideoFrame(int64_t PTS, int64_t DTS, int RepeatPict, bool KeyFrame, int FrameType, int64_t FilePos, bool MarkedHidden, bool SecondField) { |
| 135 | Data->Frames.push_back({ PTS, 0, FilePos, 0, 0, 0, 0, FrameType, RepeatPict, KeyFrame, MarkedHidden, SecondField, DTS }); |
no test coverage detected