if (max_size <= 0)
return AVERROR_EOF;
+ if (!st->codecpar->block_align) {
+ av_log(s, AV_LOG_ERROR, "block_align not set\n");
+ return AVERROR_INVALIDDATA;
+ }
+
/* Now for that packet */
switch (st->codecpar->codec_id) {
case AV_CODEC_ID_ADPCM_IMA_QT:
size = st->codecpar->block_align;
break;
default:
- size = (MAX_SIZE / st->codecpar->block_align) * st->codecpar->block_align;
+ size = st->codecpar->block_align ? (MAX_SIZE / st->codecpar->block_align) * st->codecpar->block_align : MAX_SIZE;
}
size = FFMIN(max_size, size);
res = av_get_packet(s->pb, pkt, size);