Commit Graph

11 Commits

Author SHA1 Message Date
Uoti Urpala fc6a9e4a3e build: switch to libavutil bswap.h and intreadwrite.h
Remove the private bswap and intreadwrite.h implementations and use
libavutil headers instead.

Originally these headers weren't publicly installed by libavutil at
all. That already changed in 2010, but the pure C bswap version in
installed headers was very inefficient. That was recently (2011-12)
improved and now using the public bswap version probably shouldn't
cause noticeable performance problems, at least if using a new enough
compiler.
2012-02-01 22:46:27 +02:00
Uoti Urpala cdb6d157cc demux_lavf: use Libav RIFF tag lists directly
Change demux_lavf to use CodecID -> RIFF tag mappings that are now
available through the public Libav API. Previously it used a copy in
ffmpeg_files/taglists.c. That can now be deleted.
2012-02-01 22:46:27 +02:00
Uoti Urpala db8cdc73e3 Update Libav API uses
Change various code to use the latest Libav API. The libavcodec
error_recognition setting has been removed and replaced with different
semantics. I removed the "--lavdopts=er=<value>" option accordingly,
as I don't think it's widely enough used to be worth attempting to
emulate the old option semantics using the new API. A new option with
the new semantics can be added later if needed.

Libav dropped APIs that were necessary with all Libav versions
until quite recently (like setting avctx->age), and it would thus not
be possible to keep compatibility with previous Libav versions without
adding workarounds. The new APIs also had some bugs/limitations in the
recent Libav release 0.8, and it would not work fully (at least some
avcodec options would not be set correctly). Because of those issues,
this commit makes no attempt to maintain compatibility with anything
but the latest Libav git head. Hopefully the required fixes and
improvements will be included in a following Libav point release.
2012-02-01 22:46:27 +02:00
Uoti Urpala 37e4a928ca configure, build: require at least Libav 0.7
Require versions of the Libav libraries corresponding to Libav release
0.7. These are:
libavutil   51.7.0
libavcodec  53.5.0
libavformat 53.2.0
libswscale   2.0.0
libpostproc 52.0.0

Also disable the fallback to simple header check if these libraries
could not be found with pkg-config; now compiling without pkg-config
support for these always requires explicitly setting --enable-libav
and any needed compiler/linker flags. The simple check would have let
compilation proceed even if a version mismatch was detected.
2011-12-22 01:27:45 +02:00
Uoti Urpala 6d187a73f0 ffmpeg_files/intreadwrite.h: fix AV_RL32/AV_RB32 signedness
The output type of the AV_RL32/AV_RB32 macros was signed int. The
resulting overflow broke at least some ASF streams with large
timestamps (AV_RL32 used in demux_asf.c timestamp parsing code). Fix
by adding a cast to uint32_t. This code comes from FFmpeg, and the
matching code in Libav/FFmpeg is still broken (but not used there in
most common configurations).
2011-06-15 00:10:47 +03:00
Uoti Urpala cba6d60bcd ffmpeg_files/taglists.c: add new FFmpeg values
Updated to last FFmpeg svn version values (r26400).
2011-02-05 03:38:50 +02:00
Uoti Urpala 348332af3a ffmpeg_files/taglists.c: update to latest FFmpeg values (r25209) 2010-11-05 10:33:59 +02:00
Uoti Urpala 407b17614a ffmpeg_files/taglists.c: update to contain latest FFmpeg CODEC_ID values 2010-05-30 17:01:01 +03:00
Uoti Urpala e3103ea06f intreadwrite.h: disable optimizations
Disable arch/compiler specific optimizations in the MPlayer version of
intreadwrite.h. All the uses in MPlayer should be irrelevant for
performance.
2010-05-08 02:32:45 +03:00
Uoti Urpala 23e693d6d2 taglists.c: update to match current libavformat riff.c 2010-01-08 02:52:35 +02:00
Uoti Urpala a009d56d4d Add copies of needed internal FFmpeg files under ffmpeg_files/
MPlayer used to depend on having an FFmpeg tree available at build
time to provide this code, and FFmpeg changes occasionally broke
the MPlayer build as a result. Some of the relevant functionality also
depends on FFmpeg library symbols that are not part of the FFmpeg API,
meaning that library changes could break MPlayer after the build. Add
a copy of the relevant functionality to the MPlayer tree and use that
instead.

The added files are:
- The headers bswap.h, intreadwrite.h and x86_cpu.h from libavutil.
  Some MPlayer code uses the functionality defined as macros and
  static inline functions in these headers.
- Architecture-specific internal files used by the above headers.
  These are in the subdirectories: x86/, arm/, bfin/, sh4/.
- taglists.[ch], which provides the codec tables from
  libavformat/riff.c and two functions to access them from
  libavformat/utils.c.

Most of the headers are copied from FFmpeg revision 19452 with only
the include guard names changed. A "common.h" include in bswap.h was
changed to "libavutil/common.h" as it should use the installed header.
Taglists.c contains snippets from the relevant files with some
changes like renamed identifiers.
2009-07-26 06:15:30 +03:00