38 #define XMV_MIN_HEADER_SIZE 36
41 #define XMV_AUDIO_ADPCM51_FRONTLEFTRIGHT 1
43 #define XMV_AUDIO_ADPCM51_FRONTCENTERLOW 2
45 #define XMV_AUDIO_ADPCM51_REARLEFTRIGHT 4
48 #define XMV_AUDIO_ADPCM51 (XMV_AUDIO_ADPCM51_FRONTLEFTRIGHT | \
49 XMV_AUDIO_ADPCM51_FRONTCENTERLOW | \
50 XMV_AUDIO_ADPCM51_REARLEFTRIGHT)
112 uint32_t file_version;
118 if ((file_version == 0) || (file_version > 4))
121 if (!memcmp(p->
buf + 12,
"xobX", 4))
142 uint32_t file_version;
143 uint32_t this_packet_size;
144 uint16_t audio_track;
155 if ((file_version != 4) && (file_version != 2))
221 "(0x%04X)\n", packet->
flags);
272 int mspel_bit = !!(data & 0x01);
274 int abt_flag = !!(data & 0x04);
275 int j_type_bit = !!(data & 0x08);
276 int top_left_mv_flag = !!(data & 0x10);
277 int per_mb_rl_bit = !!(data & 0x20);
278 int slice_count = (data >> 6) & 7;
284 data |= mspel_bit << 15;
285 data |= loop_filter << 14;
286 data |= abt_flag << 13;
287 data |= j_type_bit << 12;
288 data |= top_left_mv_flag << 11;
289 data |= per_mb_rl_bit << 10;
290 data |= slice_count << 7;
301 uint16_t audio_track;
302 uint64_t data_offset;
345 if ((packet->
data_size == 0) && (audio_track != 0))
439 uint32_t block_count;
496 frame_size = (frame_header & 0x1FFFF) * 4 + 4;
497 frame_timestamp = (frame_header >> 17);
504 if (result != frame_size)
511 for (data = pkt->
data, end = pkt->
data + frame_size; data < end; data += 4)
524 video->
pts += frame_timestamp;