Commit Graph

87 Commits

Author SHA1 Message Date
eugeni d6ffde2900 Keep reselected fonts in an array, adding new ones to the end. Glyph
lookup prefers earlier opened fonts.

This way glyph lookup is stable, which means that:
 - cache cleanup is never required after font reselecting;
 - a single unrecognized char won't change the appearance of all the others.



git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21635 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-12-16 19:34:00 +00:00
eugeni 4eb3c3173e Remove a mistakenly committed debug printf.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21633 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-12-16 19:28:21 +00:00
eugeni db088e936d Move ascender, descender, and kerning computation to ass_font.c.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21630 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-12-16 19:17:50 +00:00
eugeni e15d11c89e Speed up ASS subtitles display by detecting changes between two consecutive
rendering results.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21522 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-12-06 18:44:26 +00:00
eugeni 92256c07d1 Open embedded fonts directly from memory.
FontConfig 2.4.2 (released yesterday) supports scanning fonts with
FcFreeTypeQueryFace without writing them to disk. With earlier FontConfig
versions, the old mechanism is used.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21476 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-12-03 18:24:11 +00:00
eugeni 7db61d9736 Keep embedded fonts in ass_library_t and perform actual disk write
in fontconfig initialization. This is required for some fontconfig-related
improvements.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21474 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-12-03 17:59:13 +00:00
eugeni 27ebb01514 Use (ass_font_t, char code) instead of (FT_Face, glyph index) to identify
glyphs in cache.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21364 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-28 22:17:33 +00:00
eugeni 07786c1275 Fix compilation broken in previous commit.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21338 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-27 17:53:33 +00:00
eugeni 6e9a5a842c Move ass_font_t allocation to ass_font.h.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21333 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-27 17:13:52 +00:00
eugeni b11cd1d856 Remove obsolete "no_more_font_messages" hack.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21295 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-26 22:53:52 +00:00
eugeni 1cbd5dfd31 Move fonts-related code to a separate file.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21293 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-26 22:49:27 +00:00
eugeni 4d27dbd5c9 Make ass_new_font return ass_font_t struct (instead of just FT_Face).
Use it to access the font face.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21283 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-26 20:53:29 +00:00
eugeni 85fb960769 Rename:
face_desc_t -> ass_font_desc_t
face_cache_item_t -> ass_font_t
*face* -> *font*


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21281 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-26 20:34:54 +00:00
eugeni bec3287bd4 Cosmetics: remove unneeded curly brackets.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21114 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-20 17:13:19 +00:00
eugeni 852e37033b Fix collision detection. The old method tried to avoid gaps between subtitles
by moving the upper subtitle down. This is wrong. With this fix, a subtitle
will be moved only if it overlaps with another one.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21113 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-20 17:10:18 +00:00
kraymer 598d5be3ad MSGTRs for libass
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21082 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-19 22:35:17 +00:00
eugeni 8856d67d40 Collect all includes of mplayer headers in libass in a single file (mputils.h).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21042 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-19 00:41:00 +00:00
eugeni 656bde87fa Support \t with acceleration.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20891 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-13 16:49:32 +00:00
eugeni 60d29dbd71 s/break/continue/. A crazy mistake, somehow unnoticed for more that 2 months.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20795 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-08 18:57:40 +00:00
eugeni c8b995cf2f Calculate text bounding box in a way that does not depend on actual glyph
bitmaps. Each glyph is considered to be bounded by (origin, origin + advance)
horizontally, and (max font ascender, max font descender) vertically.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20734 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-06 02:47:57 +00:00
eugeni a5c1f03baa More precise bounding box calculation for karaoke effects.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20669 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-04 17:58:09 +00:00
eugeni 6fef7a200f Introduce MSGT_ASS, use it for all libass messages.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20645 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-03 18:15:33 +00:00
eugeni ef5dee5d56 Revert r20517.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20519 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-29 17:29:55 +00:00
eugeni 06758d89bc Copy the following functions to libass to avoid dependency on the rest of mplayer:
guess_buffer_cp
utf8_get_char
blur



