comparison wav.c @ 1756:5d72afc6c8aa libavformat

better generic index building and seeking code
author michael
date Mon, 05 Feb 2007 23:04:48 +0000
parents ba58d49d4685
children ce4617062f7b
comparison
equal deleted inserted replaced
1755:41160bae24b5 1756:5d72afc6c8aa
186 if (size < st->codec->block_align) 186 if (size < st->codec->block_align)
187 size = st->codec->block_align; 187 size = st->codec->block_align;
188 size = (size / st->codec->block_align) * st->codec->block_align; 188 size = (size / st->codec->block_align) * st->codec->block_align;
189 } 189 }
190 size= FFMIN(size, left); 190 size= FFMIN(size, left);
191 if (av_new_packet(pkt, size)) 191 ret= av_get_packet(&s->pb, pkt, size);
192 if (ret <= 0)
192 return AVERROR_IO; 193 return AVERROR_IO;
193 pkt->stream_index = 0; 194 pkt->stream_index = 0;
194 195
195 ret = get_buffer(&s->pb, pkt->data, pkt->size);
196 if (ret < 0)
197 av_free_packet(pkt);
198 /* note: we need to modify the packet size here to handle the last 196 /* note: we need to modify the packet size here to handle the last
199 packet */ 197 packet */
200 pkt->size = ret; 198 pkt->size = ret;
201 return ret; 199 return ret;
202 } 200 }
233 wav_probe, 231 wav_probe,
234 wav_read_header, 232 wav_read_header,
235 wav_read_packet, 233 wav_read_packet,
236 wav_read_close, 234 wav_read_close,
237 wav_read_seek, 235 wav_read_seek,
236 .flags= AVFMT_GENERIC_INDEX,
238 .codec_tag= (const AVCodecTag*[]){codec_wav_tags, 0}, 237 .codec_tag= (const AVCodecTag*[]){codec_wav_tags, 0},
239 }; 238 };
240 #endif 239 #endif
241 #ifdef CONFIG_WAV_MUXER 240 #ifdef CONFIG_WAV_MUXER
242 AVOutputFormat wav_muxer = { 241 AVOutputFormat wav_muxer = {