syntax = "proto3"; // Used as header before each frame in a .frames file: // // 1. "Ftbifrm0" (8 bytes, ASCII -- note that no byte repeats) // 2. Length of upcoming FrameHeaderProto (uint32, binary, big endian) // 3. The FrameHeaderProto itself // 4. The actual frame message FrameHeaderProto { int32 stream_idx = 1; int64 pts = 2; int64 file_size = 3; // In bytes of compressed frame. TODO: rename to size. int32 audio_size = 4; // In bytes of uncompressed 32-bit 48kHz stereo PCM. Can be zero. } message StreamContentsProto { int32 stream_idx = 1; repeated int64 pts = 2 [packed=true]; repeated int64 file_size = 3 [packed=true]; repeated int64 offset = 4 [packed=true]; repeated int32 audio_size = 5 [packed=true]; } message FileContentsProto { repeated StreamContentsProto stream = 1; // Typically only one. }