Commit Graph

7 Commits

Author SHA1 Message Date
James Almer
faa9d29829 lavu/atomic: add support for the new memory model aware gcc built-ins
__sync built-ins are considered legacy and will be deprecated.
These new memory model aware built-ins have been available since GCC 4.7.0

Use them by default when available except for __atomic_compare_exchange_n(),
which is slower, and is instead implemented as a fallback for when and if gcc
removes the legacy __sync built-ins.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2014-10-29 14:09:58 -03:00
Michael Niedermayer
0d0f76ea56 Merge commit '6327c10702922eabcb1c6170abd3f03d23ce4c51'
* commit '6327c10702922eabcb1c6170abd3f03d23ce4c51':
  atomic: fix CAS with armcc.
  png: use av_mallocz_array() for the zlib zalloc function
  libmp3lame: use the correct remaining buffer size when flushing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-12 21:39:38 +01:00
Anton Khirnov
6327c10702 atomic: fix CAS with armcc.
On the current code, armcc will fail with:
"libavutil/atomic_gcc.h", line 52: Error:  #2771: first argument must be
a pointer to integer or enumeration type
2013-03-09 08:36:40 +01:00
Martin Storsjö
309d6f5077 atomic: Add include guards to the implementation headers
This makes them pass standalone compilation tests. Previously,
they included atomic.h which included themselves again, leading to
double definitions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-08 20:54:40 +01:00
Michael Niedermayer
e92ba51fd7 Merge commit '65f1d45dcc71186ede72fff950996099d23359bd'
* commit '65f1d45dcc71186ede72fff950996099d23359bd':
  lavu: add support for atomic operations.

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-08 15:48:27 +01:00
Martin Storsjö
2240e92f05 atomic: Add include guards to the implementation headers
This makes them pass standalone compilation tests. Previously,
they included atomic.h which included themselves again, leading to
double definitions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-08 12:00:06 +02:00
Ronald S. Bultje
65f1d45dcc lavu: add support for atomic operations.
These could be used for reference counting, or for keeping track of
decoding progress in references in multithreaded decoders.

Support is provided by gcc/msvc/suncc intrinsics, with a fallback using
pthread mutexes.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-08 07:32:36 +01:00