diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c index 81c3bb698a..d05a0c673c 100644 --- a/libavcodec/flacenc.c +++ b/libavcodec/flacenc.c @@ -305,8 +305,10 @@ static av_cold int flac_encode_init(AVCodecContext *avctx) FF_LPC_TYPE_LEVINSON, FF_LPC_TYPE_LEVINSON, FF_LPC_TYPE_LEVINSON, FF_LPC_TYPE_LEVINSON})[level]; - s->options.min_prediction_order = ((int[]){ 2, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1})[level]; - s->options.max_prediction_order = ((int[]){ 3, 4, 4, 6, 8, 8, 8, 8, 12, 12, 12, 32, 32})[level]; + if (s->options.min_prediction_order < 0) + s->options.min_prediction_order = ((int[]){ 2, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1})[level]; + if (s->options.max_prediction_order < 0) + s->options.max_prediction_order = ((int[]){ 3, 4, 4, 6, 8, 8, 8, 8, 12, 12, 12, 32, 32})[level]; if (s->options.prediction_order_method < 0) s->options.prediction_order_method = ((int[]){ ORDER_METHOD_EST, ORDER_METHOD_EST, ORDER_METHOD_EST,