Commit Graph

829 Commits

Author SHA1 Message Date
wm4 c8154630bf ad_dvdpcm: add back PCM decoder for DVD
This is needed by demux_mpg (and possibly by demux_ts) for PCM playback.
The decoder does the mapping from MPEG headers to the actual PCM format,
and also unpacks sample data for 20/24 bit formats.
2012-09-18 21:08:14 +02:00
wm4 1ba5a8f283 rawaudio: use mplayer audio format for format option
The rawaudio demuxer had a rather hard to use way to set the audio
format with the --rawaudio=format=value option. The user had to pass a
numeric value, which then was set as wFormatTag member in the
WAVEFORMATEX header.

Make it use the mplayer audio format (the same as --af=format=value).
Add a new internal pseudo audio codec tag, which is hopefully unused,
which makes ad_pcm use the value in wFormatTag as internal mplayer
audio format.

Playing non-PCM formats is disabled. (At least AC3 can be played
directly.)
2012-09-18 21:07:29 +02:00
wm4 ee65b39cbe ad_pcm: add back raw decoder
This was removed in commit 6a26b4a665. Add it back, because it was
needed by demuxer_rawaudio and for PCM audio with demuxers other than
demux_lavf. (In practice, this broke rawaudio and PCM-in-Matroska only.)

Unlike with raw video, there is no single raw audio "decoder" in
libavcodec. Instead of trying to mess raw audio input into ad_ffmpeg
using a table to map audio formats to the respective libavcodec
decoders, it seems advantageous to simply add back ad_pcm.
2012-09-18 21:04:47 +02:00
wm4 6a26b4a665 libmpcodecs: remove redundant audio and video decoders
Probably all of these are supported by libavcodec. Missing things can
be added back.

Also remove qtpalette.h. It was used by demux_mov.c, and should have
been deleted with commit 1fde09db6f.
2012-08-20 15:36:04 +02:00
wm4 6f7ba66817 Remove support for libdv
This removes the libdv demuxer and audio/video decoders. FFmpeg has
support for it, and it's even preferred over the internal decoders.
2012-08-20 15:36:03 +02:00
wm4 762ef8d532 codecs.cfg: do not prefer spdifmpa over mpg123 decoder
The generic hardware pass-through decoder ad_spdif (imported from
mplayer-svn) was mistakenly prefered over the default decoder mpg123.
This is the same as mplayer-svn commit 34192.

The spidfmpa entry was marked as "untested", which for inconceivable
reasons is preferred over entries marked "working". (The probe order
is untested, working, buggy. Possibly to "force" untested codecs to be
tested?) I didn't know this behavior, and skipped the corresponding
mplayer-svn commit 34192, as it looked like it would move up the entry
in autoprobe order (not the reverse), which might have been slightly
dangerous, or at least not something we would have to bother with.

The only change in behavior the incorrect entry caused was that playing
a shoutcast mp3 stream displayed "inf" as time on the mplayer status
line, instead the time since joining the stream. (The same can be seen
when starting mplayer-svn with -ac spdifmpa,mpg123 .) I'm not sure why
this happens; I can only guess that when spdifmpa throws away header
data when it fails initializing, or messes up something else.
2012-08-07 19:02:34 +02:00
mplayer-svn 78f51230d7 libmpcodecs: add ad_spdif.c, S/PDIF passthrough decoder
patch by Naoya OYAMA, naoya.oyama gmail com

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34191 b3059339-0415-0410-9bf9-f77b7e298cf2

fix ad_spdif

Call av_register_all() before initialising the SPDIF muxer.

Fixes playback with -demuxer mpegts -ac spdifac3.
Patch by Naoya OYAMA, naoya D oyama gmail

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34291 b3059339-0415-0410-9bf9-f77b7e298cf2

Use new API avformat_new_stream() instead of the deprecated
av_new_stream().

Patch by Naoya OYAMA, naoya D oyama gmail

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34292 b3059339-0415-0410-9bf9-f77b7e298cf2

Cosmetics: Remove empty statement.

Patch by Naoya OYAMA, naoya D oyama gmail

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34293 b3059339-0415-0410-9bf9-f77b7e298cf2

Use init_avformat() instead of av_register_all().

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34294 b3059339-0415-0410-9bf9-f77b7e298cf2

Author: diego
2012-08-03 01:30:08 +02:00
wm4 751333eb63 Revert "codecs: prefer libmad over libmpg123"
This reverts commit c8b0f21154.

