Lines Matching refs:xmv

137     XMVDemuxContext *xmv = s->priv_data;
139 av_freep(&xmv->audio);
146 XMVDemuxContext *xmv = s->priv_data;
168 xmv->video_width = avio_rl32(pb);
169 xmv->video_height = avio_rl32(pb);
170 xmv->video_duration = avio_rl32(pb);
174 xmv->audio_track_count = avio_rl16(pb);
178 xmv->audio = av_calloc(xmv->audio_track_count, sizeof(*xmv->audio));
179 if (!xmv->audio)
182 for (audio_track = 0; audio_track < xmv->audio_track_count; audio_track++) {
183 XMVAudioPacket *packet = &xmv->audio[audio_track];
221 xmv->next_packet_offset = avio_tell(pb);
222 if (this_packet_size < xmv->next_packet_offset)
224 xmv->next_packet_size = this_packet_size - xmv->next_packet_offset;
225 xmv->stream_count = xmv->audio_track_count + 1;
261 XMVDemuxContext *xmv = s->priv_data;
270 xmv->next_packet_size = avio_rl32(pb);
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) {
294 vst->codecpar->width = xmv->video_width;
295 vst->codecpar->height = xmv->video_height;
297 vst->duration = xmv->video_duration;
299 xmv->video.stream_index = vst->index;
301 xmv->video.created = 1;
313 xmv->video.data_size -= xmv->audio_track_count * 4;
315 xmv->current_stream = 0;
316 if (!xmv->video.frame_count) {
317 xmv->video.frame_count = 1;
318 xmv->current_stream = xmv->stream_count > 1;
323 for (audio_track = 0; audio_track < xmv->audio_track_count; audio_track++) {
324 XMVAudioPacket *packet = &xmv->audio[audio_track];
347 ast->duration = xmv->video_duration;
359 packet->data_size = xmv->audio[audio_track - 1].data_size;
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;
373 for (audio_track = 0; audio_track < xmv->audio_track_count; audio_track++) {
374 xmv->audio[audio_track].data_offset = data_offset;
375 data_offset += xmv->audio[audio_track].data_size;
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);
408 XMVDemuxContext *xmv = s->priv_data;
412 if (xmv->this_packet_offset == xmv->next_packet_offset)
416 xmv->this_packet_offset = xmv->next_packet_offset;
417 if (avio_seek(pb, xmv->this_packet_offset, SEEK_SET) != xmv->this_packet_offset)
421 xmv->this_packet_size = xmv->next_packet_size;
422 if (xmv->this_packet_size < (12 + xmv->audio_track_count * 4))
431 xmv->next_packet_offset = xmv->this_packet_offset + xmv->this_packet_size;
439 XMVDemuxContext *xmv = s->priv_data;
441 XMVAudioPacket *audio = &xmv->audio[stream];
451 if ((xmv->video.current_frame + 1) < xmv->video.frame_count)
485 XMVDemuxContext *xmv = s->priv_data;
487 XMVVideoPacket *video = &xmv->video;
544 XMVDemuxContext *xmv = s->priv_data;
547 if (xmv->video.current_frame == xmv->video.frame_count) {
555 if (xmv->current_stream == 0) {
562 result = xmv_fetch_audio_packet(s, pkt, xmv->current_stream - 1);
565 xmv->current_stream = 0;
566 xmv->video.current_frame = xmv->video.frame_count;
572 if (++xmv->current_stream >= xmv->stream_count) {
573 xmv->current_stream = 0;
574 xmv->video.current_frame += 1;
581 .name = "xmv",
583 .extensions = "xmv",