aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* player: remove higher-level remains of DVD/BD menu supportGravatar wm42015-08-03
| | | | | | | | | | | | | | | Nobody wanted to restore this, so it gets the boot. If anyone still wants to volunteer to restore menu support, this would be welcome. (I might even try it myself if I feel masochistic and like wasting a lot of time for nothing.) But if it does get restored, it should be done differently. There were many stupid things about how it was done. For example, it somehow tried to pull mp_nav_events through all the layers (including needing to "buffer" them in the demuxer), which was needlessly complicated. It could be done simpler. This code was already inactive, so this commit actually changes nothing. Also keep in mind that normal DVD/BD playback still works.
* video: unbreak EOF with video-only files that have timestamp resetsGravatar wm42015-08-03
| | | | | | | Normally when there's a timestamp reset, we make audio resync to make sure audio and video line up (again). But in video-only mode, just setting audio to resyncing breaks EOF detection, because there's no code which would get audio_status out of this bogus state.
* vo: fix inverted conditionGravatar wm42015-08-03
| | | | | | | | When full_redraw is set, we always need to take the draw_image path. If it's not set, we can try VOCTRL_REDRAW_FRAME (and fallback to draw_image if that fails). Fixes #2184.
* audio: fix --end handling (again)Gravatar wm42015-08-03
| | | | | | | | | | Commit c5818046 fixed one case of audio EOF handling, and caused a new one. This time, the ao_buffer doesn't actually contain everyting that should be played - because if --end is used, only a part of it is played. Of course this is stupid, and it will be changed later. For now, this smaller change fixes the bug. Fixes #2189.
* charset_conv: fix switched parametersGravatar wm42015-08-02
| | | | Fixes #2186.
* image_writer: don't use jpeg baseline, and remove useless jpeg optionsGravatar wm42015-08-02
| | | | | | | | | The jpeg-optimize and jpeg-baseline options were undocumented, and they're also pretty useless. There's no reason to ever change them. Also, don't write jpeg baseline images. This just makes compression worse for the sake of rather questionable compatibility with ancient decoders.
* build: make charset detectors dependent on iconv and group themGravatar wm42015-08-02
|
* charset_conv: add uchardet supportGravatar wm42015-08-02
| | | | | | | | | | | | | | For now, it needs to be explicitly selected. ENCA is still the default. This assumes uchardet returns iconv names. This doesn't seem to be always the case, and the result are lots of iconv errors. So explicitly check for this situation, and print a warning if it occurs. It's entirely possible that uchardet support is actually useless, because names are not necessarily iconv-compatible (but uchardet doesn't seem to document whether it attempts to return iconv-compatible names if possible). Fixes #908.
* charset_conv: make it possible to return an allocated string as guessGravatar wm42015-08-01
| | | | | | | | | uchardet is written in C++, and thus doesn't appreciate the value of using static strings, and internally stores the guessed charset as allocated std::string. Add a minimal hack to deal with this. (I don't appreciate that the code is potentially harder to understand by returning either a static or allocated string, but I do appreciate for not having to litter the existing code with strdups.)
* audio: remove questionable speed change adjustmentGravatar wm42015-08-01
| | | | | | | | | time_frame is when the next video frame should be shown. It's normally overwritten by the video timing code. This also says something about "nosound mode" (--no-audio today), but at least these days we don't use it at all if video is disabled. Remove it; it likely has no function at all.
* video: move frame duration code to a separate functionGravatar wm42015-08-01
| | | | Minor preparation for something else.
* vo: correctly account for dropped framesGravatar wm42015-08-01
| | | | | | If the framedrop count happens to be incremented with vo_increment_drop_count() during rendering, these increments were counted twice, because these events also set in->dropped_frame.
* terminal: disable terminal foreground state pollingGravatar wm42015-08-01
| | | | | | | This was originally done for zsh; but zsh can manage the terminal state correctly when foregrounding/backgrounding applications if you enable it with "ttyctl -f". So I see no reason to wake up the mpv process once every second anymore.
* audio: remove af_dummyGravatar wm42015-08-01
| | | | Was used internally once; has no function anymore.
* old-configure: some adjustmentsGravatar wm42015-08-01
|
* vo_opengl: minor simplificationsGravatar wm42015-08-01
| | | | No functional changes.
* win32: revert wchar_t changesGravatar wm42015-08-01
| | | | | | | | | | | Revert "win32: more wchar_t -> WCHAR replacements" Revert "win32: replace wchar_t with WCHAR" Doing a "partial" port of this makes no sense anymore from my perspective. Revert the changes, as they're confusing without context, maintenance, and progress. These changes were a bit premature anyway, and might actually cause other issues (locale neutrality etc. as it was pointed out).
* win32: more wchar_t -> WCHAR replacementsGravatar wm42015-07-30
| | | | | | | | | | | | | This was essentially missing from commit 0b52ac8a. Since L"..." string literals have the type wchar_t[], we can't use them for UTF-16 strings. Use C11 u"..." string literals instead. These have the type char16_t[], but we simply assume char16_t is the same underlying type as WCHAR. In practice, they're both unsigned short. For this reason use -std=c11 on Windows. Since Windows is a "special" environment (we require either MinGW or Cygwin), we don't need to worry too much about compiler compatibility.
* vo_direct3d: create multithreaded IDirect3DDevice9Gravatar wm42015-07-30
| | | | | | | | | | | | | | | A user complains that it leads to the dxva driver failing, leading to messages like this: [ffmpeg/video] h264: Failed to execute: 0x8007000e [ffmpeg/video] h264: hardware accelerator failed to decode picture Reportedly, this happens only with vo_direct3d, not with vo_opengl. The only difference is that vo_direct3d attempts to share the D3D device with the decoder. Possibly the error is that the device in the VO is not created with D3DCREATE_MULTITHREADED. Change this. Probably fixes #2178.
* TOOLS: remove youtube-starttime.luaGravatar wm42015-07-29
| | | | Obsolete due to native youtube-dl start time support.
* ytdl: get start_timeGravatar Ricardo Constantino2015-07-29
|
* ytdl: print command in debug modeGravatar Ricardo Constantino2015-07-29
|
* demux_playlist: skip hidden directoriesGravatar wm42015-07-29
| | | | | | | | The user probably doesn't want these. Conveniently, this also skips the unwanted "." and ".." entries. (This code is triggered if the input stream is a directory - and it's in demux_playlist.c because it's convenient.)
* command: let track properties return option value in idle modeGravatar wm42015-07-29
| | | | | In idle mode (no file playing), the track properties such as vid/sid/aid should return the option setting, instead of the value "no".
* win32: replace wchar_t with WCHARGravatar wm42015-07-29
| | | | | | | | | | | | | WCHAR is more portable. While at least MinGW, Cygwin, and MSVC actually use 16 bit wchar_t, Midipix will have 32 bit wchar_t. In that context, using WCHAR instead is more portable. This affects only non-MinGW parts, so not all uses of wchar_t need to be changed. For example, terminal-win.c won't be used on Midipix at all. (Most of io.c won't either, so the search & replace here is more than necessary, but also not harmful.) (Midipix is not useable yet, so this is just preparation.)
* video: move up vo_frame setupGravatar wm42015-07-28
|
* vo_opengl: framebuffers work under GLES 2Gravatar wm42015-07-27
| | | | | They are not entirely full-featured in GLES 2, but they appear to provide all we need. Thus we can enable them.
* vo_opengl: slightly more informative message when disabling scalersGravatar wm42015-07-27
|
* win32: pthread: don't play dirty tricks for mutex initGravatar wm42015-07-27
| | | | | | | | | | | | | | | | | | | | We used double-checked locking on pthread_mutex_t.requires_init in order to lazily initialize static mutexes (since CRITICAL_SECTION has no native way to do this). This was kind of unclean: we relied on MSVC semantics for volatile (which apparently means all accesses are weakly atomic), which is not such a good idea since mpv can't even be compiled with MSVC. Since it's too much of a pain to get weak atomics, just use INIT_ONCE for initializing the CRITICAL_SECTION. Microsoft most likely implemented this in an extremely efficient way. Essentially, it provides a mechanism for correct double-checked locking without having to deal with the tricky details. We still use an extra flag to avoid calling it at all for normal locks. (To get weak atomics, we could have used stdatomic.h, which modern MinGW provides just fine. But I don't want this wrapper depend on MinGW specifics if possible.)
* win32: add portable config modeGravatar wm42015-07-27
| | | | | | | | | | | See manpage additions. The main reason for adding this is that we can't guess whether the user wants his config in his Windows profile or not. The user basically has to tell mpv what should be done, and the "portable_config" directory does this implicitly. Fixes #2042 (approximately).
* vo_rpi: determine and return display refresh rateGravatar wm42015-07-27
| | | | Reverse engineered from tvservice.c.
* audio: fix restoring volumeGravatar shdown2015-07-27
| | | | | Was broken by 68bbab0e42e141896545f1f6e9699bcad2d685f8, which changed the number of fields to scan, but not the expected return value.
* video: always decode at least 2 frames in advanceGravatar wm42015-07-26
| | | | | | | Remove the exception for decoding only 1 frame if VO framedrop is disabled. This was originally done to be able to test potential regressions when we enabled VO framedrop and decoding 2 frames by default. It's not needed anymore.
* Copyright: mention that more liberal licenses are ok tooGravatar wm42015-07-26
| | | | In fact, some source files do this.
* vo_opengl: minor cleanup to hwdec texture setting codeGravatar wm42015-07-26
| | | | | | Instead of special-casing hwdec in the place where the video textures are used, just set the textures in the image upload function. The renderer code doesn't need to know whether hwdec interop is used at all.
* build: remove useless classGravatar Stefano Pigozzi2015-07-26
|
* manpage: document --audio-channels=auto caveatsGravatar wm42015-07-25
| | | | | | | This is an unfortunate fact of life. Maybe making this the default wasn't such a good idea after all. Also update etc/example.conf. It used an obsolete alias for "auto".
* Require contributions in LGPLv2.1+Gravatar wm42015-07-24
| | | | | | | | | | | As suggested in #2033. Additionally, change "LGPLv2+" to "LGPLv2.1+". Since this was always used with the "and later" phrase, this doesn't require any further discussion. Also clarify that the "+" means "or later". This should be clear to anyone with a brain, but you never know with copyright.
* vo_opengl: remove legacy GL detectionGravatar wm42015-07-24
| | | | | | | | | | This detected whether an OpenGL context still provided legacy OpenGL if the OpenGL version is modern (>= 3.0). This was actually only needed for vo_opengl_old, because it relied on legacy functions. Since it's gone, this code isn't needed either. (Also, the removed comment about OpenGL 3.0 was wrong: you could just query GL_CONTEXT_FLAGS and see if the forward compatible bit was set.)
* audio: remove an unused parameterGravatar wm42015-07-24
|
* audio: fix EOF state with --keep-openGravatar wm42015-07-24
| | | | | | | | | | In paused mode, we never entered the audio EOF state. This shows e.g. in --keep-open mode, which will not set the eof-reached property correctly. Regression since commit c06cd1b9. This commit was the wrong fix. We need to respect the buffer state, and pausing has nothing to do with this. Fixes #2167.
* command: add property indicating per-file optionsGravatar wm42015-07-23
| | | | Fixes #2165, more or less.
* vo_opengl: fix scale=oversample's threshold calculationsGravatar Niklas Haas2015-07-23
| | | | | This resulted in wrong behavior for values of scale-param1 between 0.0 and 0.5 (not inclusive).
* video: don't restrict --vd-lavc-threads to a maximum of 16Gravatar wm42015-07-23
| | | | | | Only do it when the number of threads is autodetected, as more than 16 threads are still considered not recommended. (libavcodec prints a warning.)
* manpage: fix typoGravatar wm42015-07-23
|
* Revert "vo_opengl: make the size of interpolation textures exact"Gravatar wm42015-07-22
| | | | | | | | | | This reverts commit fb8d15836695e883355c5ec6ff8463e7bbf39461. Reallocating the FBOs on every resize is very slow. It affects resizing the window, as well as changing the video size itself with e.g. panscan. Since the original change was done based on a single user complaint, but the change itself caused a lot of complaints, we decided to just revert it.
* cache: make backbuffer size configurableGravatar wm42015-07-22
| | | | | | | | | | Allow setting an arbitrary amount, instead of the fixed 50%. This is nto striclty backwards compatible. The defaults don't change, but the --cache/--cache-default options now set the readahead portion. So in practice, users who configured this until now will see the double amount of cache being used, _plus_ the 75MB default backbuffer will be in use.
* cache: fix backbuffer logicGravatar wm42015-07-22
| | | | | | Currently, this is perfectly equivalent, because back_size is hardcoded to buffer_size/2. But this fixes the logic for the case the back_size can be configured freely.
* TOOLS: unbreak osxbundle.pyGravatar ChrisK22015-07-21
| | | | broekn by 739d345d6cf0ead2b25f03ca83123a081b506267
* video: always re-probe auto deint filter on filter reconfigGravatar wm42015-07-21
| | | | | | | | | If filters are disabled or reconfigured, attempt to remove and probe the deinterlace filter again. This fixes behavior if e.g. a software deint filter was automatically inserted, and then hardware decoding is enabled during playback. Without this commit, initializing hw decoding would fail because of the software filter; with this commit, it'll replace it with the hw deinterlacer instead.