* 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>
* qatar/master:
LOTS of duplicates ...
avio: Fix the deprecated fallback URL-prefixed open flags
avoid duplicate -lm in .pc files
mpeg12: terminate mpeg2_video_profiles arrays
network: Check POLLERR and POLLHUP in ff_network_wait_fd
mpegtsenc: make PMT PID really start on pmt_start_pid
nut format: support PIX_FMT_BGR48LE and PIX_FMT_BGR48BE
rawvideo codec: support PIX_FMT_BGR48LE and PIX_FMT_BGR48BE
hflip: make the filter accept PIX_FMT_BGR48LE and PIX_FMT_BGR48BE pixel formats
crop: make the filter accept PIX_FMT_BGR48LE and PIX_FMT_BGR48BE pixel formats
libswcale: PIX_FMT_BGR48LE and PIX_FMT_BGR48BE scaler implementation
Conflicts:
configure
libswscale/swscale.h
tests/ref/lavf/ts
Merged-by: Michael Niedermayer <michaelni@gmx.at>
In the loop:
for (i=0; i<dstH; i++) {
int chrI= i*c->chrDstH / dstH;
when i*c->chrDstH > INT_MAX this leads to an integer overflow, which
results in a negative value for chrI and in out-of-buffer reads. The
overflow is avoided by forcing int64_t arithmetic by casting i to
int64_t.
Fix crash, and trac issue #72.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
* 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>
PPC and x86 code is split off from swscale_template.c. Lots of code is
still duplicated and should be removed later.
Again uniformize the init system to be more similar to the dsputil one.
Unset h*scale_fast in the x86 init in order to make the output
consistent with the previous status. Thanks to Josh for spotting it.
Keep only the plain C code in the main rgb2rgb.c and move the x86
specific optimizations to x86/rgb2rgb.c
Change the initialization pattern a little so some of it can be
factorized to behave more like dsputils.
* qatar/master: (32 commits)
libopencore-amr, libvo-amrwbenc: Allow enabling DTX via private AVOptions
libopencore-amr, libvo-amrwbenc: Only check the bitrate when changed
libopencore-amr, libvo-amrwbenc: Find the closest matching bitrate
libvo-*: Fix up the long codec names
libavcodec: Mark AVCodec->priv_class const
swscale: Factorize FAST_BGR2YV12 definition.
libvo-aacenc: Only produce extradata if the global header flag is set
lavf: postpone removal of public metadata conversion API
lavc: postpone removal of request_channels
lavc: postpone removal of audioconvert and sample_fmt wrappers
lavf: postpone removal of deprecated avio functions
libopencore-amr: Cosmetics: Rewrap and align
libopencore-amr, libvo-amrbwenc: Rename variables and functions
libopencore-amr: Convert commented out debug logging into av_dlog
libopencore-amr: Remove an unused state variable
libvo-amrwbenc: Don't explicitly store bitrate modes in the bitrate table
libopencore-amr: Remove a useless local variable
libopencore-amr, libvo-amrwbenc: Make the bitrate/mode mapping array static const
libopencore-amr, libvo-amrwbenc: Return proper error codes in most places
libopencore-amr: Don't print carriage returns in log messages
...
Conflicts:
doc/developer.texi
libavcodec/avcodec.h
libavcodec/libvo-aacenc.c
libavcodec/libvo-amrwbenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
When HAVE_7REGS was not defined these functions had an empty body
causing the following warnings during compilation.
In file included from libswscale/x86/yuv2rgb_mmx.c:58:
libswscale/x86/yuv2rgb_template.c: In function ‘yuva420_rgb32_MMX’:
libswscale/x86/yuv2rgb_template.c:412: warning: no return statement in function returning non-void
libswscale/x86/yuv2rgb_template.c: In function ‘yuva420_bgr32_MMX’:
libswscale/x86/yuv2rgb_template.c:457: warning: no return statement in function returning non-void
Signed-off-by: Diego Biurrun <diego@biurrun.de>
* qatar/master:
Fix parser: mark av_parser_parse() for removal on next major bump
swscale: postpone sws_getContext removal until next major bump.
fate: add AAC LATM test
mmst: get rid of deprecated AVERRORs
lxfdec: use AVERROR(ENOMEM) instead of deprecated AVERROR_NOMEM.
Reemove remaining uses of deprecated AVERROR_NOTSUPP.
REIMPLEMENTED in 2 lines of code: lavf: if id3v2 tag is present and all else fails, guess by file extension
Conflicts:
libavformat/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
swscale doesnt ever actually do any runtime detection at all when
runtime cpu detection is enabled, it simply passes whatever is passed
to -sws_flags, which could be nothing at all making swscale default to
the C implementation.
Heres a benchmark
VOFW 5120 VOFW 21504 Note
10438.8 10344.2 timex ffmpeg -y -i tulip2.mp4 tulip2.yuv
25611.9 24256.9 timex ffmpeg -y -itulip2.mp4 -s 1272x724 tulip2.yuv
24485.7 26006.6
28573.1 24291.3
24069.1 26995.9
25684.95 25387.675 average
This is on a Nehalem i7. Despite being a 500 frame, 720p video, the numbers
fluctuate, so I took an average of 4 runs.
Another reason I'd like this change is youtube accepts videos with higher
resolutions than 5120.
16384 is vp8's maximum resolution, so that should keep us amused for a
little longer.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
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>
When built with gcc 4.6, the MMX rgb24 to yuv conversion gives
wrong output. The compiler produces this warning:
libswscale/swscale_template.c:1885:5: warning: use of memory input without lvalue in asm operand 4 is deprecated
Changing the memory operand to a register makes it work.
Signed-off-by: Mans Rullgard <mans@mansr.com>
rgb32tobgr32() has been removed in favour of shuffle_bytes_2103() in r32190
Originally committed as revision 32676 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
handle_jpeg may update the src/dstFormat variables, this makes sure the
updated version is stored in the context.
This fixes roundup issue 2302.
Patch by Troot, all_crap_goes_here at hotmail
Originally committed as revision 32562 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
but worse it did not set up destination dimensions, thus every user
of it would necessarily fail.
Originally committed as revision 32424 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
scale context. Prevent pointless warnings when using
av_opt_set_defaults() for setting the default values, as in a pending
patch.
Originally committed as revision 32413 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
instead of requireing being passed through function parameters. This also
makes sws work with AVOptions.
Originally committed as revision 32368 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
If the CRC from the src->dst conversion matches a reference, it is not
necessary to perform a dst->yuva420p conversion and check the SSD.
Originally committed as revision 32213 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
The source format parameters are kept in static variables and conversion from
ref to source is only made when any parameter changes.
Originally committed as revision 32211 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
yvu9ToYv12Wrapper() used to support yv12 with the chroma planes either in the
uv order or the vu order. FFmpeg no longer has a pixel format in vu order.
Originally committed as revision 32156 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
mmap() with MAP_ANONYMOUS requires the file descriptor to be -1 in NetBSD.
Linux just ignores this parameter.
Patch by Grant Carver <grantc at cat dot co dot za>
Originally committed as revision 31984 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
r31772 | stefano | 2010-07-23 01:01:31 +0200 (Fri, 23 Jul 2010) | 2 lines
Prefer impersonal form over third person, for consistency with the
rest of FFmpeg.
The change was not approved by the maintainer.
Originally committed as revision 31847 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
sequential geometries instead of running all algorithms sequentially for each
geometry.
Originally committed as revision 31775 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
Some converters (ie. unscaled rgb24 -> argb) may write some bytes out of
bounds. Ideally the converters should be fixed, but in the meantime we allocate
more memory to prevent heap corruption.
Originally committed as revision 31768 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
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
Don't change paramater passing, but instead use casts.
Shouldn't affect asm output on anything other than win64.
libswscale should work on win64 now.
The rest of ffmpeg still isn't win64 compatible due to the issue of xmm
clobbers, but swscale doesn't use any SSE.
Patch by Anton Mitrofanov <BugMaster AT narod DOT ru>.
Originally committed as revision 31751 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
If the destination planes are offset within the destination buffer,
writing the extra bytes at the end may write outside of the destination
buffer.
Originally committed as revision 31746 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
This fixes warnings about wrong type being used, e.g.:
libswscale/yuv2rgb.c: In function ‘ff_yuv2rgb_c_init_tables’:
libswscale/yuv2rgb.c:778: warning: passing argument 4 of ‘fill_table’ from incompatible pointer type
libswscale/yuv2rgb.c:598: note: expected ‘uint8_t *’ but argument is of type ‘uint16_t *’
Originally committed as revision 31722 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
additionallym deprecate palette8torgb16 and its bgr variant without
replacement. These functions are not meant to be used by applications.
Discussed at: http://comments.gmane.org/gmane.comp.video.ffmpeg.devel/109340
Originally committed as revision 31301 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
sws_setColorspaceDetails() to ff_yuv2rgb_c_init_tables().
Allow to factorize duplicated code.
Originally committed as revision 31300 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
They contain exactly the same code as their 16bit variants, so this is
effectively code de-duplication.
Originally committed as revision 31298 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
We now have an LGPL replacement that is at least equally fast.
Originally committed as revision 31278 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
M_PI is defined by the included file libavutil/mathematics.h.
Originally committed as revision 31185 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
x86_64 / Mac OS X gcc 4.0.1
x86_64 / Linux icc (all)
x86_64 / Linux gcc 4.0.4
x86_64 / OpenBSD gcc 3.3.5
x86_64 / Linux suncc 5.10
and there are some reports of crashes.
Originally committed as revision 31170 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
long was being incorrectly used as an x86-sized register, both for 32 and 64
bits, but this is not the case in win64.
Originally committed as revision 31153 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
The old code is correct only when stride = 2*width.
Patch by Ronaldo Moura <ronaldo d moura monity com br>
Originally committed as revision 31142 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
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 31050 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
being able to compile it and deduplicate the code at the same time.
Originally committed as revision 30978 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
This is of course done with permissions from the authors. The only GPL
component left are MMX optimizations for YUV to RGB conversion.
Originally committed as revision 30965 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
runtime cpudetection mode.
Fixes compilation with '--enable-runtime-cpudetect --disable-altivec'.
Originally committed as revision 30952 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
output format.
Patch by Janusz Krzysztofik, jkrzyszt A tis D icnet D pl
Originally committed as revision 30934 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
in case altivec is disabled, even compilation of code using altivec
keywords or asm must be avoided.
Originally committed as revision 30869 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
converter with support for rgb444 output format.
Patch by Janusz Krzysztofik jkrzyszt chez tis icnet pl
Originally committed as revision 30841 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
libswscale.
Patch by Alexis Ballier, alexis D ballier A gmail
Originally committed as revision 30840 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
127.32L to me, beware when using git svn dcommit for committing stuff
to svn...
Originally committed as revision 30827 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
case where the source format is PIX_FMT_GRAY8.
This is required as PIX_FMT_GRAY8 has been declared as a paletted
format in FFmpeg r22191, fix GRAY8 -> RGB conversion.
Originally committed as revision 30826 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
format.
Make swscale-test only perform the test from the input to the output
format rather than perform all.
Also implement swscale-test-all.sh, for performing all the tests.
Improve flexibility of the swscale-test tool, this way is simpler to
perform only a subset of tests.
Originally committed as revision 30825 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
bytes when converting between RGB32 variants.
In particular fix the argb -> rgba and abgr -> bgra conversions.
See the thread:
Subject: [FFmpeg-devel] [RFC] RGB32 / BGR32 ethernal bug
Date: Tue, 26 Jan 2010 01:06:18 +0100
Originally committed as revision 30501 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
PIX_FMT_YUVJ420P
PIX_FMT_YUVJ422P
PIX_FMT_YUVJ440P
PIX_FMT_YUVJ444P
in the isSupported{In,Out} macros.
These pixel formats are not true pixel formats but hacks specific to
JPEG in libavcodec. They are deprecated and should be removed (that is
from libavcodec first and libswscale second)... but they must be
tested by swscale-test.
See thread:
Subject: [FFmpeg-devel] [PATCH] Extend show_pix_fmts() to make it print the input/output support
Date: 2010-01-30 15:54:08 GMT
Originally committed as revision 30474 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
functions. Improve readability.
-This line, and those below, will be ignored--
swscale.c
Originally committed as revision 30466 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
See the thread:
Subject: [FFmpeg-devel] [RFC] Make swscale-test perform only one convertion
Date: Fri, 29 Jan 2010 01:52:23 +0100
Originally committed as revision 30457 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
in r30419, which was causing a swscale-example regression.
Also increase my liter count by 20.0 units.
Originally committed as revision 30431 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
source and destination format, cache those values in the newly added
SwsContext:srcFormatBpp and SwsContext:dstFormatBpp fields, and remove
the fmt_depth() function.
Originally committed as revision 30419 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
supported both as input and as output, as the conversion performed is:
yuva420p -> src -> dst -> yuva420p.
Originally committed as revision 30379 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
Image buffers require 16-byte alignment, so av_malloc() should be used.
Fixes crash on PPC.
Originally committed as revision 30369 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
only if the input format is paletted.
Fix potential crashes/weirdness if the input format is non-paletted.
Originally committed as revision 30358 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
swscale.c: In function ‘sws_scale’:
swscale.c:2968: warning: cast discards qualifiers from pointer target type
Originally committed as revision 30341 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
swscale.c: In function ‘planarCopy’:
swscale.c:2256: warning: cast discards qualifiers from pointer target type
Originally committed as revision 30340 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
swScale_C is not templated if any optimization is to be used and
!runtime_cpudetect.
Originally committed as revision 30334 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
swscale_template.c: In function ‘swScale_C’:
swscale_template.c:2580: warning: unused variable ‘alpMmxFilter’
swscale_template.c: In function ‘sws_init_swScale_C’:
Originally committed as revision 30332 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
support dithering, remove the const char *dither variable and use a
literal string instead.
Originally committed as revision 30329 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
cause libswscale to assume the incorrect slice order and complain about
slices starting in the middle.
Originally committed as revision 30246 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
swscale_configuration() and swscale_license() functions, consistent
with the rest of FFmpeg.
Originally committed as revision 30180 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
enough other registers available that are less likely to cause issues.
Originally committed as revision 30160 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
libswscale/swscale_template.c:2575: warning: unused variable ‘srcFormat’
Originally committed as revision 30132 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
These index variables are incremented before each use, so they should be
initialized to -1.
Originally committed as revision 29977 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
All functions in swscale_template.c should be declared with the RENAME macro.
Originally committed as revision 29976 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
This also introduces a dependency of libswscale on libavutil.
Originally committed as revision 29968 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
Patch by Lars Täuber <lars <dot> taeuber <at> gmx <dot> net>.
Originally committed as revision 29650 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
- Align asm code to the column 4 spaces after the call to __asm__();
- Align cases in switch statements to the same column as "switch".
Originally committed as revision 29524 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
- Place curly brackets in the same line as while/for/if/switch/else/do;
- Place curly brackets at column 0 in the next line starting a function.
Originally committed as revision 29523 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
- Use 4 spaces throughout for indentation;
- Fix inconsistent indentation;
- Indent function calls and declarations aligning arguments on multiple lines
to the column after the opening parentheses;
- Align asm code to the column 4 spaces after the call to __asm__();
- Align cases in switch statements to the same column as "switch".
Originally committed as revision 29522 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
flags can never be any other kind of scaling algorithm inside this if().
Originally committed as revision 29449 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
needed for DECLARE_ALIGNED.
Remove dependency from swscale-example.c to swscale_internal.h by duplicating
the necessary code. The duplicated code is a hack and should be removed once a
cleaner pixel format information system exists. swscale-example.c is example
code on how to use the library and therefore shouldn't rely on internal
headers.
Originally committed as revision 29415 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
Remove one erroneous preprocessor check for CONFIG_GPL in the AltiVec code.
Originally committed as revision 29412 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
Make sure the latter is only checked for x86 optimizations, which are GPL.
Originally committed as revision 29390 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale