This actually matches what av_get_double did earlier, the
0.0/0.0 division was intentional, for producing NAN.
Still keeping the check for the return value from
av_get_number, for clarity.
Signed-off-by: Martin Storsjö <martin@martin.st>
* qatar/master: (22 commits)
configure: enable memalign_hack automatically when needed
swscale: unbreak the build on non-x86 systems.
swscale: remove if(bitexact) branch from functions.
swscale: remove if(canMMX2BeUsed) conditional.
swscale: remove swScale_{c,MMX,MMX2} duplication.
swscale: use emms_c().
Move emms_c() from libavcodec to libavutil.
tiff: set palette in the context when specified in TIFF_PAL tag
rtsp: use strtoul to parse rtptime and seq values.
pgssubdec: fix incorrect colors.
dvdsubdec: fix incorrect colors.
ape: Allow demuxing of files with metadata tags.
swscale: remove dead macro WRITEBGR24OLD.
swscale: remove AMD3DNOW "optimizations".
swscale: remove duplicate code in ppc/ subdirectory.
swscale: remove duplicated x86/ functions.
swscale: force --enable-runtime-cpudetect and remove SWS_CPU_CAPS_*.
vsrc_buffer.h: add file doxy
vsrc_buffer: tweak error message in init()
msmpeg4: reindent.
...
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
ffmpeg: Don't trigger url_interrupt_cb on the first signal
avoptions: Check the return value from av_get_number
dct32_sse: eliminate some spills
Fix dct32() compilation with --disable-yasm
Conflicts:
ffmpeg.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This avoids doing a division by zero if the option wasn't found,
or wasn't an option of an appropriate type.
Signed-off-by: Martin Storsjö <martin@martin.st>
* qatar/master:
ffmpeg: get rid of the -vglobal option.
dct32: Add AVX implementation of 32-point DCT
dct32: Change pass 6 permutation to allow for AVX implementation
dct32: port SSE 32-point DCT to YASM
multiple inclusion guard cleanup
avio: document buffer must created with av_malloc() and friends
avio: check AVIOContext malloc failure
swscale: point out an alternative to sws_getContext
svq3: Do initialization after parsing the extradata
add changelog entries for 0.7_beta2
mp3lame: add #include required for AV_RB32 macro.
Conflicts:
Changelog
libavcodec/svq3.c
libavcodec/x86/dct32_sse.c
libavfilter/vsrc_buffer.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Make it a subcase of the general algorithm used for the non-bitstream
case. Simplify, and make av_image_get_linesize() and
av_image_fill_linesizes() correctly return the right value when plane
!= 0.
In particular fix a crash occurring with:
-vf format=monow,showinfo,format=monow.
* 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>
* qatar/master: (33 commits)
rtpdec_qdm2: Don't try to parse data packet if no configuration is received
ac3enc: put the counting of stereo rematrixing bits in the same place to make the code easier to understand.
ac3enc: clean up count_frame_bits() and count_frame_bits_fixed()
mpegvideo: make FF_DEBUG_DCT_COEFF output coeffs via av_log() instead of just via AVFrame.
srtdec: make sure we don't write past the end of buffer
wmaenc: improve channel count and bitrate error handling in encode_init()
matroskaenc: make sure we don't produce invalid file with no codec ID
matroskadec: check that pointers were initialized before accessing them
lavf: fix function name in compute_pkt_fields2 av_dlog message
lavf: fix av_find_best_stream when providing a wanted stream.
lavf: fix av_find_best_stream when decoder_ret is given and using a related stream.
ffmpeg: factorize quality calculation
tiff: add support for SamplesPerPixel tag in tiff_decode_tag()
tiff: Prefer enum TiffCompr over int for TiffContext.compr.
mov: Support edit list atom version 1.
configure: Enable libpostproc automatically if GPL code is enabled.
Cosmetics: fix prototypes in oggdec
oggdec: fix memleak with continuous streams.
matroskaenc: add missing new line in av_log() call
dnxhdenc: add AVClass in private context.
...
swscale changes largely rewritten by me or replaced by baptsites due to lots of bugs in ronalds code.
Above code is also just in case its not obvios to a large extended duplicates that where cherry picked
from ffmpeg.
Conflicts:
configure
ffmpeg.c
libavformat/matroskaenc.c
libavutil/pixfmt.h
libswscale/ppc/swscale_template.c
libswscale/swscale.c
libswscale/swscale_template.c
libswscale/utils.c
libswscale/x86/swscale_template.c
tests/fate/h264.mak
tests/ref/lavfi/pixdesc_le
tests/ref/lavfi/pixfmts_copy_le
tests/ref/lavfi/pixfmts_null_le
tests/ref/lavfi/pixfmts_scale_le
tests/ref/lavfi/pixfmts_vflip_le
Merged-by: Michael Niedermayer <michaelni@gmx.at>
To use posix_memalign() "#define _XOPEN_SOURCE 600" have to be defined.
FFmpeg configure defines it from the command line through config.mak,
but when libavutil is used outside of FFmpeg the define is missing.
Signed-off-by: Ivan Kalvachev <ikalvachev@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Adding _POSIX_C_SOURCE to CPPFLAGS globally produces all sorts of problems
since it causes certain system functions to be hidden on some (BSD) systems.
The solution is to only add the flag on systems that really require it, i.e.
glibc-based ones.
This change makes BSD systems compile out-of-the-box without the need for
adding specific flags manually. It also allows dropping a number of flags
set manually on a file-per-file basis, but were only present to work around
breakage introduced by the presence of _POSIX_C_SOURCE.
Also add _XOPEN_SOURCE to CPPFLAGS for glibc systems. We use XSI extensions
in several places already, so it is preferable to define it globally instead
of littering source files with individual #defines only needed for glibc.
* qatar/master: (32 commits)
10-bit H.264 x86 chroma v loopfilter asm
Port SMPTE S302M audio decoder from FFmbc 0.3. [Copyright headers corrected]
Fix crash of interlaced MPEG2 decoding
h264pred: fix one more aliasing violation.
doc/APIchanges: fill in missing hashes and dates.
flacenc: use proper initializers for AVOption default values.
lavc: deprecate named constants for deprecated antialias_algo.
aac: workaround for compilation on cygwin
swscale: extend YUV422p support to 10bits depth
tiff: add support for inverted FillOrder for uncompressed data
Remove unused softfloat implementation.
h264pred: fix aliasing violations.
rotozoom: Eliminate French variable name.
rotozoom: Check return value of fread().
rotozoom: Return an error value instead of calling exit().
rotozoom: Make init_demo() return int and check for errors on invocation.
rotozoom: Drop silly UINT8 typedef.
rotozoom: Drop some unnecessary parentheses.
rotozoom: K&R coding style cosmetics
rtsp: Only do keepalive using GET_PARAMETER if the server supports it
...
Conflicts:
Changelog
cmdutils.c
doc/APIchanges
doc/general.texi
ffmpeg.c
ffplay.c
libavcodec/h264pred_template.c
libavcodec/resample.c
libavutil/pixfmt.h
libavutil/softfloat.c
libavutil/softfloat.h
tests/rotozoom.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Fix handling of input if not in native endianness, and add support for
9/10-bit output. This allows us to force endianness of YUV420P 9/10bit
in the H264/10bit fate tests, which should fix them on big-endian
systems.
The softfloat functionality is unused, not installed and incomplete.
On platforms without floating point units, the compiler provides a softfloat
implementation so there is no point in carrying this code around locally.
* qatar/master: (30 commits)
AVOptions: make default_val a union, as proposed in AVOption2.
arm/h264pred: add missing argument type.
h264dsp_mmx: place bracket outside #if/#endif block.
lavf/utils: fix ff_interleave_compare_dts corner case.
fate: add 10-bit H264 tests.
h264: do not print "too many references" warning for intra-only.
Enable decoding of high bit depth h264.
Adds 8-, 9- and 10-bit versions of some of the functions used by the h264 decoder.
Add support for higher QP values in h264.
Add the notion of pixel size in h264 related functions.
Make the h264 loop filter bit depth aware.
Template dsputil_template.c with respect to pixel size, etc.
Template h264idct_template.c with respect to pixel size, etc.
Preparatory patch for high bit depth h264 decoding support.
Move some functions in dsputil.c into a new file dsputil_template.c.
Move the functions in h264idct into a new file h264idct_template.c.
Move the functions in h264pred.c into a new file h264pred_template.c.
Preparatory patch for high bit depth h264 decoding support.
Add pixel formats for 9- and 10-bit yuv420p.
Choose h264 chroma dc dequant function dynamically.
...
Conflicts:
doc/APIchanges
ffmpeg.c
ffplay.c
libavcodec/alpha/dsputil_alpha.c
libavcodec/arm/dsputil_init_arm.c
libavcodec/arm/dsputil_init_armv6.c
libavcodec/arm/dsputil_init_neon.c
libavcodec/arm/dsputil_iwmmxt.c
libavcodec/arm/h264pred_init_arm.c
libavcodec/bfin/dsputil_bfin.c
libavcodec/dsputil.c
libavcodec/h264.c
libavcodec/h264.h
libavcodec/h264_cabac.c
libavcodec/h264_cavlc.c
libavcodec/h264_loopfilter.c
libavcodec/h264_ps.c
libavcodec/h264_refs.c
libavcodec/h264dsp.c
libavcodec/h264idct.c
libavcodec/h264pred.c
libavcodec/mlib/dsputil_mlib.c
libavcodec/options.c
libavcodec/ppc/dsputil_altivec.c
libavcodec/ppc/dsputil_ppc.c
libavcodec/ppc/h264_altivec.c
libavcodec/ps2/dsputil_mmi.c
libavcodec/sh4/dsputil_align.c
libavcodec/sh4/dsputil_sh4.c
libavcodec/sparc/dsputil_vis.c
libavcodec/utils.c
libavcodec/version.h
libavcodec/x86/dsputil_mmx.c
libavformat/options.c
libavformat/utils.c
libavutil/pixfmt.h
libswscale/swscale.c
libswscale/swscale_internal.h
libswscale/swscale_template.c
tests/ref/seek/lavf_avi
Merged-by: Michael Niedermayer <michaelni@gmx.at>
With this change libavutil uses av_freep() everywhere where it makes sense.
Remaining av_free() use in it has the used pointer become inaccessible quickly
soo zeroing makes no sense.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
log: Fix an oob array read.
cosmetics: trim trailing whitespace in postproc
Ban strncpy() it's too easy to misuse.
psymodel: Remove wrapper functions.
aacenc: Replace loop counters in aac_encode_frame() with more descriptive 'ch' and 'w'.
regtest: remove redundant flags in jpg test
regtest: use run_ffmpeg in do_image_formats
regtest: simplify encoding functions
ffmpeg.c: check for interlaced flag in the correct place.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '85770f2a2651497861ed938efcd0df3696ff5e45':
AVOptions: make default_val a union, as proposed in AVOption2.
Move ff_dynarray_add to lavu and make it public.
lavf: remove duplicate assignment in avformat_alloc_context.
lavf: use designated initializers for AVClasses.
options: simplify av_find_opt by using av_next_option.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Also deprecate av_get_pict_type_char() in favor of
av_get_picture_type_char().
The new enum and av_get_picture_type_char() are defined in libavutil.
This allows the use in libavfilter without the need to link against
libavcodec.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
* qatar/master:
Handle unicode file names on windows
rtp: Rename the open/close functions to alloc/free
Lowercase all ff* program names.
Refer to ff* tools by their lowercase names.
NOT Pulled Replace more FFmpeg instances by Libav or ffmpeg.
Replace `` by $() syntax in shell scripts.
patcheck: Allow overiding grep program(s) through environment variables.
NOT Pulled Remove stray libavcore and _g binary references.
vorbis: Rename decoder/encoder files to follow general file naming scheme.
aacenc: Fix whitespace after last commit.
cook: Fix small typo in av_log_ask_for_sample message.
aacenc: Finish 3GPP psymodel analysis for non mid/side cases.
Remove RDFT dependency from AAC decoder.
Add some debug log messages to AAC extradata
Fix mov debug (u)int64_t format strings.
bswap: use native types for av_bwap16().
doc: FLV muxing is supported.
applehttp: Handle AES-128 encrypted streams
Add a protocol handler for AES CBC decryption with PKCS7 padding
doc: Mention that DragonFly BSD requires __BSD_VISIBLE set
Conflicts:
ffplay.c
ffprobe.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This prevents a call to bytestream_get_be16() using a movzwl both before
and after the ror instruction, which is obviously inefficient. Arm uses
the same trick also.
Sintel decoding goes from (avg+SD) 9.856 +/- 0.003 to 9.797 +/- 0.003 sec.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
The removal was not applied when merging the Libav patches, because
there was still code referencing the symbols.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
* qatar/master:
APIChanges: document git revision for CODEC_CAP_SLICE_THREADS addition.
Introduce slice threads flag.
FATE: allow forcing thread-type when doing threaded fate runs.
Use av_log_ask_for_sample() where appropriate.
error: sort, pack, and align error code and string definitions
The stabilization period after version bumps should be one month, not one week.
applehttp: Expose the stream bitrate via metadata
doc: Add some initial docs on the applehttp demuxer
Provide a fallback version of the libm function trunc
libavdevice: Define _XOPEN_SOURCE for usleep
lavc: provide deprecated avcodec_thread_init until next major version
lavc: provide the opt.h header until the next bump
error: change AVERROR_EOF value
error: remove AVERROR_NUMEXPECTED
error: add error code AVERROR_OPTION_NOT_FOUND, and use it in opt.c
Conflicts:
libavcodec/h264.c
libavutil/error.c
libavutil/error.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The current value is masking the POSIX error code EPIPE, which has a
different semantics.
This breaks API.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
AVERROR_NUMEXPECTED is used only in the image muxer and demuxer, and
has a too much specific meaning, which is better explained through a
log message. Thus it can be replaced by AVERROR(EINVAL).
This breaks API.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
The new error code is better than AVERROR(ENOENT), which has a
completely different semantics ("No such file or directory").
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
* qatar/master:
Makefile: Include dependencies for test tools, too
Remove a version check in av_log made unnecessary by the big bump.
update last major version increase dates in APIchanges
Reduce picture size for yadif.
oggdec: use av_freep() instead of av_free()
avio: Fix sanity checks in ffurl_read*
libavformat: Free AVFormatContext->streams
libavformat: Make protocols pass URLContext as log context where available
asf: remove commented out code in asf_read_seek
not pulled: libpostproc: Remove crufty code disabled by the big bump.
Reflect 0.7_beta1 release in the Changelog
not pulled: sws: remove disabled cruft.
lavu: remove disabled ff_random_get_seed cruft.
lavu: remove disabled sha1 cruft.
Conflicts:
Changelog
libavutil/sha1.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master: (37 commits)
In avcodec_open(), set return code to an error value only when an error occurs instead of unconditionally at the start of the function.
lavc: remove reference to opt.h from Makefile.
prefer avio_check() over url_exist()
avio: remove AVIO_* access symbols in favor of new AVIO_FLAG_* symbols
lavu: remove misc disabled cruft
lavu: remove FF_API_OLD_IMAGE_NAMES cruft
NOT PULLED lavu: remove FF_API_OLD_EVAL_NAMES cruft
lavc: remove misc disabled cruft.
lavc: remove the FF_API_INOFFICIAL cruft.
lavc: remove the FF_API_SET_STRING_OLD cruft.
lavc: remove the FF_API_USE_LPC cruft.
lavc: remove the FF_API_SUBTITLE_OLD cruft.
lavc: remove the FF_API_VIDEO_OLD cruft.
lavc: remove the FF_API_AUDIO_OLD cruft.
lavc: remove the FF_API_OPT_SHOW cruft.
lavc: remove the FF_API_MM_FLAGS cruft.
lavf: remove misc disabled cruft.
lavf: remove FF_API_INDEX_BUILT cruft
lavf: remove FF_API_URL_CLASS cruft.
lavf: remove FF_API_SYMVER cruft
...
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
ac3dec: fix processing of delta bit allocation information.
vc1: fix fate-vc1 after previous commit.
wmv3dec: fix playback of complex WMV3 files using simple_idct.
make av_dup_packet() more cautious on allocation failures
make containers pass palette change in AVPacket
introduce side information for AVPacket
Politic commits that have not been pulled:
Update regtest checksums after revision 6001dad.
Replace more FFmpeg references by Libav.
Replace references to ffmpeg-devel with libav-devel; fix roundup URL.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The functions are already av_ prefixed and sha1 header is already provided.
Install libavutil/{aes,sha}.h
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* qatar/master:
avio: add more documentation for AVIOContext.
Parse sprite data for WMVP and WVP2, and decode sprites for the latter
Replace outdated info on the FAQ
Redefine sameq
pad: fix example explanation
gradfun: add notice from the MPlayer manual
eval: add support for trunc, ceil, and floor functions
documentation: add setdar and setsar description to filters.texi
avio: document some members of AVIOContext.
avio: document avio_close().
avio: cosmetics, vertically align comments.
avio: cosmetics, group the reading functions.
avio: cosmetics, merge all the FF_API_OLD_AVIO blocks.
avio: cosmetics, move AVIOContext to start of the file.
avio: update file header.
os: fix OpenBSD/PowerPC compilation
pixfmt: add PIX_FMT_BGR48LE and PIX_FMT_BGR48BE
oggdec: fix demuxing chained audio streams
fix typo
Conflicts:
doc/filters.texi
libavformat/avio.h
libavutil/pixfmt.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
When attempting to re-enable the AltiVec support it was noticed
that we need to undefine _POSIX_C_SOURCE to appease the headers
for ff_get_cpu_flags_ppc() to be able to compile.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* newdev/master:
avio: make udp_set_remote_url/get_local_port internal.
asfdec: also subtract preroll when reading simple index object
matroskaenc: remove a variable that's unused after bc17bd9.
avio: cosmetics - nicer vertical alignment.
Remove unnecessary icc version checks
Disable 'attribute "foo" ignored' warnings from icc
rtsp: Don't use a locale dependent format string
Add xd55 codec tag for XDCAM HD422 720p25 CBR files.
configure: get libavcodec version from new version.h header
lavc: move the version macros to a new installed header.
matroskaenc: simplify get_aac_sample_rates by using ff_mpeg4audio_get_config
Do not use format string "%0.3f" for RTSP Range field.
Add apply_window_int16() to DSPContext with x86-optimized versions and use it in the ac3_fixed encoder.
Document usage of import libraries created by dlltool
configure: Set the correct lib target for arm/wince dlltool
fate: simplify regression-funcs.sh
fate: add support for multithread testing
Conflicts:
libavformat/rtspdec.c
libavutil/attributes.h
libavutil/internal.h
libavutil/mem.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
With unknown attribute warnings disabled, these checks are no
longer needed. Removing them improves readability while having
no effect on generated code.
Signed-off-by: Mans Rullgard <mans@mansr.com>
* newdev/master: (33 commits)
Fix an infinite loop when RoQ encoded generated a frame with a size greater than the maximum valid size.
Add kbdwin.o to AC3 decoder
Detect byte-swapped AC-3 and support decoding it directly.
cosmetics: indentation
Always copy input data for AC3 decoder.
ac3enc: make sym_quant() branch-free
cosmetics: indentation
Add a CPU flag for the Atom processor.
id3v2: skip broken tags with invalid size
id3v2: don't explicitly skip padding
Make sure kbhit() is in conio.h
fate: update wmv8-drm reference
vc1: make P-frame deblock filter bit-exact.
configure: Add the -D parameter to the dlltool command
amr: Set the AVFMT_GENERIC_INDEX flag
amr: Set the pkt->pos field properly to the start of the packet
amr: Set the codec->bit_rate field based on the last packet
rtsp: Specify unicast for TCP interleaved streams, too
Set the correct target for mingw64 dlltool
applehttp: Change the variable for stream position in seconds into int64_t
...
Conflicts:
ffmpeg.c
ffplay.c
libavcodec/ac3dec.c
libavformat/avio.h
libavformat/id3v2.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The Atom has SSSE3 support, which is useful in many cases, but sometimes the
SSSE3 version is slower than the SSE2 equivalent on the Atom, but is generally
faster on other processors supporting SSSE3. This flag allows for selectively
disabling certain SSSE3 functions on the Atom.
This is different from AVERROR(EINTR) because calls that fail with EINTR
should usually be restarted.
Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
This allows the CPU detection to work with assemblers not supporting
the xgetbv mnemonic. These include clang and some BSD versions.
All AVX code will be written for yasm, where the main assembler
is not involved.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit ef66953875)
This adds configure and runtime checks for AVX support on x86 CPUs.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 87f1355f9b)
This allows the CPU detection to work with assemblers not supporting
the xgetbv mnemonic. These include clang and some BSD versions.
All AVX code will be written for yasm, where the main assembler
is not involved.
Signed-off-by: Mans Rullgard <mans@mansr.com>
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)
The new av_parse_time() is created in libavutil/parseutils.h, all the
internal functions used by parse_date are moved to
libavutil/parseutils.c and made static.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit f6c7375a17)
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.
The new av_parse_time() is created in libavutil/parseutils.h, all the
internal functions used by parse_date are moved to
libavutil/parseutils.c and made static.
Signed-off-by: Mans Rullgard <mans@mansr.com>
It is pretty hopeless that other considerable projects will adopt
libavutil alone in other projects. Projects that need small footprint
are better off with more specialized libraries such as gnulib or rather
just copy the necessary parts that they need. With this in mind, nobody
is helped by having libavutil and libavcore split. In order to ease
maintenance inside and around FFmpeg and to reduce confusion where to
put common code, avcore's functionality is merged (back) to avutil.
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
The bumps are for adding version.h and avio_{get/put}_str functions in
lavf and making av_dlog public in lavu.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
The bumps are for adding version.h and avio_{get/put}_str functions in
lavf and making av_dlog public in lavu.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
This allows this file to build on systems lacking NAN or INFINITY
in math.h.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit e781c4e6ff)
eval API.
More grep-friendly and more consistent with the rest of the FFmpeg
API.
Originally committed as revision 25708 to svn://svn.ffmpeg.org/ffmpeg/trunk
prefix does not contain other characters which may belong to an
identifier.
This allows to distinguish for example to have different constants
with the same prefix (e.g. "foo" and "foobar").
Originally committed as revision 25626 to svn://svn.ffmpeg.org/ffmpeg/trunk
Fixes compilation with clang's builtin assembler
Patch by İsmail Dönmez, ismail at namtrac dot org
Originally committed as revision 25331 to svn://svn.ffmpeg.org/ffmpeg/trunk
With this the developer can now choose if he wants an assert always enabled or at which
compile time assert level. This can thus replace the #define NDEBUG hacks
Originally committed as revision 25278 to svn://svn.ffmpeg.org/ffmpeg/trunk
This prevents gcc inserting useless UXTH instructions, at least
in some cases.
Originally committed as revision 25212 to svn://svn.ffmpeg.org/ffmpeg/trunk
This fixes out of bounds accesses for big endian formats and should be
a little faster.
Originally committed as revision 25110 to svn://svn.ffmpeg.org/ffmpeg/trunk
Instead of defining functions in per-arch header files included
by the main cpu.c, define them normally and call them from the
generic one.
Originally committed as revision 25084 to svn://svn.ffmpeg.org/ffmpeg/trunk
The ff_inverse table is used by FASTDIV macro, defined in libavutil, but up
to now the table was defined only in libavcodec.
After this change, the main copy of ff_inverse is part of libavutil (just
like FASTDIV), but if CONFIG_SMALL is unset, then a different copy is made
available to libavcodec, to avoid the performance penalty of using an
external look up table.
Dynamic linking works, because the libraries are linked with -Bsymbolic, so
the local copy of the symbol has priority over the external; static linking
works because the table is on a standalone object file in both libraries,
so the linker is able to discard one of the two.
Tested on Linux/x86-64 and Mac OS X/x86-64.
Originally committed as revision 24383 to svn://svn.ffmpeg.org/ffmpeg/trunk
Other parts of FFmpeg use NE (native endian) rather than ME (machine).
This makes it consistent.
Originally committed as revision 24169 to svn://svn.ffmpeg.org/ffmpeg/trunk
This is clearer than comparing against an unsigned number to force an unsigned
comparison that we need.
Originally committed as revision 24114 to svn://svn.ffmpeg.org/ffmpeg/trunk
The old names were not av_ prefixed, and they were causing linking
failure on many platforms. The new names are also more descriptive.
Patch by Stefano Sabatini.
Originally committed as revision 24101 to svn://svn.ffmpeg.org/ffmpeg/trunk
If both /dev/random and /dev/urandom failed to return data, an
uninitialised value might be returned. Since most systems have a
non-blocking /dev/urandom or have /dev/random with similar properties,
the chance of blocking is minimal, and the alternative of returning
non-random data is worse.
Originally committed as revision 23930 to svn://svn.ffmpeg.org/ffmpeg/trunk
Attempt to read from /dev/urandom and /dev/random with O_NONBLOCK set.
If neither succeeds, proceed with fallbacks.
Originally committed as revision 23903 to svn://svn.ffmpeg.org/ffmpeg/trunk
Makes it give correct results with e.g. gcc 4.4.
For unknown reasons the generate asm code also changes
on e.g. gcc 4.3, making the code a bit larger but also
a bit faster.
Originally committed as revision 23896 to svn://svn.ffmpeg.org/ffmpeg/trunk
When symbol versioning is enabled, moving symbols from one library to
another breaks binary compatibility. This adds wrappers with the old
version tag for the av_*packet functions recently moved to lavc.
Originally committed as revision 23611 to svn://svn.ffmpeg.org/ffmpeg/trunk
ansi color code to colored_fputs(), and pass instead the error level so the
proper color code may be used.
Originally committed as revision 23553 to svn://svn.ffmpeg.org/ffmpeg/trunk
This fixes aspect ratio calculation for encoding from files with 0/0 stored,
common with ogg/theora
Originally committed as revision 23280 to svn://svn.ffmpeg.org/ffmpeg/trunk
Keep an old ff_ named function for binary compatibility until the
next major bump.
Originally committed as revision 23254 to svn://svn.ffmpeg.org/ffmpeg/trunk
This is usefull to keep track and display relations where things are a
bit more complex (like AVProtocols or demuxers used by demuxers and such)
Originally committed as revision 23199 to svn://svn.ffmpeg.org/ffmpeg/trunk
also attributes.h is public and external api and can thus not depend
on configure tested compiler support thus this part is removed. A
different solution must be found if this breaks for some compiler
which i hope it does not.
Originally committed as revision 23115 to svn://svn.ffmpeg.org/ffmpeg/trunk
not defined.
This allows applications to check if av_strerror() cannot provide a
meaningful representation for the provided error code, without having
to actually check the filled string.
Originally committed as revision 23031 to svn://svn.ffmpeg.org/ffmpeg/trunk
number if strerror_r() did not succeed for whatever reason.
This avoids the need for the application to fill the string in case
strerror_r() fails, for example because the error code is not known.
Originally committed as revision 23015 to svn://svn.ffmpeg.org/ffmpeg/trunk
The normal byteswap functions might use inline asm which is suboptimal
with constants (and cannot be used in static initialisers), so special
macros for constants only is needed.
We should not rely on the gcc __builtin_constant_p() test since it is
not always available.
Originally committed as revision 22990 to svn://svn.ffmpeg.org/ffmpeg/trunk
instead which is semantically equivalent.
See the thread:
Subject: [FFmpeg-devel] [RFC] The meaning of AVERROR_NOTSUPP
Date: Sat, 27 Mar 2010 00:51:13 +0100
Originally committed as revision 22981 to svn://svn.ffmpeg.org/ffmpeg/trunk
they are easier to understand. Also give the add a 'u' postfix to silence
a pre-c99 compiler warning.
Originally committed as revision 22965 to svn://svn.ffmpeg.org/ffmpeg/trunk
Colors will only be used if the TERM env var is set and NO_COLOR is not set.
Originally committed as revision 22957 to svn://svn.ffmpeg.org/ffmpeg/trunk
Ive checked this on black and white background and found no problem in terms
of readability.
flames welcome.
Originally committed as revision 22946 to svn://svn.ffmpeg.org/ffmpeg/trunk
Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.
Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
This allows applications/libraries which require that symbol
(e.g. libavfilter) to be compiled without to depend on the presence of
libavcodec/avcodec.h, which may not be installed.
Originally committed as revision 22736 to svn://svn.ffmpeg.org/ffmpeg/trunk
major bump, using an FFmpeg specific error code rather than EINVAL,
which has a quite different semantics.
Originally committed as revision 22601 to svn://svn.ffmpeg.org/ffmpeg/trunk
major bump, using an FFmpeg specific error code rather than EDOM,
which has a quite different semantics.
Originally committed as revision 22528 to svn://svn.ffmpeg.org/ffmpeg/trunk
AVERROR(ENOMEM) must be used instead, and there are no occurrences of
AVERROR_ENOMEM in the FFmpeg basecode so it can be safely dropped.
Originally committed as revision 22514 to svn://svn.ffmpeg.org/ffmpeg/trunk
avctx->get_buffer() in case of error, rather than AVERROR_UNKNOWN
which is deprecated, and mark AVERROR_UNKNOWN for deletion at the next
major bump.
Originally committed as revision 22512 to svn://svn.ffmpeg.org/ffmpeg/trunk
libavutil/error.h.
Error code definitions and handling code belong to libavutil, where
they can be shared by all the libav* libraries.
See the thread:
Subject: [FFmpeg-devel] [PATCH] Move error codes definitions from lavc to lavu
Date: Sun, 19 Jul 2009 12:09:16 +0200
Originally committed as revision 22501 to svn://svn.ffmpeg.org/ffmpeg/trunk
This reduces the number of false dependencies on header files and
speeds up compilation.
Originally committed as revision 22407 to svn://svn.ffmpeg.org/ffmpeg/trunk
ffmpeg.c uses lrintf(), which is missing on some systems. Previously
it picked up the replacement via libavutil/internal.h due to
HAVE_AV_CONFIG_H being erroneously defined.
Moving these replacements to a separate header enables ffmpeg.c to
use them without being exposed to internal interfaces.
This use of a non-public header is justified by the header in question
not being part of the internal interface either. It should rather be
considered as part of the build system, which is shared between the
libraries and the applications.
This header cannot be installed since the tested conditions depend on
the compiler.
Originally committed as revision 22399 to svn://svn.ffmpeg.org/ffmpeg/trunk
This is a bit hackish. I will try to think of something nicer, but
this will do for now.
Originally committed as revision 22366 to svn://svn.ffmpeg.org/ffmpeg/trunk
Some of the per-arch headers are only meant to be used through
the parent header of the same name. Testing these standalone
does not make sense.
Originally committed as revision 22341 to svn://svn.ffmpeg.org/ffmpeg/trunk
These macros are redundant. All uses are replaced with the generic
DECLARE_ALIGNED macro instead.
Originally committed as revision 22233 to svn://svn.ffmpeg.org/ffmpeg/trunk
Patch by Janusz Krzysztofik jkrzyszt tis icnet pl
Original thread:
Subject: [FFmpeg-devel] [PATCH v2] Add initial support for 12-bit color mode.
Date: Mon, 1 Mar 2010 02:05:07 +0100
Originally committed as revision 22220 to svn://svn.ffmpeg.org/ffmpeg/trunk
consistent with the allocation currently done for PIX_FMT_GRAY8
pictures.
No significant slow-downs have been measured.
See the thread:
Subject: [FFmpeg-devel] [PATCH] Is gray8 a paletted format?
Date: Sun, 15 Nov 2009 23:36:03 +0100
Originally committed as revision 22191 to svn://svn.ffmpeg.org/ffmpeg/trunk
pixdesc.c, which are now not anymore marked as static inline.
Fix the inclusion of the private header intreadwrite.h in the public
header pixdesc.h.
Originally committed as revision 21854 to svn://svn.ffmpeg.org/ffmpeg/trunk
that output may be written as uint32_t since output buffer may not be aligned
(and it's silly to force alignment on it) and it does not work in that case
properly on some architectures.
Originally committed as revision 21754 to svn://svn.ffmpeg.org/ffmpeg/trunk
This makes it easy to use a replacement allocator instead of the
system default one.
Originally committed as revision 21509 to svn://svn.ffmpeg.org/ffmpeg/trunk
This compiler supports gcc-style alignment attributes for struct,
but not for global variables. For the latter, alignment can be
specified with a pragma, which does not work for struct members or
local variables. By using both pragma and attribute, one or the
other will always take effect.
Unfortunately, no means exists for aligning stack variables.
Originally committed as revision 21379 to svn://svn.ffmpeg.org/ffmpeg/trunk
The seemingly equivalent _Pragma(AV_STRINGIFY(x)) is not accepted
by some compilers.
Originally committed as revision 21378 to svn://svn.ffmpeg.org/ffmpeg/trunk
The macro implementation might need the name of the variable being
declared for compiler-specific syntax. Moving array specifiers outside
the macro invocation allows this to work.
Originally committed as revision 21363 to svn://svn.ffmpeg.org/ffmpeg/trunk
It allows VLD H264 decoding using DXVA2 (GPU assisted decoding API under
VISTA and Windows 7).
It is implemented by using AVHWAccel API. It has been tested successfully
for some time in VLC using an nvidia card on Windows 7.
To compile it, you need to have the system header dxva2api.h (either from
microsoft or using http://downloads.videolan.org/pub/videolan/testing/contrib/dxva2api.h)
The generated libavcodec.dll does not depend directly on any new lib as
the necessary objects are given by the application using FFmpeg.
Originally committed as revision 21353 to svn://svn.ffmpeg.org/ffmpeg/trunk
This file contains a safe subset of the config.h settings.
Only bigendian is included for now, more can be added as
need arises.
Originally committed as revision 21321 to svn://svn.ffmpeg.org/ffmpeg/trunk
functions: exp2, exp2f, log2, log2f.
Should fix compilation in systems where these functions are defined in math.h
but not implemented.
Originally committed as revision 21231 to svn://svn.ffmpeg.org/ffmpeg/trunk
in libavcodec/imgconvert.c.
Avoid to break compatility when making the functions dealing with
pixel format names in imgconvert.c use the names defined in pixdescs.
Originally committed as revision 20624 to svn://svn.ffmpeg.org/ffmpeg/trunk
This way pixdescs can be used without requiring a dependency on
libavcodec.
Originally committed as revision 20389 to svn://svn.ffmpeg.org/ffmpeg/trunk
already must be properly 0-terminated strings. Unlike strncpy it
cannot be used on raw data read from a file.
Originally committed as revision 19800 to svn://svn.ffmpeg.org/ffmpeg/trunk
It works the same as CHECKED_ALLOCZ except that it does not zero the allocated
memory.
Originally committed as revision 19742 to svn://svn.ffmpeg.org/ffmpeg/trunk
The per-arch headers can define any combination of B/L/N variants.
This ensures that whatever is defined in an arch header gets used
for all equivalents not defined there. E.g. on a little-endian
machine, AV_RN and AV_RL should give the same code.
Originally committed as revision 19658 to svn://svn.ffmpeg.org/ffmpeg/trunk
Instead, #include config.h at the top of common.h so that av_always_inline
does not get doubly defined.
Originally committed as revision 19553 to svn://svn.ffmpeg.org/ffmpeg/trunk