Commit Graph

194 Commits

Author SHA1 Message Date
Hendrik Leppkes d96d0252fd Merge commit 'cdfe45ad371b7a8e6135b6c063b6b2a93152cb3a'
* commit 'cdfe45ad371b7a8e6135b6c063b6b2a93152cb3a':
  lavu: Drop deprecated av_reverse function

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:17:15 +02:00
Michael Niedermayer d6cd614dac avutil/common: Add FFNABS()
This macro avoids the undefined corner case with the *_MIN values

Previous version Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 09:05:50 +02:00
Michael Niedermayer 733511fb53 avutil/common: Document FFABS() corner case
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 02:18:01 +02:00
Vittorio Giovara cdfe45ad37 lavu: Drop deprecated av_reverse function
Deprecated in 10/2012.
2015-08-28 16:04:27 +02:00
James Almer d13e521cc8 libavutil: add av_mod_uintp2
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-20 15:47:31 -03:00
Michael Niedermayer 85108195c5 avutil/common: minor simplification in av_clip_intp2_c()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-02 01:07:50 +01:00
Michael Niedermayer 6d66e1a113 avutil/common: Fix integer overflow in av_clip_int8/16_c
Fixes: signal_sigsegv_30420a5_2388_cov_1489993561_integra_lavf.mp4

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-25 20:56:00 +01:00
Michael Niedermayer 88d850ecb3 Merge commit 'bf07d813f6c88b5a76980f321cf7272d799c4216'
* commit 'bf07d813f6c88b5a76980f321cf7272d799c4216':
  libavutil: Add av_clip_intp2

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-21 11:13:34 +01:00
Peter Meerwald bf07d813f6 libavutil: Add av_clip_intp2
there already is a function, av_clip_uintp2() that clips a signed integer
to an unsigned power-of-two range, i.e. 0,2^p-1

this patch adds a function av_clip_intp2() that clips a signed integer
to a signed power-of-two range, i.e. -(2^p),(2^p-1)

the new function can be used as a special case for av_clip(), e.g.
av_clip(x, -8192, 8191) can be rewritten as av_clip_intp2(x, 13)

there are ARM instructions, usat and ssat resp., which map nicely to these
functions (see next patch)

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-02-21 00:54:40 +01:00
Michael Niedermayer ccdfa3e271 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Add missing #includes for *INT64_MAX and *INT64_C

Conflicts:
	ffmpeg.c
	ffmpeg_filter.c
	ffplay.c
	libavformat/assdec.c
	libavformat/avidec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-24 05:21:19 +01:00
Diego Biurrun 8f8bc92365 Add missing #includes for *INT64_MAX and *INT64_C 2013-11-23 21:55:52 +01:00
Michael Niedermayer 66872161cb avutil/common: error out with clear message if __STDC_CONSTANT_MACROS is not defined with c++
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-05 22:10:02 +01:00
Stefano Sabatini 719b4eef5d lavu/common: add warning to GET_UTF8 doxy
Should prevent wrong uses, or at least decrease their chance.
2013-10-04 16:36:27 +02:00
Alfred E. Heggestad 16c3ed5837 libavutil: cast truncated values to uint32_t
programs using ffmpeg that are compiled with -Wshorten-64-to-32
gives a warning when using header files common.h and rational.h

cast 64-bit truncated values to (uint32_t) to avoid the warning

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-27 14:25:34 +02:00
Clément Bœsch b3c263e209 lavu/common: make FF_CEIL_RSHIFT faster when shift is constant.
See "[PATCH] lavfi/lut: use FF_CEIL_RSHIFT for chroma w/h rounding."
thread for more information.
2013-05-13 17:53:16 +02:00
Clément Bœsch 570d63eef3 lavu: add FF_CEIL_RSHIFT and use it in various places. 2013-05-09 16:59:42 +02:00
Nicolas George 29ebb7ba8d lavu: fix GET_UTF8 macro.
Prevent 0xFE and 0xFF from being considered the start of
non-standard 7-bytes sequences. No noticeable effect on speed.
2013-04-24 19:41:27 +02:00
Paul B Mahol 3e9c0217fd lavu: add av_clipd_c
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-04-18 14:38:21 +00:00
Reimar Döffinger efa7f42020 Use the avstring.h locale-independent character type functions
Make sure the behavior does not change with the locale.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-07 15:16:36 +02:00
Reimar Döffinger 88d55b827d Remove incorrect use of ctype.h functions.
As far as I can tell the code should not change behaviour
depending on locale in any of these places.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-03-03 21:44:10 +01:00
Michael Niedermayer f27eb1b702 lavu: check that assert level is defined
fix warning

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-05 12:21:39 +01:00
Michael Niedermayer 498e1c6bb9 lavu: check av_clip*() limits
This code cannot use av_assert* due to circular header dependancies

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 22:19:31 +01:00
Michael Niedermayer 4d941eac16 Merge commit '3b4296f41473a5b39e84d7a49d480624c9c60040'
* commit '3b4296f41473a5b39e84d7a49d480624c9c60040':
  avformat: clarify stream id for muxing
  fate: Add dependencies for aac, alac, amrnb, amrwb, atrac tests
  ppc: do not pass redundant compiler flags
  avutil: change GET_UTF8 to not use av_log2()
  segment: fix NULL pointer dereference in seg_write_header()

