|
|
@@ -292,7 +292,7 @@ static av_cold int vpx_init(AVCodecContext *avctx, |
|
|
|
if (enccfg.g_pass == VPX_RC_FIRST_PASS) |
|
|
|
enccfg.g_lag_in_frames = 0; |
|
|
|
else if (enccfg.g_pass == VPX_RC_LAST_PASS) { |
|
|
|
int decode_size; |
|
|
|
int decode_size, ret; |
|
|
|
|
|
|
|
if (!avctx->stats_in) { |
|
|
|
av_log(avctx, AV_LOG_ERROR, "No stats file for second pass\n"); |
|
|
@@ -300,12 +300,12 @@ static av_cold int vpx_init(AVCodecContext *avctx, |
|
|
|
} |
|
|
|
|
|
|
|
ctx->twopass_stats.sz = strlen(avctx->stats_in) * 3 / 4; |
|
|
|
ctx->twopass_stats.buf = av_malloc(ctx->twopass_stats.sz); |
|
|
|
if (!ctx->twopass_stats.buf) { |
|
|
|
ret = av_reallocp(&ctx->twopass_stats.buf, ctx->twopass_stats.sz); |
|
|
|
if (ret < 0) { |
|
|
|
av_log(avctx, AV_LOG_ERROR, |
|
|
|
"Stat buffer alloc (%zu bytes) failed\n", |
|
|
|
ctx->twopass_stats.sz); |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
return ret; |
|
|
|
} |
|
|
|
decode_size = av_base64_decode(ctx->twopass_stats.buf, avctx->stats_in, |
|
|
|
ctx->twopass_stats.sz); |
|
|
|