[vlc-devel] [PATCH] Make USF subtitles conform better to spec

Bernie Purcell b.purcell at adbglobal.com
Fri Jun 22 03:35:16 CEST 2007


This patch is a tidied up version of code that was originally submitted
in a much larger patch. It is still a large patch, but now, at least,
most of the work centres solely on the subsdec.c module.

It makes the following changes:
* Changes to vout_subpictures.c to create some new variables which
renderers are free to use to render time-specific subtitling
information, such as karaoke. One of these variables allows for the text
region to not be permanently converted to YUVA/YUVP - so that more than
one pass can be made on the subtitle - so that it will update correctly
over time. If a rendering module doesn't use or change any of the
variables it behaves the same as usual, with the text region being
rendered just the once to a YUVA/YUVP region and then just blended to
the video on future passes.

* Changes to alignment implementation: no longer use the i_text_align
field of font_style_t at all; require the alignment to be correctly
setup solely in the subpicture_region_t's i_align field (this is so that
the alignment initially inherited from a style can be overridden). This
meant minor changes to freetype.c and quartztext.c as well as the
deletion of the i_text_align field in vlc_osd.h. It also involved some
changes in subsdec.c, where most of the work in this patch occurs.

* Minor change to quartztext.c to correct the interpretation of font
size parameter, making it consistent with a similar change being made in
subsdec.c, and to strip out multiple whitespace in html subtitles
(Similar changes to the freetype.c module have already been made as part
of a separate larger patch submission to fix problems with bidirectional
styled text in that module)

* Adds 2 new fields for carrying karaoke specific information to the
text_style_t struct in vlc_osd.h. Changed the default_text_style's
definition to agree with the changes made in the fields of text_style_t
struct.

* Support for <image> and <karaoke> subtitles in subsdec.c. (Full
working karaoke also requires an as-yet unsubmitted patch to the
renderers to implement)

* Support for more than one subpicture_region_t per timestamp, with each
subpicture region being able to have its own alignment and margins and
type: text or image

* Better calculation of plain-text versions of html subtitles

NB: This patch still makes use of a mechanism of explicitly requesting
the sdl_image module to decode any images it wants. The main reason for
this is that the bmp decoder in ffmpeg (the image decoder with the
highest score) presently only handles 16, 24 and 32 bit depths. An
alternative is for us to switch off the bmp support in ffmpeg for the
time being and the segment of code in subsdec.c that explicitly requests
this module (along with one line added to sdl_image.c) can be removed.
I'm not fussed by either implementation, but this way probably affects
fewer other modules, so have submitted it this way.

Bernie
-------------- next part --------------
A non-text attachment was scrubbed...
Name: usf-enhancements.svn-diff
Type: text/x-patch
Size: 58789 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20070622/816f5cf5/attachment.bin>


More information about the vlc-devel mailing list