Conflicts:
	tests/fate/aac.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-15 11:12:25 +01:00
Mans Rullgard 7ba0c1b390 avutil: change GET_UTF8 to not use av_log2()
This removes an inter-library dependency on ff_log2_tab causing
linking errors in some configurations.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-14 13:50:42 +00:00
Michael Niedermayer ae52eb7fc7 lavu: add av_clip64()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 00:26:35 +02:00
Michael Niedermayer dcbff35199 Merge commit 'd15c21e5fa3961f10026da1a3080a3aa3cf4cec9'
* commit 'd15c21e5fa3961f10026da1a3080a3aa3cf4cec9':
  avutil: Add a copy of ff_sqrt_tab back into avutil to restore ABI compatibility
  avutil: make some tables visible again
  avutil: remove inline av_log2 from public API
  celp_math: rename ff_log2 to ff_log2_q15

Conflicts:
	libavutil/libavutil.v

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 13:35:42 +02:00
Mans Rullgard 8c0a3d5fe0 avutil: remove inline av_log2 from public API
This removes inline av_log2 and av_log2_16bit from the public API,
instead exporting them as regular functions.  In-tree code still
gets the inline and otherwise optimised variants.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-20 12:28:45 +01:00
Michael Niedermayer d6c342fdc0 Merge commit 'd5c62122a7b26704bf867a1262df358623bf5edf'
* commit 'd5c62122a7b26704bf867a1262df358623bf5edf':
  Move av_reverse table to libavcodec

Conflicts:
	libavcodec/asvenc.c
	libavcodec/vble.c
	libavutil/common.h
	libavutil/mathematics.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 14:35:42 +02:00
Diego Biurrun d5c62122a7 Move av_reverse table to libavcodec
It is only used in that library.
2012-10-12 20:39:18 +02:00
Michael Niedermayer d8c3170c9f Merge remote-tracking branch 'qatar/master'
* qatar/master: (22 commits)
  g723.1: do not pass large structs by value
  g723.1: do not bounce intermediate values via memory
  g723.1: declare a variable in the block it is used
  g723.1: avoid saving/restoring excitation
  g723.1: avoid unnecessary memcpy() in residual_interp()
  g723.1: make postfilter write directly to output buffer
  g723.1: drop unnecessary variable buf_ptr in formant_postfilter()
  g723.1: make scale_vector() output to a separate buffer
  g723.1: make autocorr_max() work on an arbitrary buffer
  g723.1: do not needlessly use int64_t
  g723.1: use saturating addition functions
  g723.1: optimise scale_vector()
  g723.1: remove useless uses of MUL64()
  g723.1: remove unnecessary argument 'shift' from dot_product()
  g723.1: deobfuscate "(x << 4) - x" to "15 * x"
  celp: optimise ff_celp_lp_synthesis_filter()
  libavutil: add saturating addition functions
  cllc: Implement ARGB support
  cllc: Add support for QRGB
  cllc: Rename some funcs to represent what they actually do
  ...

Conflicts:
	LICENSE
	libavcodec/g723_1.c
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-13 14:38:43 +02:00
Mans Rullgard 6c4975eaaf libavutil: add saturating addition functions
Fixed-point audio codecs often use saturating arithmetic, and
special instructions for these operations are common.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:10 +01:00
Michael Bradshaw b0e1557fe7 Fixed warnings about int64 to int32 conversion
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-25 02:41:28 +02:00
Nicolas George f16c950f32 lavu: document av_reverse. 2012-02-22 15:35:44 +01:00
Michael Niedermayer ad1c8dd673 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: add dxtory test
  adx_parser: rewrite.
  adxdec: Validate channel count to fix a division by zero.
  adxdec: Do not require extradata.
  cmdutils: K&R reformatting cosmetics
  alacdec: implement the 2-pass prediction type.
  alacenc: implement the 2-pass prediction type.
  alacenc: do not generate invalid multi-channel ALAC files
  alacdec: fill in missing or guessed info about the extradata format.
  utvideo: proper median prediction for interlaced videos
  lavu: bump lavu minor for av_popcount64
  dca: K&R formatting cosmetics
  dct: K&R formatting cosmetics
  lavf: flush decoders in avformat_find_stream_info().
  win32: detect number of CPUs using affinity
  Add av_popcount64
  snow: Restore three mistakenly removed casts.

Conflicts:
	cmdutils.c
	doc/APIchanges
	libavcodec/adx_parser.c
	libavcodec/adxdec.c
	libavcodec/alacenc.c
	libavutil/avutil.h
	tests/fate/screen.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-04 01:12:34 +01:00
