Commit Graph

25241 Commits

Author SHA1 Message Date
Jason Garrett-Glaser c55e0d34ba Convert VP8 macroblock structures to a ring buffer.
Uses a slightly nonintuitive ring buffer size of (width+height*2) to simplify
addressing logic.
Also split out the segmentation map to a separate structure, necessary to
implement the ring buffer.

Originally committed as revision 24426 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 11:45:18 +00:00
Stefano Sabatini 73642926b3 Add APIchanges entry for the libavfilter media format generalization
change of r24424.

Originally committed as revision 24425 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 11:24:31 +00:00
S.N. Hemanth Meenakshisundaram bdab614be8 Generalize pixel format enum fields to int formats.
This is needed to make the libavfilter framework work with audio
filters.

In particular add a type field to AVFilterLink, change the field types:
enum PixelFormat format   -> int format   in AVFilterBuffer
enum PixelFormat *formats -> int *formats in AVFilterFormats
enum PixelFormat *format  -> int format   in AVFilterLink

and change the function signatures:
AVFilterFormats *avfilter_make_format_list(const enum PixelFormat *pix_fmts); ->
AVFilterFormats *avfilter_make_format_list(const int *fmts);

int avfilter_add_colorspace(AVFilterFormats **avff, enum PixelFormat pix_fmt); ->
int avfilter_add_format(AVFilterFormats **avff, int fmt);

AVFilterFormats *avfilter_all_colorspaces(void); ->
AVFilterFormats *avfilter_all_formats(enum AVMediaType type);

This change breaks libavfilter API/ABI.

Patch by S.N. Hemanth Meenakshisundaram |smeenaks|ucsd|edu|.

Originally committed as revision 24424 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 11:12:47 +00:00
Stefano Sabatini 98137a1a5b Document create_filter().
Originally committed as revision 24423 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 09:56:09 +00:00
Stefano Sabatini d2874a9d59 Add simple doxy to link_filter().
Originally committed as revision 24422 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 09:56:06 +00:00
Stefano Sabatini 94b2120dfb Fix documentation for parse_link_name().
Originally committed as revision 24421 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 09:56:03 +00:00
Stefano Sabatini bb90d855d7 Consistently use Uppercase for the first character of the log
messages.

Originally committed as revision 24420 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 09:56:00 +00:00
Stefano Sabatini 99ac59ca69 Make link_filter() propagate the generated error code.
Originally committed as revision 24419 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 09:55:57 +00:00
Stefano Sabatini f219eee592 Fix style: "if(" -> "if (".
Originally committed as revision 24418 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 09:49:15 +00:00
Jason Garrett-Glaser 968570d65f Calculate deblock strength per-MB instead of per-row
Gives better cache locality, since the VP8Macroblock structs are still in cache.
Inspired by the way x264 does it.

Originally committed as revision 24417 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 07:24:22 +00:00
Jason Garrett-Glaser d1c58fce20 Avoid tracking i4x4 modes in P-frames in VP8
As in the previous commit, they aren't used for context selection, so it saves
memory this way.

Originally committed as revision 24416 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 07:04:45 +00:00
Jason Garrett-Glaser 158e062c95 Avoid useless fill_rectangle in P-frames in VP8
In VP8, i4x4 only uses contexts based on neighbors in I-frames.

Originally committed as revision 24415 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 06:39:54 +00:00
Jason Garrett-Glaser 7bf254c41d Optimize partition mv decoding in VP8
Originally committed as revision 24414 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 06:29:26 +00:00
Jason Garrett-Glaser c0498b3031 Take shortcuts for mv0 case in VP8 MC
Avoid edge emulation -- it isn't needed if there isn't any subpel.

Originally committed as revision 24413 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 05:49:09 +00:00
Jason Garrett-Glaser 702e8d3376 Much faster VP8 mv and mode prediction
Originally committed as revision 24412 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 04:26:41 +00:00
Jason Garrett-Glaser d229ae2b62 Convert vp56_mv to 16-bit.
Saves nothing except a bit of memory/cache now, but will allow future
optimizations.

Originally committed as revision 24411 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 03:33:29 +00:00
Jason Garrett-Glaser d864dee8ab Add prefetching to VP8 decoder
~5% faster overall, probably depends on CPU and resolution.

Originally committed as revision 24410 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 03:09:10 +00:00
Ronald S. Bultje 003243c3c2 Fix and enable horizontal >=SSE2 mbedge loopfilter.
Originally committed as revision 24409 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 01:35:26 +00:00
Loren Merritt c7b1d9768c relicense h264 deblock sse2 to lgpl
Originally committed as revision 24408 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 00:39:49 +00:00
Stefano Sabatini a33e036577 Add APIchanges entry after libavcore addition.
Originally committed as revision 24407 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 22:59:28 +00:00
Loren Merritt 532e769701 sync yasm macros from x264
Originally committed as revision 24406 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 22:45:16 +00:00
Jason Garrett-Glaser 8731dbd890 Eliminate one instruction in VP8 dc_add_sse4
Originally committed as revision 24405 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 22:41:37 +00:00
Vitor Sessak 0662bf22ec Add WMAPro regtests
Originally committed as revision 24404 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 22:33:06 +00:00
Jason Garrett-Glaser 7dd224a42d Various VP8 x86 deblocking speedups
SSSE3 versions, improve SSE2 versions a bit.
SSE2/SSSE3 mbedge h functions are currently broken, so explicitly disable them.

