summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ao_alsa: do not call snd_pcm_delay() when pausedwm42013-01-061-0/+8
| | | | | | | | | | | | | | | | | | | | | | This causes trouble when a hw device is used: pcm_hw.c:514:(snd_pcm_hw_delay) SNDRV_PCM_IOCTL_DELAY failed (-77): File descriptor in bad state when running mpv test.mkv --ao=alsa:device=iec958,alsa and pausing during playback. Historically, mplayer usually did not call snd_pcm_delay() (which is called by get_delay()) while paused, so this problem never showed up. But at least mpv has changes that cause get_delay() to be called when updating the status line (see commit 3f949cf). It's possible that calling snd_pcm_delay() is not always legal when the audio is paused, and at least fails with the error message mentioned above is the device is a hardware device. Change get_delay() to return the last delay before the audio was paused. The intention is to get a continuous playback status display, even when pausing or frame stepping, otherwise we could just return the audio buffer fill status in get_delay() or even just 0 when paused.
* cleanup: ass_mp.h: remove dummy declarationswm42013-01-061-15/+1
|
* sub: use correct fallback font for subtitleswm42013-01-061-1/+2
| | | | Accidentally still used the OSD font.
* ao_sdl: fix compilation with Libavwm42013-01-061-0/+1
| | | | | On Libav, <libavutil/fifo.h> doesn't recursively include common.h, but the code in ao_sdl.c uses some macros defined by this header.
* manpage: document the dangers of some subtitle optionswm42013-01-051-7/+20
| | | | | | | | | | | | | Setting some subtitle options may lead to incorrect rendering of complex ASS subtitle scripts, such as displaced signs or visual artifacts. The user should be made aware that this can happen. In theory, libass could make using some of these options relatively safe, but it doesn't. Note that there are potentially much more options that could in theory break subtitle rendering, but add a warning only to the most fragile ones.
* sub: add --sub-text-* options to unstyled text subtitles fontwm42013-01-056-33/+40
| | | | | | | Before this commit, the --osd-* options (like --osd-font-size etc.) configured both the OSD and subtitle font. Make them separate, and add --sub-text-* options (like --sub-text-size etc.). Now --osd-* affects the OSD font only, and --sub-text-* unstyled text subtitles only.
* manpage: sort --osd-* optionswm42013-01-041-36/+36
| | | | | | They were more or less grouped by usefulness, but since everything else in the manpage is sorted alphabetically, it's better to be consistent and sort these options as well.
* Update copyright yearwm42013-01-042-2/+2
|
* cocoa_common: add support for `--no-border`Stefano Pigozzi2012-12-311-0/+1
| | | | Draw a window with style NSBorderlessWindow when the user uses `--no-border`.
* vo_sdl: support -geometry properlyRudolf Polzer2012-12-311-2/+7
| | | | Now the x and y origin options (-geometry WxH+X+Y) are supported too.
* vo_sdl: some OSD optimizationsRudolf Polzer2012-12-281-23/+41
| | | | | | | | | | | | | | | | The premultiplied-alpha hack is changed: - The first stage now uses a colormod of black with an unmodified texture. This saves on applying the AND mask of 0xFF000000 to keep alpha only. - The second stage no longer uses an AND mask, but only an OR mask of 0xFF000000 to cancel out alpha. - The texture uploads are no longer done using SDL_LockTexture, SDL_ConvertPixels, SDL_UnlockTexture when the mpv pixel format matches the OSD's pixel format. Instead, SDL_UploadTexture is used, which saves a copy when using the "opengl" renderer.
* stream_lavf: warn if protocol not foundwm42012-12-281-1/+6
| | | | | | | | If ffmpeg returns AVERROR_PROTOCOL_NOT_FOUND, print a warning that ffmpeg should be compiled with network support. Note that stream_lavf.c itself includes a whitelist of directly supported ffmpeg protocols, so it can't happen that a completely unknown/madeup protocol triggers this message. (Unless the ffmpeg:// or lavf:// prefixes are used.)
* vf_scale: prefer 420P10 -> YV12 instead of 444Pwm42012-12-281-0/+1
| | | | | | Strictly speaking, 444P is higher quality than YV12, but doing this is not very useful when playing 10 bit video with -vo opengl-old on a GPU that doesn't support 16 bit textures.
* vo_opengl_old: reject 9-15 bit formats if textures have less than 16 bitwm42012-12-283-1/+22
| | | | | | | | | | | | | | | | | | | For 9-15 bit material, cutting off the lower bits leads to significant quality reduction, because these formats leave the most significant bits unused (e.g. 10 bit padded to 16 bit, transferred as 8 bit -> only 2 bits left). 16 bit formats still can be played like this, as cutting the lower bits merely reduces quality in this case. This problem was encountered with the following GPU/driver combination: OpenGL vendor string: Intel Open Source Technology Center OpenGL renderer string: Mesa DRI Intel(R) 915GM x86/MMX/SSE2 OpenGL version string: 1.4 Mesa 9.0.1 It appears 16 bit support is rather common on GPUs, so testing the actual texture depth wasn't needed until now. (There are some other Mesa GPU/driver combinations which support 16 bit only when using RG textures instead of LUMINANCE_ALPHA. This is due to OpenGL driver bugs.)
* gl_common: properly reject old OpenGL versionswm42012-12-281-11/+20
| | | | | | | | | | | | | | | | | | | The extension checking logic was broken, which reported OpenGL 3 if the OpenGL .so exported OpenGL 3-only symbols, even if the reported OpenGL version is below 3.0. Fix it and simplify the code a bit. Also never fail hard if required functions are not found. The caller should check the capability flags instead. Give up on the idea that we should print a warning if essential functions are not found (makes loading of ancient legacy-only extensions easier). This was experienced with the following version strings: OpenGL vendor string: Intel Open Source Technology Center OpenGL renderer string: Mesa DRI Intel(R) 915GM x86/MMX/SSE2 OpenGL version string: 1.4 Mesa 9.0.1 (Possibly reports a very old version because it has no GLSL support, and thus isn't even GL 2.0 compliant.)
* core: fix crash if VO init failswm42012-12-281-1/+1
|
* manpage: minor improvementswm42012-12-281-9/+14
|
* DOCS: document EDL formatwm42012-12-281-0/+139
| | | | | This is taken from the commit message of 968154ba77f8, with some fixes to make it valid RST.
* audio: make de-planarization fasterwm42012-12-283-16/+44
| | | | | | Uses the same trick as the planarization code to turn per-sample memcpy calls into mov instructions. Makes decoding a ~25min 48000Hz 2ch floatle audio file faster from 3.8s to 2.7s.
* vo_opengl: use more precise gamma for BT.709 with color managementnand2012-12-283-7/+7
| | | | | | | | | | Change from gamma 2.2 to the slightly more precise 1/0.45 as per BT.709. https://www.itu.int/rec/R-REC-BT.709-5-200204-I/en mentions a value of γ=0.45 for the conceptual non-linear precorrection of video signals. This is approximately the inverse of 2.22, and not 2.20 as the code had been using until now.
* sdl, encode_lavc: fix copyright headersRudolf Polzer2012-12-286-14/+15
| | | | | | Some of them had changes in 2012; extend their header. Fix project name.
* encoding-example-profiles: fix "oac" typoRudolf Polzer2012-12-281-2/+2
| | | | Fixes issue #10.
* vdpau: silence a clang warningRudolf Polzer2012-12-281-1/+2
| | | | It's just some braces...
* demux_mpg, ass_mp: fix warningsRudolf Polzer2012-12-282-2/+6
| | | | | | | | The warnings in demux_mpg were silenced by additional no-operation casts. A variable in ass_mp was used only for some versions of libass; now the declaration is in that version #ifdef too to avoid a compiler warning.
* vo/ao: SDL 1.2+ audio driver, SDL 2.0+ accelerated video driverRudolf Polzer2012-12-288-0/+1458
| | | | | | | | | | | This mainly serves as a fallback for platforms where nothing better is available; also as a debugging help. Both the audio and video driver are not first class - the audio driver lacks delay detection, and the video driver only supports a single YUV color space. Configure options: --disable-sdl2 to disable SDL 2.0+ detection, --disable-sdl to disable SDL 1.2+ detection. Both options need to be specified to turn off SDL support entirely.
* vf_scale: support more pixel formatsRudolf Polzer2012-12-281-0/+4
| | | | | The RGBA, ARGB, BGRA, ABGR were previously not always supported, depending on system endianness.
* sub: add ASS to RGBA conversionwm42012-12-284-2/+83
| | | | | This makes implementing new VOs easier, because they don't have to support the ASS format.
* stream_dvd: fix angle mathRudolf Polzer2012-12-221-8/+7
| | | | | Stop changing the dvd_angle variable while opening a DVD. Fixes issues with multiple dvd:// URLs on one command line.
* configure: clean up use of extra_ldflags and libs_mplayerRudolf Polzer2012-12-191-16/+17
| | | | | | | | | | | Now, extra_ldflags ought to only consider LDFLAGS, and all libraries shall go into libs_mplayer. In the end, the command line first contains extra_ldflags, and then libs_mplayer. So altogether this change has the effect that libraries get added to the linker command line in the order the configure script checks them. Previously there was some reordering due to some checks adding libraries to libs_mplayer and some to extra_ldflags.
* core: make WAKEUP_PERIOD overridable by the voRudolf Polzer2012-12-193-12/+30
| | | | | | | | | | | | This is better than having just the operating system type decide the wakeup period, as e.g. when compiling for Win32/cygwin, a wakeup period of 0.5 would work perfectly fine. Instead, the default wakeup period is now only decided by availability of a working select() system call (which is the case on cygwin but not mingw and MSVC) AND a vo that can provide an event file descriptor or a similar hack (vo_corevideo). vos that cannot do either need polling for event handling and now can set the wakeup period to 0.02 in the vo code.
* osxbundle: print meaningful error when a dylib is missingStefano Pigozzi2012-12-161-1/+7
| | | | | | If one of the bundled libraries is pointing to a missing dylib stop the bundling and exit with an error. This can happen if the user uninstalled a dependency after he built the binary/libraries.
* osxbundle: add fonts.conf to distributed bundleStefano Pigozzi2012-12-151-0/+9
| | | | | | | | | | | | | | | The osxbundle target creates a bundle that is supposed to be distributable to third parties. As they may not have fontconfig installed they miss a fonts.conf pointing to the usual fonts directories in OSX. For people installing from source and using from the terminal this commit changes nothing. You just have to make sure that your fontconfig is installed with a sane configuration (XQuartz does). If you are installing fontconfig from source you can force a sane OSX default using `--with-add-fonts`. For example: `./configure --with-add-fonts=/Library/Fonts,~/Library/Fonts` Homebrew already addressed this with mxcl/homebrew@b242883
* path: add mp_find_config_file and reorganize some of the codeStefano Pigozzi2012-12-1513-137/+190
| | | | | | | | | | | | | | Add `mp_find_config_file` to search different known paths and use that in ass_mp to look for the fontconfig configuration file. Some incidental changes spawned by this feature where: * Buffer allocation for the strings containing the paths is now performed with talloc. All of the allocations are done on a NULL context, but it still improves readability of the code. * Move the OSX function for lookup inside of a bundle: this code path was currently not used by the bundle generated with `make osxbundle`. The plan is to use it again in a future commit to get a fontconfig config file.
* core: path: run uncrustifyStefano Pigozzi2012-12-151-80/+86
| | | | | | | | | | Even if this is not so bad as other files, I need to add some stuff so... why not!? `uncrustify -l C -c TOOLS/uncrustify.cfg --no-backup --replace core/path.h` `uncrustify -l C -c TOOLS/uncrustify.cfg --no-backup --replace core/path.c` The header was unchanged by the tool.
* ass_mp: allow to use a custom fontconfig configuration fileStefano Pigozzi2012-12-151-9/+14
| | | | | | This allows to use a fontconfig fonts.conf that is customized for mpv. The configuration file is assumed to be located at `~/.mpv/fonts.conf`. If not found the default fcontconfig config file is used.
* video: silence warnings for missing libavutils pixel formatswm42012-12-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Using vf_screenshot on Libav printed useless/misleading error messages when playing 10 bit h264 with a VO that supports 8 bit yuv420p only: Unsupported format 444p14le Unsupported format 444p14be ... The cause of this is that vf_scale is inserted to handle the format conversion, and tries to find a pixel format with best quality. This includes the 14 bit and 12 bit formats, which don't exist on Libav. vf_screenshot tries to query whether Libav's libswscale supports it, resulting in these error messages. (In theory, vf_scale is missing this check, but it doesn't matter in practice.) Since this warning is rather useless anyway, because all input video comes from libavcodec, and only the conversion into the other could possibly fail. Silence the warning by raising it to verbose message level. Closes #7.
* sd_ass: free external subtitle trackswm42012-12-141-0/+6
|
* ao_lavc: stop using av_get_alt_sample_fmtRudolf Polzer2012-12-131-6/+6
| | | | Use av_get_planar_sample_fmt instead.
* Fix compilation with ffmpeg 1.0wm42012-12-132-6/+2
| | | | | AVPROBE_SCORE_RETRY was too new, and doesn't even exist in Libav. Go back to using the value explicitly.
* options: move -ass-bottom-margin/-ass-top-margin options to vf_subwm42012-12-126-23/+25
| | | | | These options might be useful sometimes, but they are not that important, and work with vf_sub only. Make them vf_sub sub-options.
* vf_sub: fix aspect ratio when using marginswm42012-12-121-3/+3
|
* cleanup: remove ao.brokenptswm42012-12-122-8/+0
| | | | This field was used by ao_v4l2, and is now unused.
* options: handle -v during pre-parsing command linewm42012-12-121-5/+2
| | | | | Otherwise -v is honored too late, and some output will be missing. In particular, this prevented printing of the libav* library versions.
* sd_lavc: keep subs on subtitle track switchingwm42012-12-122-2/+8
| | | | | | | | | | | | | Keep the currently displayed subtitles even when the user cycles through subtitle tracks, and the subtitle is decoded by libavcodec (such as vobsubs). Do this by not clearing the subtitles on reset(). reset() is also called on seek, so check the start PTS whether the subtitle should really be displayed (there's already an end PTS). Note that sd_ass does essentially something similar. The existing code has checks for whether the PTS reported by the demuxer is invalid (MP_NOPTS_VALUE). I don't know under what circumstances this can happens, so fall back to the old behavior if the PTS is invalid.
* Fix compilation with Libavwm42012-12-112-0/+12
| | | | | | | | | | Doesn't define AVPROBE_SCORE_RETRY for some reason. They use AVPROBE_SCORE_MAX/4 directly internally. AV_DISPOSITION_ATTACHED_PIC is not defined with the most recent Libav release. AVIOContext.av_class exists in Libav, but is apparently disabled in old releases. Disable it for now until people stop torturing me with old crap releases.
* manpage: mark HTTP related options as deprecated/brokenwm42012-12-112-1/+21
| | | | | | | | | | Commit c02f25 switched the "http://" protocol to use ffmpeg's HTTP implementation (stream_lavf.c), instead of the mplayer internal one (http.c). Unfortunately, it turns out that there are some network related options that are not respected by stream_lavf.c, and consequently do not work anymore for "http://" URLs. This might be fixed later. Mark them as deprecated for now, as it might take arbitrarily long until this is taken care of.
* mplayer: prefer audio PTS over video PTS for status linewm42012-12-111-3/+3
| | | | | | | | | | | | This slightly improves display of the current playback time in files with sparse video packets (like video tracks containing a slow MJPG slideshows as in [1]), or audio files with cover art image attachments. While the video PTS is always "stuck" at the last frame displayed or the last seek, audio is usually continuous. Given sane samplerates and working audio drivers (to query how much of the current audio buffer has been played), the audio PTS should always be more reliable. [1] http://www.podtrac.com/pts/redirect.mp3/traffic.libsyn.com/rtpodcast/Rooster_Teeth_Podcast_191.m4a
* demux: fix behavior with files that have sparse video packetsreimar2012-12-113-6/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve EOF handling in ds_fill_buffer for the case where one stream ends much earlier than the others, in particular make sure the "too many ..." message is not printed over and over. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32823 b3059339-0415-0410-9bf9-f77b7e298cf2 Conflicts: libmpdemux/demuxer.c Try to improve seeking in files with only few video packets, in particular files with cover art. This might cause issues with badly interleaved files, particularly together with -audio-delay, even though I did not see issues in my very limited testing. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35486 b3059339-0415-0410-9bf9-f77b7e298cf2 Conflicts: libmpdemux/demuxer.c libmpdemux/demuxer.h Fix code that detects streams temporarily lacking data to work properly with e.g. DVDs. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35499 b3059339-0415-0410-9bf9-f77b7e298cf2 Conflicts: libmpdemux/demuxer.c Make stream eof detection less sensitive. Fixes bug #2111. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35543 b3059339-0415-0410-9bf9-f77b7e298cf2 Conflicts: libmpdemux/demuxer.c
* core: allow disabling display of "album art" in audio fileswm42012-12-118-6/+32
| | | | | | | | | | | | | | | | | | ffmpeg pretends that image attachments (such as contained in ID3v2 metadata) are video streams. It injects the attached pictures as packets into the packet stream received with av_read_frame(). Add the --audio-display option to allow configuring whether attached pictures should be displayed. The default behavior doesn't change (images are displayed). Identify video streams, that are actually image attachments, with "[P]" in the terminal output. Modify the default stream selection such that real video streams are preferred over attached pictures. (This is just for robustness; I do not know of any samples where images are added before actual video streams and could lead to bad default stream selection with the old code.)
* audio: remove support for native alaw/mulaw/adpcm outputwm42012-12-1111-1232/+5
| | | | | | This is considered a worthless feature. Note that alaw/mulaw/adpcm input is unaffected: such data is handed to libavcodec and "decoded" to linear PCM.
* audio/decode: remove ad_dvdpcm and use ad_lavc for DVD PCMwm42012-12-115-166/+47
| | | | | | | | | | ad_dvdpcm reads MPEG specific headers directly (passed through codecdata by demux_mpg), so you couldn't use ffmpeg's "pcm_dvd" with demux_mpg. Change demux_mpg to set the correct audio parameters directly. The code for this is taken from ad_dvdpcm. ad_dvdpcm is evil because it still does partial packet reads (with demux_read_data()), and it's redundant to libavcodec anyway.
* audio/decode: remove ad_pcm and use ad_lavc for PCMwm42012-12-116-266/+122
| | | | | | | | | | | | | | | Since libavcodec doesn't have a "generic" PCM decoder, we have to go out of out way to make it look like ad_lavc provides one: make it provide a pseudo "pcm" decoder, which maps some format tags manually to the individual libavcodec PCM decoders. Format tags which uniquely map to one libavcodec could be mapped via codecs.conf. Since defining these in tag_map[] is much shorter (one line vs. a full codec entry in codecs.conf), and since we need tag_map[] anyway, we don't use codecs.conf for these. ad_pcm is evil because it still does partial packet reads (with demux_read_data()), and it's redundant to libavcodec anyway.
* windows support: fix compilation with pthreadswm42012-12-112-1/+5
| | | | | | | | | | | | | | | This caused errors like: core/mplayer.c:4308:5: error: implicit declaration of function 'pthread_win32_thread_detach_np' [-Werror=implicit-function-declaration] It turns out a pthread.h include was missing. It's not clear why this used to work (or rather, why it happens only sometimes). Possibly some libraries or system headers recursively include pthread.h under certain circumstances or configurations. Fix missing quoting in configure, which led to broken terminal output. Closes #6.
* mplayer: make --length work if --start is missingwm42012-12-111-1/+1
| | | | In this case, --start should default to 0 obviously.
* stream_lavf/demux_lavf: export/use HTTP MIME typewm42012-12-114-15/+34
| | | | | | | | | | | | | | | | | This is a fix for web radio streams that send raw AAC [1]. libavformat's AAC demuxer probe is picky enough to request hundreds of KBs data, which makes for a slow startup. To speed up stream startup, try use the HTTP MIME type to identify the format. The webstream in question sends an AAC specific MIME type, for which demux_lavf will force the AAC demuxer, without probing anything. ffmpeg/ffplay do the same thing. Note that as of ffmpeg commit 76d851b, av_probe_input_buffer() does the mapping from MIME type to demuxer. The actual mapping is not publicly accessible, and can only be used by calling that function. This will hopefully be rectified, and ideally ffmpeg would provide a function like find_demuxer_from_mime_type(). [1] http://lr2mp0.latvijasradio.lv:8000
* demux_lavf: make minimum probe score customizable, remove lavf_preferredwm42012-12-116-59/+43
| | | | | | | | | | | | | | | | | | | | | libavformat wants to read a full ~400KB of data to determine whether it's really AAC. This causes slow startup with AAC web radio streams [1] (possible due to a broken initial packet). There are similar issues with other file formats. Make the probe "score" (libavformat's mechanism for testing file formats) configurable with the -lavfdtops:probescore option. This allows lowering the amount of data read on probing. If the probe score is below the probescore option value, demux_lavf will try to get a higher score by feedi