diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2008-12-02 10:43:08 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2008-12-02 10:43:08 +0000 |
commit | a6f2c0d6e5ccedf2f25c1ea9d83fc646e644ef52 (patch) | |
tree | 9acc7c507e467af9c805b7a034f9ad2f4db140fb /libavcodec | |
parent | 1599c47ce32a993f3db3b352e313385325449e21 (diff) | |
download | ffmpeg-a6f2c0d6e5ccedf2f25c1ea9d83fc646e644ef52.tar.gz |
Fix regression test failure with pthreads on multiprocessor systems.
Fixes issue517
Originally committed as revision 15976 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/motion_est.c | 2 | ||||
-rw-r--r-- | libavcodec/mpegvideo.c | 3 | ||||
-rw-r--r-- | libavcodec/snow.c | 2 |
3 files changed, 5 insertions, 2 deletions
diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c index 7c1fc677d2..d9d48a643e 100644 --- a/libavcodec/motion_est.c +++ b/libavcodec/motion_est.c @@ -307,8 +307,6 @@ int ff_init_me(MpegEncContext *s){ c->sub_motion_search= no_sub_motion_search; } - c->temp= c->scratchpad; - return 0; } diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index 4bc32a2316..ddc4d091aa 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -289,6 +289,7 @@ static int init_duplicate_context(MpegEncContext *s, MpegEncContext *base){ //FIXME should be linesize instead of s->width*2 but that is not known before get_buffer() CHECKED_ALLOCZ(s->me.scratchpad, (s->width+64)*4*16*2*sizeof(uint8_t)) + s->me.temp= s->me.scratchpad; s->rd_scratchpad= s->me.scratchpad; s->b_scratchpad= s->me.scratchpad; s->obmc_scratchpad= s->me.scratchpad + 16; @@ -315,6 +316,7 @@ static void free_duplicate_context(MpegEncContext *s){ av_freep(&s->allocated_edge_emu_buffer); s->edge_emu_buffer= NULL; av_freep(&s->me.scratchpad); + s->me.temp= s->rd_scratchpad= s->b_scratchpad= s->obmc_scratchpad= NULL; @@ -331,6 +333,7 @@ static void backup_duplicate_context(MpegEncContext *bak, MpegEncContext *src){ COPY(allocated_edge_emu_buffer); COPY(edge_emu_buffer); COPY(me.scratchpad); + COPY(me.temp); COPY(rd_scratchpad); COPY(b_scratchpad); COPY(obmc_scratchpad); diff --git a/libavcodec/snow.c b/libavcodec/snow.c index f73ac70f32..a393811cd9 100644 --- a/libavcodec/snow.c +++ b/libavcodec/snow.c @@ -4007,6 +4007,7 @@ static av_cold int encode_init(AVCodecContext *avctx) s->m.flags = avctx->flags; s->m.bit_rate= avctx->bit_rate; + s->m.me.temp = s->m.me.scratchpad= av_mallocz((avctx->width+64)*2*16*2*sizeof(uint8_t)); s->m.me.map = av_mallocz(ME_MAP_SIZE*sizeof(uint32_t)); s->m.me.score_map = av_mallocz(ME_MAP_SIZE*sizeof(uint32_t)); @@ -4435,6 +4436,7 @@ static av_cold void common_end(SnowContext *s){ av_freep(&s->spatial_dwt_buffer); av_freep(&s->spatial_idwt_buffer); + s->m.me.temp= NULL; av_freep(&s->m.me.scratchpad); av_freep(&s->m.me.map); av_freep(&s->m.me.score_map); |