This was a very bad idea. It caused A/V desync with some crappy AVI
files, and upon inspecting ad_mad.c, it seems all hope is lost.
Go back to the prefering the mpg123 & libav codecs.
2012-08-02 22:07:19 +02:00
wm4 1fde09db6f Remove some demuxers and decoders
Most of these demuxers and decoders are provided in better form by
libav, while the mplayer builtin ones are essentially unmaintained. The
only legimitate use case for not using the libav ones was working around
libav bugs or bugs related to the way mplayer uses libav. Instead of
trying to keep dead code alive, development effort should go into
improving libav or the mplayer libav glue code.

Note that the libav demuxer have been preferred over the mplayer builtin
ones for a while in mplayer2. There were some exceptions: playing DVDs
with dvdnav or playing network sources. (That's because some stream
modules and network.c requested explicit file formats, such as
DEMUXER_TYPE_MPEG_PS, which mapped to builtin demuxers.) With this
commit, they are switched to use libav. One caveat is that the requested
format is not passed to libavformat, instead we rely on the auto probing
to select the correct libav demuxer (see code in demux_open_stream()).
2012-07-30 22:14:32 +02:00
wm4 c8b0f21154 codecs: prefer libmad over libmpg123
Someone on the internet once told me that MAD is the best mp3 decoder
(and better than mpg123), so he must be right. I used to force mad in
my config file, but now I'm annoyed by the line "Forced audio codec"
that goes along with it.

Because I think that message is necessary and needed to discourage
users from doing stupid things, but I still want to get rid of this
message, I'm simply moving MAD up in the codec selection order.
(Please look away.)
2012-07-30 01:45:08 +02:00
Uoti Urpala 5f3c3f8c32 video, audio: use lavc decoders without codecs.conf entries
Add support for using libavcodec decoders that do not have entries in
codecs.conf. This is currently only used with demux_lavf, and the
codec selection is based on codec_id returned by libavformat. Also
modify codec-related terminal output somewhat to make it use
information from libavcodec and avoid excessively long default output.

The new any-lavc-codec support is implemented with codecs.conf entries
that invoke vd_ffmpeg/ad_ffmpeg without directly specifying any
libavcodec codec name. In this mode, the decoders now instead select
the libavcodec codec based on codec_id previously set by demux_lavf
(if any). These new "generic" codecs.conf entries specify "status
buggy", so that they're tried after any specific entries with
higher-priority status.

Add new directive "anyinput" to codecs.conf syntax. This means the
entry will always match regardless of fourcc. This is used for the
above new codecs.conf entries (so the driver always gets to decide
whether to accept the input, and will fail init() if it can't find a
suitable codec in libavcodec). Remove parsing support for the obsolete
codecs.conf directive "cpuflags". This directive has not had any
effect and has not been used in default codecs.conf since many years
ago.

Shorten codec-related terminal output. When using libavcodec decoders,
show the libavcodec long_name field rather than codecs.conf "info"
field as the name of the codec. Stop showing the codecs.conf entry
name and "vfm/afm" name by default, as these are rarely needed;
they're now in verbose output only. Show "VIDEO:" line at VO
initialization rather than at demuxer open. This didn't really belong
in demuxer code; the new location may show more accurate values (known
after decoder has been opened) and works right if video track is
changed after initial demuxer open.

The vd.c changes (primarily done for terminal output changes) remove
round-to-even behavior from code setting dimensions based on aspect
ratio. I hope nothing depended on this; at least the even values were
not consistently guaranteed anyway, as the rounding code did not run
if the video file did not specify a nonzero aspect value.
2012-07-24 09:01:47 +03:00
Uoti Urpala 2ba8b91a97 build, codec-cfg.c: simplify builtin codecs.conf handling
The player can read codec mapping (codecs.conf) from an external file
or use embedded defaults. Before, the defaults were stored in the
player binary in the form of final already-parsed data structures.
Simplify things by storing the text of the codecs.conf file instead,
and parse that at runtime the same way an external file would be
parsed.

To create the previous parsed form, the build system first compiled a
separate binary named "codec-cfg", which parsed etc/codecs.conf and
then wrote the results as a C data structure that could be compiled
into the program. The new simple conversion of codecs.conf into a C
string is handled by the new script TOOLS/file2string.py.

After removing the codec-cfg binary, HOST_CC is no longer used for
anything. Remove the --host-cc configure option and associated logic.

Also remove the codec2html and codec-cfg-test functionality. Building
those was already broken and nobody cared.

