aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* x11: add rewind and forward keysGravatar Kenneth Zhou2014-09-03
| | | | Signed-off-by: wm4 <wm4@nowhere>
* path: remove XDG bullshitGravatar wm42014-09-03
| | | | | | | | | | | | | Don't worry, your ~/.config/... paths are safe. This merely removes handling of $XDG_CONFIG_DIRS for global paths. Maybe there is a better solution for this, like still including the "traditional" config dir. But I will leave the fine reading of this (crappy) spec and fixing the code accordingly to someone else. So, if anyone has interest in getting this behavior back, you will have to write a patch. This patch should _also_ not break expected behavior. Fixes #1060.
* demux: allow increasing filepos onlyGravatar wm42014-09-03
| | | | | | | | | | | The last demuxed file position (demuxer->filepos) is used to estimate the total playback percentage in files with possible timestamp resets (like MPEG-PS). Until know, reading from any stream set this position freely. This makes the position jump around. Fix this by allowing icnreasing file position only. Reset it on seeking. With crazy formats, this still could go wrong, but there's only so much you can do.
* player: add --media-title optionGravatar wm42014-09-02
| | | | Requested by ChrisK2.
* player: properly resume playlists loaded at runtimeGravatar wm42014-09-02
| | | | | | | If a playlist is loaded from the internal playlist (like "mpv playlist.m3u"), then attempt to resume from it. CC: @mpv-player/stable
* player: add --osd-playing-msg optionGravatar wm42014-09-02
|
* player: show HLS bitrate as fallback for track titlesGravatar wm42014-09-01
| | | | | | HLS streams as demuxed by libavformat have no track title metadata. So show the HLS bitrate if no title is set. Could be useless or annoying, so it's a bit controversial, I guess.
* player: simplistic HLS bitrate selectionGravatar wm42014-09-01
| | | | | | --hls-bitrate=min/max lets you select the min or max bitrate. That's it. Something more sophisticated might be possible, but is probably not even worth the effort.
* command: remove broken quvi-format propertyGravatar wm42014-09-01
| | | | Never really worked, and libquvi is probably a lost cause anyway.
* demux: get rid of old wrapperGravatar wm42014-09-01
| | | | | demux_info_get() used to be central, but was turned into a wrapper, and now there was only one caller left. Get rid of it.
* command: make m_property_strdup_ro with NULL mean unavailableGravatar wm42014-09-01
| | | | | | | | | | This catches a few cases which basically call: m_property_strdup_ro(..., ..., NULL) which would return NULL strings. This should generally be avoided (although it's allowed due to reasons), and it seems most callers actually intend this to mean M_PROPERTY_UNAVAILABLE.
* command: disable some commands/properties properly in idle modeGravatar wm42014-09-01
| | | | | In particular, don't allow to add any external subtitle tracks in idle mode. This make no sense and would just lead to leaks or worse.
* player: reset playback-related fields right on startGravatar wm42014-09-01
|
* man: fix a whole bunch of typosGravatar Martin Herkt2014-09-01
|
* player: don't allow remote playlists to load local filesGravatar wm42014-09-01
| | | | | | | | Because that might be a bad idea. Note that remote playlists still can use any protocol marked with is_safe and is_network, because the case of http-hosted playlists containing URLs using other streaming protocols is not unusual.
* playlist: don't add the base path twiceGravatar wm42014-09-01
| | | | | | | | | | | | Loading a playlist with --playlist from a sub-directory added the playlist's base path twice: one time in the playlist demuxer, and then again in playlist_parse_file(). The latter function is used only for --playlist, so it worked when loading the playlist directly. (This is probably a mess-up when the MPlayer playlist parsers were replaced with newer code.) CC: @mpv-player/stable
* client API: fix memory leak with rejected eventsGravatar wm42014-08-31
| | | | | | | | The event was copied early, and wasn't released if it was rejected instead of being added to the event queue. Fix by copying the event at a point when it's certainly added to the event queue. The dup_event_data() function is merely moved.
* player: always load playlistsGravatar wm42014-08-31
| | | | | | | | | Until now, you had to use --load-unsafe-playlists or --playlist to get playlists loaded. Change this and always load playlists by default. This still attempts to reject unsafe URLs. For example, trying to invoke libavdevice pseudo-demuxer is explicitly prevented. Local paths and any http links (and some more) are always allowed.
* audio: go to draining state instead of EOF if audio starts laterGravatar wm42014-08-31
| | | | | | Probably no observable effect, but it's more correct. Setting audio to EOF could have bad effects otherwise (anywhere the player logic for example decides whether EOF was reached, and such).
* video: adjust some Matroska 3D formatsGravatar wm42014-08-31
| | | | | | | There is no proper and exact spec (Matroska tradition), so we probably have to rely on guessing for this. Also see issue #1045.
* audio/out: prevent burning CPU when seeking while pausedGravatar wm42014-08-31
| | | | | | | | | The audio/video sync code in player/audio.c calls ao_reset() each time audio decoding is entered, but the player is paused, and there would be more than 1 sample to skip to make audio start match with video start. This caused a wakeup feedback loop with push.c. CC: @mpv-player/stable
* x11: when using --wid, inherit event flags from parent windowGravatar wm42014-08-31
| | | | | | | | | | | | | | | | | | | When embedding a X window, it's hard to control whether it receives mouse/keyboard input or not. It seems the X protocol itself makes this hard (basically due to the outdated design mismatching with modern toolkits), and we have to take care of these things explicitly. Simply do this by manually querying and using the parent window event flags. This restores some MPlayer behavior (it doesn't add back exactly the same code, but it's very similar). This probably has some potential to interfere with libmpv embedding, so bump the client API minor. CC: @mpv-player/stable (if applied, client-api-changes.rst has to be adjusted to include the 0.5.2 release)
* lua: expose mp_getcwd through mp.utilsGravatar Otto Modinos2014-08-31
|
* manpage: be more explicit about "estimated-..." propertiesGravatar wm42014-08-31
| | | | | | In particular, use the note markup. The issue about rounded timestamps is mostly with respect to Matroska (which usually rounds them to milliseconds), which somewhat adds to the reliability issue.
* csputils: adjust commentGravatar wm42014-08-30
| | | | | Make it clear that the value is linked to the StereoMode element. You can't change this without adjusting demux_mkv.c.
* video: initial Matroska 3D supportGravatar wm42014-08-30
| | | | | | | | | | | | | | | | | | | | | This inserts an automatic conversion filter if a Matroska file is marked as 3D (StereoMode element). The basic idea is similar to video rotation and colorspace handling: the 3D mode is added as a property to the video params. Depending on this property, a video filter can be inserted. As of this commit, extending mp_image_params is actually completely unnecessary - but the idea is that it will make it easier to integrate with VOs supporting stereo 3D mogrification. Although vo_opengl does support some stereo rendering, it didn't support the mode my sample file used, so I'll leave that part for later. Not that most mappings from Matroska mode to vf_stereo3d mode are probably wrong, and some are missing. Assuming that Matroska modes, and vf_stereo3d in modes, and out modes are all the same might be an oversimplification - we'll see. See issue #1045.
* cache_file: add a mode that creates a temporary fileGravatar wm42014-08-30
| | | | | | | Since we have to be portable, our options for creating temporary files are somewhat limited. tmpfile() happens to be available everywhere, so use that. This function doesn't allow having a "visible" filename or location, so we use the magic string "TMP" for this.
* player: reduce default demuxer cacheGravatar wm42014-08-30
| | | | | | | A (hopefully) temporary hack to make stream switching delays tolerable. It's not clear how this should be handled (either executing a precise seek on track switching, or always enabling all streams), so get this issue out of the way for now by picking a rather low value.
* TOOLS/mpv_identify.sh: simplify $MPV handlingGravatar shdown2014-08-30
|
* TOOLS/mpv_identify.sh: various style improvementsGravatar shdown2014-08-30
| | | | | Double-quote everything, eliminate unneeded evals and deprecated `backtits` substitution syntax.
* TOOLS/mpv_identify.sh: move script body to a functionGravatar shdown2014-08-30
| | | | | Don't prepend each variable with __midentify__, just make them local to the function.
* TOOLS/youtube-dl_mpv.sh: simplify $MPV handlingGravatar shdown2014-08-30
|
* TOOLS/youtube-dl_mpv.sh: disable globbing before expanding $video_urlGravatar shdown2014-08-30
| | | | | $video_url can contain a question mark, which can be expanded to a character in an existing file name if globbing is enabled.
* manpage: document that --cache-file doesn't work with ordered chaptersGravatar wm42014-08-30
|
* stream: correctly propagate uncached stream typeGravatar wm42014-08-30
| | | | | This makes the ordered chapter code not think that a stream from the local filesystem is not a local file (it checks uncached_type).
* demux_lavf: print a warning if av_read_frame() returns an errorGravatar wm42014-08-30
| | | | Because why not.
* vf_softpulldown: handle null mpi_image correctlyGravatar shdown2014-08-30
| | | | Check if mpi is NULL before accessing mpi->fields.
* input: make ar_rate and ar_delay fields of input_ctx signedGravatar shdown2014-08-30
| | | | | ar_rate is set to -1 when autorepeat is disabled; there is no reason for ar_delay to stay unsigned.
* input: handle reaching MP_MAX_FDS correctlyGravatar shdown2014-08-30
| | | | Don't dereference fd and increment ictx->num_fds on fail.
* demux_mkv: eliminate redundant branchGravatar shdown2014-08-30
| | | | | | In the else branch pict_type is always 3, so pict_type != 3 is always false. (Note that I have no idea of what it was supposed to do and it is just an equivalent of the old behaviour.)
* demux: eliminate redundant checkGravatar shdown2014-08-30
| | | | | pkt can't be NULL since it's initialized from ds->head, which is checked at the beginning.
* demux_disc: handle new_sh_stream() fail correctlyGravatar shdown2014-08-30
| | | | | Break the cycle on fail. Old code was checking if sh is NULL after accessing it's fields.
* gl_wayland: fix crash after eglInitialze failedGravatar Alexander Preisinger2014-08-30
| | | | | Only execute most of the opengl termination procedure if we actually have an egl context.
* manpage: fix minor grammar issueGravatar wm42014-08-29
|
* vo_opengl: remove macro operator from shaderGravatar Bin Jin2014-08-29
| | | | Removes '##' operator from OpenGL shader code.
* TOOLS/youtube-dl_mpv: allow playing multiple URLsGravatar wm42014-08-29
| | | | | Unfortunately this also means you can't pass extra mpv options after the URL anymore. You can prefix the script with MPV='mpv --options' though.
* player: fix quit handling when seeking past EOF while pausedGravatar wm42014-08-29
| | | | | | | | | | The player didn't quit when seeking past EOF in audio-only mode while paused. The only case when we don't want to quit is when the last video frame is displayed while paused. This logic was probably broken a while ago, but I'm not exactly sure. CC: @mpv-player/stable
* Move compat/ and bstr/ directory contents somewhere elseGravatar wm42014-08-29
| | | | | | | | | bstr.c doesn't really deserve its own directory, and compat had just a few files, most of which may as well be in osdep. There isn't really any justification for these extra directories, so get rid of them. The compat/libav.h was empty - just delete it. We changed our approach to API compatibility, and will likely not need it anymore.
* bstr: preparation for next commitGravatar wm42014-08-29
| | | | | | | | Just so I can move this file without modifying its contents in the next commit. compat/compiler.h is to be moved to osdep/ with the next commit, so add a dummy header.
* stream: tweaks to network reconnection codeGravatar wm42014-08-29
| | | | | | | | | | | | | | Don't reconnect to the cache (since the cached stream already handles reconnection). This is necessary, because since commit 0b428e44 the "streaming" field (which also controls whether attempting to reconnect makes sense at all) is inherited to the cache stream wrapper. Also, let the stream reset its own position on reconnect. This removes some assumptions and messy handling from the reconnect function. Make sure the cache is dropped on reconnect. This takes care of readjusting the stream position if necessary. (Also drop the cache on DVB channel switching commands.)