1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-24 15:52:25 +00:00
Commit Graph

32484 Commits

Author SHA1 Message Date
Uoti Urpala
8fb91511b1 demux_lavf: add simple seek-by-bytes mode for MPEG
Seeking in MPEG files with pts resets could fail completely, as it was
always done by timestamps and those of course don't unambiguously
specify a file position in such files. Add basic functionality for
byte-based seeking and playback position reporting, and decide whether
to use that functionality based on a simple heuristic (could be
improved).
2010-11-10 07:26:39 +02:00
Uoti Urpala
3c2cfee488 demux: improve -alang / -slang track choosing logic
When -alang / -slang was specified the numerically first matching
track (if any) was always chosen. This meant that specifying "-alang
eng" could change the track choice even if all tracks were in English,
because now the default flag of tracks was ignored. Change the logic
to take the default flag into account as a secondary sorting key.

The code also accepted prefix matches, so that "-slang g" would match
track language "ger". I think that was not intentional. Change it to
require exact matches.
2010-11-08 18:05:12 +02:00
Uoti Urpala
fc66c94360 demux_mkv: seek: with no track-specific index entries use any
The Cue entries in typical Matroska files have information for the
video track only. This caused seeks to fail when playing with
-novideo, as demux_mkv tried to use audio track index entries then.
Add a fallback case that uses any index entries without caring what
track they're for if there are no entries specific to the track we're
interested in.
2010-11-08 18:05:12 +02:00
Uoti Urpala
0619b75cb1 demux_mkv: fix relative seeks without index
Relative seeks didn't add the current position as they should. Fix.

