You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	vp8/mt: flush worker thread, not application thread context, on seek.
This prevents a crash when seeking.
This commit is contained in:
		| @@ -747,9 +747,12 @@ void ff_thread_flush(AVCodecContext *avctx) | ||||
|     if (!avctx->thread_opaque) return; | ||||
|  | ||||
|     park_frame_worker_threads(fctx, avctx->thread_count); | ||||
|  | ||||
|     if (fctx->prev_thread) | ||||
|         update_context_from_thread(fctx->threads->avctx, fctx->prev_thread->avctx, 0); | ||||
|     if (fctx->prev_thread) { | ||||
|         if (fctx->prev_thread != &fctx->threads[0]) | ||||
|             update_context_from_thread(fctx->threads[0].avctx, fctx->prev_thread->avctx, 0); | ||||
|         if (avctx->codec->flush) | ||||
|             avctx->codec->flush(fctx->threads[0].avctx); | ||||
|     } | ||||
|  | ||||
|     fctx->next_decoding = fctx->next_finished = 0; | ||||
|     fctx->delaying = 1; | ||||
|   | ||||
| @@ -1080,7 +1080,7 @@ void avcodec_flush_buffers(AVCodecContext *avctx) | ||||
| { | ||||
|     if(HAVE_PTHREADS && avctx->active_thread_type&FF_THREAD_FRAME) | ||||
|         ff_thread_flush(avctx); | ||||
|     if(avctx->codec->flush) | ||||
|     else if(avctx->codec->flush) | ||||
|         avctx->codec->flush(avctx); | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user