Age | Commit message (Collapse) | Author |
|
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
Also slightly move around code not allocate a new frame if we won't
decode it. This prevents us from putting undecoded frames in frame
pointers, which (in mt decoding) other threads will use and wait on
as references, causing a deadlock (if we skipped decoding) or a crash
(if we didn't initialized next_framep[] at all).
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
|
|
|
|
|
|
A new field, AVCodecContext.internal is used to hold a new struct
AVCodecInternal, which has private fields that are not codec-specific and are
used by general libavcodec functions.
Moved internal_buffer, internal_buffer_count, and is_copy.
|
|
|
|
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
Associate segmentation_map[] with reference frame, rather than
decoding instance. This fixes cases where the map would be free()'ed
on e.g. a size change in one thread, whereas the other thread was
still accessing it. Also, it fixes cases where threads overwrite data
that is still being referenced by the previous thread, who thinks that
it's part of the frame previously decoded by the next thread.
|
|
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
|
|
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
|
|
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
|
|
In addition to avoiding undefined behaviour, an unsigned type
makes more sense for packing multiple 8-bit values.
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
It's more readable and less prone to breakage.
|
|
|
|
|
|
Fixes occasional failure of make fate-vp8-test-vector-010 with
frame-multithreading enabled.
|
|
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
decoder.
This patch lets e.g. dsputil_init chose dsp functions with respect to
the bit depth to decode. The naming scheme of bit depth dependent
functions is <base name>_<bit depth>[_<prefix>] (i.e. the old
clear_blocks_c is now named clear_blocks_8_c).
Note: Some of the functions for high bit depth is not dependent on the
bit depth, but only on the pixel size. This leaves some room for
optimizing binary size.
Preparatory patch for high bit depth h264 decoding support.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
Tested on a Mac Pro, 2 CPUs, 2 cores each, OSX 10.6.6:
time ./ffmpeg -v 0 -vsync 0 -threads [1234] -i \
~/Downloads/sintel_trailer_1080p_vp8_vorbis.webm \
-f null -vcodec rawvideo -an -
1: 0m14.630s (89.9 fps)
2: 0m8.056s (163.2 fps)
3: 0m5.882s (223.6 fps)
4: 0m4.952s (265.6 fps)
time ./ffmpeg -v 0 -vsync 0 -threads [1234] -i \
~/Downloads/Elephants_Dream-720p-Stereo.webm \
-f null -vcodec rawvideo -an -
1: 1m12.962s (215.1 fps)
2: 0m44.682s (351.2 fps)
3: 0m31.183s (503.2 fps)
4: 0m25.284s (620.6 fps)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
Signed-off-by: Diego Biurrun <diego@biurrun.de>
|
|
|
|
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
Was missed in 3efbe137.
|
|
Shaves at least 3KB off code size on x86, should improve cache utilization.
This would probably be useful to do for other decoders/encoders as well.
|
|
|
|
A break statement was supposed to break out of two loops, but only broke out of one.
Didn't affect output, just could have been marginally slower.
|
|
This one didn't actually need to be initialized.
|
|
|
|
|
|
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>
|
|
Approximately 5% faster on Cortex-A8.
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
Merge find_near_mvs and mv bitstream decoding: don't do prediction steps
until absolutely necessary.
|
|
Currently uses AV_RL32 instead of AV_RL32A, as the latter doesn't exist yet.
|
|
|
|
Convert hev_thresh logic to a LUT, simplify mbedge_lim calculation.
|
|
|
|
|
|
Adds some duplicated code, but avoids duplicate edge checks and similar.
~0.5% faster overall on Parkjoy test sample.
|
|
Merge an if and a switch.
|
|
|
|
Replace * (uint32_t *) buf accesses with AV_WN32A/AV_COPY32.
|
|
None of these symbols should be accessed directly, so declare them as
hidden.
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
Do not emulate larger edges than we will actually use for this round of
MC. Decoding goes from avg+SE 29.972+/-0.023sec to 29.856+/-0.023, i.e.
0.12sec or ~0.4% faster.
|
|
Originally committed as revision 26168 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
Originally committed as revision 26117 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
Originally committed as revision 25058 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
Originally committed as revision 24791 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
correct mb_xy to use mb_width.
tighten allocations.
reduce the amount of zeroing.
Originally committed as revision 24760 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
Originally committed as revision 24758 to svn://svn.ffmpeg.org/ffmpeg/trunk
|