1
mirror of https://code.videolan.org/videolan/vlc synced 2024-09-04 09:11:33 +02:00
Commit Graph

65 Commits

Author SHA1 Message Date
Hugo Beauzée-Luyssen
f2e43bd7ec Subtitle renderers: Merge RenderText & RenderHTML
The current workflow is often parsing a subtitle format, then convert it
in a common HTML and then push it to the renderer as HTML. The renderer
will reparse the HTML and try to render it. Of course, that means that
only one renderer can do that correctly, and so we bloat the freetype
renderer as much as we can.
It also means that we have 2 render callbacks for subtitles, one for
normal text and one for styled text, and we sometimes reparse the HTML
to remove the tags, for the first.

We now only use a text_segment, with new segments at every style change;
an unique render function and the renderer can decide to honor or not
the style.

It's a big commit, so regressions can arise, but it was tested for most
common cases.
2015-07-28 16:01:33 +02:00
Rémi Denis-Courmont
aee51fec5a include: add/fix more Doxygen groups 2015-06-14 23:25:38 +03:00
Rémi Denis-Courmont
a17b85a5a9 Fix some Doxygen parameter names 2015-06-14 19:04:50 +03:00
Rémi Denis-Courmont
4ee1038059 include: improve Doxygen modules
In particular, move \file stanzas inside groups.
2015-06-14 19:04:50 +03:00
Rémi Denis-Courmont
3512e4087e spu: remove filter_DeleteSubpicture()
This is only used in error corner cases, and is always the same as
calling subpicture_Delete() directly.
2014-10-30 17:26:43 +02:00
Rémi Denis-Courmont
dfae0979f0 filter: remove filter_DeletePicture()
All variants of the filter_t.video.buffer_del callback invoke
picture_Release() - possibly through recursion.

Most filters used picture_Release() directly already.
2014-10-30 17:26:38 +02:00
Rémi Denis-Courmont
ed1879cb1f filter_chain: inline filter_chain_DeleteFilter() and drop return value 2014-07-29 00:54:10 +03:00
Rémi Denis-Courmont
d6e6460d38 filter_chain: introduce dedicated filter_chain_NewVideo() for video filters
Also remove the filter chain buffer functions update hack, keep constant
callbacks for video filters in the filter chain, remove now useless
parameters from filter_chain_New(), and inline
filter_chain_AppendFilterInternal().
2014-07-29 00:42:37 +03:00
Rémi Denis-Courmont
6650b32164 spu: fix ugly cast in filter chain (and unexport function) 2014-07-29 00:25:10 +03:00
Rémi Denis-Courmont
0a5922714a filter_chain: add filter_chain_ForEach() helper 2014-07-28 23:16:30 +03:00
Rémi Denis-Courmont
398cabc620 filter: separate owner structure from the filter itself 2014-07-28 23:14:26 +03:00
Rémi Denis-Courmont
b2c7e1447f audio filters: remove old filter_NewAudioBuffer() 2013-03-01 17:59:56 +02:00
Rémi Denis-Courmont
5270796734 Replace block_New() with block_Alloc() 2012-12-13 23:17:40 +02: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
Rémi Denis-Courmont
cece0cc754 Remove filter_t.pf_audio_buffer_new 2011-09-05 22:54:57 +03:00
Laurent Aimar
364f9dc2bd Allowed to give the list of prefered chroma to "text renderer". 2011-06-25 20:11:03 +02:00
Rémi Denis-Courmont
92f1b3aee7 Rename LIBVLC_* function attributes to VLC_* within plugin API 2011-05-07 23:08:28 +03:00
Rémi Denis-Courmont
6f258887aa Replace VLC_EXPORT macro with a simple prefix, VLC_API
This should help Doxygen parse VLC headers, and generally makes headers
easier to read. LibVLC already uses a similar approach.
2011-05-07 18:43:51 +03:00
Yuval Tze
6b546060eb New sub-filter support add new "sub filter" capability for processing subpictures add new "sub-filter" parameter / configuration string add new filter chain to the spu and apply it on every new subpicture
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
2011-04-20 11:48:22 +03:00
Yuval Tze
9d86e0b645 Refactor: rename "sub-filter" to "sub-source" this includes capability, functions, constants, user messages and command line parameter.
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
2011-04-20 11:48:21 +03:00
Laurent Aimar
6c6beec6a6 Added a way to flush video filters and video filter chains.
It is not yet used, but it will be needed for filter that need to delay
frames.
2010-07-11 19:56:21 +02:00
Rémi Duraffort
ec87e89b59 Core: add some LIBVLC_USED. 2010-07-05 21:56:06 +02:00
Laurent Aimar
a5c73d38fa Added filter_GetInputAttachments.
It allows to retreive input attachments.
2010-05-26 22:42:51 +02:00
Laurent Aimar
72aabd9464 Added mouse support to sub-filter. 2010-05-01 13:39:54 +02:00
Rémi Denis-Courmont
3f424a26f7 Misc: remove leading underscores 2010-02-07 13:33:52 +02:00
Rémi Denis-Courmont
1fa88f66c1 filter_t: use struct of non-anymous unions, seems more portable 2010-01-23 19:05:48 +02:00
Rémi Denis-Courmont
2dcb9d9adf Rationalize filter_t (save 8 pointers) 2009-09-27 13:56:29 +03:00
Rémi Denis-Courmont
0b5502c3d8 Remove filter_chain_GetFilter: unused and not thread-safe 2009-08-20 00:05:21 +03:00
Laurent Aimar
30086cdcb5 Fixed filter_*Blend rgb masks initialization.
It fixes at least RGB  blending with opengl on little indian arch.
2009-07-28 22:50:28 +02:00
Laurent Aimar
1df51e7c7c Added amissing const to filter_Blend. 2009-06-06 00:57:35 +02:00
Laurent Aimar
a974af8d4f Added blend filter helpers. 2009-06-05 20:23:38 +02:00
Laurent Aimar
09a086878e Added a const to source picture in blend module. 2009-06-05 20:23:38 +02:00
Laurent Aimar
5f175d3295 Added mouse support to filter_t and filter_chain_t. 2009-06-03 22:34:48 +02:00
Laurent Aimar
cbe4bf0141 Fixed vlc_filter.h include. 2009-05-16 20:22:41 +02:00
Rémi Denis-Courmont
3897a418a4 Simplification 2009-01-18 23:28:49 +02:00
Antoine Cellerier
418f6bcaa7 Remove useless argument to pf_video_blend
We were already blending directly on top of the destination
picture. This simplifies the code and should prevent further
confusion.
2008-09-05 00:32:34 +02:00
Rémi Denis-Courmont
c0f4bfc5d8 Headers: use non-reserved identifiers for multi-inclusion protection 2008-08-11 19:34:48 +03:00
Jean-Paul Saman
def14b8246 Document filter chain API. 2008-08-11 19:39:39 +08:00
Laurent Aimar
ab131d8bfb Added filter_NewPicture/Subpicture/AudioBuffer helpers. 2008-07-19 13:17:38 +02:00
Rémi Denis-Courmont
fbb8255dcf Remove __LIBVLC__ test 2008-06-06 19:07:55 +03:00
Antoine Cellerier
57d88c823e New filter chain handling API. This should make it possible to factorize
a lot of code everywhere a filter_t chain is used ("video filter2":
vout core, transcode, chain.c video filter; "sub filter": spu_Init;
"audio filter2": transcode; the other types of filter_t objects are
never chained)

