Merge commit '632ad2248e2e5d8cd4b51e6c87c943a38c3da425'
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 11 May 2014 19:48:32 +0000 (21:48 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 11 May 2014 19:48:32 +0000 (21:48 +0200)
* commit '632ad2248e2e5d8cd4b51e6c87c943a38c3da425':
  lavc: Add an internal wrapper around get_format()

Conflicts:
libavcodec/h264_slice.c
libavcodec/mpeg12dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/8bps.c
libavcodec/h263dec.c
libavcodec/internal.h
libavcodec/pthread_frame.c
libavcodec/utils.c
libavcodec/vc1dec.c

Simple merge
Simple merge
Simple merge
@@@ -826,40 -752,6 +826,40 @@@ FF_ENABLE_DEPRECATION_WARNING
      return err;
  }
  
-         return avctx->get_format(avctx, fmt);
 +enum AVPixelFormat ff_thread_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt)
 +{
 +    enum AVPixelFormat res;
 +    PerThreadContext *p = avctx->internal->thread_ctx;
 +    if (!(avctx->active_thread_type & FF_THREAD_FRAME) || avctx->thread_safe_callbacks ||
 +        avctx->get_format == avcodec_default_get_format)
++        return ff_get_format(avctx, fmt);
 +    if (p->state != STATE_SETTING_UP) {
 +        av_log(avctx, AV_LOG_ERROR, "get_format() cannot be called after ff_thread_finish_setup()\n");
 +        return -1;
 +    }
 +    pthread_mutex_lock(&p->progress_mutex);
 +    p->available_formats = fmt;
 +    p->state = STATE_GET_FORMAT;
 +    pthread_cond_broadcast(&p->progress_cond);
 +
 +    while (p->state != STATE_SETTING_UP)
 +        pthread_cond_wait(&p->progress_cond, &p->progress_mutex);
 +
 +    res = p->result_format;
 +
 +    pthread_mutex_unlock(&p->progress_mutex);
 +
 +    return res;
 +}
 +
 +int ff_thread_get_buffer(AVCodecContext *avctx, ThreadFrame *f, int flags)
 +{
 +    int ret = thread_get_buffer_internal(avctx, f, flags);
 +    if (ret < 0)
 +        av_log(avctx, AV_LOG_ERROR, "thread_get_buffer() failed\n");
 +    return ret;
 +}
 +
  void ff_thread_release_buffer(AVCodecContext *avctx, ThreadFrame *f)
  {
      PerThreadContext *p = avctx->internal->thread_ctx;
@@@ -3422,11 -2288,6 +3427,11 @@@ int ff_thread_ref_frame(ThreadFrame *ds
  
  #if !HAVE_THREADS
  
-     return avctx->get_format(avctx, fmt);
 +enum AVPixelFormat ff_thread_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt)
 +{
++    return ff_get_format(avctx, fmt);
 +}
 +
  int ff_thread_get_buffer(AVCodecContext *avctx, ThreadFrame *f, int flags)
  {
      f->owner = avctx;
Simple merge