| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The --ass-styles option is implemented by calling ass_read_styles().
This function can take a codepage (so libass will use iconv to convert
it). This was implemented before our --subcp option was changed, and
this code was not updated. Now libass fails opening iconv, because
--subcp is not always (and not by default) a valid iconv codepage.
Just always pass NULL, which means the file passed to --ass-styles must
be in UTF-8. The --ass-styles option is a fringe option anyway (and will
destroy your subtitles), so having codepage support for it isn't
important at all.
|
| |
|
|
|
|
|
| |
There wasn't any reason for this. In fact, it's a memory leak. The
proper priv struct is already allocated vf.c and the option parser.
|
|
|
|
|
|
| |
While it technically works, using GNU-style options seems cleaner nowadays.
Signed-off-by: wm4 <wm4@nowhere>
|
|
|
|
|
| |
Unfortunately, quite a hack, because we have check the nav state
outside of discnav.c.
|
|
|
|
|
|
|
|
|
|
|
|
| |
demux_mf.c explicitly checks for the stream type to check whether images
are opened via pattern (mf://..., i.e. stream_mf.c) or directly. Of
course the stream type is not set to STREAMTYPE_MF if the stream is
wrapped through the cache, so it tried to open the pattern directly as
file, which failed.
Fix this by disabling caching for mf://. The cache doesn't make sense
here anyway, because each file is opened and closed every frame (perhaps
to avoid memory bloat).
|
|
|
|
|
|
|
|
|
|
| |
It's possible that MPContext has a chapter list, but the demuxer
doesn't. In this case, accesing the chapter-metadata property would
lead to invalid accesses.
(This fixes the out of bound access, but in theory, the returned data
can still be incorrect, since MPContext chapters don't need to map
directly to demuxer chapters.)
|
| |
|
|
|
|
|
|
| |
This cd_info_t struct was practically unused. The only thing it did was
storing the track name of the form "Track %d" in a very roundabout way.
Remove it. (It made more sense when there was still CDDB support.)
|
|
|
|
|
|
|
|
|
|
| |
Don't use an integer division to get the time, since that would round on
second boundaries. Also round up the time by sector size. Seeking rounds
down due to alignment constraints, but if we round up the time, we can
make it land on the exact destination sector.
This fixes that the track change code printed the previous track when
seeking by chapter.
|
|
|
|
|
|
|
|
|
| |
Report the time for each chapter (tracks are treated as chapters). This
allows us to get rid of the "old" chapter mechanism, and also behaves
better with the frontend.
This makes assumptions about the audio formats, but that format is
hardcoded anyway in the rawaudio demuxer defaults (and always was).
|
|
|
|
|
|
| |
This was usually handled at the end of the switch statement, so if
something returns from the function before that, the event has to be
freed explicitly.
|
|
|
|
|
|
|
|
|
|
|
| |
dvdnav.c did not handle event in regular sequence. Usually this
does not make any trouble except around MP_NAV_EVENT_RESET_ALL.
Those events should be handled in regular sequence. If they're
mixed, it can make wrong result.
For instance, MP_NAV_EVENT_HIGHLIGHT right after
MP_NAV_EVENT_RESET_ALL should not be ignored but it might be
because MP_NAV_EVENT_RESET_ALL makes the demuxer reloaded and osd
hidden.
|
|
|
|
|
| |
Since subsizes were never updated, the bitmap buffer was always
reallocated whenever mp_nav_get_highlight() called.
|
|
|
|
|
| |
It's obvious but, since STREAM_CTRL_GET_TIME_LENGTH is called
frequently, the amount of leaked memory here is quite big.
|
| |
|
|
|
|
|
|
|
|
| |
This "sometimes" crashed when seeking. The fault apparently lies in
libavcodec: the decoder returns an unreferenced frame! This is
completely insane, but somehow I'm apparently still expected to
work this around. As a reaction, I will drop Libav 9 support in the
next commit. (While this commit will go into release/0.3.)
|
| |
|
| |
|
|
|
|
|
| |
Conflicts:
DOCS/man/en/af.rst
|
|
|
|
|
|
| |
Don't pass unicode types to waf ENV.
As per https://code.google.com/p/waf/issues/detail?id=1420
This directly fixes the "CFVersion" key in the .app bundle plist.
|
|
|
|
|
|
|
|
|
|
|
| |
Xlib.h (included from x11_common.h) defines a macro 'Status' as 'int'.
This messed up a bunch of definitions in windows.h and broke the build
in Cygwin. Including windows.h first seems to solve the problem.
This commit also removes the definition of an unused flag.
Conflicts:
player/main.c
|
| |
|
|
|
|
|
|
|
| |
And make some additions.
I'm not really sure why we list dependencies that are not ours, but that
of external libraries. Still might be useful, though.
|
|
|
|
|
|
| |
I've tried not to be too detailed (because it's not a reference, just
some guidelines), but it still got relatively long. Also contains
conventions for sending patches.
|
|
|
|
|
|
| |
The window doesn't recieve a WM_LBUTTONUP message after it's dragged,
probably because it's swallowed by the modal loop. To stop the button
from sticking, release it manually when the drag is complete.
|
|
|
|
|
|
| |
Mouse buttons can get stuck down if the button is pressed inside the
video window and released outside. Avoid this by capturing mouse input
when a button is pressed.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 75dd3ec2106701cb865f52966de66c51cb6f9204.
This broke seeking with ordered chapters in some situations. While
the reverted commit was perfectly fine for playback of normal files,
it overlooked that in the ordered chapters case switching segments
actually reinitialized the audio chain completely, including the
decoder. And decoders still read packets on initialization. We can
restore the original commit as soon as decoders stop doing this.
|
|
|
|
|
|
|
|
|
|
|
| |
This AO pretended to support volume operations when in spdif passthrough
mode, but actually did nothing. This is wrong: at least the GET
operations must write their argument. Signal that volume is unsupported
instead.
This was probably a hack to prevent insertion of volume filters or so,
but it didn't work anyway, while recovering after failed volume filter
insertion does work, so this is not needed at all.
|
|
|
|
|
|
|
|
|
|
| |
It is possible to have ao->reset() called between ao->pause() and
ao->resume() when seeking during the pause. If the underlying PCM
supports pausing, resuming an already reset PCM will produce an error.
Avoid that by explicitly checking PCM state before calling
snd_pcm_pause().
Signed-off-by: wm4 <wm4@nowhere>
|
|
|
|
| |
Signed-off-by: wm4 <wm4@nowhere>
|
|
|
|
|
|
| |
References to WinMM/OLE/UUID were missing.
Signed-off-by: wm4 <wm4@nowhere>
|
|
|
|
| |
Oops.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The player didn't quit when the end of a file was reached. The reason
for this is that jack reported a constant audio delay even when all
audio was done playing. Whether that was recognized as EOF by the player
depended whether the exact value was higher or lower than the player's
threshhold for what it considers no more audio.
get_delay() should return amount of time it takes until the last sample
written to the audio buffer reaches the speaker. Therefore, we have to
track the estimated time when the last sample is done, and subtract it
from the calculated latency. Basically, the latency is the only amount
of time left in the delay, and it should go towards 0 as audio reaches
ths speakers.
I'm not sure if this is correct, but at least it solves the problem. One
suspicious thing is that we use system time to estimate the end of the
audio time. Maybe using jack_frame_time() would be more correct. But
apart from this, there doesn't seem to be a better way to handle this.
|
|
|
|
| |
<lachs0r> it fixes issues with recent python3
|
|
|
|
| |
Pressing 'h' in idle mode -> crash.
|
| |
|
|
|
|
| |
This should be pretty safe compared to forcing the codepage.
|
|
|
|
|
|
| |
Signed-off-by: wm4 <wm4@nowhere>
Closes #580.
|
| |
|
|
|
|
|
|
|
|
|
| |
MP_CMD_COMMAND_LIST commands (used to implement key bindings with
multiple commands) were not checked for abort commands. Implement it.
Remove the remarks about multi-commands being special from the manpage.
Seek coalescing is handled differently now, and the issue with abort
commands is fixed with this commit.
|
|
|
|
|
| |
This prevents keys from getting stuck if the modifier is released before
the base key.
|
|
|
|
|
| |
Small errors are unavoidable, but truncation can cause anamorphic video
to be off by 1 or 2 pixels.
|
|
|
|
|
|
|
|
|
| |
When timeline was used, and the --start option was not used, the initial
seek (needed to switch to the first timeline segment) seeked to -1 due
to an oversight.
Conflicts:
player/loadfile.c
|
|
|
|
|
| |
Basically, chapter marks and chapter seek-points were incorrect, while
the rest worked.
|
|
|
|
|
| |
Windows will automatically choose the correct icon size if this field is
unset.
|
|
|
|
|
|
|
|
| |
Same rationale as b2c2fe7a but updated to work with path-win.c
Signed-off-by: wm4 <wm4@nowhere>
Merges/closes #543.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Set subtitle resolution to video resolution when avctx->width and
avctx->height are zero.
This can happen with broken vobsubs that have no size set in their
.idx file (or Matroska extradata). At least with the test file provided
in issue #551, using the video resolution as fallback instead of what
guess_resolution() does is better.
Note that these files clearly are broken. It seems this particular
file was created by trying to use ffmpeg to transcode DVB subtitles
to vobsub, and ffmpeg "forgot" to set the subtitle resolution in the
destination file. On the other hand, ffmpeg DVB and PGS decoders set
the resolution on the first subtitle packet (or somewhere close), so
it's not really clear what to do here.
Closes #551.
Signed-off-by: wm4 <wm4@nowhere>
Patch by xylosper, rewritten commit message by wm4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It seems that it was causing issues with certain perl setups (such as
the one on issue #549). It also turns out that it was not behaving correctly
(not all constants were being promoted to big nums as they should), so we
use explicit objects to derive the constants.
There were also precedence issues. I wonder if this even worked right to
begin with.
The 'double' path (8-byte floats) is untested, as I couldn't easily find
a file with such a field.
Closes #549.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cygwin's libc (newlib) doesn't obey a lot of unix feature test macros,
including _GNU_SOURCE; as a result, a lot of functions and defines get
masked out -- important defines such as M_PI and strcasecmp. Work around
it by undefining __STRICT_ANSI__ on cygwin systems.
This will still cause compilation issues on any non-cygwin system that
uses newlib, but hopefully nobody does that, or if they do, they will
find this commit message and know to add -U__STRICT_ANSI__ to their
CFLAGS. Hopefully.
|
|
|
|
|
|
|
|
|
|
|
| |
The mplayer decoder (spudec.c) actually handled this. There was explicit
code for binary palettes (16 32 bit values), and the subtitle resolution
was handled by video resolution coincidentally matching the subtitle
resolution.
Whoever puts vobsub into mp4 should be punished.
Fixes the sample gundam_sample.mp4, closes github issue #547.
|
|
|
|
|
| |
This includes the magical input padding required by libavcodec, which we
possibly didn't do before this commit.
|
| |
|
|
|
|
| |
Fixup commit for 20fa191ad.
|
|
|
|
|
|
|
|
|
| |
The minimum required version was bumped in the old configure script, but
for the waf build system is was somehow forgotten or overlooked.
Probably happened while the waf build system was developed in a separate
branch.
Closes #546.
|
|
|
|
|
|
| |
Thanks to @wm4 for catching the bug.
Fixes #405
|
| |
|
|
|
|
|
|
|
|
| |
This is the same issue as addressed by 257d9f1, except this time for
the :srgb option as well. (257d9f1 only addressed :icc-profile)
The conditions of the srgb_compand mix() call are also flipped to
prevent an off-by-one error.
|
|
|
|
| |
This crashed when retrieving the raw property value. Oops.
|
|
|
|
| |
With the new xdg_shell the problem will be no gone by itself.
|
|
|
|
|
|
|
| |
Use of these is "discouraged", but they're there to select these special
cases with the "aspect" property. They really should use some sort of
choice option type, but since it would be some work to make these work
with float values, the simple and dumb alternative was picked.
|
|
|
|
| |
This also affects the --aspect option and the "aspect" property.
|
|
|
|
|
| |
The correct value is 0.081, not 0.18. The scale factor also needed
slight adjustment due to the order of operations.
|
|
|
|
| |
Some drivers do not supply timestamps, use old timestamp in these conditions.
|
|
|
|
|
| |
When a time sync happens the last sync time is the minimum time that can be
used for presentation.
|