@ -325,9 +325,9 @@ static av_cold int flac_encode_init(AVCodecContext *avctx)
if ( s - > options . max_partition_order < 0 )
if ( s - > options . max_partition_order < 0 )
s - > options . max_partition_order = ( ( int [ ] ) { 2 , 2 , 3 , 3 , 3 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 } ) [ level ] ;
s - > options . max_partition_order = ( ( int [ ] ) { 2 , 2 , 3 , 3 , 3 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 } ) [ level ] ;
if ( s - > options . lpc_type = = FF_LPC_TYPE_NONE ) {
# if FF_API_PRIVATE_OPT
s - > options . min_prediction_order = 0 ;
FF_DISABLE_DEPRECATION_WARNINGS
} else if ( avctx - > min_prediction_order > = 0 ) {
if ( avctx - > min_prediction_order > = 0 ) {
if ( s - > options . lpc_type = = FF_LPC_TYPE_FIXED ) {
if ( s - > options . lpc_type = = FF_LPC_TYPE_FIXED ) {
if ( avctx - > min_prediction_order > MAX_FIXED_ORDER ) {
if ( avctx - > min_prediction_order > MAX_FIXED_ORDER ) {
av_log ( avctx , AV_LOG_WARNING ,
av_log ( avctx , AV_LOG_WARNING ,
@ -343,9 +343,7 @@ static av_cold int flac_encode_init(AVCodecContext *avctx)
}
}
s - > options . min_prediction_order = avctx - > min_prediction_order ;
s - > options . min_prediction_order = avctx - > min_prediction_order ;
}
}
if ( s - > options . lpc_type = = FF_LPC_TYPE_NONE ) {
if ( avctx - > max_prediction_order > = 0 ) {
s - > options . max_prediction_order = 0 ;
} else if ( avctx - > max_prediction_order > = 0 ) {
if ( s - > options . lpc_type = = FF_LPC_TYPE_FIXED ) {
if ( s - > options . lpc_type = = FF_LPC_TYPE_FIXED ) {
if ( avctx - > max_prediction_order > MAX_FIXED_ORDER ) {
if ( avctx - > max_prediction_order > MAX_FIXED_ORDER ) {
av_log ( avctx , AV_LOG_WARNING ,
av_log ( avctx , AV_LOG_WARNING ,
@ -361,6 +359,26 @@ static av_cold int flac_encode_init(AVCodecContext *avctx)
}
}
s - > options . max_prediction_order = avctx - > max_prediction_order ;
s - > options . max_prediction_order = avctx - > max_prediction_order ;
}
}
FF_ENABLE_DEPRECATION_WARNINGS
# endif
if ( s - > options . lpc_type = = FF_LPC_TYPE_NONE ) {
s - > options . min_prediction_order = 0 ;
s - > options . max_prediction_order = 0 ;
} else if ( s - > options . lpc_type = = FF_LPC_TYPE_FIXED ) {
if ( s - > options . min_prediction_order > MAX_FIXED_ORDER ) {
av_log ( avctx , AV_LOG_WARNING ,
" invalid min prediction order %d, clamped to %d \n " ,
s - > options . min_prediction_order , MAX_FIXED_ORDER ) ;
s - > options . min_prediction_order = MAX_FIXED_ORDER ;
}
if ( s - > options . max_prediction_order > MAX_FIXED_ORDER ) {
av_log ( avctx , AV_LOG_WARNING ,
" invalid max prediction order %d, clamped to %d \n " ,
s - > options . max_prediction_order , MAX_FIXED_ORDER ) ;
s - > options . max_prediction_order = MAX_FIXED_ORDER ;
}
}
if ( s - > options . max_prediction_order < s - > options . min_prediction_order ) {
if ( s - > options . max_prediction_order < s - > options . min_prediction_order ) {
av_log ( avctx , AV_LOG_ERROR , " invalid prediction orders: min=%d max=%d \n " ,
av_log ( avctx , AV_LOG_ERROR , " invalid prediction orders: min=%d max=%d \n " ,
s - > options . min_prediction_order , s - > options . max_prediction_order ) ;
s - > options . min_prediction_order , s - > options . max_prediction_order ) ;
@ -1332,6 +1350,9 @@ static const AVOption options[] = {
{ " left_side " , NULL , 0 , AV_OPT_TYPE_CONST , { . i64 = FLAC_CHMODE_LEFT_SIDE } , INT_MIN , INT_MAX , FLAGS , " ch_mode " } ,
{ " left_side " , NULL , 0 , AV_OPT_TYPE_CONST , { . i64 = FLAC_CHMODE_LEFT_SIDE } , INT_MIN , INT_MAX , FLAGS , " ch_mode " } ,
{ " right_side " , NULL , 0 , AV_OPT_TYPE_CONST , { . i64 = FLAC_CHMODE_RIGHT_SIDE } , INT_MIN , INT_MAX , FLAGS , " ch_mode " } ,
{ " right_side " , NULL , 0 , AV_OPT_TYPE_CONST , { . i64 = FLAC_CHMODE_RIGHT_SIDE } , INT_MIN , INT_MAX , FLAGS , " ch_mode " } ,
{ " mid_side " , NULL , 0 , AV_OPT_TYPE_CONST , { . i64 = FLAC_CHMODE_MID_SIDE } , INT_MIN , INT_MAX , FLAGS , " ch_mode " } ,
{ " mid_side " , NULL , 0 , AV_OPT_TYPE_CONST , { . i64 = FLAC_CHMODE_MID_SIDE } , INT_MIN , INT_MAX , FLAGS , " ch_mode " } ,
{ " min_prediction_order " , NULL , offsetof ( FlacEncodeContext , options . min_prediction_order ) , AV_OPT_TYPE_INT , { . i64 = 0 } , MIN_LPC_ORDER , MAX_LPC_ORDER , FLAGS } ,
{ " max_prediction_order " , NULL , offsetof ( FlacEncodeContext , options . max_prediction_order ) , AV_OPT_TYPE_INT , { . i64 = 0 } , MIN_LPC_ORDER , MAX_LPC_ORDER , FLAGS } ,
{ NULL } ,
{ NULL } ,
} ;
} ;