changeset 10954:d7ef6611a49e libavcodec

Always call avcodec_thread_init() The various avcodec_thread_init() functions are updated to return immediately after setting avctx->thread_count. This allows -threads 0 to pass through to codecs. It also simplifies the usage for apps using libavcodec.
author mru
date Wed, 20 Jan 2010 22:55:50 +0000
parents eb9a2581f50e
children fdddf3d4238f
files beosthread.c os2thread.c pthread.c w32thread.c
diffstat 4 files changed, 14 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/beosthread.c	Wed Jan 20 19:23:19 2010 +0000
+++ b/beosthread.c	Wed Jan 20 22:55:50 2010 +0000
@@ -123,6 +123,9 @@
 
     s->thread_count= thread_count;
 
+    if (thread_count <= 1)
+        return 0;
+
     assert(!s->thread_opaque);
     c= av_mallocz(sizeof(ThreadContext)*thread_count);
     s->thread_opaque= c;
--- a/os2thread.c	Wed Jan 20 19:23:19 2010 +0000
+++ b/os2thread.c	Wed Jan 20 22:55:50 2010 +0000
@@ -116,6 +116,9 @@
 
     s->thread_count= thread_count;
 
+    if (thread_count <= 1)
+        return 0;
+
     assert(!s->thread_opaque);
     c= av_mallocz(sizeof(ThreadContext)*thread_count);
     s->thread_opaque= c;
--- a/pthread.c	Wed Jan 20 19:23:19 2010 +0000
+++ b/pthread.c	Wed Jan 20 22:55:50 2010 +0000
@@ -145,6 +145,11 @@
     int i;
     ThreadContext *c;
 
+    avctx->thread_count = thread_count;
+
+    if (thread_count <= 1)
+        return 0;
+
     c = av_mallocz(sizeof(ThreadContext));
     if (!c)
         return -1;
@@ -156,7 +161,6 @@
     }
 
     avctx->thread_opaque = c;
-    avctx->thread_count = thread_count;
     c->current_job = 0;
     c->job_count = 0;
     c->job_size = 0;
--- a/w32thread.c	Wed Jan 20 19:23:19 2010 +0000
+++ b/w32thread.c	Wed Jan 20 22:55:50 2010 +0000
@@ -131,6 +131,9 @@
 
     s->thread_count= thread_count;
 
+    if (thread_count <= 1)
+        return 0;
+
     assert(!s->thread_opaque);
     c= av_mallocz(sizeof(ThreadContext)*thread_count);
     s->thread_opaque= c;