As previously discussed, the CrystalHD hardware returns exceptionally
useless information about interlaced h.264 content - to the extent
that it's not possible to distinguish MBAFF and PAFF content until
it's too late.
This change introduces use of the h264_parser to help bridge the
gap; it can indicate if the input data is PAFF fields or not.
With this clarity, some of heuristics can be removed from the code,
making this less convoluted.
Finally, I found an MBAFF clip that acts like non h.264 content so
I had to make allowances for that.
Note that I still cannot distinguish between two forms of PAFF,
where the hardware either returns individual fields or a field-pair.
It's not clear that there's even a spec relevant difference between
the two forms, as opposed to hardware ideosyncracies.
* newdev/master:
mov: set audio service type for AC-3 from bitstream mode in the 'dac3' atom.
Get audio_service_type for AC-3 based on bitstream mode in the AC-3 parser and decoder, and vice-versa for the AC-3 encoder.
Use audio_service_type to set stream disposition.
Add APIchanges entry for audio_service_type.
Add audio_service_type field to AVCodecContext for encoding and reporting of the service type in the audio bitstream.
configure: in check_ld, place new -l flags before existing ones
support @heading, @subheading, @subsubheading, and @subsubsection in texi2pod.pl
doc: update build system documentation
aacenc: indentation
aacenc: fix the side calculation in search_for_ms
vp8.c: rename EDGE_* to VP8_EDGE_*.
Conflicts:
doc/APIchanges
libavcodec/avcodec.h
libavcodec/version.h
libavcodec/vp8.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* newdev/master:
matroskadec: set default duration for simple block
When building for MinGW32 disable strict ANSI compliancy.
ARM: fix ff_apply_window_int16_neon() prototype
configure: check for --as-needed support early
ARM: NEON optimised apply_window_int16()
ac3enc: NEON optimised shift functions
ac3enc: NEON optimised ac3_max_msb_abs_int16 and ac3_exponent_min
mpeg12.c: fix slice threading for mpeg2 field picture mode.
ffmetadec.c: fix compiler warnings.
configure: Don't explicitly disable ffplay or in/outdevices on dos
configure: Remove the explicit disabling of ffserver
configure: Add fork as a dependency to ffserver
Merged-by: Michael Niedermayer <michaelni@gmx.at>
When -std=c99 is used, GCC defines __STRICT_ANSI__ to hide non-ANSI
interfaces; on MinGW32, when this macro is defined, some functions that are
part of POSIX but not of Windows APIs are disabled, including strcasecmp().
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This moves the check for --as-needed linker support before all
library tests, ensuring consistent behaviour between the checks
and the actual link step.
Signed-off-by: Mans Rullgard <mans@mansr.com>
* newdev/master:
avio: make udp_set_remote_url/get_local_port internal.
asfdec: also subtract preroll when reading simple index object
matroskaenc: remove a variable that's unused after bc17bd9.
avio: cosmetics - nicer vertical alignment.
Remove unnecessary icc version checks
Disable 'attribute "foo" ignored' warnings from icc
rtsp: Don't use a locale dependent format string
Add xd55 codec tag for XDCAM HD422 720p25 CBR files.
configure: get libavcodec version from new version.h header
lavc: move the version macros to a new installed header.
matroskaenc: simplify get_aac_sample_rates by using ff_mpeg4audio_get_config
Do not use format string "%0.3f" for RTSP Range field.
Add apply_window_int16() to DSPContext with x86-optimized versions and use it in the ac3_fixed encoder.
Document usage of import libraries created by dlltool
configure: Set the correct lib target for arm/wince dlltool
fate: simplify regression-funcs.sh
fate: add support for multithread testing
Conflicts:
libavformat/rtspdec.c
libavutil/attributes.h
libavutil/internal.h
libavutil/mem.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
ICC lies about the version of gcc it emulates, which results
in unsupported attributes sometimes being used. The warning
is an annoyance and should be disabled.
Signed-off-by: Mans Rullgard <mans@mansr.com>
* newdev/master: (33 commits)
Fix an infinite loop when RoQ encoded generated a frame with a size greater than the maximum valid size.
Add kbdwin.o to AC3 decoder
Detect byte-swapped AC-3 and support decoding it directly.
cosmetics: indentation
Always copy input data for AC3 decoder.
ac3enc: make sym_quant() branch-free
cosmetics: indentation
Add a CPU flag for the Atom processor.
id3v2: skip broken tags with invalid size
id3v2: don't explicitly skip padding
Make sure kbhit() is in conio.h
fate: update wmv8-drm reference
vc1: make P-frame deblock filter bit-exact.
configure: Add the -D parameter to the dlltool command
amr: Set the AVFMT_GENERIC_INDEX flag
amr: Set the pkt->pos field properly to the start of the packet
amr: Set the codec->bit_rate field based on the last packet
rtsp: Specify unicast for TCP interleaved streams, too
Set the correct target for mingw64 dlltool
applehttp: Change the variable for stream position in seconds into int64_t
...
Conflicts:
ffmpeg.c
ffplay.c
libavcodec/ac3dec.c
libavformat/avio.h
libavformat/id3v2.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Conio.h is a non-standard header and may not have kbhit()
prototyped. This fixes compile on OS/2 where the EMX version (we're
using a fork) of conio.h only has getch() and getche().
Signed-off-by: Mans Rullgard <mans@mansr.com>
Remove usage of tcgetattr and tcsetattr to modify terminal
parameters, and rely on ctrl-c to stop instead of pressing 'q'.
On systems with conio.h, keep the old behavior.
Changing the terminal settings causes problems if multiple instances
are running asynchronously on the same terminal, such as during a
parallel FATE run, or if the process crashes before restoring the
terminal. In both cases, the terminal state is messed up requiring
a manual reset.
Signed-off-by: Mans Rullgard <mans@mansr.com>
These windows do not really belong in fft/mdct files and were
easily confused with the similarly named tables used by rdft.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This makes existing pkg-config uses as well as the libsdl checks
use the new pkg-config helper functions, which should be more
robust against broken systems.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This adds helper functions for checking packages with pkg-config
and managing the associated flags.
Note that pkg-config use is still discouraged due to widespread
poor practices resulting in broken flags in many situations. A
few badly designed packages require flags only obtainable using
pkg-config, and these functions are intended for those cases.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 3f8040db3e)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This makes it possible to pass a space-separated list of functions
to check_func_headers and check_lib2. If any function is missing,
none are enabled as available, so this should only be used for
all-or-nothing sets, i.e. groups in which none will be used if any
one is missing.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit edaf1ae276)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Not Pulled:
commit 42cfb3835b
Author: Mans Rullgard <mans@mansr.com>
Date: Mon Feb 28 18:06:58 2011 +0000
Remove Sonic experimental audio codec
commit 2912e87a6c
Author: Mans Rullgard <mans@mansr.com>
Date: Fri Mar 18 17:35:10 2011 +0000
Replace FFmpeg with Libav in licence headers
Since initially committed in 2004, this codec has only been touched
for maintenanance. Functionally, it contains no novel ideas and
its intended audience is better served by existing mature codecs.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This fixes ugliness when configure outputs its (empty) results on HPUX
(maybe some other UNIXes too):
Enabled indevs:
pr: -- empty file
Signed-off-by: Mans Rullgard <mans@mansr.com>
This makes existing pkg-config uses as well as the libsdl checks
use the new pkg-config helper functions, which should be more
robust against broken systems.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This adds helper functions for checking packages with pkg-config
and managing the associated flags.
Note that pkg-config use is still discouraged due to widespread
poor practices resulting in broken flags in many situations. A
few badly designed packages require flags only obtainable using
pkg-config, and these functions are intended for those cases.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This makes it possible to pass a space-separated list of functions
to check_func_headers and check_lib2. If any function is missing,
none are enabled as available, so this should only be used for
all-or-nothing sets, i.e. groups in which none will be used if any
one is missing.
Signed-off-by: Mans Rullgard <mans@mansr.com>
The Broadcom CrystalHD decoder chips provide hardware video
decoding for a number of video formats. It does so using a
memory:memory interface where a compressed bitstream is fed
in and decompressed pictures are copied out. As such, it works
independent of any graphics hardware in the system.
Features supported in this initial version:
* Support for Linux (using current drivers/library from git.wilsonet.com)
* Support for 70015 hardware
* Formats: MPEG2, MPEG4 Part 2, H.264, VC1 and DivX 3.11 (untested)
* Progressive content
* Non-H.264 Interlaced content
* H.264 MBAFF content
Features missing in this initial version:
* Support for OSX (might work - untested)
* Support for Windows
* Support for 70012 hardware
* H.264 PAFF content
Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Although not documented, clang does support the --sysroot flag, and it
does the right thing. Use this flag intead of -isysroot which only
applies to header file searches, not the linker.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 00ba041cb3)
Although not documented, clang does support the --sysroot flag, and it
does the right thing. Use this flag intead of -isysroot which only
applies to header file searches, not the linker.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Use the FATE_SAMPLES environment variable if samples location
is not set with the --samples configure option or on the make
command line.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit aa3805a486)
Use the FATE_SAMPLES environment variable if samples location
is not set with the --samples configure option or on the make
command line.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This causes lxlite to use stdout instead of vioXXX
functions. This improves fate and build logs readability.
Affects OS/2 only.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit cc4e9d2a24)
This causes lxlite to use stdout instead of vioXXX
functions. This improves fate and build logs readability.
Affects OS/2 only.
Signed-off-by: Mans Rullgard <mans@mansr.com>
the following additions:
* support to anti-aliased glyph rendering
* support to UTF-8 text and Unicode chars rendering
* support for RGB packed formats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This adds configure and runtime checks for AVX support on x86 CPUs.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 87f1355f9b)
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>
The colon operator of expr always anchors the pattern at the start
of the string. An explicit ^ in the pattern has unspecified
behaviour, so remove it.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 3ad464bfc7)
This makes the cc_ident value, which is used in FATE reports, include
all interesting parts of the gcc version string.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 5d57846bba)
This function removes leading and trailing spaces and collapses
multiple spaces into one.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit bb7a22b584)
The colon operator of expr always anchors the pattern at the start
of the string. An explicit ^ in the pattern has unspecified
behaviour, so remove it.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This makes the cc_ident value, which is used in FATE reports, include
all interesting parts of the gcc version string.
Signed-off-by: Mans Rullgard <mans@mansr.com>
The early disabling of irrelevant arch extensions is no longer
required, and removing it makes dependencies involving these
work as expected.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 4b884207eb)
The early disabling of irrelevant arch extensions is no longer
required, and removing it makes dependencies involving these
work as expected.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Haiku does not have a separate libm, so do not try to link to it.
Signed-off-by: François Revol <revol@free.fr>
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit f59c4bd625)
NASM versions older than 2.08 fail to build ffmpeg with several
"error: operation size not specified" errors but this is not caught in
configure.
Fix that by checking if "pextrd [eax], xmm0, 1" works in configure.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit 48545a8f72)
Haiku does not have a separate libm, so do not try to link to it.
Signed-off-by: François Revol <revol@free.fr>
Signed-off-by: Mans Rullgard <mans@mansr.com>
NASM versions older than 2.08 fail to build ffmpeg with several
"error: operation size not specified" errors but this is not caught in
configure.
Fix that by checking if "pextrd [eax], xmm0, 1" works in configure.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
This allows passing armcc-specific flags with --extra-cflags without
choking the assembler.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit d0f0f6287c)
This adds a function to filter out words matching a pattern
from a list.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 9d201b2606)
This moves network_extralibs setup before use so that the link tests
for network functions work correctly.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 54fe299b88)
The PathScale compiler miscompiles wrapping arithmetic without
these flags.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 5f3b8314a4)
Dragonfly, NetBSD, and OpenBSD do not support symbol versioning
although our link test passes. Disable it explicitly for these
systems.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit a1e4b3f6d3)
This moves network_extralibs setup before use so that the link tests
for network functions work correctly.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Dragonfly, NetBSD, and OpenBSD do not support symbol versioning
although our link test passes. Disable it explicitly for these
systems.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Some variants of mktemp require a template, so provide one when
checking for the command. We already supply a template in the
subsequent uses of mktemp.
Thanks to Michael Kostylev.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit a210bce298)
This does the same thing and also fixes the trapping in
some (possibly broken) shells.
Suggested by Michael Kostylev.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 93bb9ff08e)
Some variants of mktemp require a template, so provide one when
checking for the command. We already supply a template in the
subsequent uses of mktemp.
Thanks to Michael Kostylev.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This does the same thing and also fixes the trapping in
some (possibly broken) shells.
Suggested by Michael Kostylev.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This makes configure --disable-everything --enable-demuxer=foo
work as expected.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit c2dd0e9eba)