On Sat, 23 Dec 2017 22:32:36 +0100
Michael Niedermayer <mich...@niedermayer.cc> wrote:

> On Thu, Dec 21, 2017 at 11:22:21PM +0100, wm4 wrote:
> > Use static mutexes instead of requiring a lock manager. The behavior
> > should be roughly the same before and after this change for API users
> > which did not set the lock manager at all (except that a minor memory
> > leak disappears).
> > ---
> >  doc/APIchanges       |   5 +++
> >  libavcodec/avcodec.h |   8 +++-
> >  libavcodec/utils.c   | 107 
> > +++++----------------------------------------------
> >  libavcodec/version.h |   5 ++-
> >  4 files changed, 26 insertions(+), 99 deletions(-)  
> 
> Are all thread APIs users used with our lock manager compatible with this
> replacement ?

Yes, unless they explicitly disable threads in FFmpeg and used a lock
manager to compensate for it. But that would lose safety in other
places, where we already rely on pthread_once(), and would disable
useful features like frame threading.

Possibly we should add a note about this when the next release happens,
or disallow disabling building without thread support.

> Someone, possibly reimar, but i may misremember who it was. Talked in the 
> past 
> about thread API incompatibilies
> I believe the concern was that the user APP used multiple threads, one for 
> each
> decoder and one for the demuxer. But the locking used by the user app between
> its threads could be incompatible with the locking of our "pthread" locks.
> 
> If this is not an issue, then iam happy about this patch and the
> removial of the lock manager complexity.

I'm not worried about it, because FFmpeg uses the OS native threading
lib. Thus it's compatible with whatever else builds on native
threading. I don't even think it's possible to have threading that does
not build on the OS primitives, unless you do extremely hacky stuff
behind the libc (or ntdll on Windows).
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to