[FFmpeg-cvslog] r15976 - in trunk/libavcodec: motion_est.c mpegvideo.c snow.c
michael
subversion
Tue Dec 2 11:43:08 CET 2008
Author: michael
Date: Tue Dec 2 11:43:08 2008
New Revision: 15976
Log:
Fix regression test failure with pthreads on multiprocessor systems.
Fixes issue517
Modified:
trunk/libavcodec/motion_est.c
trunk/libavcodec/mpegvideo.c
trunk/libavcodec/snow.c
Modified: trunk/libavcodec/motion_est.c
==============================================================================
--- trunk/libavcodec/motion_est.c (original)
+++ trunk/libavcodec/motion_est.c Tue Dec 2 11:43:08 2008
@@ -307,8 +307,6 @@ int ff_init_me(MpegEncContext *s){
c->sub_motion_search= no_sub_motion_search;
}
- c->temp= c->scratchpad;
-
return 0;
}
Modified: trunk/libavcodec/mpegvideo.c
==============================================================================
--- trunk/libavcodec/mpegvideo.c (original)
+++ trunk/libavcodec/mpegvideo.c Tue Dec 2 11:43:08 2008
@@ -289,6 +289,7 @@ static int init_duplicate_context(MpegEn
//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(MpegE
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(Mpe
COPY(allocated_edge_emu_buffer);
COPY(edge_emu_buffer);
COPY(me.scratchpad);
+ COPY(me.temp);
COPY(rd_scratchpad);
COPY(b_scratchpad);
COPY(obmc_scratchpad);
Modified: trunk/libavcodec/snow.c
==============================================================================
--- trunk/libavcodec/snow.c (original)
+++ trunk/libavcodec/snow.c Tue Dec 2 11:43:08 2008
@@ -4007,6 +4007,7 @@ static av_cold int encode_init(AVCodecCo
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(SnowConte
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);
More information about the ffmpeg-cvslog
mailing list