git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20517 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-29 15:03:30 +00:00
eugeni 7e9c778cf2 Fix width -> orig_width typo.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20513 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-29 13:59:36 +00:00
eugeni efea99c2c9 Libass interface reworked:
- ass_instance_t renamed to ass_renderer_t
- ass_library_t introduced
- use of mplayer-specific global variables limited to ass_mp.c


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20493 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-28 15:07:18 +00:00
eugeni 4d268b94d7 Add missing fontconfig_done() call.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20467 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-27 16:02:44 +00:00
eugeni e8733cbf9d Split ass_configure() into several smaller functions.
FontConfig initialization moved from ass_init() to ass_set_fonts().


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20462 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-26 20:08:46 +00:00
eugeni 08d9c0718a Don't forget to apply scaling coefficients to kerning values.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20326 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-20 23:06:52 +00:00
eugeni a4a817a15f Fix center of rotation calculation. It was overly complex and
incorrect for right- and center-aligned text.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20308 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-19 18:08:44 +00:00
eugeni 7abe5a4ef8 Center of rotation depends on alignment.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20302 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-18 21:19:51 +00:00
eugeni 2d3ad59854 Support separate rotation angle for each glyph.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20301 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-18 21:11:29 +00:00
eugeni 5b5798f039 Move base point calculation to a separate function. Will be reused soon.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20300 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-18 18:33:19 +00:00
eugeni 67232605ef Cosmetics: remove commented code.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20299 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-18 17:57:00 +00:00
eugeni 6d4ad204b2 Fix a typo in collision detection code.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20297 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-18 15:52:26 +00:00
eugeni 28ecbe3cc3 Remove an outdated debug message.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20275 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-16 19:02:11 +00:00
reimar 404c75b083 Fix crash because of last_glyph < first_glyph, probably caused by first line
only consisting of '\n'


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20232 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-15 13:03:43 +00:00
eugeni 47006b0d7d Zerofill libass static variables during initialization.
Patch by Jindrich Makovicka <makovick a gmail d com>.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20208 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-14 14:42:23 +00:00
eugeni 965a305938 Free FT_Stroker during libass deinitialization.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20207 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-14 14:35:33 +00:00
eugeni 50ca7a4f72 Add copyright notice and vim/emacs comments to libass and vf_ass.c.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20014 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-01 17:09:04 +00:00
eugeni 1b0251e7ad Shadow support in libass.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19971 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-24 16:04:37 +00:00
reimar 6c8ab3f263 Fix width -> orig_width typo causing subtitles to be too far to the right
for movies with vertical black bars (aspect < monitoraspect).


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19946 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-22 20:47:08 +00:00
eugeni 0ba8cc2972 Move calculation of text parameters (number of lines, height, etc.) from
wrap_lines_smart() into a separate function. Call it for every event, even
those that do not require line wrapping.

This fixes randomly wrong positioning of 'Banner' events.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19938 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-22 18:56:09 +00:00
eugeni 38ea1d82d8 Move variable declaration to a more deeply nested block. It is not used outside of it.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19937 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-22 18:47:29 +00:00
eugeni 4a09756828 Cosmetics: fix indentation after last commit.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19925 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-21 22:37:42 +00:00
eugeni a7e1afc5b3 Fix FT_Stroker use in libass. The previous variant ended up with 0-width
outline in some cases.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19924 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-21 22:36:47 +00:00
eugeni 997c42f17f In r19831, font size multiplier was mistakenly applied to border width.
Fixed.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19923 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-21 19:31:28 +00:00
eugeni ef3a4fa04e Sort events by ReadOrder (if both layer and start time are equal).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19912 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-19 18:23:36 +00:00
eugeni 0c1c5e7ea2 Calculate text bounding box in such way that it does not depend on the height
of individual glyphs.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19910 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-19 17:40:31 +00:00
eugeni ac4703fc35 Fix a stupid bug in list concatenation.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19897 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-18 18:54:38 +00:00