| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|\
| |
| | |
Fix typo for opengl dither-depth default
|
|/ |
|
|
|
|
|
| |
With commit 33ffc283 resizing to double size would cause the window to lose
aspect ratio. This commit fixes this bug.
|
|
|
|
| |
fixes #60
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This was unused and dumb. Ancient MPlayer used varargs instead of void*
arguments for control() functions, and this was the last leftover.
|
|
|
|
| |
Not a real leak, just for getting clean valgrind reports on exit.
|
|
|
|
|
| |
This pre-allocation looked tricky and awkward. Use MP_TARRAY_APPEND(),
which makes the code simpler. This even keeps the pre-allocation.
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
| |
Was accidentally broken in the last global variable removal round.
|
|
|
|
|
| |
jack_port_get_total_latency is deprecated: use the "new" API based on
jack_port_get_latency_range instead.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Try not to cause unnecessary special cases.
|
|
|
|
| |
I don't see any reason for doing this.
|
|
|
|
|
|
|
| |
A simple inverted condition prevented it from working properly.
Also, make sure that playlist is played from beginning when the playlist
is replaced.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
When streaming from http, this could print a status line indicating
paused playback instead of "buffering" sometimes.
|
|
|
|
|
|
| |
These filters incorrectly calculated the amount of bytes per line
in each plane for chroma subsampled formats, causing undefined
behavior.
|
|
|
|
|
|
|
|
| |
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;
^
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
This adds a way to generate a Mac OS X application bundle without the bundled
dependencies.
fixes #57
|
| |
|
|
|
|
|
| |
Like the VCD case, stream_cddb.c relies on ntddcdrm.h, which is no
longer under the ddk directory.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
The options and key names don't do anything anymore.
|
|
|
|
| |
This is a left over from c8fd9e50e47.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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...)
|
|
|
|
|
|
| |
This closely follows MPlayer commit 36099, with some changes.
Move a mutable static variable into MPContext.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
libx264 rejects the other pixel formats when doing baseline H.264,
although libavcodec accepts them, leading to an encoding abort.
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
If no audio stream is selected, this line will be printed by
reinit_audio_chain() when changing playback speed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The main problem with video PTS was that it wasn't very useful when
playing audio files with cover art. Using the audio time instead was an
obvious solution. Unfortunately, this leads to "inexact" reporting of
the playback time in paused mode, and audio is always ahead by small,
essentially random amounts of time ahead. This is possibly because the
times reported by AOs are not entirely accurate when paused (see commit
9b3bf76).
Switch back to video PTS, and use a simpler way to deal with the cover
art case: if the video has ended, use the audio PTS.
Also see commit f9a259e (and the commits referenced from there).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Trying to step over a segment boundary didn't work, and the video was
stuck at the end of the current chapter. At this point, both video and
audio of the segment has ended, and the segment switching code is going
to call seek() to go to the next segment (the part of the code in
run_playloop that uses end_is_chapter). However, this seek() is not
called if playback is paused, and the framestepping code always paused
before this code is run.
Move the framestepping code below the chapter switching code. The added
restart_playback condition makes sure the code is called only after at
least one video frame has been shown. Also don't reset the framestep
counter after seek. It's not needed, and removing it prevents full
unpausing when stepping over a segment boundary.
This also terminates playback when frame stepping at the end of the
file. The --keep-open option can be used to get the old behavior.
|
| |
|
|
|
|
| |
I missed the VOFLAG for enabling alpha support
|
|
|
|
|
|
| |
It is now possible to show images and videos with alpha information correctly.
This was disalbed before, because there was a bug that made black parts of
videos also transparent.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
vorbis is the builtin bad vorbis encoder; whenever possible, one should
rather use the "libvorbis" codec name.
|
|
|
|
| |
This line was accidentally removed by the previous commit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The OSX part of the Apple Remote was unmaintained for a long time and was not
working anymore. I tried to update the cookies to what the current versions of
OS X expect without much luck. I decided to remove it since Apple is not
including the IR receiver anymore in new hardware and it's clear that wifi
based remotes are the way to go.
A third party iOS app should be used in it's place. In the future we could look
into having a dedicated iOS Remote Control app like VLC and XBMC do.
The Linux side (`appleir.c`) was relatively tidy but it looks like LIRC can be
configured to work with any version of Apple Remote [1] and is more maintained.
[1] LIRC Apple Remote configs: http://lirc.sourceforge.net/remotes/apple/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit ac1c5e6 (demux_mkv: improve robustness against broken files)
added code to skip to the next cluster on error conditions. However,
reaching normal EOF triggers this code as well, so explicitly check
for EOF before this happens. Note that the EOF flag is only set _after_
reading the last byte, so EOF needs to be checked after the fact. (Or
in other words, we must check for EOF after the ebml_read_id() call.)
(To answer the question why reading packets actually reaches EOF, even
if there's the seek index between the last packet and the end of the
file: the cluster reading code skips the seeking related EBML elements
as normal part of operation, so it hits EOF gracefully when trying to
find the next cluster.)
|
|
|
|
| |
This fixes a warning when compiling with clang.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Drawing the bar with vector drawings (instead with characters from the
OSD font) offers more flexibility and looks better. This also adds
chapter marks to the OSD bar, which are visible as small triangles on
the top and bottom inner border of the bar.
Change the default position of the OSD bar below the center of the
screen. This is less annoying than putting the bar directly into the
center of the view, where it obscures the video. The new position is
not quite on the bottom of the screen to avoid collisions with
subtitles.
The old centered position can be forced with ``--osd-bar-align-y=0``.
Also make it possible to change the OSD bar width/height with the new
--osd-bar-w and --osd-bar-h options.
It's possible that the new OSD bar renders much slower than the old
one. There are two reasons for this: 1. the character based bar
allowed libass to cache each character, while the vector drawing forces
it to redraw every time the bar position changes. 2., the bar position
is updated at a much higher granularity (the bar position is passed
along as float instead of as integer in the range 0-100, so the bar
will be updated on every single video frame).
|
|
|
|
| |
On most platforms, they are recursively included, but not all.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous attempt was missing some code paths, so there were still
shaders generated that triggered the shader compilation error. Fix it
instead by special handling USE_CONV in the shader.
By the way, the shader compiler did not accept:
#if defined(USE_CONV) && (USE_CONV == ...)
In my opinion this should be perfectly fine, but it gives the same
error as before. So test USE_CONV separately with #ifndef.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|