Originally committed as revision 24403 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 22:11:03 +00:00
Aurelien Jacobs 8a810ccbba use return value of ff_get_line()
Originally committed as revision 24402 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 21:41:46 +00:00
Aurelien Jacobs b0335fd957 document ff_get_line()
Originally committed as revision 24401 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 21:40:50 +00:00
Aurelien Jacobs a43416a540 improve ff_get_line to return line length
Originally committed as revision 24400 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 21:40:10 +00:00
Aurelien Jacobs 7c89295145 move ff_get_line to aviobuf.c
Originally committed as revision 24399 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 21:39:01 +00:00
Aurelien Jacobs 80769fb73f rename get_line to ff_get_line
Originally committed as revision 24398 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 21:35:44 +00:00
Jason Garrett-Glaser b8b231b5dc Make mmx VP8 WHT faster
Avoid pextrw, since it's slow on many older CPUs.
Now it doesn't require mmxext either.

Originally committed as revision 24397 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 20:51:01 +00:00
Måns Rullgård a4e6fa86ce regtest: simplify cleanup after each test
Originally committed as revision 24396 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 20:49:41 +00:00
Måns Rullgård 157c924176 fate: delete useless artifacts after running each test
Originally committed as revision 24395 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 20:49:36 +00:00
Måns Rullgård bcb0a1546d fate: keep stderr from failing tests
Originally committed as revision 24394 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 20:49:34 +00:00
Stefano Sabatini aac6ca6978 Add libavcore.
The new library is meant to contain the core multimedia utilities for
FFmpeg, to make them shareable between more libav* libraries.

See thread:
Subject: [FFmpeg-devel] [RFC] New library for shared non-generic libav* utils
Date: Fri, 9 Jul 2010 01:07:40 +0200

Originally committed as revision 24393 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 18:28:42 +00:00
Víctor Paesa ac1a31ab03 Typo.
Originally committed as revision 24392 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 17:31:37 +00:00
Axel Holzinger 354b757300 Zero-initialize structs/arrays with {0} instead of {}, which isn't proper C99
Patch by Axel Holzinger, aholzinger at gmx dot de

Originally committed as revision 24391 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 17:27:28 +00:00
Martin Storsjö 4f5340a0b1 Reindent, rewrap long comment lines to keep line length below 80 chars
Originally committed as revision 24390 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 17:25:09 +00:00
Martin Storsjö bcc4cb4681 rtpdec_asf: Handle RTSP-MS packet splitting
Originally committed as revision 24389 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 17:17:35 +00:00
Stefano Sabatini 2441339927 Document the buffer source.
Originally committed as revision 24388 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 17:14:22 +00:00
Stefano Sabatini 59775b3c1a Extend buffer source syntax.
Make the buffer source accept a string for specifying the input pixel
format.

Originally committed as revision 24387 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 17:14:19 +00:00
Stefano Sabatini e2f48c05e9 Add an informational trace in init().
Originally committed as revision 24386 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 17:14:15 +00:00
Stefano Sabatini b8dddebf3e Clarify logic and feedback of the init() function.
Originally committed as revision 24385 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 17:14:13 +00:00
Stefano Sabatini ce1f853625 Add description to the buffer source.
Originally committed as revision 24384 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 17:14:08 +00:00
Ramiro Polla 262b6dbad9 darwin: allow 64-bit darwin to allocate executable memory
darwin requires _DARWIN_C_SOURCE to be defined for MAP_ANON, which is used by
swscale to determine whether to use malloc() or mmap(). 64-bit darwin does not
have an executable heap, so mmap() must be used instead of malloc(), and
therefore _DARWIN_C_SOURCE must be defined.

Originally committed as revision 31760 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-07-21 13:29:55 +00:00
Diego Pettenò 3fc548df28 Make ff_inverse stay with libavutil, and optional copy it to libavcodec.
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
2010-07-21 12:37:37 +00:00
Måns Rullgård b3dce4b9bf Enable lavfi test in "make test"
Originally committed as revision 24382 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 10:06:24 +00:00
David Conrad af521abc28 Add header declarations for mmx/sse constants missing them
Originally committed as revision 24381 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 10:02:07 +00:00
David Conrad c7eec58170 Move ff_pw_* from vc1dsp_mmx.c to dsputil_mmx.c
Should fix compilation with icc and should help prevent any future duplicates

Originally committed as revision 24380 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 10:02:03 +00:00
Thierry Foucu 591db22dff gxfenc: Fix ES name in the UMF media description, by using strlen instead of sizeof
Patch by Thierry Foucu, tfoucu at gmail

Originally committed as revision 24379 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 07:46:02 +00:00
Ronald S. Bultje e9e456d850 VP8 MBedge loopfilter MMX/MMX2/SSE2 functions for both luma (width=16)
and chroma (width=8).

Originally committed as revision 24378 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-20 22:58:56 +00:00