Lines Matching refs:video
54 /** A video packet with an XMV file. */
57 int stream_index; ///< The decoder stream index for this video packet.
59 uint32_t data_size; ///< The size of the remaining video data.
60 uint64_t data_offset; ///< The offset of the video data within the file.
62 uint32_t current_frame; ///< The current frame within this video packet.
63 uint32_t frame_count; ///< The amount of frames within this video packet.
65 int has_extradata; ///< Does the video packet contain extra data?
68 int64_t last_pts; ///< PTS of the last video frame.
69 int64_t pts; ///< PTS of the most current video frame.
114 XMVVideoPacket video; ///< The video packet contained in each packet.
272 /* Packet video header */
277 xmv->video.data_size = AV_RL32(data) & 0x007FFFFF;
279 xmv->video.current_frame = 0;
280 xmv->video.frame_count = (AV_RL32(data) >> 23) & 0xFF;
282 xmv->video.has_extradata = (data[3] & 0x80) != 0;
284 if (!xmv->video.created) {
299 xmv->video.stream_index = vst->index;
301 xmv->video.created = 1;
304 /* Adding the audio data sizes and the video data size keeps you 4 bytes
309 * audio track from the video data works at least for the audio. Probably
311 * The video data has (always?) lots of padding, so it should work out...
313 xmv->video.data_size -= xmv->audio_track_count * 4;
316 if (!xmv->video.frame_count) {
317 xmv->video.frame_count = 1;
362 packet->frame_size = packet->data_size / xmv->video.frame_count;
370 xmv->video.data_offset = data_offset;
371 data_offset += xmv->video.data_size;
380 /* Read new video extra data */
381 if (xmv->video.data_size > 0) {
382 if (xmv->video.has_extradata) {
383 xmv_read_extradata(xmv->video.extradata, pb);
385 xmv->video.data_size -= 4;
386 xmv->video.data_offset += 4;
388 if (xmv->video.stream_index >= 0) {
389 AVStream *vst = s->streams[xmv->video.stream_index];
391 av_assert0(xmv->video.stream_index < s->nb_streams);
398 memcpy(vst->codecpar->extradata, xmv->video.extradata, 4);
451 if ((xmv->video.current_frame + 1) < xmv->video.frame_count)
487 XMVVideoPacket *video = &xmv->video;
495 if (avio_seek(pb, video->data_offset, SEEK_SET) != video->data_offset)
504 if ((frame_size + 4) > video->data_size)
512 /* Contrary to normal WMV2 video, the bit stream in XMV's
519 pkt->stream_index = video->stream_index;
523 video->last_pts = frame_timestamp + video->pts;
526 pkt->pts = video->last_pts;
529 video->pts += frame_timestamp;
535 video->data_size -= frame_size + 4;
536 video->data_offset += frame_size + 4;
547 if (xmv->video.current_frame == xmv->video.frame_count) {
556 /* Fetch a video frame */
566 xmv->video.current_frame = xmv->video.frame_count;
574 xmv->video.current_frame += 1;