• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/iserver/libav-0.8.8/libavformat/

Lines Matching refs:vmd

84     VmdDemuxContext *vmd = s->priv_data;
100 if (avio_read(pb, vmd->vmd_header, VMD_HEADER_SIZE) != VMD_HEADER_SIZE)
103 if(vmd->vmd_header[24] == 'i' && vmd->vmd_header[25] == 'v' && vmd->vmd_header[26] == '3')
104 vmd->is_indeo3 = 1;
106 vmd->is_indeo3 = 0;
112 vmd->video_stream_index = vst->index;
114 vst->codec->codec_id = vmd->is_indeo3 ? CODEC_ID_INDEO3 : CODEC_ID_VMDVIDEO;
116 vst->codec->width = AV_RL16(&vmd->vmd_header[12]);
117 vst->codec->height = AV_RL16(&vmd->vmd_header[14]);
118 if(vmd->is_indeo3 && vst->codec->width > 320){
124 memcpy(vst->codec->extradata, vmd->vmd_header, VMD_HEADER_SIZE);
127 vmd->sample_rate = AV_RL16(&vmd->vmd_header[804]);
128 if (vmd->sample_rate) {
132 vmd->audio_stream_index = st->index;
136 st->codec->channels = (vmd->vmd_header[811] & 0x80) ? 2 : 1;
137 st->codec->sample_rate = vmd->sample_rate;
138 st->codec->block_align = AV_RL16(&vmd->vmd_header[806]);
156 toc_offset = AV_RL32(&vmd->vmd_header[812]);
157 vmd->frame_count = AV_RL16(&vmd->vmd_header[6]);
158 vmd->frames_per_block = AV_RL16(&vmd->vmd_header[18]);
162 vmd->frame_table = NULL;
163 sound_buffers = AV_RL16(&vmd->vmd_header[808]);
164 raw_frame_table_size = vmd->frame_count * 6;
165 if(vmd->frame_count * vmd->frames_per_block >= UINT_MAX / sizeof(vmd_frame) - sound_buffers){
166 av_log(s, AV_LOG_ERROR, "vmd->frame_count * vmd->frames_per_block too large\n");
170 vmd->frame_table = av_malloc((vmd->frame_count * vmd->frames_per_block + sound_buffers) * sizeof(vmd_frame));
171 if (!raw_frame_table || !vmd->frame_table) {
173 av_free(vmd->frame_table);
179 av_free(vmd->frame_table);
184 for (i = 0; i < vmd->frame_count; i++) {
189 for (j = 0; j < vmd->frames_per_block; j++) {
202 vmd->frame_table[total_frames].frame_offset = current_offset;
203 vmd->frame_table[total_frames].stream_index = vmd->audio_stream_index;
204 vmd->frame_table[total_frames].frame_size = size;
205 memcpy(vmd->frame_table[total_frames].frame_record, chunk, BYTES_PER_FRAME_RECORD);
206 vmd->frame_table[total_frames].pts = current_audio_pts;
214 vmd->frame_table[total_frames].frame_offset = current_offset;
215 vmd->frame_table[total_frames].stream_index = vmd->video_stream_index;
216 vmd->frame_table[total_frames].frame_size = size;
217 memcpy(vmd->frame_table[total_frames].frame_record, chunk, BYTES_PER_FRAME_RECORD);
218 vmd->frame_table[total_frames].pts = i;
228 vmd->current_frame = 0;
229 vmd->frame_count = total_frames;
237 VmdDemuxContext *vmd = s->priv_data;
242 if (vmd->current_frame >= vmd->frame_count)
245 frame = &vmd->frame_table[vmd->current_frame];
253 if(vmd->is_indeo3 && frame->frame_record[0] == 0x02)
270 vmd->current_frame++;
277 VmdDemuxContext *vmd = s->priv_data;
279 av_free(vmd->frame_table);
285 .name = "vmd",