buf += frame_hdr_size;
buf_size -= frame_hdr_size;
+ if (frame->data[0])
+ avctx->release_buffer(avctx, frame);
+
+ if (avctx->get_buffer(avctx, frame) < 0)
+ return -1;
+
decode_picture:
pic_size = decode_picture_header(avctx, buf, buf_size);
if (pic_size < 0) {
return -1;
}
- if (frame->data[0])
- avctx->release_buffer(avctx, frame);
-
- if (avctx->get_buffer(avctx, frame) < 0)
- return -1;
-
if (decode_picture(avctx)) {
av_log(avctx, AV_LOG_ERROR, "error decoding picture\n");
return -1;