Btw, why aren't "audio filter2" filters used anywhere in the aout core?
2008-06-04 13:14:12 +02:00
Antoine Cellerier
218efb9308 Chroma modules now exactly implement the "video filter2" capability. 2008-06-02 18:44:03 +02:00
Antoine Cellerier
2e2178f773 Chroma API change. Chromas are now normal video filters (almost). 2008-06-02 18:43:40 +02:00
Rafaël Carré
079a1818dc codecs & packetizers: fix warnings
use size_t instead of int to represent sizes
    removes unused parameters from:
        block_BytestreamInit()
        mpeg4_audio/LOASSyncInfo()
        cinepak/cinepak_Getv1()
        speex/SendPacket()
        subsass/ParseColor()
        ffmpeg/postprocess/InitPostproc() & PostprocPict()
        dvbsub/YuvaYuvp() & encode_pixel_line_{2,4,8}bp()
        faad/DoReordering()

vlc_block_helper.h:
    use size_t, removes unused parameter from block_BytestreamInit()

struct filter_t:
    removes unused parameters from pf_picture_link() & pf_picture_unlink()
    
cmml: fix a segfault (p_item isn't an input item, despite the name) present for some months, proving that nobody did use that code ?
2008-01-29 13:34:30 +00:00
Jean-Baptiste Kempf
cf9e0c8116 MKV USF subtitles support and other Subtitles improvements.
Patch by Bernie Purcell, with two small modifications by thedj.
2007-03-13 21:28:34 +00:00
Clément Stenac
fbf4c8060d A bit of vlc/libvlc cleanup:
* libvlc sources and plugins now define __LIBVLC__ and headers exported to
  plugins (ie, include/vlc_*.h) check for this
* libvlc sources use the value of the "libvlc" component in vlc-config instead
  of vlc
* Apply flags directly to "libvlc" in configure.ac - might temporarily break win32 :)
2006-12-03 13:48:21 +00:00
Clément Stenac
d3fe7f2879 A bit of headers cleanup
* Headers in include must contain the structures and prototypes needed
  by the plugins and should be named vlc_*.
* Headers in include/vlc must contain the structures and prototypes
  needed by external libvlc clients

* Moved and renamed some things in headers. 
   - Removed vlc_cpu.h, vlc_error.h (merged in vlc_common)
   - Removed snapshot.h (merged in vlc_vout.h)
   - Removed vlc_spu.h (merged in vlc_osd.h)
   - Removed intf_eject.h and vlc_interaction.h (merged in vlc_interface)
   - Moved all internal headers to src
   - Merged vlc_video.h and video_output.h and move private things to src
   - Removed vlc/intf.h, vlc/aout.h, vlc/vout.h, vlc/decoder.h and vlc/input.h
     (meta headers for use in modules, and often implying too large 
     dependencies)
* Removed some useless dependencies
* Unexported a bunch of functions and structures used only in src/
  (--> Still some work here)
* Finally made input_thread_t and input_source_t (mostly) private. 
  Added input_GetItem to fetch the input_item of an input_thread
* Cleaned up deprecated entries in vlc_symbols.h and bumped up symbol 
  prefix

This commit has a 99% probability of breaking the build, 0.1% of killing
your cat and 0% of getting you hot chicks.
2006-11-26 14:20:34 +00:00
Antoine Cellerier
9786ac4147 use config chain for the --sub-filter option.
Example:
  --sub-filter "marq{marquee=pouet}:marq{marquee=\$N,y=50,x=50}"
Sub filters other than marq still need to be changed
rc interface marq callbacks need to be fixed too
2006-10-01 16:33:59 +00:00
Antoine Cellerier
62fffadfea Rename all sout_Cfg* stuff to config_Chain* (as it isn't really sout specific) 2006-10-01 16:08:37 +00:00
Antoine Cellerier
2cb472dba0 FSF address change. 2006-01-12 23:10:04 +00:00