Lines Matching refs:vmd

86     VmdDemuxContext *vmd = s->priv_data;
103 if (avio_read(pb, vmd->vmd_header, VMD_HEADER_SIZE) != VMD_HEADER_SIZE)
106 width = AV_RL16(&vmd->vmd_header[12]);
107 height = AV_RL16(&vmd->vmd_header[14]);
109 if(vmd->vmd_header[24] == 'i' && vmd->vmd_header[25] == 'v' && vmd->vmd_header[26] == '3') {
110 vmd->is_indeo3 = 1;
112 vmd->is_indeo3 = 0;
119 vmd->video_stream_index = vst->index;
121 vst->codecpar->codec_id = vmd->is_indeo3 ? AV_CODEC_ID_INDEO3 : AV_CODEC_ID_VMDVIDEO;
125 if(vmd->is_indeo3 && vst->codecpar->width > 320){
131 memcpy(vst->codecpar->extradata, vmd->vmd_header, VMD_HEADER_SIZE);
135 vmd->sample_rate = AV_RL16(&vmd->vmd_header[804]);
136 if (vmd->sample_rate) {
141 vmd->audio_stream_index = st->index;
145 st->codecpar->sample_rate = vmd->sample_rate;
146 st->codecpar->block_align = AV_RL16(&vmd->vmd_header[806]);
153 if (vmd->vmd_header[811] & 0x80) {
155 } else if (vmd->vmd_header[811] & 0x2) {
178 toc_offset = AV_RL32(&vmd->vmd_header[812]);
179 vmd->frame_count = AV_RL16(&vmd->vmd_header[6]);
180 vmd->frames_per_block = AV_RL16(&vmd->vmd_header[18]);
184 vmd->frame_table = NULL;
185 sound_buffers = AV_RL16(&vmd->vmd_header[808]);
186 raw_frame_table_size = vmd->frame_count * 6;
188 vmd->frame_table = av_malloc_array(vmd->frame_count * vmd->frames_per_block + sound_buffers, sizeof(vmd_frame));
189 if (!raw_frame_table || !vmd->frame_table) {
200 for (i = 0; i < vmd->frame_count; i++) {
205 for (j = 0; j < vmd->frames_per_block; j++) {
228 vmd->frame_table[total_frames].frame_offset = current_offset;
229 vmd->frame_table[total_frames].stream_index = vmd->audio_stream_index;
230 vmd->frame_table[total_frames].frame_size = size;
231 memcpy(vmd->frame_table[total_frames].frame_record, chunk, BYTES_PER_FRAME_RECORD);
232 vmd->frame_table[total_frames].pts = current_audio_pts;
242 vmd->frame_table[total_frames].frame_offset = current_offset;
243 vmd->frame_table[total_frames].stream_index = vmd->video_stream_index;
244 vmd->frame_table[total_frames].frame_size = size;
245 memcpy(vmd->frame_table[total_frames].frame_record, chunk, BYTES_PER_FRAME_RECORD);
246 vmd->frame_table[total_frames].pts = i;
255 vmd->current_frame = 0;
256 vmd->frame_count = total_frames;
267 VmdDemuxContext *vmd = s->priv_data;
272 if (vmd->current_frame >= vmd->frame_count)
275 frame = &vmd->frame_table[vmd->current_frame];
286 if(vmd->is_indeo3 && frame->frame_record[0] == 0x02)
302 vmd->current_frame++;
309 VmdDemuxContext *vmd = s->priv_data;
311 av_freep(&vmd->frame_table);
317 .name = "vmd",