1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-29 02:22:19 +00:00
Commit Graph

34847 Commits

Author SHA1 Message Date
wm4
3fbd6d4e9c demux_mkv: split reading blocks and reading packets
Move most code from demux_mkv_fill_buffer() to read_next_block(). The
former is supposed to read raw blocks, while ..fill_buffer() reads
blocks and turns them into packets.
2013-04-20 23:28:21 +02:00
wm4
9afe9d7061 demux_mkv: move BlockGroup reading code to a separate function
Somehow this was setup such that a BlockGroup can be incrementally
read (at least in theory). This makes no sense, as BlockGroup can
contain only one Block (despite its name). There's no need to read
this incrementally, and makes the code confusing for no gain.

Read all the BlockGroup sub-elements with a single function call,
without keeping global state for BlockGroup parsing.
2013-04-20 23:28:21 +02:00
wm4
4e531d0f2a demux_mkv: factor block reading
The code for reading block data was duplicated. Move it into a function.

Instead of returning on error (possibly due to corrupt data) and
signalling EOF, continue by trying to find the next block. This makes
error handling slightly simpler too, because you don't have to care
about freeing the current block. We could still signal EOF in this case,
but trying to resync sounds better for dealing with corrupted files.
2013-04-20 23:28:21 +02:00
wm4
75178af8b4 demux_mkv: fix streaming clusters
Matroska files prepared for streaming have clusters with unknown size.
These files are pretty rare, see e.g. test4.mkv from the official
Matroska test file collection.
2013-04-20 23:28:21 +02:00
wm4
c2bf06f63e demux_mkv: simplify cluster reading code
The end positions of the current cluster and block were managed by
tracking their size and how much of them were read, instead of just
using the absolute end positions.

I'm not sure about the reasons why this code was originally written
this way. One obvious concern is reading from pipes and such, but the
stream layers hides this. stream_tell(s) works even when reading from
pipes. It's also a fast call, and doesn't involve the stream
implementation or syscalls. Keeping track of the cluster/block end is
simpler and there's no reason why this wouldn't work.
2013-04-20 23:28:21 +02:00
wm4
c4e43aaf89 demux_mkv: use normal index data structure even for incomplete files
Incomplete files don't have a valid index, because the index is usually
located near the end of a file. In this case, an index is created on the
fly during demuxing, or when seeks are done.

This used a completely different code path, which leads to unnecessary
complications and code duplication. Use the normal index data structure
instead. The seeking code at the end of seek_creating_index() (in this
commit renamed to create_index_until()) is removed. The normal seek code
does the same thing instead.
2013-04-20 23:28:21 +02:00
wm4
6d66a547a4 manpage: clarify --cache behavior 2013-04-20 23:25:55 +02:00
wm4
2d3f525cdf Merge pull request #62 from maletor/patch-1
Fix typo for opengl dither-depth default
2013-04-18 14:48:43 -07:00
Ellis Berner
4beedec44d Fix typo for opengl dither-depth default 2013-04-18 14:41:32 -07:00
Stefano Pigozzi
9a6e6b2fc2 cocoa_common: keep aspect ratio when clipping window
With commit 33ffc283 resizing to double size would cause the window to lose
aspect ratio. This commit fixes this bug.
2013-04-17 21:22:22 +02:00
Stefano Pigozzi
22d53fb97c change reverse DNS strings to io.mpv.*
fixes #60
2013-04-16 23:34:58 +02:00
Stefano Pigozzi
33ffc28373 cocoa_common: refactor centered resize
This refactor makes the code easier to understand. Also corrects a bug that
caused the window to move to the left when the new size was bigger than the
visible frame.
2013-04-16 22:51:01 +02:00
Rudolf Polzer
0c1d95e81b encoding: when output is pipe: or pipe:1, avoid mp_msg to stdout
I am aware this detection may occur too late, depending on other
settings, but at least it usually works and is portable.

Where the output fd can be changed, though, it'd be better to force a
similar behaviour via file descriptor use: use pipe:3 as output to FD 3,
and change the calling program to expect the stream on FD 3.
2013-04-15 13:30:21 +02:00
wm4
df8a481eba sub: add --osd-blur and --sub-text-blur options
These require bleeding edge libass (latest git version), and will be
ignored otherwise.

I'm not sure about the blur factor and scaling. The ASS/VSFilter
semantics for blur scaling are a bad mess. Might require further
investigation.
2013-04-13 18:53:03 +02:00
wm4
3097176ff1 audio/decode: remove vararg from ad_control()
This was unused and dumb. Ancient MPlayer used varargs instead of void*
arguments for control() functions, and this was the last leftover.
2013-04-12 20:35:59 +02:00
wm4
ad3dfa145b osd_libass: actually free ASS_Tracks
Not a real leak, just for getting clean valgrind reports on exit.
2013-04-12 19:02:58 +02:00
wm4
203b57d863 demux: simplify chapter appending code
This pre-allocation looked tricky and awkward. Use MP_TARRAY_APPEND(),
which makes the code simpler. This even keeps the pre-allocation.
2013-04-12 14:38:22 +02:00
wm4
6f28c061b4 demux: always sort chapters
The condition that checked whether the chapters are out of order and
should be sorted was inverted. This likely wasn't noticed in testing,
because even if the chapters are unsorted, if the last two chapters
were sorted, the rest got sorted too.

