The LAME API documentation for the required buffer size refers to the size for
a single encode call. However, we store multiple frames in the same output
buffer but only read 1 frame at a time out of it. As a result, the buffer size
given in lame_encode_buffer() is actually smaller than what it should be.
Since we do not know how many frames it will end up buffering, it is best to
just reallocate if needed.
Bitrate calculation is off since the bluray spec always specifies
an even number of coded channels. This was honored in the decoder,
but not for bitrate calculation.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* commit '3dc06b6972cf389269e9c36ff0a4373f80f7149b':
tiny_psnr: check for specified sample size less than 1
fate: improve md5sum utility selection
rangecoder-test: Drop timer output that clutters stderr
Conflicts:
tests/tiny_psnr.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'c1fcfdec75468009dc7de29a5d1c6adf3b2ef77d':
rangecoder-test: Return in case of an error
build: simplify enabling of compat objects
Conflicts:
configure
libavutil/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
swscale: try to use mmap only if available
configure: check for mprotect
wmapro: use planar sample format
wmalossless: output in planar sample format
wmadec: use float planar sample format output
shorten: use planar sample format
lavc: update documentation for AVFrame.extended_data
Conflicts:
libavcodec/shorten.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
vc1: Use codec ID from AVCodecContext while parsing frame header
avplay: support mid-stream sample rate changes
Conflicts:
ffplay.c
libavcodec/vc1.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f5962229bfcb14c2879e69ccdf7f1a4934168609':
avplay: use audio parameters from the decoded frame instead of AVCodecContext
dca: allocate a secondary buffer for extra channels when downmixing
configure: use utilities from /usr/xpg4/bin if it exists
avstring-test: fix memory leaks
Conflicts:
ffplay.c
libavcodec/dcadec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '0a7005bebd23ade7bb852bce0401af1a8fdbb723':
rtpdec_xiph: fix function return type
smjpeg: fix type of 'ret' variable in smjpeg_read_packet()
mpegvideo: remove write-only variable
Use proper return values in case of missing features
fate: add avstring test
rangecoder-test: Set error message log level to error, instead of debug
Conflicts:
libavcodec/aacdec.c
libavcodec/amrnbdec.c
libavcodec/mpegvideo.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '930c9d4373e0f3cb7c64fcfc129127a309f6d066':
avutil: Duplicate ff_log2_tab instead of sharing it across libs
Merged-by: Michael Niedermayer <michaelni@gmx.at>
while testing a VP8 encoder I found a mismatch between FFMPEG and libvpx
VP8 decoders. The reason for this mismatch is that FFMPEG doesn't reset
loopfilter delta values at keyframes. Patch that fixes the issue is below.
I've verified that the output of ffmpeg after this patch matches libvpx.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This fixes a segfault with samples that I have (both of them MPEG-TS). Looks like
avctx->codec is not being set during parsing.
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
This makes no differnce as the affected values cannot occur
But it will likely help static analyzers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This makes no difference for supported input but avoids a
out of array read with input that is never passed in currently
Fixes CID717919
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
if 0.0 != 0.0 a out of array read would occur, equal checks
with floating point may behave in such odd ways, though
this is very unlikely in a real implementation of a compiler
Fixes: CID718936
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The DPX encoder now writes 12 DPX that open correctly (tested with
ImageMagick), and also correspond to the 12 bit sample files at
http://samples.ffmpeg.org/image-samples/dpx_samples.zip
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Rewrite the DPX decoder to work with provided sample DPXs at
http://samples.ffmpeg.org/image-samples/dpx_samples.zip
The decoder could only decode 8 and 10 bit without alpha correctly,
failing or even crashing at other flavors. This patch aims to fix
these issues, properly decoding all variants of DPX provided in the
referenced DPX sample zip. For 10 and 12 bit, the alpha channel
is ignored, but decoding is still possible.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e002e3291e6dc7953f843abf56fc14f08f238b21':
Use the new aes/md5/sha/tree allocation functions
avutil: Add functions for allocating opaque contexts for algorithms
svq3: fix pointer type warning
svq3: replace unsafe pointer casting with intreadwrite macros
parseutils-test: various cleanups
Conflicts:
doc/APIchanges
libavcodec/svq3.c
libavutil/parseutils.c
libavutil/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '9734b8ba56d05e970c353dfd5baafa43fdb08024':
Move avutil tables only used in libavcodec to libavcodec.
Conflicts:
libavcodec/mathtables.c
libavutil/intmath.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
bits_per_coded_sample should be set from demuxer and
not from decoder.
Prior to this change value set from demuxer would get
overwritten in decoder.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Fixes:
libavcodec/svq3.c:661:9: warning: passing argument 2 of 'svq3_decode_block' from incompatible pointer type
libavcodec/svq3.c:208:19: note: expected 'DCTELEM *' but argument is of type 'DCTELEM (*)[32]'
Signed-off-by: Mans Rullgard <mans@mansr.com>
* commit 'eb657ecefdeb8b2ed9bfb55d3c2c9e0f568486bf':
vc1dec: Set opposite to the correct value for 1REF field pictures
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '88058d9a994f42e4e9ed4e67baf696bbfe53128c':
vc1dec: Set chroma reference field from REFFIELD for 1REF field pictures
segment: support applehttp style list
Conflicts:
libavformat/segment.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b522000e9b2ca36fe5b2751096b9a5f5ed8f87e6':
avio: introduce avio_closep
mpegtsenc: set muxing type notification to verbose
vc1dec: Use correct spelling of "opposite"
a64multienc: change mc_frame_counter to unsigned
arm: call arm-specific rv34dsp init functions under if (ARCH_ARM)
svq1: Drop a bunch of useless parentheses
parseutils-test: do not print numerical error codes
svq1: K&R formatting cosmetics
Conflicts:
doc/APIchanges
libavcodec/svq1dec.c
libavcodec/svq1enc.c
libavformat/version.h
libavutil/parseutils.c
tests/ref/fate/parseutils
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The existing code is not in the right place and it should cover both
interlaced frame and field pictures.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
This is required due to the way VC-1 handles chroma pull-back which may end
up causing negative chroma MV for zero luma MV. Edge emulation needs to be
invoked in such cases.
This only affects vertical component of chroma motion vector.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Interlaced field pictures can have one or two reference pictures, signaled
by NUMREF syntax element. For single reference pictures, reference picture
is determined by REFFIELD syntax element.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
GCC cannot proof that c->mc_frame_counter is always >- 0, changing the
type from int to unsigned fixes following warning:
libavcodec/a64multienc.c: In function ‘a64multi_encode_frame’:
libavcodec/a64multienc.c:342:17: warning: ‘buf’ may be used uninitialized in this function[-Wuninitialized]
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
* commit '6d0beefbf6ee6dbf8efb522a9307e54c6ed5f702':
swscale: Do not make ff_ symbols globally visible.
rtspdec: use av_strlcpy for writing into fixed size buffer
g722enc: fix size argument in memset
http: use av_strlcpy instead of strcpy() without size checks
avfilter: correct memcpy size avfilter_copy_buf_props()
lavc: split asv12 encoder/decoder
Conflicts:
libavcodec/asvdec.c
libavfilter/buffer.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b94e4acb4874843e914fd3cb8e089aff0756bb4a':
cmdutils_read_file: increment *size after writing the trailing \0
af_resample: unref out_buf when avresample_convert returns 0
af_amix: prevent memory leak on error path
vc1dec: prevent memory leak in error path
vc1dec: prevent memory leak on av_realloc error
af_channelmap: free old extended_data on reallocation
avconv: simplify memory allocation in copy_chapters
matroskaenc: check cue point validity before reallocation
swfenc: error out for more than 1 audio or video stream
build: link test programs only against static libs
Conflicts:
ffmpeg_opt.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'cbcd497f384f0f8ef3f76f85b29b644b900d6b9f':
adxdec: use planar sample format
adpcmdec: use planar sample format for adpcm_thp
adpcmdec: use planar sample format for adpcm_ea_xas
adpcmdec: use planar sample format for adpcm_ea_r1/r2/r3
adpcmdec: use planar sample format for adpcm_xa
adpcmdec: use planar sample format for adpcm_ima_ws for vqa version 3
adpcmdec: use planar sample format for adpcm_4xm
adpcmdec: use planar sample format for adpcm_ima_wav
adpcmdec: use planar sample format for adpcm_ima_qt
pcmdec: use planar sample format for pcm_lxf
mace: use planar sample format
atrac1: use planar sample format
build: non-x86: Only compile mpegvideo optimizations when necessary
rtpdec_mpeg4: au_headers is a single array, simple av_free is enough
avcodec: free extended_data instead address of it
fate: Add tests of the ff_make_absolute_url function
url: Handle relative urls starting with two slashes
url: Handle relative urls being just a new query string
url: Don't treat slashes in query parameters as directory separators
Conflicts:
libavcodec/adxdec.c
libavcodec/mips/Makefile
libavcodec/pcm.c
libavcodec/utils.c
libavformat/Makefile
libavformat/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
mingw/cygwin: Stop adding -fno-common to gcc CFLAGS
Restructure av_log_missing_feature message
rtp: Support packetization/depacketization of opus
file: Set the return value type for lseek to int64_t.
ppc: fix Altivec build with old compilers
build: add LTO support for PGI compiler
build: add -Mdse to PGI optimisation flags
rtpenc_vp8: Update the packetizer to the latest spec version
rtpdec_vp8: Make the depacketizer implement the latest spec draft
doc: allow building with old texi2html versions
avutil: skip old_pix_fmts.h since it is just a list
Conflicts:
libavcodec/aacdec.c
libavcodec/h264.c
libavcodec/ppc/fmtconvert_altivec.c
libavcodec/utils.c
libavformat/file.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Some invocations include a verb in the log message, others do not. Yet
av_log_missing_feature expects callers to provide a verb. Change the
function to include a verb instead and update the callers accordingly.
The result is a more natural function API and correct English in the
function invocations.
The vec_splat() intrinsic requires a constant argument for the
element number, and the code relies on the compiler unrolling
the loop to provide this. Manually unrolling the loop avoids
this reliance and works with all compilers.
Signed-off-by: Mans Rullgard <mans@mansr.com>
* qatar/master:
x86: vc1: call ff_vc1dsp_init_x86() under if (ARCH_X86)
x86: cavs: call ff_cavsdsp_init_x86() under if (ARCH_X86)
x86: call most of the x86 dsp init functions under if (ARCH_X86)
doc: support the new website layout
doc: remove a warning from filters.texi
doc: initial nut documentation
segment: drop global headers setting
lavu: fix typo in Makefile
Conflicts:
doc/Makefile
doc/filters.texi
doc/t2h.init
libavcodec/fmtconvert.c
libavcodec/proresdsp.c
libavcodec/x86/Makefile
libavcodec/x86/vc1dsp_mmx.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
af_resample: avoid conversion of identical sample formats for 1 channel
avcodec: allow either planar or interleaved sample format when encoding mono
adpcmenc: ensure calls to adpcm_ima_compress_sample() are in the right order
timefilter: De-doxygenize normal code comments and drop silly ones
gxf: Include the right header for the avpriv_frame_rate_tab declaration
Conflicts:
libavcodec/adpcmenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Second parameter to vec_splat must be a literal, not a variable
value. Therefore the second nested for-loop in
float_to_int16_stride_altivec had to be unrolled.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
wmaenc: use float planar sample format
(e)ac3enc: use planar sample format
aacenc: use planar sample format
adpcmenc: use planar sample format for adpcm_ima_wav and adpcm_ima_qt
adpcmenc: move 'ch' variable to higher scope
adpcmenc: fix 3 instances of variable shadowing
adpcm_ima_wav: simplify encoding
libvorbis: use planar sample format
libmp3lame: use planar sample formats
vorbisenc: use float planar sample format
ffm: do not write or read the audio sample format
parseutils: fix parsing of invalid alpha values
doc/RELEASE_NOTES: update for the 9 release.
smoothstreamingenc: Add a more verbose error message
smoothstreamingenc: Ignore the return value from mkdir
smoothstreamingenc: Try writing a manifest when opening the muxer
smoothstreamingenc: Move the output_chunk_list and write_manifest functions up
smoothstreamingenc: Properly return errors from ism_flush to the caller
smoothstreamingenc: Check the output UrlContext before accessing it
Conflicts:
doc/RELEASE_NOTES
libavcodec/aacenc.c
libavcodec/ac3enc_template.c
libavcodec/wmaenc.c
tests/ref/lavf/ffm
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
yuv4mpeg: return proper error codes.
Give all anonymously typedeffed structs in headers a name
fate: Add parseutils test
parseutils-test: Drop random colors from parsing test
vf_pad/scale: use double precision for aspect ratios.
build: error on variable-length arrays
ppc: swscale: rework yuv2planeX_altivec()
ppc: fmtconvert: kill VLA in float_to_int16_interleave_altivec()
x86: dsputil: kill VLA in gmc_mmx()
libspeexenc: Updated commentary to reflect recent changes
libspeexenc: Add an option for enabling DTX
doc/APIchanges: fill in missing dates and hashes.
lavr: bump major to 1 and declare it stable.
lavr: change the type of the data buffers to uint8_t**.
lavc: deprecate the audio resampling API.
Conflicts:
cmdutils.h
configure
doc/APIchanges
ffplay.c
libavcodec/dwt.h
libavcodec/libspeexenc.c
libavfilter/vf_pad.c
libavfilter/vf_scale.c
libavformat/asf.h
tests/fate/libavutil.mak
tests/ref/fate/parseutils
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Instead of using an evil VLA, fall back to C version when edge
emulation is needed. MPEG4 GMC is a rarely used fringe feature
so the speed loss is an acceptable cost for safer code.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Discontinuous transmission is an addition to VAD/VBR operation, that
allows to greatly reduce bitrate for silent chunks or stationary
noises.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit '65d12900432ac880d764edbbd36818431484a76e':
configure: add --enable-lto option
x86: cpu: Break out test for cpuid capabilities into separate function
x86: ff_get_cpu_flags_x86(): Avoid a pointless variable indirection
build: Factor out mpegaudio dependencies to CONFIG_MPEGAUDIO
segment: Add comments about calls that only are relevant for some muxers
segment: Add an option for omitting the first header and final trailer
Conflicts:
configure
libavcodec/Makefile
libavformat/segment.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The variable is copied to subsequent threads at the same time, so this
may cause wrong ref_count[] values to be copied to subsequent threads.
This bug was found using TSAN and Helgrind.
Original patch by Ronald, adapted with a local_ref_count by Clément,
following the suggestion of Michael Niedermayer.
Signed-off-by: Clément Bœsch <clement.boesch@smartjog.com>
This only adds a subset of the frame rates that can be stored, a full list
would be more than 500 entries. Such full list could (and should) be added
if it has a usecase but the number of users of even the now added rates
seem rather small.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>