Turn it into 2 macros, and use av_clip_int16() and lrintf().
This matches the int16 to float sample conversion in audioconvert.c.
The regression test output is different due to lrintf() rounding.
Originally committed as revision 25956 to svn://svn.ffmpeg.org/ffmpeg/trunk
(without buffering extra input).
Patch by Michael Chinen [mchinen at gmail]
Originally committed as revision 25932 to svn://svn.ffmpeg.org/ffmpeg/trunk
libavcodec to libavcore.
Remove another compile-time dependancy of libavfilter on libavcodec.
Originally committed as revision 25923 to svn://svn.ffmpeg.org/ffmpeg/trunk
data thanks to the recently added FLAC parser.
Patch by Michael Chinen [mchinen at gmail]
Originally committed as revision 25915 to svn://svn.ffmpeg.org/ffmpeg/trunk
Seek test reference updated because FLAC seeking now works properly.
Fixes roundup issue 1150.
Patch by Michael Chinen [mchinen at gmail]
Originally committed as revision 25914 to svn://svn.ffmpeg.org/ffmpeg/trunk
to optionally silence the error messages.
Patch by Michael Chinen [mchinen at gmail]
Originally committed as revision 25912 to svn://svn.ffmpeg.org/ffmpeg/trunk
than just per-block. Patch by Sprezz [sprezzatura gmx com]. Fixes Issue 2387.
Originally committed as revision 25898 to svn://svn.ffmpeg.org/ffmpeg/trunk
I dont know if this is the best way to handle it. But it fixes http://kuwatan.jp/temp/n-02b.3gp
Fixes issue 2373.
Originally committed as revision 25875 to svn://svn.ffmpeg.org/ffmpeg/trunk
Wraparound in ssd is mainly avoided by subtracting the ssd of the
best node from all the others once it has grown large enough.
If using very large trellis sizes (e.g. -trellis 15), the frontier
is so large that the difference between the best and the worst is
large enough to cause wraparound, even if the ssd of the best one
is subtracted regularly.
When using -trellis 10 on a 30 second sample, this causes only a slight
slowdown, from 61 to 64 seconds.
Originally committed as revision 25858 to svn://svn.ffmpeg.org/ffmpeg/trunk
Patch by Mark Goodman [mark goodman gmail com] with some modifications by me.
Originally committed as revision 25796 to svn://svn.ffmpeg.org/ffmpeg/trunk
The new implementation is more compact, more correct and doesn't hurt
the eyes.
Originally committed as revision 25792 to svn://svn.ffmpeg.org/ffmpeg/trunk
so extend decoder to output only one channel for it.
This fixes issue 2368.
Originally committed as revision 25790 to svn://svn.ffmpeg.org/ffmpeg/trunk
This also allows to remove a linking dependency of libavfilter on
libavcodec.
Originally committed as revision 25789 to svn://svn.ffmpeg.org/ffmpeg/trunk
const char *avcodec_get_channel_name(int channel_id)
which was never implemented.
Originally committed as revision 25788 to svn://svn.ffmpeg.org/ffmpeg/trunk
PaletteControl.
This also fixes playback of some files with ffplay (images were
corrupted for a short time after a palette change).
Originally committed as revision 25778 to svn://svn.ffmpeg.org/ffmpeg/trunk
This makes the wording consistent with how people usually talk about heaps.
Originally committed as revision 25775 to svn://svn.ffmpeg.org/ffmpeg/trunk
This increases the PSNR slightly (about 0.1 dB) for trellis sizes
below 8, and gives equal PSNR for sizes above that.
Originally committed as revision 25769 to svn://svn.ffmpeg.org/ffmpeg/trunk
This lowers the run time from 158 to 21 seconds, for -trellis 8
with a 30 second sample on my machine.
This requires 64 KB additional memory.
Originally committed as revision 25768 to svn://svn.ffmpeg.org/ffmpeg/trunk
beginning of the frame, so make it use skip_bits_long() instead of
skip_bits() for that.
Originally committed as revision 25754 to svn://svn.ffmpeg.org/ffmpeg/trunk
By not looking for the exactly largest node, we avoid an O(n) seek through
the leaf nodes. Just pick one (not the same one every time) and try replacing
that node with the new one.
For -trellis 8, this lowers the run time from 190 to 158 seconds,
for a 30 second 44 kHz mono sample, on my machine.
Originally committed as revision 25733 to svn://svn.ffmpeg.org/ffmpeg/trunk
This avoids having to memmove the large parts of the array when inserting into
it.
For -trellis 8, this lowers the run time from 245 seconds to 190 seconds,
for a 30 second 44 kHz mono sample, on my machine.
Originally committed as revision 25731 to svn://svn.ffmpeg.org/ffmpeg/trunk
An intermediate value in the floor 1 linear interpolation was
overflowing
resulting in obvious artifacts on some files.
e.g.
http://upload.wikimedia.org/wikipedia/commons/7/79/Big_Buck_Bunny_small.ogv
Prior to this fix 87 out of 128 64kbit/s mono files decoded with ffmpeg
have
lower PEAQ ODG values than the same files decoded with libvorbis. With
this
fix none of that set have significantly worse ODG values than libvorbis.
Fixes issue 2352
Patch by Gregory Maxwell <greg@xiph.org>
Originally committed as revision 25724 to svn://svn.ffmpeg.org/ffmpeg/trunk
Nobody ever uses it correctly, and ffmpeg sets it incorrectly, so we'll just
leave it out.
Originally committed as revision 25720 to svn://svn.ffmpeg.org/ffmpeg/trunk
descriptors for printing the number of channels/components.
Also replace the term "nb_channels" with "nb_components" which is more
consistent with the FFmpeg internal terminology, and is somehow
different with respect to the current definition of nb_channels in
PixFmtInfo.
See thread:
Subject: [FFmpeg-devel] [PATCH 6/8] Make avcodec_pix_fmt_string() use the
information in the pixel format descriptors for printing the
number of planes. Also replace the term "nb_channels" with
"nb_planes" which is more correct.
Date: Fri, 5 Nov 2010 12:01:38 +0100
Originally committed as revision 25717 to svn://svn.ffmpeg.org/ffmpeg/trunk
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
Muxlength does not include the 3 bytes of AudioSyncStream() before the
AudioMuxElement(). If these three bytes are not accounted for the last three
bytes of the LATM packet are sent back to the decoder again.
Fixes issue244/mux2.share.ts
Originally committed as revision 25685 to svn://svn.ffmpeg.org/ffmpeg/trunk
the object number is, it determines whether we should continue
parsing the presentation description and whether we should
clear the subtitles on the next display command.
Based on patch by Mark Goodman [mark goodman gmail com]
Originally committed as revision 25682 to svn://svn.ffmpeg.org/ffmpeg/trunk
Previously it was releasing the buffer which was returned to the user,
which was resulting in a crash in case of direct rendering.
Originally committed as revision 25678 to svn://svn.ffmpeg.org/ffmpeg/trunk
Spotted by Alex after Carl Eugen found errors some samples. There no errors or
noticeable artifacts in the samples I used during development.
Originally committed as revision 25676 to svn://svn.ffmpeg.org/ffmpeg/trunk
Contrary to progressive, just being able to crop up to 14/15 pixels
is not enough to encode all supported resolutions, and the new
behaviour is also consistent with e.g. MPEG-2 etc.
Originally committed as revision 25669 to svn://svn.ffmpeg.org/ffmpeg/trunk
av_get_sample_fmt_name()
av_get_sample_fmt()
av_get_sample_fmt_string()
in libavcore, and deprecate the corresponding libavcodec/audioconvert.h functions:
avcodec_get_sample_fmt_name()
avcodec_get_sample_fmt()
avcodec_sample_fmt_string()
Originally committed as revision 25653 to svn://svn.ffmpeg.org/ffmpeg/trunk
The decoder is just a wrapper around the AAC decoder.
based on patch by Paul Kendall { paul <ät> kcbbs gen nz }
Originally committed as revision 25642 to svn://svn.ffmpeg.org/ffmpeg/trunk
Use avctx in all called functions. This allows passing a NULL AACContext
for LATM since the AACContext is only used in output_configure() which
is skipped for LATM parsing.
Originally committed as revision 25641 to svn://svn.ffmpeg.org/ffmpeg/trunk
aac_decode_frame() remains as AVPacket handling a wrapper. The actual
decoding function takes a GetBitContext as input and will be used be the
AAC LATM decoder to avoid copying the unaligned AAC bitstream.
Originally committed as revision 25640 to svn://svn.ffmpeg.org/ffmpeg/trunk
This will be used by the latm decoder to avoid AACContext changes during
audio specific config parsing.
Originally committed as revision 25638 to svn://svn.ffmpeg.org/ffmpeg/trunk
This fixes compilation with the latest clang trunk version.
Patch by İsmail Dönmez, ismail at namtrac dot org
Originally committed as revision 25628 to svn://svn.ffmpeg.org/ffmpeg/trunk
The 3GPP spec uses the following calculation for high spreading:
thr'_spr = max(thr_scaled, s_h(n) * thr_scaled(n-1))
where, n is defined as the current band, and s_h() is defined as "[...] the
distance of adjacent bands in Bark and a constant slope that is 15 dB/Bark
[...]". This is a little ambiguous as you would assume you want the Bark
width of the previous band for this calculation. However, this assumption
appears to be incorrect, and you really want the Bark width of the current
band. Coincidentally this is exactly what the spec calls for! =P
This noticeably improves Tom's Diner at low bitrates (I tested at 64kbps,
with mid/side disabled).
Patch by: Nathan Caldwell <saintdev@gmail.com>
Originally committed as revision 25622 to svn://svn.ffmpeg.org/ffmpeg/trunk
These blocks depended on the compiler keeping xmm registers untouched between
them.
Originally committed as revision 25619 to svn://svn.ffmpeg.org/ffmpeg/trunk
suncc does not like the leading commas inside the macro, but it has no problem
with trailing commas.
Originally committed as revision 25615 to svn://svn.ffmpeg.org/ffmpeg/trunk
This greatly improves bitrate handling. You will now get within a few
kbps of your requested bitrate instead of 20-40kbps higher.
There is absolutely no analog to this line in the 3GPP spec, that I
can find.
patch by Nathan Caldwell saintdev (at) gmail
Originally committed as revision 25589 to svn://svn.ffmpeg.org/ffmpeg/trunk
Removing the modification vastly improves quality (at a slight bitrate
cost) for some samples. castanets.wav is a good example. The closest
equivalent I see to the modification in the 3GPP spec is a similar
modification (over a specific frequency range) when TNS is used.
This also changes the threshold-in-quiet calculation to match the
3GPP spec.
patch by Nathan Caldwell saintdev (at) gmail
Originally committed as revision 25588 to svn://svn.ffmpeg.org/ffmpeg/trunk
According to the 3GPP spec:
"Thus the pre-echo control is inactive for the first short window (but
not all short windows in a short frame) after a start block and for
all frames with a stop window sequence."
Currently, pre-echo control is only run when the current frame is not
a short frame, and the previous frame is not a short frame.
patch by Nathan Caldwell saintdev (at) gmail
Originally committed as revision 25587 to svn://svn.ffmpeg.org/ffmpeg/trunk
Reading 7 bits as an unsigned int can't result in a value exceeding 127.
Accordingly, remove error message (as it'll never be reached).
Originally committed as revision 25575 to svn://svn.ffmpeg.org/ffmpeg/trunk
Bug caused by the fact that get_bits(gb, 0) is undefined.
Doesn't affect any streams generated by the official Theora encoder, but such
streams are nevertheless valid.
Fixes decoding of CELT-933dd833-nmr-bandt.ogv.
Originally committed as revision 25573 to svn://svn.ffmpeg.org/ffmpeg/trunk
Do decode init in the init function instead of at the first frame.
Fix some possible crash cases.
Originally committed as revision 25572 to svn://svn.ffmpeg.org/ffmpeg/trunk
Some code was initializing some xmm registers in one asm block and using them
in the following block, assuming they wouldn't be changed in between blocks.
Originally committed as revision 25568 to svn://svn.ffmpeg.org/ffmpeg/trunk
thus making forced key frames work.
Patch by Nicolas George, nicolas d george a normalesup d org
Originally committed as revision 25567 to svn://svn.ffmpeg.org/ffmpeg/trunk
I used the same loop counter for the inner and outer initalization loops.
This caused initalization to only run for the first channel. This in turn lead
to any channel other than the first using only short blocks.
Patch by Nathan Caldwell, saintdev at gmail
Originally committed as revision 25566 to svn://svn.ffmpeg.org/ffmpeg/trunk