There was a broken 3-character-long "fourcc" entry in etc/codecs.conf.
This happened to be accepted before but triggered a parse error after
the changes. Remove the broken entry and make the parsing functions
explicitly test for this error.
2012-07-16 21:08:42 +03:00
Uoti Urpala e35362f507 codecs.conf: add Libav ProRes decoder 2011-09-23 06:27:05 +03:00
compn 78f6ca1a2c codecs.conf: add yv16 raw fourcc
samples at https://ffmpeg.org/trac/ffmpeg/ticket/307

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33787 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-07-06 13:01:08 +03:00
compn 01e441dddc codecs.conf: add vfw csmcodec for fourcc CSM0, map YV24 fourcc to raw444P codec
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33727 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-07-06 13:01:08 +03:00
cehoyos dc6fe9692b codecs.conf: add fourcc DVOO to rawyuy2
Digital Voodoo SD 8 Bit.
2011-06-29 11:13:05 +03:00
cehoyos 97dfc4f219 codecs.conf: add libavcodec r10k decoder
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33462 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-06-29 11:11:50 +03:00
cehoyos bd3ed7cf1f codecs.conf: add S302M audio codec from libavcodec
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33460 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-06-29 11:11:36 +03:00
Uoti Urpala d3bef0286b vd_ffmpeg: autoselect output colorspaces without codecs.conf
Selecting the colorspace to output from a decoder is done in the
function mpcodecs_config_vo(). Add a new version of this function,
mpcodecs_config_vo2(), that allows the decoder to specify a list of
candidate colorspaces instead of always using a hardcoded list
specified in the codecs.conf entry. If the codecs.conf entry has any
"out" lines then those still take priority and the decoder-provided
list (if any) is ignored. Make vd_ffmpeg provide a list of the
colorspaces it's willing to output. Remove "out" lines from most
entries for libavcodec video decoders in codecs.conf, so that the
automatic values are now used instead.
2011-06-26 06:27:50 +03:00
Uoti Urpala cbdb7e6305 vo_xvmc: drop XvMC support
Due to libavcodec changes vo_xvmc would have needed some modifications
to keep working. However, I think there's little real demand for XvMC,
so I'll just drop XvMC support. XvMC only supported MPEG-2, making it
of very limited usefulness nowadays, plus the vo_xvmc implementation
was not high quality and never worked particularly well or reliably
anyway.
2011-05-09 20:27:16 +03:00
cehoyos d0376729d1 codecs.conf: add Etymonix MPEG-2 I-frame codec to ffmpeg12
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33332 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-05-02 00:36:21 +03:00
cehoyos fa33ca0695 codecs.conf: add Canopus SD50 (CDV5) to ffdv entry
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33301 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-05-02 00:36:20 +03:00
reimar 6d99ffbeed codecs.conf: add Deluxe Paint Animation decoder from libavcodec
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33290 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-05-02 00:36:20 +03:00
cehoyos c51e9d5ae1 codecs.conf: add Kega Video (kgv1) from libavcodec
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33254 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-05-02 00:36:20 +03:00
cehoyos 673a2c7597 codecs.conf, mp_taglists: add FFmpeg Bitmap Brothers JV decoder
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33125 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-05-02 00:35:48 +03:00
compn 211e93aeec codecs.conf: cleanup/unify hdv* fourccs, except vdpau
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33113 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-05-01 16:25:37 +03:00
cehoyos c824034689 codecs.conf: only list 4:2:0 colorspace fourccs for VDPAU
VDPAU hardware decoding does not support colorspaces other than 4:2:0.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33096 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-04-13 03:35:26 +03:00
cehoyos 42f97b2b82 codecs.conf, stheader.h: support CrystalHD decoding (libavcodec)
Add the various decoders to codecs.conf and increase the maximum
number of buffered pts in stheader.h (apparently CrystalHD can have
very high decoder lag).

Patch by Philip Langdale, philipl overt org

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33095 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-04-13 03:21:41 +03:00
compn b49b4e6ef9 codecs.conf: add xd55 isom for mpeg2 video from fcp
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33094 b3059339-0415-0410-9bf9-f77b7e298cf2

Conflicts:

	etc/codecs.conf
2011-04-13 03:18:57 +03:00
cehoyos 3cb235736e codecs.conf: Use fourcc instead of format where appropriate
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33077 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-04-13 03:17:05 +03:00
cehoyos e43e0de9e6 ad_pcm, codecs.conf: support 'lpcm' in mov and float in aiff
Support 'lpcm' in mov files, has audible (clipping?) artefacts on some
systems.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33075 b3059339-0415-0410-9bf9-f77b7e298cf2

Support 32bit big endian float pcm in aiff.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33076 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-04-13 03:17:05 +03:00
cehoyos 2c2f620e7a codecs.conf: Add FourCC ai12 for AVC Intra 100 / 1080.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33061 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-04-13 03:15:05 +03:00
reimar 55dbd183e3 ad_liba52: Fix -ac a52 with tags other than 0x2000 or dnet
Audio with all codec tags other than 0x2000 was byte-swapped, while
only "dnet" should be.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33028 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-04-13 03:15:05 +03:00
cehoyos fa0d14555d codecs.conf, mp_taglists.c: add LXF PCM and dvvideo
Support audio in Leitch/Harris' VR native stream format (LXF).

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32990 b3059339-0415-0410-9bf9-f77b7e298cf2

