aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* vd_lavc: allocate hw surfaces using the coded sizeGravatar wm42015-05-28
| | | | | | ...instead of relying on the hw decoding API to align it for us. The old method could in theory have gone wrong if the video is cropped by an amount large enough to step over several blocks.
* vdpau: retrieve mixer parameters directly from the hw surfaceGravatar wm42015-05-28
| | | | | | | | | | | | Always configure the vdpau mixer based on the current surface sent to it. Before this, we just hardcoded the chroma type, and the surface size was essentially a guess. Calling VdpVideoSurfaceGetParameters() on every surface is a bit suspicious, but it appears it's a cheap function (just requiring some locks and a table lookup). This way we avoid creating another complicated mechanism to carry around the actual surface parameters with a mp_image/AVFrame.
* vd_lavc: merge two functionsGravatar wm42015-05-28
| | | | | | | There's not much of a reason to keep get_surface_hwdec() and get_buffer2_hwdec() separate. Actually, the way the mpi->AVFrame referencing is done makes this confusing. The separation is probably an artifact of the pre-libavcodec-refcounting compatibility glue.
* vd_lavc: make hardware decoding fallback less violentGravatar wm42015-05-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of hardware decoding is initialized lazily. When the first packet is parsed, libavcodec will call get_format() to check whether hw or sw decoding is wanted. Until now, we've returned AV_PIX_FMT_NONE from get_format() if hw decoder initialization failed. This caused the avcodec_decode_video2() call to fail, which in turn let us trigger the fallback. We didn't return a sw format from get_format(), because we didn't want to continue decoding at all. (The reason being that full reinitialization is more robust when continuing sw decoding.) This has some disadvantages. libavcodec vomited some unwanted error messages. Sometimes the failures are more severe, like it happened with HEVC. In this case, the error code path simply acted up in a way that was extremely inconvenient (and had to be fixed by myself). In general, libavcodec is not designed to fallback this way. Make it a bit less violent from the API usage point of view. Return a sw format if hw decoder initialization fails. In this case, we let get_buffer2() call avcodec_default_get_buffer2() as well. libavcodec is allowed to perform its own sw fallback. But once the decode function returns, we do the full reinitialization we wanted to do. The result is that the fallback is more robust, and doesn't trigger any decoder error codepaths or messages either. Change our own fallback message to a warning, since there are no other messages with error severity anymore.
* demux_lavf: do a better job at guessing the vobsub .sub filenameGravatar wm42015-05-28
| | | | | | | | | | | Vobsubs come as .idx/.sub pair of files. The .idx file is the one that should be opened, but the name of the .sub file is unknown. We can now make our own guess what the name of that file is. In particular, improve support with URLs (as these can have the file extension in the middle of the filename string if there are HTTP parameters). Note that this works only with newer ffmpeg versions, because the recently added sub_name demuxer option is used for this.
* vo_drm: Expose mode ID option to usersGravatar Marcin Kurczewski2015-05-28
|
* vo_drm: Fix resolution not restored after exitingGravatar Marcin Kurczewski2015-05-28
|
* vo_drm: Fix stride problem for certain devicesGravatar Marcin Kurczewski2015-05-28
|
* command: remove deprecated get_property commandGravatar wm42015-05-27
| | | | | | This command has been deprecated in the 0.8.x and 0.9.x releases - get rid of it. Its only point ever was MPlayer compatibility, which broke years ago anyway.
* options: remove --slave-brokenGravatar wm42015-05-27
| | | | It has been deprecated for ages.
* player: set cocoa input context at an earlier pointGravatar wm42015-05-27
| | | | | There is not much of a reason to do this later. (Since some time ago, the input_ctx is created right at the start, so this can be done now.)
* player: load scripts at an earlier pointGravatar wm42015-05-27
| | | | This is about as early as possible.
* vo_opengl: rename use_full_range to use_normalized_rangeGravatar wm42015-05-27
| | | | | As suggested by haasn. The term "full range" makes it sound like it has to do with TV vs. PC range, which is not the case at all.
* DOCS: fix wrong libmpv's cocoa example commentGravatar Stefano Pigozzi2015-05-27
| | | | | libmpv can be embedded in a cocoa view (without the mpv window). This has been the case for serveral months, and the comment is just wrong now.
* vo_opengl: fix source-shader + XYZ inputGravatar Niklas Haas2015-05-27
|
* DOCS: interface-changes: mention recent vo_opengl additionsGravatar wm42015-05-27
|
* vo_opengl: CMS no longer implies linear scalingGravatar Niklas Haas2015-05-27
| | | | | | | | | | | They're completely orthogonal concepts, merged in the past due to convenience and ease of implementing it in the old #ifdef hell renderer. Especially after the CMS stuff was generalized by 634b4a, this was a trivial change to implement and also means color management will be much higher quality when enabled with vo=opengl (which had quantization issues in the past due to the 8 bit FBO format and upscaling), since it can be done in a single pass now.
* vo_opengl: icc-profile overrides icc-profile-autoGravatar Niklas Haas2015-05-27
| | | | Signed-off-by: wm4 <wm4@nowhere>
* vo_opengl: add support for custom shadersGravatar Niklas Haas2015-05-27
|
* osx: synchronize access to the input_ctxGravatar wm42015-05-26
| | | | | | | | | | While all functions of input_ctx are inherently thread-safe, access to the _inputContext field itself is not. It could be unset any time by cocoa_set_input_context(). So even trivial input_ctx calls must be under a lock, so that the input_ctx can not be destroyed while the function call is "starting". (Even a function call in progress wouldn't be fine, because mp_input_uninit() requires the caller to "own" the object, i.e. no other threads can access it at this point.)
* osx: never expose input_ctx from EventsResponderGravatar wm42015-05-26
| | | | Keep it internal, so we can synchronize access to it properly.
* input: remove some unneeded thingsGravatar wm42015-05-26
| | | | | Wakeup FDs are not needed anymore (this code exists only for libwaio usage by now), and 2 other functions can be made private.
* command: better choice when to allow playback-related commandsGravatar wm42015-05-26
| | | | | | | | For certain reasons, we allow adding external tracks even before the main file is loaded. This somewhat breaks in old assumption, which uses mpctx->num_sources to determine whether a command can be applied in the current state. Use the newer playback_initialized instead, which is a much better choice for this purpose.
* command: fix track property when no file is loadedGravatar wm42015-05-26
| | | | | | | | | | | The previous commit removed this. Although mp_switch_track() can now be called in all situations, we still don't want it to be called here. Setting a track property while no file is loaded would simply deselect the track instead of setting the underlying option to the requested value. Likewise, if the "cycle" command (M_PROPERTY_SWITCH) is used, don't just deselect the track.
* player: fix crashes when adding external tracks before loading main fileGravatar wm42015-05-26
| | | | | | | | | | | | | | | | Adding an external audio track before loading the main file didn't work right. For one, mp_switch_track() assumes it is called after the main file is loaded. (The difference is that decoders are only initialized once the main file is loaded, and we avoid doing this before that for whatever reason.) To avoid further messiness, just allow mp_switch_track() to be called at any time. Also make it do what mp_mark_user_track_selection() did, since the latter requires current_track to be set. (One could probably simply allow current_track to be set at this point, but it'd interfere with default track selection anyway and thus would be pointless.) Fixes #1984.
* demux: don't get stuck on some cases of timestamp resetsGravatar wm42015-05-26
| | | | | In this case, streaming ogg via mpd over icecast made it buffer infinitely on new tracks.
* ao_alsa: hack back mono outputGravatar wm42015-05-25
| | | | | The ALSA API is inconsistent and doesn't report support. Just requesting 1 channel actually works. Whatever.
* TOOLS/lua/status-bar: update use of a deprecated propertyGravatar wm42015-05-25
| | | | | Also mention that this code does not reflect the status line of current mpv.
* input: allow - as separator between commands, instead of _Gravatar wm42015-05-25
| | | | | | | | | | Wnile it seems quite logical to me that commands use _ as word separator, while properties use -, I can't really explain the difference, and it tends to confuse users as well. So always prefer - as separator for everything. Using _ still works, and will probably forever. Not doing so would probably create too much chaos and confusion.
* command: change the hwdec propertiesGravatar wm42015-05-25
| | | | | | Another very minor step towards property/option unification. Not bothering with interface compatibility here.
* vd_lavc: report actually used hwdec APIGravatar wm42015-05-25
| | | | | Instead of the requested one, which can be just "auto", and which is rather useless.
* vf_dlopen: declare as deprecatedGravatar wm42015-05-25
| | | | | Mostly to see whether someone uses it, and if a better solution can be worked out. (It's simple enough to be supported forever.)
* cocoa: don't load hardcoded icon if running from bundleGravatar Stefano Pigozzi2015-05-25
| | | Makes ricers happy.
* demux_edl: fix includesGravatar wm42015-05-24
| | | | It doesn't need access to the playback core state anymore.
* video: do not use MP_NOPTS_VALUE for A/V differenceGravatar wm42015-05-24
| | | | | | There's no need for this, it just creates more corner cases. Also always reset it on seeks etc..
* player: add function to compute past frame durationsGravatar wm42015-05-24
| | | | | And use it for the estimated-vf-fps property (it should be doing the same as before).
* vo_null: add framerate emulationGravatar wm42015-05-24
|
* manpage: --media-title -> --force-media-titleGravatar Philip Sequeira2015-05-24
| | | Missed in 450af053.
* DOCS/client_api_examples/cocoa-openglcb: do initial flush correctly.Gravatar torque2015-05-23
|
* command: add protocol-list propertyGravatar wm42015-05-23
| | | | Fixes #1972.
* ytdl: do not use deprecated optionGravatar wm42015-05-23
| | | | This was missed in commit 450af053.
* vo_opengl: switch to new OpenGL backend API for icc-profile-autoGravatar Niklas Haas2015-05-22
| | | | The current code just segfaults.
* command: allow changing track properties while no file is loadedGravatar wm42015-05-22
| | | | | | | | | | Now it simply changes the options, i.e. what will be requested, instead of returning M_PROPERTY_UNAVAILABLE. This is another minor step towards unifying options and properties. Still a bit weird: it will always return "no" if no file is loaded, and disregards the option value.
* player: use an array for stream ID options and suchGravatar wm42015-05-22
| | | | This makes the code slightly more generic.
* command: deprecate audio-samplerateGravatar wm42015-05-22
| | | | | | | Also replace their implementation with the recently introduced properties. One significant difference is that audio-channels using OSD formatting does not print the channel layout. The user can just use the replacement property instead.
* command: add audio-params and audio-out-params propertiesGravatar wm42015-05-22
|
* command: remove old property deprecation warning mechanismGravatar wm42015-05-22
| | | | | | | We don't need two. This mechanism was basically for MPlayer, and it has expired its usefulness by now.
* command: rename audio-format propertyGravatar wm42015-05-22
| | | | Clashes with the option.
* options: rename --media-title optionGravatar wm42015-05-22
| | | | Conflicts with the property.
* command: deprecate the "length" propertyGravatar wm42015-05-22
| | | | It collides with the --length option.