Age | Commit message (Collapse) | Author |
|
|
|
This requires that many other files include config.h themselves.
Also convert <config.h> to "config.h".
|
|
|
|
Currently, this is satisfied in all locations where it is called,
but it is more prudent to add the check.
|
|
--HG--
extra : transplant_source : i%86L%8F_h%1D%DDv%DF%E4%2B%906%8B%FBM%87h%2A
|
|
When using a variable to store the result of strlen(), make sure its
type is size_t just like the function returns, rather than using a
smaller type like int.
--HG--
extra : transplant_source : %B0%D5%3B%D7%1Dy%0A%7E%7D%7C%023%08%B2%CE%D3t%0B3%D7
|
|
|
|
Instead of looping through the directive string as returned by
sscanf() and transforming each character to its uppercase version, use
strcasestr to run a case-insensitive sub-string search.
Also avoid runing multiple strlen() calls per each line, use strncpy
instead.
|
|
Whenever an allocated memory area is immediately filled in with a
string through strcpy() or strncpy(), replace the calls with the
appropriate strn?dup().
|
|
The xine_xmalloc() function is going to be deprecated, as its
behaviour is rarely needed as such, and it's thus misused.
With this, almost all uses of xine_xmalloc() with static size (for
instance the value returned by sizeof()) or with a size that is
guaranteed not to be zero (like strlen()+1) are replaced with calls to
either calloc(1, ...) or malloc().
malloc() is used whenever the allocated memory is going to be
immediately overwritten, while calloc() is used in every other case,
as it sets the whole memory area to zero.
--HG--
extra : transplant_source : %8F%98%EC%02%1E%83%F0s%06X%83C%205Y%80%B12%CC%E1
|
|
|
|
|
|
|
|
|
|
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.
|
|
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...
|
|
--HG--
extra : transplant_source : %E0%D0%C5%8B%BEU%DD%24%5D7%1F%ADV%AD%EB%23%CBU%80%EB
|
|
For contributed code, leave whatever the version we last synced for is using
to make simpler future syncs.
|
|
(wait the main stream to fully initialize)
prevents division by zero in draw_subtitle().
|
|
|
|
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
|
|
Some plugins may have been missed due to them not being built here.
|
|
Use xineplug_LTLIBRARIES.
--HG--
rename : src/libsputext/xine_decoder.c => src/libsputext/xine_sputext_decoder.c
|
|
automake-related files.
|
|
--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
|
|
CVS patchset: 8616
CVS date: 2007/02/20 01:04:07
|
|
CVS patchset: 8608
CVS date: 2007/02/20 00:34:55
|
|
CVS patchset: 8524
CVS date: 2007/01/19 01:05:24
|
|
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
|
|
CVS patchset: 8515
CVS date: 2007/01/18 11:57:16
|
|
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
|
|
Consolidated multiple strncat() calls to snprintf().
CVS patchset: 8407
CVS date: 2006/12/08 16:26:10
|
|
To avoid segmentation fault, also return if the renderer isn't found.
CVS patchset: 8286
CVS date: 2006/09/26 02:36:55
|
|
(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
|
|
CVS patchset: 8047
CVS date: 2006/06/17 12:50:18
|
|
CVS patchset: 8009
CVS date: 2006/06/02 22:18:56
|
|
(Diego Pettenò)
CVS patchset: 7985
CVS date: 2006/05/03 19:46:06
|
|
CVS patchset: 7892
CVS date: 2006/02/14 18:41:43
|
|
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
|
|
CVS patchset: 7776
CVS date: 2005/10/29 20:51:01
|
|
CVS patchset: 7775
CVS date: 2005/10/29 20:18:57
|
|
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
|
|
Made sputext working again.
CVS patchset: 7559
CVS date: 2005/05/23 17:13:35
|
|
Incremented demux API version.
This is needed to unload plugins.
CVS patchset: 7385
CVS date: 2005/02/06 15:26:00
|
|
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
|
|
(closes bug #1086775)
CVS patchset: 7267
CVS date: 2004/12/17 13:38:23
|
|
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
|
|
CVS patchset: 7102
CVS date: 2004/11/03 19:17:54
|
|
CVS patchset: 7091
CVS date: 2004/10/30 14:29:23
|
|
CVS patchset: 7081
CVS date: 2004/10/27 22:22:25
|