@ -456,7 +456,7 @@ AVFrame *avcodec_alloc_frame(void){
int attribute_align_arg avcodec_open ( AVCodecContext * avctx , AVCodec * codec )
{
int ret = - 1 ;
int ret = 0 ;
/* If there is a user-supplied mutex locking routine, call it. */
if ( ff_lockmgr_cb ) {
@ -467,11 +467,14 @@ int attribute_align_arg avcodec_open(AVCodecContext *avctx, AVCodec *codec)
entangled_thread_counter + + ;
if ( entangled_thread_counter ! = 1 ) {
av_log ( avctx , AV_LOG_ERROR , " insufficient thread locking around avcodec_open/close() \n " ) ;
ret = - 1 ;
goto end ;
}
if ( avctx - > codec | | ! codec )
if ( avctx - > codec | | ! codec ) {
ret = AVERROR ( EINVAL ) ;
goto end ;
}
if ( codec - > priv_data_size > 0 ) {
if ( ! avctx - > priv_data ) {
@ -521,6 +524,7 @@ int attribute_align_arg avcodec_open(AVCodecContext *avctx, AVCodec *codec)
if ( avctx - > codec_id ! = codec - > id | | ( avctx - > codec_type ! = codec - > type
& & avctx - > codec_type ! = AVMEDIA_TYPE_ATTACHMENT ) ) {
av_log ( avctx , AV_LOG_ERROR , " codec type or id mismatches \n " ) ;
ret = AVERROR ( EINVAL ) ;
goto free_and_end ;
}
avctx - > frame_number = 0 ;
@ -535,6 +539,7 @@ int attribute_align_arg avcodec_open(AVCodecContext *avctx, AVCodec *codec)
if ( avctx - > codec - > max_lowres < avctx - > lowres ) {
av_log ( avctx , AV_LOG_ERROR , " The maximum value for lowres supported by the decoder is %d \n " ,
avctx - > codec - > max_lowres ) ;
ret = AVERROR ( EINVAL ) ;
goto free_and_end ;
}
if ( avctx - > codec - > sample_fmts & & avctx - > codec - > encode ) {
@ -544,6 +549,7 @@ int attribute_align_arg avcodec_open(AVCodecContext *avctx, AVCodec *codec)
break ;
if ( avctx - > codec - > sample_fmts [ i ] = = AV_SAMPLE_FMT_NONE ) {
av_log ( avctx , AV_LOG_ERROR , " Specified sample_fmt is not supported. \n " ) ;
ret = AVERROR ( EINVAL ) ;
goto free_and_end ;
}
}
@ -554,7 +560,6 @@ int attribute_align_arg avcodec_open(AVCodecContext *avctx, AVCodec *codec)
goto free_and_end ;
}
}
ret = 0 ;
end :
entangled_thread_counter - - ;