func: int ff_thread_init(AVCodecContext *avctx)
  
  {
  
      if (avctx->thread_opaque) {
  
          av_log(avctx, AV_LOG_ERROR, "avcodec_thread_init is ignored after avcodec_open\n");
  
          return -1;
  
      }
  
  
  
  #if HAVE_W32THREADS
  
      w32thread_init();
  
  #endif
  
  
  
      if (avctx->codec) {
  
          validate_thread_parameters(avctx);
  
  
  
          if (avctx->active_thread_type&FF_THREAD_SLICE)
  
              return thread_init(avctx);
  
          else if (avctx->active_thread_type&FF_THREAD_FRAME)
  
              return frame_thread_init(avctx);
  
      }
  
  
  
      return 0;
  
  }
  