Instead of doing this silly check, always sort the chapters after
demuxer initialization. Also make sure the sort order is stable in case
chapter start times are the same (original_index check).
2013-04-12 14:38:04 +02:00
wm4
a5916f5d1d core: remove dead --vsync leftovers 2013-04-12 14:36:26 +02:00
wm4
90e57fc266 command: fix deref before NULL check
Was accidentally broken in the last global variable removal round.
2013-04-12 14:34:46 +02:00
Stefano Pigozzi
ed48c657ee ao_jack: fix deprecation warning
jack_port_get_total_latency is deprecated: use the "new" API based on
jack_port_get_latency_range instead.
2013-04-12 00:10:39 +02:00
wm4
37a424ed10 mplayer: remove unnecessary variable 2013-04-10 21:32:46 +02:00
wm4
9df2260506 core: add --reset-on-next-file option
This option can be used to selectively reset settings when playing the
next file in the playlist (i.e. restore mplayer and mplayer2 behavior).

Might remove this option again should it turn out that nobody uses it.
2013-04-10 21:32:46 +02:00
wm4
62daa08d3b mplayer: keep volume persistent, even when using --volume
Consider:

    mpv --volume 10 file1.mkv file2.mkv

Before this commit, the volume was reset to 10 when playing file2.mkv.
This was inconsistent to most other options. E.g. --brightness is a
rather similar case.

In general, settings should never be reset when playing the next file,
unless the option was explicitly marked file-local. This commit
corrects the behavior of the --volume and --mute options.

File local --volume still works as expected:

    mpv --{ --volume 10 file1.mkv file2.mkv --}

This sets the volume always to 10 on playback start.

Move the m_config_leave_file_local() call down so that the mixer code
in uninit_player() can set the option volume and mute variables without
overwriting the global option values.

Another subtle issue is that we don't want to set volume if there's no
need to, which is why the user_set_volume/mute fields are introduced.
This is important because setting the volume might change the system
volume depending on other options.
2013-04-10 21:29:04 +02:00
wm4
2c3e5428c2 mplayer: move DVB channel skip code
Try not to cause unnecessary special cases.
2013-04-10 18:50:19 +02:00
wm4
b99ae74d7d mplayer: don't disable term-osd with -v
I don't see any reason for doing this.
2013-04-10 18:48:11 +02:00
wm4
889cbc21b1 command: fix loadlist command
A simple inverted condition prevented it from working properly.

Also, make sure that playlist is played from beginning when the playlist
is replaced.
2013-04-10 17:16:49 +02:00
wm4
593aa1834b configure: add -mconsole on MinGW
At least libsdl adds -mwindows to the cflags, which marks the .exe
binary as GUI application. This means the program detaches from the
console when started in cmd.exe, instead of showing the playback
status, receiving console input, and so on.

Append -mconsole to the linker command line to disable -mwindows.
2013-04-10 17:15:29 +02:00
wm4
10d9d2a1fa mplayer: don't print bogus status when caching
When streaming from http, this could print a status line indicating
paused playback instead of "buffering" sometimes.
2013-04-10 17:14:20 +02:00
Martin Herkt
f8d32b03bf vf_divtc, vf_phase: Fix handling of subsampled formats
These filters incorrectly calculated the amount of bytes per line
in each plane for chroma subsampled formats, causing undefined
behavior.
2013-04-10 00:22:00 +02:00
Rudolf Polzer
23bbbed06d demux: fix a specific gcc 4.8 warning that may hint to mis-optimized code
CC      demux/demux.o
demux/demux.c: In function 'demuxer_switch_track':
demux/demux.c:1241:29: warning: array subscript is above array bounds [-Warray-bounds]
     int new_id = demuxer->ds[type]->id;
                                  ^
2013-04-09 10:08:28 +02:00
wm4
afbf29da1a core: remove volstep global variable 2013-04-09 02:41:46 +02:00
wm4
dddb4e5ebd core: restore --mc default value (fixes A/V sync)
Commit bc20f2c moved the variable default_max_pts_correction (which
backs the --mc option) to the MPOpts struct. The initializer was
forgotten when doing this, so it was left at 0. This disabled part of
the A/V sync mechanism. This was apparent when using ad_spdif (this
decoder has other A/V sync related problems, and thus triggers this
issue easily).

Closes #59.
2013-04-09 02:39:18 +02:00
Stefano Pigozzi
ae9e7b5a4a make: add osxbundle-skip-deps
This adds a way to generate a Mac OS X application bundle without the bundled
dependencies.

