[FFmpeg-devel] h264 threading fate tests

Clément Bœsch ubitux at gmail.com
Thu Jul 19 19:35:35 CEST 2012


On Thu, Jul 19, 2012 at 04:47:23PM +0200, Michael Niedermayer wrote:
> On Wed, Jul 11, 2012 at 05:48:50PM +0200, Clément Bœsch wrote:
> > On Mon, Apr 16, 2012 at 04:43:42PM +0200, Clément Bœsch wrote:
> > > Hi,
> > > 
> > > I recently setup a few fate instances to test the threading (2, 8, 16 and
> > > auto), and regularly one of the h264 conformance test fails; look at the
> > > yellow entries here for instance:
> > > http://fate.ffmpeg.org/history.cgi?slot=x86_64-archlinux-gcc-threads-8
> > > 
> > > The other day, I tried to run an automated git bisect run, but
> > > unfortunately testing the potential regression would requires to run
> > > something like "while true; do make fate-h264 -j20 THREADS=8; done" for
> > > around 15 minutes at least each time, and it might not even be reliable.
> > > 
> > > I'm not familiar at all with AVC decoding or threading in FFmpeg, but
> > > maybe someone has an idea of what could cause this?
> > > 
> > 
> > I added a helgrind box on FATE and it seems to detect a few races:
> > http://fate.ffmpeg.org/report.cgi?time=20120711153812&slot=x86_64-archlinux-gcc-valgrind-threads
> > 
> > If anyone is up to fix the more obvious ones...
> >
> 
> > Some of them look simple to fix at first sight, for instance:
> > 
> > diff --git a/libavcodec/pthread.c b/libavcodec/pthread.c
> > index 7f2ea09..597aeba 100644
> > --- a/libavcodec/pthread.c
> > +++ b/libavcodec/pthread.c
> > @@ -975,9 +975,9 @@ int ff_thread_get_buffer(AVCodecContext *avctx, AVFrame *f)
> >          avctx->get_buffer == avcodec_default_get_buffer) {
> >          err = avctx->get_buffer(avctx, f);
> >      } else {
> > +        pthread_mutex_lock(&p->progress_mutex);
> >          p->requested_frame = f;
> >          p->state = STATE_GET_BUFFER;
> > -        pthread_mutex_lock(&p->progress_mutex);
> >          pthread_cond_broadcast(&p->progress_cond);
> >  
> >          while (p->state != STATE_SETTING_UP)
> 
> LGTM
> 

Pushed.

Note: I'm not looking at fixing the other for now.

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20120719/4c4ee1a7/attachment.asc>


More information about the ffmpeg-devel mailing list