• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/minidlna/ffmpeg-2.3.4/libavcodec/

Lines Matching refs:fctx

140     FrameThreadContext *fctx = p->parent;
146 while (p->state == STATE_INPUT_READY && !fctx->die)
149 if (fctx->die) break;
301 FrameThreadContext *fctx = p->parent;
306 pthread_mutex_lock(&fctx->buffer_mutex);
315 pthread_mutex_unlock(&fctx->buffer_mutex);
321 FrameThreadContext *fctx = p->parent;
322 PerThreadContext *prev_thread = fctx->prev_thread;
393 fctx->prev_thread = p;
394 fctx->next_decoding++;
403 FrameThreadContext *fctx = avctx->internal->thread_ctx;
404 int finished = fctx->next_finished;
412 p = &fctx->threads[fctx->next_decoding];
422 if (fctx->next_decoding > (avctx->thread_count-1-(avctx->codec_id == AV_CODEC_ID_FFV1)))
423 fctx->delaying = 0;
425 if (fctx->delaying) {
439 p = &fctx->threads[finished++];
455 * stopped by the "finished != fctx->next_finished" condition.
461 } while (!avpkt->size && !*got_picture_ptr && finished != fctx->next_finished);
465 if (fctx->next_decoding >= avctx->thread_count) fctx->next_decoding = 0;
467 fctx->next_finished = finished;
525 static void park_frame_worker_threads(FrameThreadContext *fctx, int thread_count)
530 PerThreadContext *p = &fctx->threads[i];
544 FrameThreadContext *fctx = avctx->internal->thread_ctx;
548 park_frame_worker_threads(fctx, thread_count);
550 if (fctx->prev_thread && fctx->prev_thread != fctx->threads)
551 if (update_context_from_thread(fctx->threads->avctx, fctx->prev_thread->avctx, 0) < 0) {
553 fctx->prev_thread->avctx->internal->is_copy = fctx->threads->avctx->internal->is_copy;
554 fctx->threads->avctx->internal->is_copy = 1;
557 fctx->die = 1;
560 PerThreadContext *p = &fctx->threads[i];
580 PerThreadContext *p = &fctx->threads[i];
599 av_freep(&fctx->threads);
600 pthread_mutex_destroy(&fctx->buffer_mutex);
609 FrameThreadContext *fctx;
632 avctx->internal->thread_ctx = fctx = av_mallocz(sizeof(FrameThreadContext));
634 fctx->threads = av_mallocz_array(thread_count, sizeof(PerThreadContext));
635 pthread_mutex_init(&fctx->buffer_mutex, NULL);
636 fctx->delaying = 1;
640 PerThreadContext *p = &fctx->threads[i];
655 p->parent = fctx;
713 FrameThreadContext *fctx = avctx->internal->thread_ctx;
715 if (!fctx) return;
717 park_frame_worker_threads(fctx, avctx->thread_count);
718 if (fctx->prev_thread) {
719 if (fctx->prev_thread != &fctx->threads[0])
720 update_context_from_thread(fctx->threads[0].avctx, fctx->prev_thread->avctx, 0);
723 fctx->next_decoding = fctx->next_finished = 0;
724 fctx->delaying = 1;
725 fctx->prev_thread = NULL;
727 PerThreadContext *p = &fctx->threads[i];
850 FrameThreadContext *fctx;
876 fctx = p->parent;
877 pthread_mutex_lock(&fctx->buffer_mutex);
894 pthread_mutex_unlock(&fctx->buffer_mutex);