Commit Graph

30 Commits

Author SHA1 Message Date
Rémi Denis-Courmont a3226cf890 thread: remove vlc_mutex_destroy() 2020-02-21 19:16:09 +02:00
Steve Lhomme 78d3d6a3c6 remove stray $Id 2019-01-17 15:37:36 +01:00
Rémi Denis-Courmont e5432f1b13 lib: remove libvlc_event_type_name() 2018-07-15 15:04:57 +03:00
Rémi Denis-Courmont 26d96c355a libvlc: remove deprecated SD event manager 2018-05-03 15:25:37 +03:00
Francois Cartegnie 9314bb489c vlc_arrays: split array_append in checked and w/abort 2017-10-25 12:33:02 +02:00
Rémi Denis-Courmont b50d5f3131 lib: event: remove new/release functions 2017-05-15 21:33:39 +03:00
Rémi Denis-Courmont d241be435f lib: add libvlc_event_manager_(init|destroy) functions
They permit in-place event managers, simplifying the code.
2017-05-15 21:33:39 +03:00
Rémi Denis-Courmont 7ecd9271af array: fix up types in vlc_array_*()
- use size_t, ssize_t,
 - handle const types where applicable.
2017-02-19 22:58:43 +02:00
Thomas Guillem 9126e33f77 libvlc: merge libvlc_MediaParsedStatus and libvlc_MediaParsedCharged events
Because having two differents events for the same objective is way too
confusing (libvlc_MediaParsedStatus was recently added by me).

libvlc_MediaParsedCharged is now always sent after a call to
libvlc_media_parse_*() (this was not the case if the pre-parsing was skipped).

The core vlc_InputItemPreparsedChanged event is now only attached from the
media player. This allows the libvlc_MediaParsedCharged event to be sent when a
media is parsed from a media player.

/!\ Behavior change in libvlc API /!\

The libvlc_event_t.u.media_parsed_changed.new_status value changed, this is now
a libvlc_media_parsed_status_t. Before this patch, this value was always set to
true, even in case of parse failure/skipped. Now this value can be skipped (1),
failed (2) or done (3). There should be no changes for users that were checking
if new_status was true, since this events was called for these 3 cases (that
are all > 0).
2016-05-24 11:34:31 +02:00
Thomas Guillem f8b7b03af8 libvlc: add missing event descriptions 2016-04-21 17:53:10 +02:00
Rémi Denis-Courmont 5fb1ac638e lib: remove libvlc_event_manager_register_event_type() 2015-08-05 21:30:49 +03:00
Rémi Denis-Courmont b5985e1d52 lib: remove event listener groups
In real use, there are few (typically only zero or one) listeners per
event type. In this case, the linear search through the listener groups
was actually slower than the linear search through the whole list of
listeners: it required one iteration per event type, even for event
types with no listeners.

(Note: using a hash table over the event type would make a lot more
 sense as an optimization.)
