aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* chmap_sel: add multichannel fallback heuristicGravatar Stefano Pigozzi2014-12-29
| | | | | | | | | | | | Instead of just failing during channel map selection, try to select a close layout that makes most sense and upmix/downmix to that instead of failing AO initialization. The heuristic is rather simple, and uses the following steps: 1) If mono is required always prefer stereo to a multichannel upmix. 2) Search for an upmix that is an exact superset of the required channel map. 3) Search for a downmix that is the exact subset of the required channel map. 4) Search for either an upmix or downmix that is the closest (minimum difference of channels) to the required channel map.
* chmap: add a 7.1(rear) layout nameGravatar Stefano Pigozzi2014-12-29
| | | | This is common on Apple systems so it's handy to have a label for it.
* w32_common: allow window resizing with --no-borderGravatar James Ross-Gowan2014-12-29
|
* vo_opengl: Ignore approx-gamma for BT.2020-CLGravatar Niklas Haas2014-12-29
| | | | | | The details of the non-linear transformation from/to BT.2020's constant luminance system don't really make sense with any other gamma curve, since changing the gamma curve completely breaks the chroma channels.
* stream_pvr: sort channel list by --tv-channels orderGravatar wm42014-12-28
| | | | | | | | | | Apparently this is what users would expect. Going the way of least resistance (in terms of messing with this old, rarely used code), sorting them by some kind of addition timestamp (called priority in the patch) is the easiest. Fixes #1390.
* cocoa: move the gl function loader to gl_cocoa.cGravatar Stefano Pigozzi2014-12-28
|
* screenshots: set AVFrame parametersGravatar wm42014-12-28
| | | | | | | Currently, libavcodec is rather lenient, but it might get stricter in the future. Fixes #1398.
* README: remove travis and coverity badgesGravatar wm42014-12-27
| | | | Useless and ugly.
* manpage: document new --stream-dump behaviorGravatar wm42014-12-27
| | | | That's probably a good idea.
* command: stip path from playlist OSD displayGravatar wm42014-12-27
| | | | | | But only if it's not e.g. a http URL. Fixes #1388.
* stream: always make stream dumping/capturing append to output fileGravatar wm42014-12-27
| | | | Partially fixes #1393 (but not really).
* ao_coreaudio: remove useless guardGravatar Stefano Pigozzi2014-12-27
| | | | useless after 069016fd6c
* ao_coreaudio: fix some naming conventionsGravatar Stefano Pigozzi2014-12-27
|
* player: force stereo as default when encodingGravatar wm42014-12-27
| | | | | | I think the new default for this option might be rather bad in encoding mode. For starters, we don't even know what layers an encoder supports at all.
* player: fix random crashes on uninitializationGravatar wm42014-12-27
| | | | | | | | | | | On uninitialization, the player will unselect all subtitles, and then destroy the subtitle decoder. But it didn't correctly remove the subtitle decoder from the OSD state, so it could happen that it would access it after the decoder was destroyed. Could lead to random crashes when switching files often. Fixes #1389.
* player: cosmetics: rename a functionGravatar wm42014-12-27
| | | | | Something which has this many important sideffects shouldn't start have a "get" prefix.
* ao_coreaudio: fix channel mappingGravatar Stefano Pigozzi2014-12-27
| | | | | | | | | | | | | | | There where 3 major errors in the previous code: 1) The kAudioDevicePropertyPreferredChannelLayout selector returns a single layout not an array. 2) The check for AudioChannelLayout allocation size was wrong (didn't account for variable sized struct). 3) Didn't query the kAudioDevicePropertyPreferredChannelsForStereo selector since I didn't know about it's existence. All of these are fixed. Might help with #1367
* ao_coreaudio: fix typoGravatar Stefano Pigozzi2014-12-27
|
* ao_coreaudio: move some code to make output readableGravatar Stefano Pigozzi2014-12-27
|
* ao_coreaudio: add more layout debug outputsGravatar Stefano Pigozzi2014-12-27
| | | Should help remote debugging #1367 with --msg-level=ao=debug
* player: ordered chapters: cosmeticsGravatar wm42014-12-26
| | | | | | Drop some meaningless comments, fix codingstyle, fix some formatting victims of the mp_msg refactoring, replace some memcpys with assignments.
* player: ordered chapters: bullshit reductionGravatar wm42014-12-26
| | | | | Nobody cares about these redundant messages, they make the code even more complicated than it has to be, and also they're annoying.
* player: ordered chapters: filter missing chaptersGravatar wm42014-12-26
| | | | | | | | | | | | Ever since someone (not me) added some Matroska features which nobody ever uses (ordered edition or some bullshit), I haven't had a fucking clue what the fuck is going on in this fucking file. (Still agreed to it, so it's my fault.) mplayer2 handled missing chapters correctly (and I suppose in a somewhat clean/simple manner), but the changed code doesn't. Since I can't even follow this code because it's so arcanely complicated, just add a hack that has the same effect.
* command: overlay_add: more flexible treatment of offset parameterGravatar wm42014-12-26
| | | | | | | | | | | | | | Essentially, don't make it the mmap() argument, and just add it to the memory address. This hides tricky things like alignment reequirements from the user. Strictly speaking, this is not entirely backwards compatible: this adds the regression that you can't access past 2 or 4 GB of a file on 32 bit systems anymore. But I doubt anyone cared about this. In theory, we could be clever, and just align the offset manually and pass that to mmap(). This would also be transparent to the user, but minimally more effort, so this is left as exercise to the reader.
* win32: add mmap() emulationGravatar wm42014-12-26
| | | | | | | | Makes all of overlay_add work on windows/mingw. Since we now don't explicitly check for mmap() anymore (it's always present), this also requires us to make af_export.c compile, but I haven't tested it.
* ao_coreaudio: fix AudioChannelLayout allocationsGravatar Stefano Pigozzi2014-12-26
| | | | | | | | AudioChannelLayout uses a trailing variable sized array so we need to query CoreAudio for the size of the struct it is going to need (or the conversion of that particular layout would fail). Fixes #1366
* stream_pvr: remove redundant log prefixesGravatar wm42014-12-26
|
* stream_pvr: increase timeout, slightly better error reportingGravatar wm42014-12-26
| | | | | | | An attempt to find out what's wrong with issue #1382. I don't even know why a timeout would be needed; for robustness with broken devices maybe?
* manpage: lua: fix a linkGravatar wm42014-12-26
|
* osxbundle: fix cascading config loadingGravatar Stefano Pigozzi2014-12-26
| | | | | | | | | | | | | | | | | mpv does 'cascading' configs by overriding options as the config become more important (bundle -> system level -> user level). Unfortunately mpv also loads two sets of configs files one after the other [1]. First it looks for 'config', then for 'mpv.conf'. For this reason a mpv.conf in ANY location will override ANY config files named config (even if the mpv.conf is in a system path and config in a user path). [1]: Relevant code in player/configfiles.c load_all_cfgfiles(mpctx, section, "config"); load_all_cfgfiles(mpctx, section, "mpv.conf"); Fixes: #1361
* manpage: fix typoGravatar wm42014-12-25
| | | | Fixes #1384.
* manpage: lua: fixes and improvementsGravatar wm42014-12-25
| | | | Some things were outdated, or outright wrong.
* vo_opengl: don't use 10 bit video on Intel GPUsGravatar wm42014-12-24
| | | | | | | | | | | | vo_opengl was originally written against OpenGL 3 core, and it seems GPUs/drivers supporting this are mostly sane. Later, it was made to work with OpenGL 2.1 too. Lately we removed the requirement for RG textures, and look, someone reported a problem with "lesser" Intel GPUs. This commit does the same in vo_opengl what was added to vo_opengl_old a long time ago. Fixes #1383.
* player: hack against --keep-open misbehaving with broken filesGravatar wm42014-12-24
| | | | | | | | | | | | | | | | If a file (or a demuxer) is broken, seeking close to the end of the file doesn't work, and seek_to_last_frame() will be called over and over again, burning CPU for no reason. Observed with incomplete mp4 files. That this can happen was already mentioned in commit 090f6cfc, but I guess now I'll do something against it. hrseek_lastframe is cleared by reset_playback_state(), so it's only set if seek_to_last_frame() was called, and no other seek happened since then. If finding the last frame succeeds, no EOF will happen (unless the user unpauses, but then it will simply remain at the last frame). If it fails, then it will return immediately, without retrying.
* player: fix a typo in message outputGravatar wm42014-12-24
| | | | This typo has been around for over a year. Oops.
* stream: always disable cache for pseudo-streamsGravatar wm42014-12-24
| | | | | Streams which don't have a full_buffer function never return any actual data. Slight improvement over commit 5640c195.
* ipc: add enable_event and disable_event commandsGravatar wm42014-12-24
| | | | This was requested.
* client API: document requirement to block SIGPIPEGravatar wm42014-12-24
| | | | | | | | | I noticed that the IPC code does not use MSG_NOSIGNAL or SO_NOSIGPIPE. The former is "only" POSIX 2008 and also requires switching to sendto(), while the latter is even less portable. Not going to bother with this obsolete 80ies crap, just block SIGPIPE, and instruct client API users to do the same.
* ipc: report some user errors betterGravatar wm42014-12-24
| | | | | | | | | | | | | | | Using the IPC with a program, it's not often obvious that a newline must be sent to terminate a command. Print a warning if the connection is closed while there is still uninterpreted data in the buffer. Print the OS reported error if reading/writing the socket fails. Print an erro if JSON parsing fails. I considered silencing write errors if the write end is closed (EPIPE), because a client might send a bunch of commands, and then close the socket without wanting to read the reply. But then, mpv disconnects without reading further commands that might still be buffered, so it's probably a good idea to always print the error.
* stream_edl: disable cachingGravatar wm42014-12-23
| | | | | | | | | | | stream_edl merely makes demux_edl act "special", which checks for the stream type explicitly and then does something with its URL. If a cache is added before the stream, it'll try to use the cache's URL (i.e. an empty string), and will then obviously fail to parse the URL. While this is slightly stupid, just disabling the entirely useless cache is the most effective solution. Fixes #1378.
* vo_opengl_cb: use VAOs even in OpenGL 2.1Gravatar wm42014-12-23
| | | | | | | | Using them reduces state change, since now at least vo_opengl_cb has to setup/break the vertex array bindings on every frame if no VAOs are available. This reverts the VAO related change in commit f64665e7.
* vo_opengl_cb: always setup/break vertex array bindingsGravatar wm42014-12-23
| | | | | | | | | | | Originally, this code was written to have full control over the OpenGL state, rather than having to cooperate with unknown components by being embeded like vo_opengl_cb is meant to be. As a consequence, it was thought to be ok to setup a global binding (if the context is below OpenGL 3.0, which guarantees VAOs). This could break badly. Fix it by setting up and breaking the bindings on entry/exit.
* ao_alsa: fix unpause path atfer previous commitGravatar wm42014-12-23
| | | | The resume code was accidentally fully removed from this code path.
* ao_alsa: fix resuming from suspend modeGravatar wm42014-12-23
| | | | | | | | | | | snd_pcm_prepare() was not always called, which could result in an infinite loop. Whether snd_pcm_prepare() was actually called depended on whether the device was a hw device (or other characteristics; depending on snd_pcm_hw_params_can_pause()), and required real suspend (annoying for testing), so it was somewhat tricky to reproduce without knowing these things.
* vo_opengl: fix build on OSXGravatar wm42014-12-23
| | | | Missing modern OpenGL symbols again.
* demux_mkv: use attachment filename as coverart titleGravatar wm42014-12-23
|
* vo_opengl: don't allow setting 3D LUT if unsupportedGravatar wm42014-12-23
| | | | | The code was always uploading the 3D LUT (even of unused), as long as vo_opengl was setting a icc-profile. This could crash with GLES 2.
* vo_opengl: make use of newer OpenGL logging APIGravatar wm42014-12-23
| | | | | | GL_ARB_debug_output provides a logging callback, which can be used to diagnose problems etc. in case the driver supports it. It's enabled only if the vo_opengl "debug" suboption is set.
* demux_mf: add probing by mime typeGravatar wm42014-12-22
| | | | Reuses the mime type table introduced in the previous commit.
* demux_mkv: support embedded coverartGravatar wm42014-12-22
| | | | | | | | | | | The code could as well be in demux.c, but it's better to avoid accidental clashes with demux_lavf.c. FFmpeg provides no way yet to map a mime type to a codec, so do it manually. (It _can_ map a mime type to an "input format", but not a codec.) Fixes #1374.