summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* input: discard precise scrolling commands with no valueStefano Pigozzi2013-12-011-0/+2
| | | | | | | | | | | Apparently Cocoa precise scrolling generates a lot of spurious events with a delta that is equal to 0.0. Make sure that they are discarded and not added to the input queue. Even though this only known to happen with Cocoa, I implemented this at core level since it makes sense in general. Fixes: #310
* vd_lavc: when falling back to software, revert filter error statuswm42013-12-011-0/+2
| | | | | | | | | | | | | | | | | | | | | | When mpv is started with some video filters set (--vf is used), and hardware decoding is requested, and hardware decoding would be possible, but is prevented due to video filters that accept software formats only, the fallback didn't work properly sometimes. This fallback works rather violently: it tries to initialize the filter chain, and if it fails it throws away the frame decoded using the hardware, and retries with software. The case that didn't work was when decoding the current packet didn't immediately lead to a new frame. Then the filter chain wouldn't be reinitialized, and the playloop would stop playback as soon as it encounters the error flag. Fix this by resetting the filter error flag (back to "uninitialized"), which is a rather violent, but somewhat working solution. The fallback in general should perhaps be cleaned up later. Conflicts: video/decode/vd_lavc.c
* audio: respect --end/--length with spdif passthroughwm42013-12-011-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | In theory, we can't really do this, because we don't know when a spdif frame ends. Spdif transports compressed audio through audio setups that were originally designed for PCM only (which includes the audio filter chain, the AO API, most audio output APIs, etc.), and to reach this goal, spdif pretends to be PCM. Compressed data frames are padded with zeros, until a certain data rate is reached, which corresponds to a pseudo-PCM format with 2 bytes per sample and 2 channels at 48000 Hz. Of course an actual spdif frame is significantly larger than a frame of the PCM format it pretends to be, so cutting audio data on frame boundaries (as according to the pseudo-PCM format) merely yields an incomplete and broken frame, not audio that plays for the desired duration. However, sending an incomplete frame might still be much better than the current behavior, which simply ignores --end/--length (but still lets the video end at the exact end time). Should this result in trouble with real spdif receivers, this commit probably has to be reverted. Conflicts: mpvcore/player/audio.c
* ao_rsound: fix option typeswm42013-12-011-2/+2
| | | | | | These are option values, and the option code expects char*. Not actually tested.
* manpage: document , mapping (frame_back_step)enkore2013-12-011-0/+4
| | | | See #356
* input.conf: fix typowm42013-12-011-1/+1
|
* Fixing list of vo's that vavpp works with, in man page.Josh Driver2013-12-011-4/+4
|
* stream_lavf: fix a small memory leakwm42013-12-011-1/+5
| | | | Also add an explanation why this special code path for rtsp is needed.
* ta: fix typo in commentwm42013-12-011-1/+1
|
* osdep/io.c: include config.hwm42013-12-011-0/+2
| | | | | This possibly enables code that has never been tested before (accidentally), so let's hope this works out ok.
* manpage: fix typo in --video-align-y descriptionwm42013-12-011-1/+1
|
* player: deselect video track if initialization failswm42013-12-011-0/+1
| | | | | | | | | This didn't have any consequences, other than suddenly reinitializing video when it works again (such as with EDL timeline mixing video and audio-only files). Conflicts: mpvcore/player/video.c
* stream_dvb: remove bogus free callswm42013-12-011-5/+0
| | | | | | The priv struct is now allocated by talloc in stream.c. It doesn't need to be manually freed, and using free() instead of talloc_free() probably crashes.
* vo_vdpau: don't calculate destination alpha when drawing OSDwm42013-12-011-2/+2
| | | | | | Same as MPlayer svn commit r36515 "Chose cheaper alpha blend equation." No idea if this is actually faster, but can't hurt.
* player: don't remove playback status when reinitializing DVBwm42013-12-011-1/+3
| | | | | | | Also break that line a bit. Conflicts: mpvcore/player/loadfile.c
* encode_lavc: add missing newline in error messagewm42013-12-011-1/+1
|
* manpage: mark DTS-HD passthough as brokenwm42013-12-011-0/+2
|
* osx bundle: remove embedded fonts.confStefano Pigozzi2013-12-011-120/+0
| | | | | | This could cause the bundle to recache stuff because of differences with configuration of other software using fonconfig. The defaults OS X directories should be added to fontconfig at build time (through configure).
* gl_common: print SW renderer warning only if it was the only reason we ↵wm42013-12-011-1/+1
| | | | rejected it
* configure: enable v4l2 input on freebsdbugmen0t2013-12-011-2/+4
|
* tvi_v4l2: let libv4l2 convert to a known pixel formatbugmen0t2013-12-012-47/+77
| | | | | | | | | | | Signed-off-by: wm4 <wm4@nowhere> Significant modifications over the original patch by not overriding syscalls with macros ("#define open v4l2open") for fallback, but the other way around ("#define v4l2open open"). As consequence, the calls have to be replaced throughout the file. Untested, although the original patch probably was tested.
* stream: don't include linux/types.h in some fileswm42013-12-013-4/+0
| | | | | | | | | Apparently this is not portable to FreeBSD. It turns out that we (probably) don't use any symbols defined by this header directly, so the includes are not needed. Conflicts: stream/stream_radio.c
* m_option: handle audio/filter filters with old option parsingwm42013-12-011-3/+9
| | | | | | | | | These use the _oldargs_ hack, which failed in combination with playback resume. Make it work. It would be better to port all filters to new option parsing, but that's obviously too much work, and most filters will probably be deleted and replaced by libavfilter in the long run.
* wayland: create xkbcommon keymap from stringAlexander Preisinger2013-12-011-2/+1
| | | | Fixes a problem where the passed size doesn't match the actuall string.
* ao_jack: refactoring, also fix "no-connect" optionWilliam Light2013-12-011-57/+97
|
* demux_mkv: add support for HEVCwm42013-12-013-0/+4
| | | | | | | | Note that you still need --vd-lavc-o='strict=-2' to enable the decoder. Also, there's no guarantee that all required features for HEVC demuxing are actually implemented, nor that the current muxing schema is the final one.
* vo_lavc: fix -ovoffset.Rudolf Polzer2013-12-011-1/+3
| | | | Previously, using it led to no single frame being output, ever.
* vo_opengl: fix alpha values written to the framebufferwm42013-12-013-5/+16
| | | | | | | | | | | | | | | | | | | | | | | When blending OSD and subtitles onto the video, we write bogus alpha values. This doesn't normally matter, because these values are normally unused and discarded. But at least on Wayland, the alpha values are used by the compositor and leads to transparent windows even with opaque video on places where the OSD happens to use transparency. (Also see github issue #338.) Until now, the alpha basically contained garbage. The source factor GL_SRC_ALPHA meant that alpha was multiplied with itself. Use GL_ONE instead (which is why we have to use glBlendFuncSeparate()). This should give correct results, even with video that has alpha. (Or at least it's something close to correct, I haven't thought too hard how the compositor will blend it, and in fact I couldn't manage to test it.) If glBlendFuncSeparate() is not available, fall back to glBlendFunc(), which does the same as the code did before this commit. Technically, we support GL 1.1, but glBlendFuncSeparate is 1.4, and I guess we should try not to crash if vo_opengl_old runs on a system with GL 1.1 drivers only.
* Release 0.2.3v0.2.3wm42013-11-081-1/+1
|
* audio: fix bogus audio format comparisonwm42013-11-071-1/+1
|
* osdep: handle SIGTERMwm42013-11-071-0/+2
| | | | | | There's no reason why we should e.g. handle SIGQUIT, but not SIGTERM. Note that sending SIGTERM twice still kills the player.
* input.conf: clarify the magic how default key bindings are addedwm42013-11-071-3/+7
| | | | This is a confusing mechanism, so the explanation should bit more clear.
* manpage: fix incorrect default for --oscwm42013-11-071-1/+1
|
* stream_lavf: support more libavformat protocolswm42013-11-071-1/+3
|
* vo_opengl: reserve 4 texture units for video instead of 3wm42013-11-071-5/+5
| | | | | | | | | | Video has up to 4 textures, if you include obscure formats with alpha. This means alpha formats could always overwrite the first scaler texture, leading to corrupted video display. This problem was recently brought to light, when commit 571e697 started to explicitly unbind all 4 video textures, which broke rendering for non-alpha formats as well. Fix this by reserving the correct number of texture units.
* tools: add --no-cache --no-config to mpv_identify.shChrisK22013-11-071-1/+1
|
* player: fix quvi 0.9 playlist loadingwm42013-11-071-2/+3
| | | | | | | The code made no sense at all. Conflicts: mpvcore/player/loadfile.c
* stream: reconnecting doesn't make sense if stream is not seekablewm42013-11-071-0/+2
| | | | | | | This stops mpv from being stuck in reconnecting at the end of the file with some unseekable streams. Test URL: http://playerservices.streamtheworld.com/pls/CBC_R1_VCR_H.pls
* Release 0.2.2v0.2.2wm42013-11-021-1/+1
|
* ta: re-add MinGW cargo cultingwm42013-11-021-0/+6
| | | | | | | | Not really cargo cult, but an unexplainable, needless difference that just exists to annoy us. Fixes that gcc on MinGW treats format specifiers in MSVC mode. Just why? Why?
* sd_lavc: display DVD subs with unknown durationwm42013-11-021-0/+6
| | | | | | | | | | | | | | | | | | DVD subs (rarely) have subtitle events without end timestamp. The duration is unknown, and they should be displayed until they're replaced by the next event. FFmpeg fails hard to make us aware whether duration is unknown or actually 0, so we can't distinguish between these two cases. It fails at this twice: AVPacket.duration is set to 0 if duration is unknown, and AVSubtitle.end_display_time has the same issue. Add a hack that considers all bitmap subtitles with duration==0 as events with uknown length. I'd rather accidentally display a hidden subtitle (if they exist at all), instead of not displaying random subtitles at all. See github issue #325.
* ao_pulse: fix channel layoutswm42013-11-021-1/+4
| | | | | | | | The code was selecting PA_CHANNEL_POSITION_MONO for MP_SPEAKER_ID_FC, which is correct only with the "mono" channel layout, but not anything else. Remove the mono entry, and handle mono separately. See github issue #326.
* vd_lavc: add more ifdeffery and ffmpeg cargo culting for correctnesswm42013-11-021-7/+13
| | | | | | | | | | | | | We mixed the "old" AVFrame management functions (avcodec_alloc_frame, avcodec_free_frame) with reference counting. This doesn't work correctly; you must use av_frame_alloc and av_frame_free. Of course ffmpeg doesn't warn us about the bad usage, but will just mess up things silently. (Thanks a lot...) While the alloc function seems to be 100% compatible, the free function will do bad things, such as freeing memory that might still be referenced by another frame. I didn't experience any actual bugs, but maybe that was pure luck.
* encoding-example-configs: add more comments regarding the scaling methodRudolf Polzer2013-11-021-2/+16
|
* gl_common: osx: fix compilation with latest XQuartz RCStefano Pigozzi2013-11-021-1/+1
| | | | Looks the gl.h header in XQuartz is incompatible with the one in OS X 10.9.
* x11: restore support for --wid=0wm42013-11-021-2/+4
| | | | | | | | | | This stopped working when the code was changed to create a window even if --wid is used. It appears we can't create our own window in this case, because in X11 there is no difference between a window with the root window as parent, and a window that is managed by the WM. So make this (kind of worthless) special case use the root window itself.
* Fix style of the HP Slate 7 vf-add line.Rudolf Polzer2013-11-021-1/+1
|
* encoding-example-profiles: support HP Slate 7's weird aspect.Rudolf Polzer2013-11-021-5/+37
| | | | Also, replace broken noup= by lavfi expressions.
* gl_x11: change error message when GL3 context creation failswm42013-11-021-1/+1
| | | | | | | | | | | | | | On systems that provide legacy OpenGL (up to 2.1), but not GL3 and later, creating a GL3 context will fail. We then revert to legacy GL. Apparently the error message printed when the GL3 context creation fails is confusing. We could just silence it, but there's still a X error ("X11 error: GLXBadFBConfig"), which would be quite hard to filter out. For one, it would require messing with the X11 error handler, which doesn't even carry a context pointer (for application private data), so we don't even want to touch it. Instead, change the error message to inform the user what's actually happening: a fallback to an older version of OpenGL.
* getch2: assume EOF when input file descriptor is invalidwm42013-11-021-2/+5
| | | | | | | | | | | | | | | | When starting mpv with nohup, file descriptor 0 seems to be invalid for some reason. (I'm not quite sure why it should be... /proc/pid/fd/0 seems to indicate it's just /dev/null, and using /dev/null explicitly shows that it works just fine.) select() will always immediately return, and this causes mpv to burn CPU without reason. Fix this by treating it as EOF when read() returns EBADF. Also add EINVAL to this condition, because it seems like a good idea. Conflicts: osdep/getch2.c
* cocoa: apply the more invasive constraining only with cmd+1/2/3Stefano Pigozzi2013-11-021-2/+10
| | | | | Regression from bc49957 Fixes #321
* x11: fix border togglingwm42013-11-022-2/+5
| | | | | | | | | | | | | Trying to toggle the border during fullscreen (with "cycle border") would leave the window stuck without border, and it couldn't be restored. This was because vo_x11_decoration() always excepted to be called when toggling the state, and thus confusing the contents of the olddecor variable. Add got_motif_hints to hopefully prevent this. Also, when changing the border, don't take fs in account. May break on older/broken WMs, but all in all is in fact more robust and simpler, because you do not need to update the border state manually when returning from fullscreen.
* vo_xv: check whether image allocation succeedswm42013-11-021-6/+24
|
* gl_common: suggest --vo=opengl-old if OpenGL 2.1 missingwm42013-11-021-1/+6
| | | | | | | If the caller requests at least OpenGL 2.1 (which --vo=opengl does), but we get OpenGL 1.x, suggest using opengl-old. Based on a patch by pfor on IRC.
* mpvcore: add a note about desync on track switchesBen Boeckel2013-11-021-0/+1
|
* osc: make sure the OSC actually fits into the videoChrisK22013-11-021-1/+7
|
* ao_alsa: don't include alloca.hwm42013-11-022-2/+0
| | | | | | | | It's true that ALSA uses alloca() in some of its API functions, but since this is hidden behind macros in the ALSA headers, we have no reason to include alloca.h ourselves. Might help with portability (FreeBSD).
* README: add a link to the wiki about the FFmpeg vs. Libav issuewm42013-11-021-0/+8
|
* manpage: clarify --heartbeat-interval operationwm42013-11-021-0/+5
|
* x11_common: reduce screensaver heartbeat from 30 to 10 secondswm42013-11-021-1/+1
| | | | | Apparently this fixes issues with Gnome, which has a smaller timeout. See github issue #315.
* cocoa: constraint the window position a little moreStefano Pigozzi2013-11-021-1/+6
| | | | | The intention of this is to not make the window go outside the screen when changing dimensions from 2x to .5x.
* mplayer: make --length relative to actual start of file, instead of 0wm42013-11-021-1/+2
| | | | | We always use the file's timestamps, so the start time can be easily something different from 0. Make the --length option respect this.
* wayland: fix fullscreen transparent border regionsAlexander Preisinger2013-11-022-22/+30
| | | | | | | The default behavior of weston changed some time ago to not fill the surface black for fullscreen windows. Now let mpv draw the whole screen in fullscreen mode.
* cocoa: fix opening quarantined files on 10.9 with the bundle [2]Stefano Pigozzi2013-11-021-2/+2
| | | | Fixup commit for bbc146927
* cocoa: fix opening quarantined files on 10.9 with the bundleStefano Pigozzi2013-11-021-2/+7
| | | | | | | It looks like on Mavericks the Finder is passing different arguments to mpv depending on whether the opened file is quarantined or not. Fixes #285
* cocoa: fix race condition with input context creationStefano Pigozzi2013-11-022-0/+14
| | | | | | | | | | This seems to be a problem only in OS X 10.9. I guess they improved the general speed of the Cocoa startup and suddenly mpv core takes more time than the Cocoa thread to initialize. Fixes #285 (hopefully!)
* gl_video: add RGB10_A2 FBO formatwm42013-11-022-2/+3
| | | | Maybe this can be the default in the future, but I'm not sure yet.
* ao_pcm: big endian AC3 in wav doesn't workwm42013-11-021-1/+0
| | | | | | | | At least not with ffmpeg. Honestly, I have no idea how little endian AC3 works at all, since ao_pcm doesn't do anything special about it, and treats it like s16le. Maybe it's broken and ffmpeg has special logic to detect it.
* mplayer: don't call libquvi for local fileswm42013-11-021-0/+2
| | | | | | | | | | | This is obviously not needed, and just creates potential for bad breakages (e.g. what happens if libquvi tries to open a normal filename as http URL?). Note that for simplicity, we still pass file:// URIs to quvi, and we don't exclude other protocol prefixes either. In general, we don't know what protocols quvi might support, so we don't try to second-guess it. (Even though in practice, it's probably only "http" and "https".)
* cocoa: set and clear gl context inside of sync sectionsStefano Pigozzi