Support dvvideo in Leitch/Harris' VR native stream format (LXF).

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32991 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-04-12 19:39:30 +03:00
compn 989694678d codecs.conf: add ai5q and ai1q fourccs for h264 decoders
ported from ffmpeg

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32948 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-04-12 18:45:11 +03:00
cehoyos 4726be4314 codecs.conf: clarify XAN DPCM comment
At least for Wing Commander 4 files, -demuxer lavf is needed to
play XAN DPCM audio (while Wing Commander 3 avi plays fine with
-demuxer avi, although it also contains the video codec we call "XAN
wc4").

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32894 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-04-12 18:35:38 +03:00
cehoyos c4814bc8b6 codecs.conf: Support 0x594A as format value for XAN DPCM audio
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32885 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-04-12 18:34:50 +03:00
Uoti Urpala f9b5f2870c mp3lib: drop internal mp3lib tree
Delete mp3lib which has been the default mp3 decoder until now. In
addition to being an unnecessary embedded library it now fails to
compile correctly with the new gcc-4.6, producing noise.

After the deletion the default decoder priority for mp3 will be first
libmpg123 (a newer version of the code that mp3lib was based on) if
available, then ffmp3float which should be available in all normal
compiles. I think that some tweaking may be required as these decoder
alternatives get wider testing, but any problems should be solvable
and there should be no need for mp3lib.
2011-04-02 07:28:53 +03:00
cehoyos 8affafc2a8 codecs.conf: Add FFmpeg WC4 xan decoder
Patch by Philip Langdale, philipl overt org

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32875 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-02-15 19:30:57 +02:00
compn 8aac9fae9b codecs.conf: add apco, ap4h, ai55, ai15 fourccs
add apco and ap4h fourcc to prores decoder
add ai55 and ai15 fourcc to h264 docoders

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32843 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-02-15 19:16:49 +02:00
Uoti Urpala 7cd7416c73 libmpeg2: drop libmpeg2 support
libavcodec mpeg2 decoder has been the default for a while and seems to
work fine.
2011-02-01 20:10:27 +02:00
Uoti Urpala 626d5ed628 vo_zr2: drop Zoran support
There were multiple files specific to Zoran support, and they also
depended on internal FFmpeg headers (so it would probably have been
hard to get them to compile now even if you tried). It's obsolete now,
so just drop the whole mess.
2011-01-31 16:03:11 +02:00
cehoyos 9a021242a9 codecs.conf, vd_ffmpeg: Enable fflagarith video decoder
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32773 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-01-31 16:03:10 +02:00
cehoyos 5937ee8a5b codecs.conf: add format id for FLAC in mov
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32767 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-01-31 16:03:10 +02:00
cehoyos 2ce17b5afd codecs.conf: Fix playback of ffv1 yuv422p16
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32764 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-01-31 16:03:10 +02:00
compn f96ba3ad32 codecs.conf: add ffmpeg g722 audio codec
works on incoming/g722/ sample

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32662 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-12-16 05:05:41 +02:00
reimar 04a3a3825f codecs.conf: add Avid DNxHD through QuickTime
Add support for decoding Avid DNxHD through the QuickTime component.
This is needed for the 10-bit variant which the FFmpeg decoder does not
support (unfortunately both use the same FourCC).

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32649 b3059339-0415-0410-9bf9-f77b7e298cf2

Bump codecs.conf version.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32650 b3059339-0415-0410-9bf9-f77b7e298cf2

change dnxhd to qtdnxhd. consistant with all other quicktime decoders

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32658 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-12-16 04:57:04 +02:00
diego aae78f0509 cosmetics: Fix Bluray vs. Blu-ray typo
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32606 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-14 12:23:56 +02:00
diego e3c6f09752 codecs.conf: Prefer FFmpeg AAC decoder over libfaad2
FFmpeg's AAC decoder is much faster than libfaad2. The only known
exception is libfaad2 compiled in fixed-point mode on systems with
slow FPUs. Now that LATM support in FFmpeg is complete, FFmpeg's AAC
decoder has a similar feature set as libfaad2. This leaves no reason
not to use FFmpeg by default.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32605 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-14 12:23:56 +02:00
cehoyos af4b23cd36 codecs.conf: document need to add fourccs to parser list in demuxer.c
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32597 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:05:12 +02:00