aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* vo: log deviation from ideal vsync intervalGravatar wm42015-10-08
|
* demux_subreader: participate in probing only on LibavGravatar wm42015-10-08
| | | | | | FFmpeg supports all formats the old subreader code does, and is better at it. On the other hand, subreader.c's probing is bad and can lead to false positives easily.
* af_lavrresample: use libswsresample dynamic rate adjustment featureGravatar wm42015-10-07
| | | | | | | | | | swr_set_compensation() changes the apparent sample rate on the fly (who would have guessed). It is thus very well-suited for adjusting audio speed on the fly during playback (like needed by the display-sync mode). It skips the relatively slow resampler reinitialization. If this doesn't work (libswresample soxr backend), then fall back to the old method.
* vo_xv: fix crash with --widGravatar wm42015-10-07
| | | | | | Fixes #2386. Reminder that you should not use this crap-VO.
* audio: make spdif re-probe from normal decoding workGravatar wm42015-10-06
| | | | | | | | The previous commit handled not falling back to normal decoding if the AO was reloaded (I think...), and this tries to re-engage spdif pass- through if it was previously falling back to normal decoding (e.g. because it temporarily switched to an audio device incapable of passthrough).
* audio: re-probe spdif if AO is reloadedGravatar wm42015-10-06
| | | | Makes the spdif automagic work better on audio hotplugging.
* demux: don't attempt to open a demuxer after abort signal was givenGravatar wm42015-10-06
| | | | | demux_open() kept trying to fallback to other demuxers when opening was cancelled. This was not really a problem, but it was stupid.
* player: make stop command actually stopGravatar wm42015-10-06
| | | | | | | | | | | | | The stop command didn't always stop. In this case, opening a HLS URL and then sending "stop" during loading would actually make it fallback to parsing it as a playlist, and then continued to play the playlist items. (This corner case makes several unfortunate factors come together to produce this really odd behavior.) Another issue is that the "stop" was not always explicitly set. This could be a problem when sending several commands at once. Only the "quit" command should have priority over the "stop" command, so this is still checked.
* README: link to Copyright instead of LICENSE fileGravatar wm42015-10-06
| | | | | | | The Copyright file explains the whole license mess. The earlier change was apparently confusing, because the link reading "details" merely linked to the GPLv2 license instead of explaining anything. In fact, I meant to link to the Copyright file in the first place.
* video: fix base for --no-correct-ptsGravatar wm42015-10-06
| | | | | | | | | | Use the first encountered packet PTS/DTS as base, instead of the last one. This does not add the amount of frames buffered in the codec to the PTS offset, and thus is better. Also, don't add the frame time if there was no decoded frame yet. The first frame should obviously have the timestamp of the first packet (going by this heuristic).
* video: increase maximum number of buffered AVI pts samplesGravatar wm42015-10-06
| | | | | | | While b-frame reordering limits the maximum required number to around 16, the number of additionally buffered frames can be much higher. Guess when this actually matters? (For the libavcodec MMAL wrapper.)
* video: don't sort AVI pts samplesGravatar wm42015-10-06
| | | | | It's obviously not needed, and only an artifact of the old PTS determination code.
* video: remove user-controllable PTS sorting (--pts-association-mode)Gravatar wm42015-10-06
| | | | | | | | | Useless. Sometimes it might be useful to make some extremely broken files work, but on the other hand --no-correct-pts is sufficient for these cases. While we still need some of the code for AVI, the "auto" mode in particular inflated the size of the code.
* video: disable framedrop if avi-style timestamps are usedGravatar wm42015-10-06
| | | | | | | | | | | | This can't be handled correctly at all. Other cases when the decoder might drop a frame (such as completely failing to decode a frame) will shift timestamps by a frame, and it can't be avoided. While we could maybe find a better way to handle this with libavcodec's main decoders, this seems to be much harder if it should work with certain HW decoders, which don't passthrough the DTS field (such as MMAL). Another problem are .avi files with b-frames. So just leave it as it is.
* ytdl: Remove version check and minor cleanupGravatar ChrisK22015-10-06
| | | | Closes #2370
* ao_alsa: add debug messages for format searchGravatar Kevin Mitchell2015-10-06
|
* ao_alsa: fix failure to find any sampleformatGravatar Kevin Mitchell2015-10-06
| | | | | Set format to invalid after each failed test. This way the final check for valid format will actually fail if no formats work.
* README: clarify license statementGravatar wm42015-10-06
| | | | Fixes #2382.
* audio: add option for falling back to ao_nullGravatar wm42015-10-05
| | | | | | | | | The manpage entry explains this. (Maybe this option could be always enabled and removed. I don't quite remember what valid use-cases there are for just disabling audio entirely, other than that this is also needed for audio decoder init failure.)
* ao: rework audio output driver probingGravatar wm42015-10-05
| | | | | | | | | | | | | | | Make the code a bit more uniform. Always build a "dummy" audio output list before probing, which means that opening preferred devices and pure auto-probing is done with the same code. We can drop the second ao_init() call. This also makes the next commit easier, which wants to selectively fallback to ao_null. This could have been implemented by passing a different requested audio output list (instead of reading it from MPOptions), but I think it's better if this rather special feature is handled internally in the AO code. This also makes sure the AO code can handle its own options (such as the audio output list) in a self-contained way.
* manpage: edit recommended VO remarksGravatar wm42015-10-04
|
* player: add wav to list of external audio file extensionsGravatar wm42015-10-04
| | | | Fixes #2378.
* video: remove codec delay estimationGravatar wm42015-10-03
| | | | | | | | | | This was used only by the timestamp sorting code, which is a fallback for avi files (as well as avi-muxed mkv files). This was supposed to prevent accumulating timestamps in case the decoder consumes more packets than it outputs frames (i.e. frames are dropped). This didn't work very well (timestamps could be off by a large amount), the estimation of the delay was fragile, and the interdependencies with the decoder were annoying, so kill it.
* video: cosmetics: remove trailing whitespaceGravatar wm42015-10-03
|
* video/out: remove an unused parameterGravatar wm42015-10-03
| | | | | | | | | | | This parameter has been unused for years (the last flag was removed in commit d658b115). Get rid of it. This affects the general VO API, as well as the vo_opengl backend API, so it touches a lot of files. The VOFLAGs are still used to control OpenGL context creation, so move them to the OpenGL backend code.
* vo: change some defines to enumsGravatar wm42015-10-02
| | | | Why not.
* vo_opengl: drop old backend APIGravatar wm42015-10-02
|
* vo_opengl: rpi: switch to new internal APIGravatar wm42015-10-02
|
* win32: cleanup: remove some unneeded thingsGravatar wm42015-10-02
|
* vo_opengl: w32: switch to new internal APIGravatar wm42015-10-02
|
* vo_opengl: refactor DwmFlush crapGravatar wm42015-10-02
| | | | | Get it out of the way in the common code. MPGLContext.dwm_flush_opt can be removed as well as soon as the option system gets overhauled.
* vo_opengl: remove leftover variable from vaglx in vaeglGravatar Emmanuel Gil Peyrot2015-10-02
| | | | This was preventing compilation on systems without X11 headers.
* vo: fix compilation failure when vaapi is enabled and x11 disabledGravatar Emmanuel Gil Peyrot2015-10-02
| | | | | This was previously trying to use the video_output_vaapi symbol despite vo_vaapi.c being guarded by the vaapi-x11 option.
* vo_opengl: wayland: switch to new internal APIGravatar wm42015-10-01
|
* vo_opengl: cocoa: switch to new internal APIGravatar wm42015-10-01
|
* cue: read more metadataGravatar wm42015-10-01
| | | | | | | | | | | Make handling of metadata slightly more generic, and add reading of the "PERFORMER" fields. There are some more fields, but for now let's leave it at this. TRACK-specific PERFORMER fields have to be read from the per-chapter metadata (somewhat obscure). Fixes #2328.
* player: print tags under different log prefixGravatar wm42015-10-01
| | | | A minor, but apparently common feature request. Fixes #2360.
* vo_opengl: make sw suboption work without explicit backend selectionGravatar wm42015-10-01
| | | | | | | You needed to select a GL backend with the backend suboption. This was confusing. Fixes #2361.
* vo_opengl: debanding requires GLSL 1.30Gravatar wm42015-10-01
| | | | | | We have to disable it, or shader compilation will fail. Fixes #2362.
* x11: separate window creation and configurationGravatar wm42015-09-30
| | | | | | | | | | | | | | | | | | | This gets rid of an old hack, VOFLAG_HIDDEN. Although handling of it has been sane for a while, it used to cause much pain, and is still unintuitive and weird even today. The main reason for this hack is that OpenGL selects a X11 Visual for you, and you're supposed to use this Visual when creating the X window for the OpenGL context. Which means the X window can't be created early in the common X11 init code, but the OpenGL code needs to do something before that. API-wise you need separate functions for X11 init and X11 window creation. The VOFLAG_HIDDEN hack conflated window creation and the entrypoint for resizing on video resolution change into one function, vo_x11_config_vo_window(). This required all platform backends to handle this flag, even if they didn't need this mechanism. Wayland still uses this for minor reasons (alpha support?), so the wayland backend must be changed before the flag can be entirely removed.
* vo_opengl: cosmetics: coding styleGravatar wm42015-09-30
|
* vo_opengl: do not reset video queue when changing video equalizerGravatar wm42015-09-30
| | | | | | | If interpolation is enabled, then this causes heavy artifacts if done while unpaused. It's preferable to allow a latency of a few frames for the change to take full effect instead. If this is done paused, the frame is fully redrawn anyway.
* Revert "vo_x11: remove this video output"Gravatar wm42015-09-30
| | | | | | | | | | | | | | | This reverts commit d11184a256ed709a03fa94a4e3940eed1b76d76f. Unfortunately, there was a lot of unexpected resistance. Do note that this is still extremely slow, crappy, etc. Note that vo_x11.c was further edited. Compared to the removed vo_x11.c, an additional ~200 lines of code was removed in order to simplify it. I tried to strip it down as much as possible. In particular, support for odd non-32 bit formats (24, 16, 15, 8 bit) is dropped. Closes #2300.
* stream: minor cleanup to verbose loggingGravatar wm42015-09-30
| | | | | | Don't print the URL that is opened twice. stream.c and stream_lavf.c each printed it once. Remove the logging from stream_lavf.c, and move the log call to a more interesting point.
* ytdl: Don't override user-set format in no-video modeGravatar ChrisK22015-09-30
|
* manpage: adjustments to hwdec remarksGravatar wm42015-09-29
|
* video: replace vf_format outputlevels option with global optionGravatar wm42015-09-29
| | | | | | | | | | | The vf_format suboption is replaced with --video-output-levels (a global option and property). In particular, the parameter is removed from mp_image_params. The mechanism is moved to the "video equalizer", which also handles common video output customization like brightness and contrast controls. The new code is slightly cleaner, and the top-level option is slightly more user-friendly than as vf_format sub-option.
* Take care of libavcodec convergence_duration deprecationGravatar wm42015-09-29
| | | | | | This AVPacket field was a hack against the fact that the duration field was merely an int (too small for things like subtitle durations). Newer libavcodec drops this field and makes duration 64 bit.
* Revert "vd_lavc: do not abort hardware decoding on errors"Gravatar wm42015-09-28
| | | | | | | | | | This essentially reverts commit 009dfbe3. FFmpeg VideoToolbox support is being wacky, and can cause major issues, such as not being able to decode a single frame. (E.g. by playing a .ts file. This should be fixed in FFmpeg eventually.) This is not a straight revert of the commit; just a functional one. We keep the slightly simpler code structure.
* vo_opengl: videotoolbox: cleanupsGravatar wm42015-09-28
| | | | Get rid of the VDA specifics like naming or ancient pixel formats.