| 56 | } |
| 57 | |
| 58 | static void WriteFrame(ZipFile &stream, FrameInfo const& f, FrameInfo const& prev, const FFMS_TrackType TT) { |
| 59 | stream.Write(f.PTS - prev.PTS); |
| 60 | stream.Write(f.OriginalPTS - prev.OriginalPTS); |
| 61 | stream.Write<int8_t>(f.KeyFrame); |
| 62 | stream.Write(f.FilePos - prev.FilePos); |
| 63 | stream.Write<uint8_t>(f.MarkedHidden); |
| 64 | |
| 65 | if (TT == FFMS_TYPE_AUDIO) |
| 66 | stream.Write(f.SampleCount - prev.SampleCount); |
| 67 | else if (TT == FFMS_TYPE_VIDEO) { |
| 68 | stream.Write(static_cast<uint64_t>(f.OriginalPos) - prev.OriginalPos - 1); |
| 69 | stream.Write(static_cast<uint64_t>(f.PosInDecodingOrder) - prev.PosInDecodingOrder - 1); |
| 70 | stream.Write<int32_t>(f.RepeatPict); |
| 71 | stream.Write<uint8_t>(f.SecondField); |
| 72 | } |
| 73 | } |
| 74 | } |
| 75 | |
| 76 | FFMS_Track::FFMS_Track() |