|
|
@@ -692,25 +692,13 @@ FF_ENABLE_DEPRECATION_WARNINGS |
|
|
|
x4->params.rc.f_qcompress = avctx->qcompress; /* 0.0 => cbr, 1.0 => constant qp */ |
|
|
|
if (avctx->refs >= 0) |
|
|
|
x4->params.i_frame_reference = avctx->refs; |
|
|
|
else if (x4->level) { |
|
|
|
else if (x4->params.i_level_idc > 0) { |
|
|
|
int i; |
|
|
|
int mbn = AV_CEIL_RSHIFT(avctx->width, 4) * AV_CEIL_RSHIFT(avctx->height, 4); |
|
|
|
int level_id = -1; |
|
|
|
char *tail; |
|
|
|
int scale = X264_BUILD < 129 ? 384 : 1; |
|
|
|
|
|
|
|
if (!strcmp(x4->level, "1b")) { |
|
|
|
level_id = 9; |
|
|
|
} else if (strlen(x4->level) <= 3){ |
|
|
|
level_id = av_strtod(x4->level, &tail) * 10 + 0.5; |
|
|
|
if (*tail) |
|
|
|
level_id = -1; |
|
|
|
} |
|
|
|
if (level_id <= 0) |
|
|
|
av_log(avctx, AV_LOG_WARNING, "Failed to parse level\n"); |
|
|
|
|
|
|
|
for (i = 0; i<x264_levels[i].level_idc; i++) |
|
|
|
if (x264_levels[i].level_idc == level_id) |
|
|
|
if (x264_levels[i].level_idc == x4->params.i_level_idc) |
|
|
|
x4->params.i_frame_reference = av_clip(x264_levels[i].dpb / mbn / scale, 1, x4->params.i_frame_reference); |
|
|
|
} |
|
|
|
|
|
|
|