return ret;
if (frame->buf[0]) {
- const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(frame->format);
+ const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(frame->format);
- rframe = rav1e_frame_new(ctx->ctx);
- if (!rframe) {
- av_log(avctx, AV_LOG_ERROR, "Could not allocate new rav1e frame.\n");
- av_frame_unref(frame);
- return AVERROR(ENOMEM);
- }
+ rframe = rav1e_frame_new(ctx->ctx);
+ if (!rframe) {
+ av_log(avctx, AV_LOG_ERROR, "Could not allocate new rav1e frame.\n");
+ av_frame_unref(frame);
+ return AVERROR(ENOMEM);
+ }
- for (int i = 0; i < desc->nb_components; i++) {
- int shift = i ? desc->log2_chroma_h : 0;
- int bytes = desc->comp[0].depth == 8 ? 1 : 2;
- rav1e_frame_fill_plane(rframe, i, frame->data[i],
- (frame->height >> shift) * frame->linesize[i],
- frame->linesize[i], bytes);
- }
- av_frame_unref(frame);
+ for (int i = 0; i < desc->nb_components; i++) {
+ int shift = i ? desc->log2_chroma_h : 0;
+ int bytes = desc->comp[0].depth == 8 ? 1 : 2;
+ rav1e_frame_fill_plane(rframe, i, frame->data[i],
+ (frame->height >> shift) * frame->linesize[i],
+ frame->linesize[i], bytes);
+ }
+ av_frame_unref(frame);
}
}
if (ret == RA_ENCODER_STATUS_ENOUGH_DATA) {
ctx->rframe = rframe; /* Queue is full. Store the RaFrame to retry next call */
} else {
- rav1e_frame_unref(rframe); /* No need to unref if flushing. */
+ rav1e_frame_unref(rframe); /* No need to unref if flushing. */
ctx->rframe = NULL;
}