Note that this had no effect in normal playback case even if the file
had no index, because the "accurate_seek" logic at higher level would
convert all commands to absolute seeks before calling demuxer level.
2010-11-08 18:05:12 +02:00
Uoti Urpala
259ab1fe2d TOOLS/matroska.py: recognize MaxCache element 2010-11-08 18:05:12 +02:00
Uoti Urpala
5c3aaf03b1 demux_mkv: fix seek hang when going past end of file without index 2010-11-08 18:05:12 +02:00
Uoti Urpala
4de3f19426 demux_mkv: cleanup: separate index creation part of seeking
Move the code to build an index and seek without using cue information
from the file to a separate function.
2010-11-08 18:05:12 +02:00
Uoti Urpala
a7b91626cf core: use correct demuxer with -audiofile / -subfile
Various code referred to "mpctx->demuxer" where it should really have
referred to the one used for audio/subtitles in case those differ. Fix
by using "mpctx->d_audio->demuxer" etc instead. Disable the copying of
streams in demux_demuxers; that was a partial workaround for things
referring to the main demuxer (and it wasn't enough anyway).

This fixes, among other things, switching audio tracks within the file
specified by -audiofile.
2010-11-08 18:05:12 +02:00
Uoti Urpala
82cd2f7aec demux_demuxers: initialize stream_pts to MP_NOPTS_VALUE
demux_demuxers doesn't run the normal demuxer.c initialization for new
demuxers. Initialize stream_pts separately (it won't ever be changed
with the current implementation). This at least avoids other code
assuming it was set properly.
2010-11-08 18:05:12 +02:00
Uoti Urpala
9a663ffec6 core: move video pos/length query functions from demux to core
Move functions to query current playback position, percentage position
and total video length from from the demuxer layer to top level. The
functions need access to playback state that doesn't belong on the
demuxing level. Make the new functions more capable and simplify some
code that can now rely on them. This fixes some errors in displayed in
OSD and slave mode information when using timeline (ordered chapters).
2010-11-08 18:05:12 +02:00
Uoti Urpala
3628a903f4 demux: fix -correct-pts autoselection with -audiofile
Make demuxer-based -correct-pts autoselection base the decision on the
video demuxer in case several are being used, such as with
-audiofile.
2010-11-08 18:05:12 +02:00
diego
12d3e0df99 cleanup: don't check for NULL before free()
patch by Clément Bœsch, ubitux gmail com

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32598 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:05:12 +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
cehoyos
458350350b demuxer.c: add missing parser list fourccs
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32596 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:05:12 +02:00
cehoyos
9bb304898b demuxer.c: fix parser list fourcc typo: 'MPE '->'MP3 '
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32595 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:05:11 +02:00
reimar
f1e637b827 vd_ffmpeg: compare IMGFMT instead of PIX_FMT
Use IMGFMT to compare instead of PIX_FMT to avoid issues with the
"JPEG" formats like PIX_FMT_YUVJ422P.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32594 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:05:11 +02:00
reimar
01a10dd579 codecs.conf: add missing YV12 output formats for FFmpeg codecs
For FFmpeg codecs YV12 should always be in the supported format
lists if I420 is.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32593 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:05:11 +02:00
reimar
15259f1aad stream_dvd: fill_buffer(): use given buffer, not stream's default
Fix dvd:// fill_buffer function to actually write into the specified
buffer and check that the buffer is sufficiently large.

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

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32592 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:05:11 +02:00
reimar
040008b43f stream_dvd: minor cleanup
Remove a pointless and stupid condition.

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

Change code to something understandable (but equivalent).

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

100l, add missing return.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32590 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:05:11 +02:00
reimar
47ba682a63 demux_ts: Fix subtitle sync issues
Ensure we queue all subtitle packets before demuxing the next video
packet.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32587 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:05:11 +02:00
reimar
c739ab2992 codecs.conf: mark fflatm non-buggy (now default for AAC/LATM)
fflatm seems to be working, whereas external faad does not work at all
with latm (internal does).

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32585 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:05:11 +02:00
reimar
1d99051c59 ad_faad: Make work with -demuxer lavf
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32586 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:05:11 +02:00
reimar
50d5197611 codecs_conf, mp_taglists: Use only one fourcc for LATM
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32584 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:05:07 +02:00
reimar
5c3a8c76df ad_ffmpeg: Handle EAGAIN, needed for LATM to work properly with demux_ts
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32583 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:03:45 +02:00
reimar
e666e3ce91 demuxer.c: Add support for parsing LATM
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32582 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:03:35 +02:00
reimar
8d89878e7f demux_lavf: Fix program switching
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32580 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:03:35 +02:00
reimar
eb4db3a9ff demux_lavf: Print PROGRAM_ID -identify output similar to demux_ts
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32579 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:03:35 +02:00
reimar
fd3d5aa9c6 vf_scale: accept all non-hw-accel formats we know a PIX_FMT for
Make scale filter accept all non-hardware-acceleration input formats
we know a PIX_FMT_* for.
It is possible we will not have a conversion for some of these formats,
but since it will just fail differently this approach is better since
it avoids having to expand the explicit list continuously.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32576 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:03:35 +02:00
reimar
98a6088a20 video: simplify some tests with a new IMGFMT_IS_HWACCEL macro
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32575 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:03:35 +02:00
diego
d783c38ce1 mplayer.desktop: Add video/3gpp and application/x-flash-video mime types
patch extracted from the ALT Linux patch set

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32574 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:03:35 +02:00
diego
dbc9a080f4 configure: Do not enable rpath on NetBSD
patch extracted from the NetBSD pkgsrc tree

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32573 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:03:35 +02:00
diego
e4230c554c configure: Enable joystick support on FreeBSD
patch extracted from the FreeBSD ports tree

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32572 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:03:35 +02:00
cehoyos
0a2d29a75b codecs.conf, mp_taglists: Support FFmpeg LATM decoding
Also move libfaad codecs.conf entry into the same position as in svn
(no functionality change since ffaac is marked buggy so only faad is
used by default regardless or order).

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32571 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:03:27 +02:00
komh
ffbc561f96 vo_kva: Restore all the attributes after changing aspect ratio
kvaSetup() resets all the attributes, so there is need to restore them.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32570 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-07 21:49:51 +02:00
komh
163ae34e96 vo_kva: Prevent a parent window from painting over ours in slave mode
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32569 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-07 21:49:10 +02:00
reimar
0142db087b vo_directx: Fix possible out-of-bounds access
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32568 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-07 21:48:37 +02:00
jrash
d067f6a2a0 DOCS/man/zh_CH: sync with en/mplayer.1 rev. 32566
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32567 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-07 21:48:16 +02:00
siretart
c1515ae3aa TOOLS/binary_codecs.sh: make indentation consistent
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32561 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-07 21:47:32 +02:00
reimar
f94717cdc4 cache, stream: avoid extra memcpy when using cache
Add a stream_read_internal() function that reads directly into a given
buffer instead of the stream's internal one. Use this to read directly
into cache memory, avoiding a memcpy(). This requires also adding a
stream_seek_internal() as the normal seek function reads into the
stream's buffer.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32559 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-07 21:46:22 +02:00
reimar
c6fb4e2aa2 cosmetics: cache2.c: Remove some irrelevant commented-out code
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32555 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-07 21:45:41 +02:00
cigaes
00f82c63b0 stream_dvd: millisecond accuracy for chapters in -identify output
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32539 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-07 20:18:21 +02:00
Uoti Urpala
759231566a demux_lavf: for avi, use packet .dts instead of .pts
When playing avi files take timestamps from the .dts field of the
packet instead of .pts. For avi libavformat returns the original avi
timestamps in .dts; without GENPTS set .pts is sometimes unset, with
GENPTS set it'll contain some made up values which are not correct
pts. Current libavformat also has a bug take makes it loop over the
whole avi file if you use GENPTS with video streams disabled.

The timing code can cope with the avi timestamps even though they're
not really pts.
2010-11-06 23:29:45 +02:00
Uoti Urpala
d707da9e65 build: enable vf_geq if libavutil version installs eval.h
New enough libavutil versions allow building vf_geq.c without
requiring internal FFmpeg headers.
2010-11-06 23:29:07 +02:00
Uoti Urpala
b04c615959 demux_lavf: avoid deprecated "first_iformat" by using newer API 2010-11-06 23:29:07 +02:00
Uoti Urpala
393bb7bb98 demux_lavf: add hack for stream-changing ogg input (internet radio)
Some internet radio streams are ogg/vorbis with a new stream for each
track (and the previous stream stops receiving data). Add a hack to
ignore the stream number in packets when input seems to match this
case; all packets will be effectively regarded as parts of the same
audio stream. This workaround can't work perfectly with current lavf
because it will keep adding streams and then hit its 20 stream
maximum; at that point playback will likely fail. Print a warning
about this problem and mention "-demuxer ogg" as a possible
workaround.

Currently there's no check that the vorbis extradata is actually
compatible between the streams.
2010-11-06 23:29:00 +02:00
Uoti Urpala
661d909f8e demux_lavf: more future proof AVInputFormat name comparison
AVInputFormat name fields consist of comma-separated components, more
of which may be added in backwards-compatible versions. demux_lavf did
a strcmp against the whole field at once; this would break if a
component was added. Change the code to search for individual
component matches within the field instead.
2010-11-06 23:26:21 +02:00
Uoti Urpala
348332af3a ffmpeg_files/taglists.c: update to latest FFmpeg values (r25209) 2010-11-05 10:33:59 +02:00
Clément Bœsch
a3124a4f5d options: add OPT_MAKE_FLAGS macro, creates "opt/noopt" flag pair 2010-11-04 06:44:12 +02:00
Clément Bœsch
952f9b85a7 options: move -name and -title to option struct 2010-11-04 05:54:12 +02:00
Uoti Urpala
be95d4c131 Makefile: enable .DELETE_ON_ERROR special target
msgfmt creates the output file even if there was a fatal error. Thus
make would stop because of the error return, but the output file would
be left on disk and running make again would continue building other
files. Enable the .DELETE_ON_ERROR special target to automatically
delete target files changed by failing commands. This affects all
rules; I think it is the correct behavior for all existing rules.
2010-11-04 01:30:42 +02:00