2015-08-05 21:30:49 +03:00
Rémi Denis-Courmont 175ce396f3 lib: simplify and speed up event delivery 2015-08-05 21:30:49 +03:00
Rémi Denis-Courmont 0a222373f5 lib: merge both event manager locks
The distinction was rather vain, as the inner lock was almost never
held without the outer lock. The only case was adding an event callback
(but _not_ removing one). On the other hand, the distinction required
extra heap manipulations and memory copying for each event.
2015-08-05 21:30:49 +03:00
Rémi Denis-Courmont b80a4563a2 lib: merge event_internal.h into event.c 2015-08-05 21:30:49 +03:00
Rémi Denis-Courmont 062bd6c22a lib: remove no lonegr used asynchronous event queue
This fixes excessive (and dumb) usage of thread local variables, and
invalid use of thread cancellation.
2015-08-05 21:30:49 +03:00
Rémi Denis-Courmont 7f4edacfd2 event: remove unused instance libvlc_event_manager_new() parameter 2015-08-05 19:08:03 +03:00
Rémi Denis-Courmont fc15c20e72 libvlc: expose event for audio output device change 2015-07-28 10:05:27 +03:00
Rémi Denis-Courmont bd8485fc6e libvlc: expose event for audio volume change (fixes #14568)
Cc: Harald Sitter <sitter@kde.org>
2015-07-28 10:04:38 +03:00
Rémi Denis-Courmont 09bea7fa99 libvlc: expose events for the audio mute status (refs #14568)
Cc: Harald Sitter <sitter@kde.org>
2015-07-28 10:03:54 +03:00
Rémi Denis-Courmont 32bf025b29 libvlc: add corked and uncorked events (fixes #14444)
This exposes (audio) policy cork events to LibVLC applications. The
intended usage is for applications to pause/resume playback.

We decided against pausing and resuming automatically as it would most
likely confuse the playback state machine of existing applications. By
default, the OS decides might either mute or duck the audio stream.

Cc: Harald Sitter <sitter@kde.org>
2015-07-27 14:08:38 +03:00
Thomas Guillem dd9aa43618 libvlc: remove duplicate line 2015-04-13 15:30:32 +02:00
Rémi Denis-Courmont 80d88b05f2 Mark unreachable code on GCC even if NDEBUG
This might suppress some warnings (and very slightly reduce code size)
when assertions are disabled. Not that I particularly like to create
VLC-specific macros.
2015-02-18 17:52:52 +02:00
Felix Abecassis 710ad7ed78 libvlc: add 3 libvlc events: MediaPlayerESAdded, MediaPlayerESDeleted, MediaPlayerESSelected 2014-08-04 12:09:36 +02:00
Mark Lee 0dffa31ec5 lib: add missing define for scrambled-changed event
This is needed for libvlc_event_type_name().

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
2014-02-08 12:22:05 +02:00
Sergey Radionov 11104cb5b2 libvlc: libvlc_MediaSubItemTreeAdded event type added
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
2013-09-02 18:42:02 +03:00
Rémi Denis-Courmont 0845bbed31 Add missing events (fix #6750) 2012-05-04 20:24:57 +03:00
Jean-Baptiste Kempf 36ab287e77 LGPL
Re-license almost all of libVLC and libVLCcore to LGPLv2.1+

This move was authorized by the developers, either:
 - by e-mail,
 - by vote at the VideoLAN Dev Days 2011,
 - on the license website,
 - in a contract, oral or written.
No objection was raised, so far.

The developers agreeing are:
  Justus Piater
  Alexis Ballier
  Alexander Bethke
  Mohammed Adnène Trojette
  Alex Converse
  Alexey Sokolov
  Alexis de Lattre
  Andre Pang
  Anthony Loiseau
  Cyril Deguet
  André Weber
  Boris Dorès
  Brieuc Jeunhomme
  Benjamin Drung
  Hugo Beauzée-Luyssen
  Benoit Steiner
  Benjamin Pracht
  Bernie Purcell
  Przemyslaw Fiala
  Arnaud de Bossoreille de Ribou
  Brad Smith
  Nick Briggs
  Christopher Rath
  Christophe Courtaut
  Christopher Mueller
  Clement Chesnin
  Andres Krapf
  Damien Fouilleul
  David Flynn
  Sebastien Zwickert
  Antoine Cellerier
  Jérôme Decoodt
  Jérome Decoodt
  Dylan Yudaken
  Eduard Babayan
  Eugenio Jarosiewicz
  Elliot Murphy
  Eric Petit
  Erwan Tulou
  Etienne Membrives
  Ludovic Fauvet
  Fabio Ritrovato
  Tobias Güntner
  Jakub Wieczorek
  Frédéric Crozat
  Francois Cartegnie
  Laurent Aimar
  Florian G. Pflug
  Felix Paul Kühne
  Frank Enderle
  Rafaël Carré
  Simon Latapie
  Gildas Bazin
  Geoffroy Couprie
  Julien / Gellule
  Gildas Bazin
  Arnaud Schauly
  Toralf Niebuhr
  Vicente Jimenez Aguilar
  Derk-Jan Hartman
  Henri Fallon
  Ilkka Ollakka
  Olivier Teulière
  Rémi Duraffort
  Jakob Leben
  Jean-Baptiste Kempf
  Jean-Paul Saman
  Jean-Philippe Grimaldi
  Jean-François Massol
  Gaël Hendryckx
  Jakob Leben
  Jean-Marc Dressler
  Jai Menon
  Johan Bilien
  Johann Ransay
  Joris van Rooij
  JP Dinger
  Jean-Philippe André
  Adrien Grand
  Juha Jeronen
  Juho Vähä-Herttua
  Kaarlo Raiha
  Kaarlo Raiha
  Kamil Baldyga
  Keary Griffin
  Ken Self
  KO Myung-Hun
  Pierre Ynard
  Filippo Carone
  Loïc Minier
  Luca Barbato
  Lucas C. Villa Real
  Lukas Durfina
  Adrien Maglo
  Marc Ariberti
  Mark Lee
  Mark Moriarty
  Martin Storsjö
  Christophe Massiot
  Michel Kaempf
  Marian Ďurkovič
  Mirsal Ennaime
  Carlo Calabrò
  Damien Lucas
  Naohiro Koriyama
  Basos G
  Pierre Baillet
  Vincent Penquerc'h
  Olivier Aubert
  Pankaj Yadav
  Paul Corke
  Pierre d'Herbemont
  Philippe Morin
  Antoine Lejeune
  Michael Ploujnikov
  Jean-Marc Dressler
  Michael Hanselmann
  Rafaël Carré
  Ramiro Polla
  Rémi Denis-Courmont
  Renaud Dartus
  Richard Shepherd
  Faustino Osuna
  Arnaud Vallat
  Rob Jonson
  Robert Jedrzejczyk
  Steve Lhomme
  Rocky Bernstein
  Romain Goyet
  Rov Juvano
  Sam Hocevar
  Martin T. H. Sandsmark
  Sebastian Birk
  Sébastien Escudier
  Vincent Seguin
  Fabio Ritrovato
  Sigmund Augdal Helberg
  Casian Andrei
  Srikanth Raju
  Hannes Domani
  Stéphane Borel
  Stephan Krempel
  Stephan Assmus
  Tony Castley
  Pavlov Konstantin
  Eric Petit
  Tanguy Krotoff
  Dennis van Amerongen
  Michel Lespinasse
  Can Wu
  Xavier Marchesini
  Sébastien Toque
  Christophe Mutricy
  Yoann Peronneau
  Yohann Martineau
  Yuval Tze
  Scott Caudle
  Clément Stenac

It is possible, that some minor piece of code was badly tracked, for
some reasons (SVN, mainly) or that some small developers did not answer.
However, as an "œuvre collective", defined as in "CPI 113-2 alinéa 3",
and seeing "Cour. Cass. 17 Mai 1978", and seeing that the editor and
the very vast majority of developers have agreed (> 99.99% of the code,
> 99% of developers), we are fine here.
2011-11-27 22:54:33 +01:00
Rafaël Carré 673d656243 Fix #5706
Properly take the recursive event_sending_lock when looking for listener to
send the event.
Ensure that there will be no event dispatch after vlc_event_detach().

Also, fix a bug in libvlc_event where removing an event handler from an event
callback would lead to a crash.
2011-11-11 14:40:21 -05:00
Rémi Denis-Courmont 7dcac68447 Move src/control/ to lib/ 2011-08-30 23:40:34 +03:00