Mercurial > libavformat.hg
comparison wv.c @ 1387:e7412266a076 libavformat
Move block size check to decoder
author | kostya |
---|---|
date | Sat, 14 Oct 2006 05:01:05 +0000 |
parents | bc6d64f0ab7a |
children | 9ed80abc8eb7 |
comparison
equal
deleted
inserted
replaced
1386:3e12e3ca0ce3 | 1387:e7412266a076 |
---|---|
169 if(wc->block_parsed){ | 169 if(wc->block_parsed){ |
170 if(wv_read_block_header(s, &s->pb) < 0) | 170 if(wv_read_block_header(s, &s->pb) < 0) |
171 return -1; | 171 return -1; |
172 } | 172 } |
173 | 173 |
174 samples = LE_32(wc->extra); | |
175 /* should not happen but who knows */ | |
176 if(samples * 2 * wc->chan > AVCODEC_MAX_AUDIO_FRAME_SIZE){ | |
177 av_log(s, AV_LOG_ERROR, "Packet size is too big to be handled in lavc!\n"); | |
178 return -EIO; | |
179 } | |
180 if(av_new_packet(pkt, wc->blksize + WV_EXTRA_SIZE) < 0) | 174 if(av_new_packet(pkt, wc->blksize + WV_EXTRA_SIZE) < 0) |
181 return AVERROR_NOMEM; | 175 return AVERROR_NOMEM; |
182 memcpy(pkt->data, wc->extra, WV_EXTRA_SIZE); | 176 memcpy(pkt->data, wc->extra, WV_EXTRA_SIZE); |
183 ret = get_buffer(&s->pb, pkt->data + WV_EXTRA_SIZE, wc->blksize); | 177 ret = get_buffer(&s->pb, pkt->data + WV_EXTRA_SIZE, wc->blksize); |
184 if(ret != wc->blksize){ | 178 if(ret != wc->blksize){ |