fixes #57
2013-04-08 21:44:46 +02:00
Rudolf Polzer
a95a5bcf2f vf_dlopen examples: add copyright headers (LGPL 2.1+) 2013-04-08 09:43:29 +02:00
Stephen Hutchinson
33639d0156 stream_cddb: fix compilation on MinGW-w64
Like the VCD case, stream_cddb.c relies on ntddcdrm.h, which is no
longer under the ddk directory.
2013-04-06 00:00:21 +02:00
Stephen Hutchinson
b224f37174 vcd_read_win32.h: fix compilation on MinGW-w64
ntddcdrm.h is no longer under the 'ddk' directory in MinGW-w64,
and since MPV focuses on it instead of the old MinGW32, there's no
reason to keep that dir prefix, as it stops VCD support from being
built at all for Windows.
2013-04-06 00:00:16 +02:00
wm4
4e55a6e828 Remove some apple remote leftovers
The options and key names don't do anything anymore.
2013-04-05 23:59:39 +02:00
Stefano Pigozzi
cae508dfb6 input: remove ar.h include
This is a left over from c8fd9e50e4.
2013-04-05 10:33:52 +02:00
wm4
c49aa35380 demux_mkv: move preroll subtitle check to the right place
No subtitle selected was supposed to disable the preroll logic
completely. However, the packet skipping logic was not properly enabled,
so the demuxer would still return subtitle packets from before the seek
target timecode. This shouldn't matter at all in practice, but fixing
this makes the code clearer.
2013-04-04 15:24:04 +02:00
wm4
75afa370b9 demux_mkv: try to show current subtitle when seeking
Makes sure that seeking to a given time position shows the subtitle at
that position. This can fail if the subtitle packet is not close enough
to the seek target. Always enabled for hr-seeks, and can be manually
enabled for normal seeks with --mkv-subtitle-preroll.

This helps displaying subtitles correctly with ordered chapters. When
switching ordered chapter segments, a seek is performed. If the subtitle
is timed slightly before the start of the segment, it normally won't be
demuxed. This is a problem with all seeks, but in this case normal
playback is affected. Since switching segments always uses hr-seeks,
the code added by this commit is always active in this situation.

If no subtitles are selected or the subtitles come from an external
file, the demuxer should behave exactly as before this commit.
2013-04-04 14:45:29 +02:00
wm4
f36a5a88d0 options: fix --no-colorkey
In the last cleanup round, this was accidentally changed from a store
option to int, and the option value was passed as flag value.

(Not that anyone needs/uses/cares about this option...)
2013-04-04 14:30:49 +02:00
wm4
ccc213fdac core: add --heartbeat-interval option
This closely follows MPlayer commit 36099, with some changes.

Move a mutable static variable into MPContext.
2013-04-04 14:24:42 +02:00
wm4
e1d57504b3 av_common: minor simplification 2013-04-04 14:11:07 +02:00
reimar
a98f658d53 http: handle broken QuickTime Streaming Server headers
Handle the severely broken headers QuickTime Streaming Server sends.

Instead of ending the header with \r\n\r\n it ends with
\r\n<4 byte MP3 header>\r\n.
And programs like wget just silently accept this without even
printing a warning!!

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

Note: see previous commit.
2013-04-04 14:08:07 +02:00
reimar
dac7744888 http: fix for broken SHOUTcast streams
Support broken icy-metaint response from QuickTime Streaming Server.

The full version string is "QuickTime Streaming Server 6.1.0/532".
It sends a HTTP response header that contains an MP3 header!
Fixes bug #2133.

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

Note that in mpv, "http://" is mapped to ffmpeg currently, and this
code is unused by default.
2013-04-04 14:04:27 +02:00
reimar
3dedcdde60 vcd_read: cleanup ifdefs
Clean up ifdefs so they make sense even if none or multiple are defined.

Also choose Linux as fallback case instead of failing, this
allows the code to compile e.g. on Android.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35971 b3059339-0415-0410-9bf9-f77b7e298cf2
2013-04-04 14:03:22 +02:00
Rudolf Polzer
18755dcbea encoding-example-profiles: block non-4:0:0 for baseline h264
libx264 rejects the other pixel formats when doing baseline H.264,
although libavcodec accepts them, leading to an encoding abort.
2013-04-04 09:40:00 +02:00
wm4
061b99d7b9 demux_mkv: fix handling of 0 DisplayWidth/Height
Commit 546ae23 fixed aspect ratio if the DisplayWidth or DisplayHeight
elements were missing. However, some bogus files [1] can have these
elements present in the file, but set to 0. Use 1:1 pixel aspect for
such files.

[1] https://ffmpeg.org/trac/ffmpeg/ticket/2424
2013-04-04 01:22:24 +02:00
wm4
2ade0951ef command: silence "Audio: no audio" line for playback speed
If no audio stream is selected, this line will be printed by
reinit_audio_chain() when changing playback speed.
2013-04-04 01:19:29 +02:00