Mercurial > libavformat.hg
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 = { |