summaryrefslogtreecommitdiff
path: root/src/libsputext
AgeCommit message (Collapse)Author
2008-01-06Constify bits of the OGM subtitle hack. Add a changelog entry.Darren Salt
2008-01-06for resolving Korean subtitle bugDongsu Park
In draw_subtitle(), if the given encoding is one the CJK charset, colored typefaces functionality is disabled and subtitles are printed with the render_text() method. Otherwise subtitles are drawn by ogm_render_line() function.
2007-12-27[Subtitles] SSA-tags patchDubois Nicolas
I watch a lot of movies with subtitles and I need "vobsub subtitles" work in xine, then I decide to write this patch. It may support SSA tags for all text subtiles (ssa, ass, srt, ...) This patch : 1. Remove all SSA tags from stream (they are ugly : {\a6}) 2. Handle some of them (b, i, a, an, pos). The other ones control colours, shadow, animation, ... I can't make them work in an easy way. 3. Correct wrap algorithm which have minors bugs (we can see them only with SSA patch...) Modified files : libsputext/demux_sputext.c just remove unneeded code (which remove some of SSA-tags) libsputext/xine_sputext_decoder.c the main modified file. video_out/video_out_xshm.c video_out/video_out_xv.c xine-engine/video_out.h get video output (position and size). See below. 1. Removing SSA tags is done in ogm_render_line_internal() like for html-like tags. (this was done in the previous version of xine) 2. b(bold) and i(italic) are implemented like html-ones, in ogm_render_line_internal(). The other tags this patch support are : aX : alignment in SSA-code anX : alignment in numpad code pos(X,Y) : position, depend on alignment For those ones, I need in first a full-screen OSD, not a five lines one. Then, I need to remember where the last subtitle was drawn, in order to erase it. At last, I need a translation function to convert subtitle coordinates in screen coordinates. For this last point, I first write a full-screen translation (don't care about blacks borders), but it's not really good: the 'pos' tag is sometime used to point out something in the video. (Moreover, ASS spec say we have to draw subtitle on the video) For doing this, I need the real video output size and position, which are only know by the video output driver! Then I had 4 VO properties (in xine-engine/video_out.h) for video driver could give us those informations. I implement it only in xshm and xv drivers (I can't test other ones). If video driver can't give us those informations, the patch fallback in a full-screen translation. 3. there was 3 problem with the wrap algorithm : 1. It was in double: exactly the same, twice. Look like a merge problem. I remove one and all work fine. 2. It want to cut string in equivalent display length but it cut it in equivalent byte length. In most cases, this is the same, but if we have UTF-8 chars or long SSA-tags (which will not be displayed) the result is strange. 3. If we have a too-long part (in bytes) of the string without spaces (bad subtitle file or long SSA-code), the algorithm don't know what to do. (this case is not handled) I re-write the wrap algorithm to correct those problems. Note that my version is slower than previous one : working with bytes is really faster than computing text-length. Maybe I should had to propose an other patch for this part...
2007-11-10Delete most of the CVS $Id$/$Log$ lines.Darren Salt
--HG-- extra : transplant_source : %E0%D0%C5%8B%BEU%DD%24%5D7%1F%ADV%AD%EB%23%CBU%80%EB
2007-11-09Update FSF address on non-contributed code and COPYING files.Diego 'Flameeyes' Pettenò
For contributed code, leave whatever the version we last synced for is using to make simpler future syncs.
2007-10-21small bugfix: make sure width/height are known before trying to use them ↵"Miguel Freitas ext:(%22)
(wait the main stream to fully initialize) prevents division by zero in draw_subtitle().
2007-08-19Merge and clean up ogm_get_width & ogm_render_line; fix strncmp() length params.Darren Salt
2007-08-18libsputext colored typefaces patchChristophe Thommeret
Le dimanche 24 décembre 2006 13:38, Miguel Freitas a écrit: > Hi Christophe, > > On 12/8/06, Christophe Thommeret <hftom@free.fr> wrote: > > Here is a patch that makes use of different colors for typeface tags. > > It uses yellow for italics and red for bold. > > this is an interesting idea and i agree it is probably better to use > the "ogm" rendering functions for other formats as well. > > however i have one problem with this change: it will override user's > selection of "ui.osd.text_palette". > > how can we implement this without losing ability to select font color? > > Miguel Well, seems i've forgot this one ;) This new patch honors ui.osd.text_palette
2007-06-09Add $(LTLIBINTL) wherever objdump -R shows a dependency on gettext functions.Darren Salt
Some plugins may have been missed due to them not being built here.
2007-04-04Rename xine_decoder.c to xine_sputext_decoder.c.Diego 'Flameeyes' Pettenò
Use xineplug_LTLIBRARIES. --HG-- rename : src/libsputext/xine_decoder.c => src/libsputext/xine_sputext_decoder.c
2007-04-03Rationalise use of .hgignore, removes a bunch of files that only ignored ↵Diego 'Flameeyes' Pettenò
automake-related files.
2007-04-02Migrate all .cvsignore files to .hgignore.Diego 'Flameeyes' Pettenò
--HG-- rename : .cvsignore => .hgignore rename : doc/.cvsignore => doc/.hgignore rename : doc/faq/.cvsignore => doc/faq/.hgignore rename : doc/hackersguide/.cvsignore => doc/hackersguide/.hgignore rename : doc/man/.cvsignore => doc/man/.hgignore rename : doc/man/en/.cvsignore => doc/man/en/.hgignore rename : include/.cvsignore => include/.hgignore rename : intl/.cvsignore => intl/.hgignore rename : lib/.cvsignore => lib/.hgignore rename : m4/.cvsignore => m4/.hgignore rename : misc/.cvsignore => misc/.hgignore rename : misc/fonts/.cvsignore => misc/fonts/.hgignore rename : po/.cvsignore => po/.hgignore rename : src/.cvsignore => src/.hgignore rename : src/audio_out/.cvsignore => src/audio_out/.hgignore rename : src/combined/.cvsignore => src/combined/.hgignore rename : src/demuxers/.cvsignore => src/demuxers/.hgignore rename : src/dxr3/.cvsignore => src/dxr3/.hgignore rename : src/input/.cvsignore => src/input/.hgignore rename : src/input/dvb/.cvsignore => src/input/dvb/.hgignore rename : src/input/libdvdnav/.cvsignore => src/input/libdvdnav/.hgignore rename : src/input/libreal/.cvsignore => src/input/libreal/.hgignore rename : src/input/librtsp/.cvsignore => src/input/librtsp/.hgignore rename : src/input/vcd/.cvsignore => src/input/vcd/.hgignore rename : src/input/vcd/libcdio/.cvsignore => src/input/vcd/libcdio/.hgignore rename : src/input/vcd/libcdio/MSWindows/.cvsignore => src/input/vcd/libcdio/MSWindows/.hgignore rename : src/input/vcd/libcdio/cdio/.cvsignore => src/input/vcd/libcdio/cdio/.hgignore rename : src/input/vcd/libcdio/image/.cvsignore => src/input/vcd/libcdio/image/.hgignore rename : src/input/vcd/libvcd/.cvsignore => src/input/vcd/libvcd/.hgignore rename : src/input/vcd/libvcd/libvcd/.cvsignore => src/input/vcd/libvcd/libvcd/.hgignore rename : src/liba52/.cvsignore => src/liba52/.hgignore rename : src/libdts/.cvsignore => src/libdts/.hgignore rename : src/libfaad/.cvsignore => src/libfaad/.hgignore rename : src/libfaad/codebook/.cvsignore => src/libfaad/codebook/.hgignore rename : src/libffmpeg/.cvsignore => src/libffmpeg/.hgignore rename : src/libffmpeg/libavcodec/.cvsignore => src/libffmpeg/libavcodec/.hgignore rename : src/libffmpeg/libavcodec/alpha/.cvsignore => src/libffmpeg/libavcodec/alpha/.hgignore rename : src/libffmpeg/libavcodec/armv4l/.cvsignore => src/libffmpeg/libavcodec/armv4l/.hgignore rename : src/libffmpeg/libavcodec/i386/.cvsignore => src/libffmpeg/libavcodec/i386/.hgignore rename : src/libffmpeg/libavcodec/libpostproc/.cvsignore => src/libffmpeg/libavcodec/libpostproc/.hgignore rename : src/libffmpeg/libavcodec/mlib/.cvsignore => src/libffmpeg/libavcodec/mlib/.hgignore rename : src/libffmpeg/libavcodec/ppc/.cvsignore => src/libffmpeg/libavcodec/ppc/.hgignore rename : src/libffmpeg/libavcodec/sparc/.cvsignore => src/libffmpeg/libavcodec/sparc/.hgignore rename : src/libffmpeg/libavutil/.cvsignore => src/libffmpeg/libavutil/.hgignore rename : src/libflac/.cvsignore => src/libflac/.hgignore rename : src/liblpcm/.cvsignore => src/liblpcm/.hgignore rename : src/libmad/.cvsignore => src/libmad/.hgignore rename : src/libmpeg2/.cvsignore => src/libmpeg2/.hgignore rename : src/libmpeg2new/.cvsignore => src/libmpeg2new/.hgignore rename : src/libmpeg2new/include/.cvsignore => src/libmpeg2new/include/.hgignore rename : src/libmpeg2new/libmpeg2/.cvsignore => src/libmpeg2new/libmpeg2/.hgignore rename : src/libmusepack/.cvsignore => src/libmusepack/.hgignore rename : src/libmusepack/musepack/.cvsignore => src/libmusepack/musepack/.hgignore rename : src/libreal/.cvsignore => src/libreal/.hgignore rename : src/libspeex/.cvsignore => src/libspeex/.hgignore rename : src/libspucc/.cvsignore => src/libspucc/.hgignore rename : src/libspucmml/.cvsignore => src/libspucmml/.hgignore rename : src/libspudec/.cvsignore => src/libspudec/.hgignore rename : src/libspudvb/.cvsignore => src/libspudvb/.hgignore rename : src/libsputext/.cvsignore => src/libsputext/.hgignore rename : src/libtheora/.cvsignore => src/libtheora/.hgignore rename : src/libvorbis/.cvsignore => src/libvorbis/.hgignore rename : src/libw32dll/.cvsignore => src/libw32dll/.hgignore rename : src/libw32dll/DirectShow/.cvsignore => src/libw32dll/DirectShow/.hgignore rename : src/libw32dll/dmo/.cvsignore => src/libw32dll/dmo/.hgignore rename : src/libw32dll/qtx/.cvsignore => src/libw32dll/qtx/.hgignore rename : src/libw32dll/qtx/qtxsdk/.cvsignore => src/libw32dll/qtx/qtxsdk/.hgignore rename : src/libw32dll/wine/.cvsignore => src/libw32dll/wine/.hgignore rename : src/libxineadec/.cvsignore => src/libxineadec/.hgignore rename : src/libxineadec/gsm610/.cvsignore => src/libxineadec/gsm610/.hgignore rename : src/libxineadec/nosefart/.cvsignore => src/libxineadec/nosefart/.hgignore rename : src/libxinevdec/.cvsignore => src/libxinevdec/.hgignore rename : src/post/.cvsignore => src/post/.hgignore rename : src/post/audio/.cvsignore => src/post/audio/.hgignore rename : src/post/deinterlace/.cvsignore => src/post/deinterlace/.hgignore rename : src/post/deinterlace/plugins/.cvsignore => src/post/deinterlace/plugins/.hgignore rename : src/post/goom/.cvsignore => src/post/goom/.hgignore rename : src/post/mosaico/.cvsignore => src/post/mosaico/.hgignore rename : src/post/planar/.cvsignore => src/post/planar/.hgignore rename : src/post/visualizations/.cvsignore => src/post/visualizations/.hgignore rename : src/video_out/.cvsignore => src/video_out/.hgignore rename : src/video_out/libdha/.cvsignore => src/video_out/libdha/.hgignore rename : src/video_out/libdha/bin/.cvsignore => src/video_out/libdha/bin/.hgignore rename : src/video_out/libdha/kernelhelper/.cvsignore => src/video_out/libdha/kernelhelper/.hgignore rename : src/video_out/libdha/oth/.cvsignore => src/video_out/libdha/oth/.hgignore rename : src/video_out/libdha/sysdep/.cvsignore => src/video_out/libdha/sysdep/.hgignore rename : src/video_out/macosx/.cvsignore => src/video_out/macosx/.hgignore rename : src/video_out/vidix/.cvsignore => src/video_out/vidix/.hgignore rename : src/video_out/vidix/drivers/.cvsignore => src/video_out/vidix/drivers/.hgignore rename : src/xine-engine/.cvsignore => src/xine-engine/.hgignore rename : src/xine-utils/.cvsignore => src/xine-utils/.hgignore rename : win32/.cvsignore => win32/.hgignore rename : win32/include/.cvsignore => win32/include/.hgignore
2007-02-20const++Diego 'Flameeyes' Pettenò
CVS patchset: 8616 CVS date: 2007/02/20 01:04:07
2007-02-20Fix a lot of format warnings in lprintf calls (mostly %ldd -> %"PRId64").Diego 'Flameeyes' Pettenò
CVS patchset: 8608 CVS date: 2007/02/20 00:34:55
2007-01-19Make get_mrl return a const char * too.Diego 'Flameeyes' Pettenò
CVS patchset: 8524 CVS date: 2007/01/19 01:05:24
2007-01-19Make get_description get_identifier get_extensions get_mimetypes return a ↵Diego 'Flameeyes' Pettenò
constant string, and make the extensions and mrl vaiables usually declared when testing extension demux strategy constants too. CVS patchset: 8523 CVS date: 2007/01/19 00:26:39
2007-01-18Fix comparing char* pointer with a string literal.Matthias Hopf
CVS patchset: 8515 CVS date: 2007/01/18 11:57:16
2006-12-19Mark string-type configuration items according to whether they're plainDarren Salt
strings or names of files, device nodes or directories. This information is available to front ends (via .num_value) so that they can present file/dir-open dialogue boxes if they so choose. Subtitle font selection is split up due to this. CVS patchset: 8425 CVS date: 2006/12/19 19:10:50
2006-12-08Fix wrong length specification for strncat() calls.Matthias Hopf
Consolidated multiple strncat() calls to snprintf(). CVS patchset: 8407 CVS date: 2006/12/08 16:26:10
2006-09-26Assert presence of this->renderer as the whole function relies on its presence.Diego 'Flameeyes' Pettenò
To avoid segmentation fault, also return if the renderer isn't found. CVS patchset: 8286 CVS date: 2006/09/26 02:36:55
2006-07-10Implement visibility support, available on GCC 4.0 and later and on some 3.4 ↵Diego 'Flameeyes' Pettenò
(through backports), to avoid exporting unneeded internal symbols, making plugins' loading faster and use of internal copies of libraries more solid. It should automatically fall back to the old way in GCCs that does not support -fvisibility=hidden, but has to be tested carefully. No issues were found in the months of testing in Gentoo, but this requires special attention anyway. CVS patchset: 8101 CVS date: 2006/07/10 22:08:12
2006-06-17*** empty log message ***Bastien Nocera
CVS patchset: 8047 CVS date: 2006/06/17 12:50:18
2006-06-02Various static/const fixes from Gentoo.Darren Salt
CVS patchset: 8009 CVS date: 2006/06/02 22:18:56
2006-05-03Make various arrays and structures (mainly xine_plugin_info) const.Darren Salt
(Diego Pettenò) CVS patchset: 7985 CVS date: 2006/05/03 19:46:06
2006-02-14Kill a printf() warning.Darren Salt
CVS patchset: 7892 CVS date: 2006/02/14 18:41:43
2005-11-28*BUGFIX*František Dvořák
Improved cross-compiling: detect and precedence of the host-specific libs W32dll: enabled by platforms as originaly, user can override it Fixed shell errors in the Makefile of the hackersguide Detect the place of SDL header independently on platform Fixed spelling in CDDA, include the header sys/param.h if available Fixed format strings (fix warnings (or even bugs) on Gentoo/FreeBSD) CVS patchset: 7815 CVS date: 2005/11/28 12:24:56
2005-10-29fix some nonsense i did :)Miguel Freitas
CVS patchset: 7776 CVS date: 2005/10/29 20:51:01
2005-10-29some sort of subrip variantMiguel Freitas
CVS patchset: 7775 CVS date: 2005/10/29 20:18:57
2005-05-29*BUGFIX*František Dvořák
Trying to fix subtitle repositioning after change of video windows size. The problem was new renderer object was always recreated AFTER text drawing for duration == 0. I removed additional subtitle size update which was called always before waiting for showing subtitle and now update is called only on start and just before drawing. ffmpeg, win32 and maybe other decoders still needs to be fixed to return non-zero image duration. Some format of subtitles need know image duration. And minor change: removed strange test for this->renderer != NULL. Anyway proper way in such case would be close the plugin. CVS patchset: 7590 CVS date: 2005/05/29 10:18:22
2005-05-23**BUGFIX**Daniel Caujolle-Bert
Made sputext working again. CVS patchset: 7559 CVS date: 2005/05/23 17:13:35
2005-02-06Added node_plugin_t pointer to the demux struct.Thibaut Mattern
Incremented demux API version. This is needed to unload plugins. CVS patchset: 7385 CVS date: 2005/02/06 15:26:00
2004-12-22calling update_output_size() right before actually showing the subtitleMichael Roitzsch
will fix problems, when the size of the output area changed between the initial call and the drawing (which might be in the magnitude of seconds or minutes caused by _x_spu_decoder_sleep(), especially when using separate text subtitles); this caused the first subtitle to be missing sometimes, because users would switch to fullscreen after starting playback also fix missing first subtitle after seeking (reset of decoders tate was incomplete) CVS patchset: 7294 CVS date: 2004/12/22 21:29:25
2004-12-17fix crash in sputext demuxer when subtitles have too many linesMichael Roitzsch
(closes bug #1086775) CVS patchset: 7267 CVS date: 2004/12/17 13:38:23
2004-12-12huge patch ahead: reorganizing config entries with automatic conversionMichael Roitzsch
and backwards compatible translation Sorry, I got a litte tired proof-reading the patch, so their might be bugs lurking around. I will give it some further examination and (as necessary) fixing tomorrow. CVS patchset: 7233 CVS date: 2004/12/12 22:00:47
2004-11-03fix compiler warningMichael Roitzsch
CVS patchset: 7102 CVS date: 2004/11/03 19:17:54
2004-10-30misplaced }Miguel Freitas
CVS patchset: 7091 CVS date: 2004/10/30 14:29:23
2004-10-27Sylvain Colinet patchMiguel Freitas
CVS patchset: 7081 CVS date: 2004/10/27 22:22:25
2004-08-27generic mechanism for specifying subtitles encoding at demuxer levelMiguel Freitas
fixes problems with matroska utf-8 subtitles CVS patchset: 6911 CVS date: 2004/08/27 21:07:31
2004-07-27from the docs of sprintf: "when the strings overlap, the behaviour is undefined"Michael Roitzsch
(actually it works with glibc and sprintf, but not with snprintf) CVS patchset: 6859 CVS date: 2004/07/27 18:06:45
2004-07-22* font name stored in an unprotected buffer, configuring a long font nameMichael Roitzsch
would have caused an overflow * using strncpy is good, but if the buffer is too short, it leaves the string unterminated; fixed CVS patchset: 6834 CVS date: 2004/07/22 14:21:31
2004-07-22* do not use strcpy with overlapping strings, the behaviour is undefinedMichael Roitzsch
* fixed lots of unprotected buffers, overlong subtitle lines would have caused overflows CVS patchset: 6833 CVS date: 2004/07/22 14:19:12
2004-07-14 - Use Windows encoding for the external subtitles, guessed according to ↵František Dvořák
current locale. - Add "-" into encoding names. - Fix a typo. CVS patchset: 6793 CVS date: 2004/07/14 18:51:29
2004-06-13implement steps 1, 2, 3 and 4 of the seeking proposal:Miguel Freitas
http://article.gmane.org/gmane.comp.video.xine.devel/9532 it is now up to demuxers to decide what the 0..65535 position means. demuxers tested: ogg, voc, flac, rm, asf, vqa, vob, avi, y4m, au, mov, ts, mp3, mpg, wav, ra, mve CVS patchset: 6686 CVS date: 2004/06/13 21:28:52
2004-06-11Patch with improvements for libsputext from Vincent Pelletier - word wrap ↵František Dvořák
and enhanced subtitle parser. CVS patchset: 6673 CVS date: 2004/06/11 09:47:29
2004-06-04sputext decoder relied on status() with stream==NULL, which is wrong nowMichael Roitzsch
CVS patchset: 6638 CVS date: 2004/06/04 14:37:33
2004-04-26help strings added for all remaining config entries (so I hope)Michael Roitzsch
please everybody watch out for spelling (and other) errors CVS patchset: 6442 CVS date: 2004/04/26 17:50:06
2004-04-07Michael's patch for improving playback with subtitles, fix the long seeking.František Dvořák
CVS patchset: 6342 CVS date: 2004/04/07 18:10:20
2004-03-13since the real fix would require changes to critical parts of the engineMichael Roitzsch
(although no severe changes), I decided to commit an interim fix to prevent any breakage before the release CVS patchset: 6246 CVS date: 2004/03/13 13:59:19
2004-02-29Various compilation fixes and updates:František Dvořák
- xine compilable without iconv (scream if I something broke) - update MSVC port, fixes in avi demux - add iff.h into makefiles - ffmpeg depends on zlib (build was OK only when freetype was installed) - commit a patch for goom CVS patchset: 6192 CVS date: 2004/02/29 17:26:45
2004-02-16this file is not needed any more, the OGM subtitle decoder has been mergedMichael Roitzsch
into xine_decoder.c CVS patchset: 6163 CVS date: 2004/02/16 16:02:14