X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fpthread.c;h=702adb533d4e86364f98a372d6b5349bc8ee3ec4;hb=6f7b915a0d69ea33a6777c35f720cf31f122ed02;hp=4737211cbc18cc3ca6ee9e211920b1390de83bc6;hpb=b78e7197a81e193827cf2408fe25bc1f14843a72;p=ffmpeg diff --git a/libavcodec/pthread.c b/libavcodec/pthread.c index 4737211cbc1..702adb533d4 100644 --- a/libavcodec/pthread.c +++ b/libavcodec/pthread.c @@ -20,12 +20,10 @@ * You should have received a copy of the GNU Lesser General Public * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * */ #include #include "avcodec.h" -#include "common.h" typedef int (action_t)(AVCodecContext *c, void *arg); @@ -44,7 +42,7 @@ typedef struct ThreadContext { int done; } ThreadContext; -static void* worker(void *v) +static void* attribute_align_arg worker(void *v) { AVCodecContext *avctx = v; ThreadContext *c = avctx->thread_opaque; @@ -76,7 +74,7 @@ static void* worker(void *v) } } -static always_inline void avcodec_thread_park_workers(ThreadContext *c, int thread_count) +static av_always_inline void avcodec_thread_park_workers(ThreadContext *c, int thread_count) { pthread_cond_wait(&c->last_job_cond, &c->current_job_lock); pthread_mutex_unlock(&c->current_job_lock); @@ -99,7 +97,7 @@ void avcodec_thread_free(AVCodecContext *avctx) pthread_cond_destroy(&c->current_job_cond); pthread_cond_destroy(&c->last_job_cond); av_free(c->workers); - av_free(c); + av_freep(&avctx->thread_opaque); } int avcodec_thread_execute(AVCodecContext *avctx, action_t* func, void **arg, int *ret, int job_count)