Daniel Verkamp b73ec05473 Add av_popcount64
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-03 14:25:43 +01:00
Michael Niedermayer 022f8d27dd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  swscale: Readd #define _SVID_SOURCE
  Fix av_get_channel_layout_string() for positions >31
  configure: Store vda lib flags in extralibs instead of ldflags
  Make channel layout masks unsigned
  dca: ARMv6 optimised decode_blockcode()
  nullenc: drop AVFMT_RAWPICTURE from the flags
  frame-mt: return consumed packet size in ff_thread_decode_frame
  aacdec: add more fate tests covering SBR and PS
  MK(BE)TAG: avoid undefined shifts

Conflicts:
	configure
	libavcodec/arm/dca.h
	libavcodec/dca.c
	libavcodec/mlp_parser.c
	libavcodec/version.h
	libavfilter/asrc_anullsrc.c
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/defaults.c
	libavutil/audioconvert.c
	libavutil/avutil.h
	libswscale/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-26 01:12:08 +01:00
Mans Rullgard 6b34fbba9b MK(BE)TAG: avoid undefined shifts
Casting the left-most byte to unsigned avoids an undefined
result of the shift by 24 if bit 7 is set.  This affects
the rm demuxer.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-25 00:20:03 +00:00
Michael Niedermayer 686959e87e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doxygen: Consistently use '@' instead of '\' for Doxygen markup.
  Use av_printf_format to check the usage of printf style functions
  Add av_printf_format, for marking printf style format strings and their parameters
  ARM: enable thumb for Cortex-M* CPUs
  nsvdec: Propagate error values instead of returning 0 in nsv_read_header().
  build: remove SRC_PATH_BARE variable
  build: move basic rules and variables to main Makefile
  build: move special targets to end of main Makefile
  lavdev: improve feedback in case of invalid frame rate/size
  vfwcap: prefer "framerate_q" over "fps" in vfw_read_header()
  v4l2: prefer "framerate_q" over "fps" in v4l2_set_parameters()
  fbdev: prefer "framerate_q" over "fps" in device context
  bktr: prefer "framerate" over "fps" for grab_read_header()
  ALSA: implement channel layout for playback.
  alsa: support unsigned variants of already supported signed formats.
  alsa: add support for more formats.
  ARM: allow building in Thumb2 mode

Conflicts:
	common.mak
	doc/APIchanges
	libavcodec/vdpau.h
	libavdevice/alsa-audio-common.c
	libavdevice/fbdev.c
	libavdevice/libdc1394.c
	libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-24 03:07:04 +02:00
Diego Biurrun adbfc605f6 doxygen: Consistently use '@' instead of '\' for Doxygen markup.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-06-24 00:37:49 +02:00
Michael Niedermayer 58c03f6d7d Merge remote branch 'qatar/master'
* qatar/master:
  swscale: properly inline bits/endianness in yuv2yuvX16inC().
(We didnt pull the bug)  swscale: fix clipping of 9/10bit YUV420P.
  Add av_clip_uintp2() function
(our patch / duplicate)  dfa: fix buffer overflow checks to avoid integer overflows.
(our patch / duplicate)  movenc: always write esds descriptor length using 4 bytes.
(our patch / duplicate)  ffmpeg: use parse_number_and_die() when it makes sense
(No thanks)  ffmpeg: get rid of the 'q' key schizofrenia

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-14 02:19:58 +02:00
Mans Rullgard 1550f45a89 Add av_clip_uintp2() function
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-05-13 16:45:24 -04:00
Michael Niedermayer 5192788321 avutil: add divide & modulo that round like unsigned ones do that is down.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-09 17:47:22 +02:00
Mans Rullgard 2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Jason Garrett-Glaser 545dc699f8 Force inlining of avutil common routines
On some versions of gcc, these weren't always getting inlined due to hitting
the inline cap limit in some files.  This is generally bad, as most of these
functions are smaller inlined than not.
(cherry picked from commit eb3755a5aa)
2011-02-18 19:52:41 +01:00
Jason Garrett-Glaser eb3755a5aa Force inlining of avutil common routines
On some versions of gcc, these weren't always getting inlined due to hitting
the inline cap limit in some files.  This is generally bad, as most of these
functions are smaller inlined than not.
2011-02-17 15:25:25 -08:00
Tomas Härdin bc6f0af289 Add av_popcount() to libavutil/common.h and bump minor version
Originally committed as revision 25120 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-14 14:45:43 +00:00
Benoit Fouet 573af7545e Add missing parentheses to AV_NE macro.
Originally committed as revision 24885 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-23 15:31:50 +00:00
Måns Rullgård 6a36facc3d Fix out-of-tree build
Originally committed as revision 24816 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-17 18:48:56 +00:00
Stefano Sabatini 4f2d2e4ed9 Define macro AV_NE() and use it in libavdevice.
Help further refactoring.

Originally committed as revision 24814 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-17 18:25:34 +00:00
Måns Rullgård 216b43aed2 Allow arch-overrides for all common.h clip and log2 functions
Originally committed as revision 24087 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-07 17:27:45 +00:00