Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Require closing '}' for override tags | Oleg Oshmyan | 2014-06-06 | 3 | -28/+20 |
| | | | | | | | | Like VSFilter. '{' without a following '}' is just text, though in vector drawing mode it still delimits individual drawings. This also lets us nicely avoid '\0' hacks in the \t override tag handler in parse_tag. | ||||
* | Introduce ass_drawing_add_chars for adding a whole string at once | Oleg Oshmyan | 2014-06-06 | 3 | -4/+18 |
| | |||||
* | Parse override tag arguments exactly like VSFilter 2.38 | Oleg Oshmyan | 2014-06-06 | 4 | -255/+314 |
| | | | | | Also replace strtocolor in ass_utils with string2color from ass.c, because that is more useful everywhere now. | ||||
* | Move (r)skip_spaces to ass_utils | Oleg Oshmyan | 2014-06-06 | 3 | -28/+22 |
| | |||||
* | parse_tag: merge \fs+, \fs-, \fs | Oleg Oshmyan | 2014-06-06 | 1 | -18/+7 |
| | |||||
* | parse_tag: split \fscx, \fscy, \fsc | Oleg Oshmyan | 2014-06-06 | 1 | -23/+20 |
| | |||||
* | Add a mechanism for selective style overrides | wm4 | 2014-06-05 | 7 | -22/+160 |
| | | | | | | | | | | | | | | | This adds 2 new API functions: ass_set_selective_style_override() ass_set_selective_style_override_enabled() They can be used to force dialog text to use a specific ASS_Style. It uses a fuzzy heuristic for that, and the quality of results may vary. It does style overriding selectively and tries not to override things that need explicit styling. The heuristic for that isn't set in stone either, and can change with future libass versions. Closes libass#88. | ||||
* | Merge pull request #100 from astiob/stroke | Grigori Goronzy | 2014-06-02 | 1 | -1/+8 |
|\ | | | | | Use FT_Outline_EmboldenXY | ||||
| * | Use FT_Outline_EmboldenXY if available | Oleg Oshmyan | 2014-05-30 | 1 | -1/+8 |
| | | |||||
* | | Add BorderStyle=4, background color for text | wm4 | 2014-06-01 | 2 | -1/+21 |
| | | | | | | | | | | | | | | | | This is somewhat similar to BorderStyle=3, but with a number of differences. Mainly, this new BorderStyle doesn't create overlaps within an event. Closes #105. | ||||
* | | Fix change detection when text is clipped to screen | wm4 | 2014-06-01 | 2 | -4/+8 |
| | | | | | | | | | | | | The glyphs are clipped before combining, so the combined bitmap can always have the same position, size, and address. This breaks the change detection. Or at least I think that's what happens. | ||||
* | | Remove bitmap restriding | wm4 | 2014-06-01 | 4 | -43/+0 |
|/ | | | | It turns out we don't need this. | ||||
* | Merge pull request #102 from grigorig/fribidi-errorhandle | Grigori Goronzy | 2014-05-30 | 3 | -7/+27 |
|\ | | | | | shaper: add FriBidi error handling | ||||
| * | shaper: add FriBidi error handling | Grigori Goronzy | 2014-05-29 | 3 | -7/+27 |
|/ | | | | | | It is unlikely, but FriBidi might not process a string correctly, and we should handle that. Tested by making it fail always. This should also fix some compiler warnings. | ||||
* | Skip useless memset() when copying a bitmap | Rodger Combs | 2014-05-25 | 1 | -3/+11 |
| | |||||
* | Fix \1a, \2a, \3a, \4a with invalid argument | Oleg Oshmyan | 2014-05-12 | 1 | -0/+2 |
| | | | | Reset to the initial color's alpha component, not red. | ||||
* | Reset clipping mode on every rectangle \clip | Oleg Oshmyan | 2014-05-12 | 1 | -0/+1 |
| | | | | | | | | Prior to this fix, both of the following: \iclip(0,0,9999,9999)\clip(0,0,9999,9999) \iclip(0,0,0,0)\clip(0,0,9999,9999) hid the whole picture in libass. The correct behavior in both cases is to display the whole picture. | ||||
* | Make \be animatable | Oleg Oshmyan | 2014-05-12 | 1 | -2/+5 |
| | | | | | | | VSFilter has supported this since version 2.39. Use the raw floating-point value of the \be argument in the animation formula, like xy-VSFilter has done since version 3.0.0.45 (404301a3). | ||||
* | mystrtoll: don't truncate to int | Oleg Oshmyan | 2014-05-12 | 1 | -1/+1 |
| | |||||
* | Fix corner case: \move with identical start and end times | Oleg Oshmyan | 2014-05-12 | 1 | -2/+2 |
| | |||||
* | Implement fast quad-tree rasterizer in C and x86/SSE2/AVX2 | Dr.Smile | 2014-04-29 | 11 | -16/+2383 |
| | | | | Signed-off-by: Rodger Combs <rodger.combs@gmail.com> | ||||
* | Fix premature parser exit on }{ in drawing mode | Oleg Oshmyan | 2014-04-27 | 1 | -1/+1 |
| | | | | Fixes #75. | ||||
* | Fixed headers in profile and test | Rodger Combs | 2014-04-26 | 2 | -2/+3 |
| | |||||
* | Update README | Grigori Goronzy | 2014-04-25 | 1 | -1/+1 |
| | |||||
* | Update version info and changelog0.11.2 | Grigori Goronzy | 2014-04-25 | 3 | -2/+12 |
| | |||||
* | Initialize \pbo for each event | Oleg Oshmyan | 2014-04-10 | 1 | -0/+1 |
| | | | | | Regression in commit 1f5eb5eb. Fixes issue #74. | ||||
* | Don't crash on \fscx0 with non-zero \blur | Oleg Oshmyan | 2014-03-28 | 1 | -5/+2 |
| | | | | Regression in commit 98707694. | ||||
* | shaper: fix nasty sign bug in font functions | Grigori Goronzy | 2014-03-17 | 1 | -1/+1 |
| | | | | Fixes issue #68. | ||||
* | Merge pull request #66 from grigorig/drawing-floats | Grigori Goronzy | 2014-03-16 | 1 | -9/+8 |
|\ | | | | | drawing: parse numbers as floats | ||||
| * | drawing: parse numbers as floats | Grigori Goronzy | 2014-03-15 | 1 | -9/+8 |
|/ | | | | | | | Parse values as float and convert into 26.6 fixed point. This actually simplifies scaling a bit. Fixes #63. | ||||
* | Remove dirty pixels from ASM be_blur output | Oleg Oshmyan | 2014-03-13 | 1 | -6/+8 |
| | | | | | | | | A loop initializer was missing, so output started one row too early. A loop condition check was missing, so output sometimes stopped one column too late. Also remove a couple of dead assignments. | ||||
* | Fix handling of top two pixel rows in be_blur_c | Oleg Oshmyan | 2014-03-13 | 1 | -3/+4 |
| | | | | | | | | | 5dd56af2 replaced our implementation of \be with xy-VSFilter's. This error is not present in the xy-VSFilter code; it was introduced by accident in a merge that was later squashed as part of 5dd56af2. Note: the new \be reads in but does not write out the first and last row and column of pixels. | ||||
* | Remove incorrect declaration of HAVE_ALIGNED_STACK | 11rcombs | 2014-03-09 | 1 | -1/+0 |
| | |||||
* | Better fix for zero area outlines | Dr.Smile | 2014-03-07 | 1 | -2/+8 |
| | | | | | | Signed-off-by: wm4 <wm4@nowhere> Commit 04b51c2d broke BorderStyle=3 with text that had spaces. | ||||
* | Fix API documentation of change detection | Grigori Goronzy | 2014-03-06 | 1 | -2/+2 |
| | |||||
* | Merge pull request #61 from wm4/fix2 | Grigori Goronzy | 2014-03-06 | 2 | -1/+5 |
|\ | | | | | Fix change detection in presence of vector clips | ||||
| * | Fix change detection in presence of vector clips | wm4 | 2014-03-06 | 2 | -1/+5 |
|/ | | | | | | | | | | | | | | | | | Fixes this test case: Dialogue: 0,0:00:00.00,0:00:02.00,,,0,0,0,,{\fs50\pos(250,250)\iclip(m 0 0 l 400 0 l 400 220 l0 220)}Hello Dialogue: 0,0:00:02.00,0:10:00.00,,,0,0,0,,{\fs50\pos(250,250)\iclip(m 0 0 l 400 0 l 400 230 l0 230)}Hello The problem here is that the rendered output bitmap list itself does not change, only its contents (due to the different vector clip). ass_render_frame() will not set *detect_change correctly, and an application using this flag (like mplayer or mpv) will not update the screen as needed. Fix this with a very cheap hack: always report a full change if there's a vector clip. This is basically an emergency fix until we have a proper way to detect the change. | ||||
* | Actually export ass_library_version symbol | wm4 | 2014-03-04 | 1 | -0/+1 |
| | | | | | | Patch by chadr...@gmail.com. Fixes libass#58, GC#117. | ||||
* | Don't crash on \fscx0 | wm4 | 2014-03-03 | 1 | -0/+3 |
| | | | | | | | | | | | | | | Freetype can return a bounding box with all fields set to INT_MIN if an outline with all points set to 0 is used. This can happen e.g. with \fscx0, but also in more complicated cases. (In the original crashing sample, this was probably caused in combination with an embedded font.) Such a bounding box causes libass to crash, because it will enlarge the combined bitmap bounding box to a ridiculous size. Just skip outlines that have en empty bounding box. This is probably the correct thing to do, and won't pass INT_MAX down to other parts of libass. | ||||
* | Don't use an unsigned it to check for <0 :| | 11rcombs | 2014-02-28 | 1 | -1/+1 |
| | |||||
* | Assume SSE2 on x86_64 | 11rcombs | 2014-02-28 | 1 | -6/+3 |
| | |||||
* | Redesigned configure/Makefile setup | 11rcombs | 2014-02-24 | 2 | -74/+62 |
| | | | | | | Adds yasm version check and handles Free/OpenBSD/win32 correctly. Signed-off-by: Grigori Goronzy <greg@chown.ath.cx> | ||||
* | Format README.md | Rodger Combs | 2014-02-19 | 1 | -28/+28 |
| | |||||
* | Create README.md | Rodger Combs | 2014-02-19 | 1 | -0/+43 |
| | |||||
* | Update version info and changelog0.11.1 | Grigori Goronzy | 2014-02-19 | 3 | -2/+6 |
| | |||||
* | Add missing distfiles | Grigori Goronzy | 2014-02-19 | 1 | -3/+3 |
| | |||||
* | Update changelog0.11.0 | Grigori Goronzy | 2014-02-19 | 1 | -0/+3 |
| | |||||
* | Update version info | Grigori Goronzy | 2014-02-18 | 2 | -2/+2 |
| | |||||
* | Update changelog | Grigori Goronzy | 2014-02-18 | 1 | -0/+20 |
| | |||||
* | We have aligned stack on Win64 | 11rcombs | 2014-02-17 | 1 | -1/+1 |
| | |||||
* | Define HAVE_ALIGNED_STACK; should wrap up #48 | 11rcombs | 2014-02-17 | 1 | -6/+6 |
| | |||||
* | Fix limits.h includes | Grigori Goronzy | 2014-02-17 | 4 | -0/+4 |
| | | | | These were missing in several places. Fixes #50. | ||||
* | Remove unnecessary instruction | 11rcombs | 2014-02-16 | 1 | -3/+0 |
| | |||||
* | Added XMM register count in be_blur; should help #48 | 11rcombs | 2014-02-16 | 1 | -2/+2 |
| | |||||
* | Use lower mm registers in be_blur.asm | 11rcombs | 2014-02-16 | 1 | -8/+8 |
| | |||||
* | Added license headers in ASM files | 11rcombs | 2014-02-16 | 3 | -0/+48 |
| | |||||
* | Don't include skipped glyphs in combined bitmaps | Oleg Oshmyan | 2014-02-12 | 1 | -3/+7 |
| | | | | | | | Make sure to correctly handle situations where glyphs have info->linebreak and info->skip set at the same time. Fixes libass#44. | ||||
* | Don't reset wrap_style on \r | Grigori Goronzy | 2014-02-11 | 1 | -1/+1 |
| | | | | This isn't part of a style. Fixes libass#45, GC#116. | ||||
* | Font metrics: FreeType falls back to sTypoAscender/Descender | Oleg Oshmyan | 2014-02-11 | 1 | -4/+8 |
| | | | | Fixes libass#8. | ||||
* | Use cluster advance in compute_string_bbox to account for \fsp | Oleg Oshmyan | 2014-02-11 | 1 | -7/+4 |
| | | | | Fixes libass#16 (the remaining sub-issue). | ||||
* | Use a function for aligned memory allocations | wm4 | 2014-02-02 | 5 | -25/+51 |
| | | | | ...instead of doing this manually. | ||||
* | Fix subpixel jumping of rotated glyph runs | Oleg Oshmyan | 2014-01-29 | 3 | -1/+8 |
| | | | | | Rotation origin was not taken into account when caching glyph run bitmaps. | ||||
* | Merge pull request #39 from grigorig/shaper-hash-opt | Grigori Goronzy | 2014-01-29 | 2 | -9/+14 |
|\ | | | | | Shaper and hash function optimizations | ||||
| * | Unroll FNV-1A hash function | Grigori Goronzy | 2014-01-29 | 1 | -4/+9 |
| | | | | | | | | Unroll the hash function with Duff's device for improved performance. | ||||
| * | shaper: use global features correctly | Grigori Goronzy | 2014-01-29 | 1 | -5/+5 |
| | | | | | | | | | | | | | | start/end of feature tags is unsigned, so use the proper constant to signal to HarfBuzz that these features are global. This allows HarfBuzz to cache shape plans, and that can considerably speed up shaping, especially if many small runs need to be shaped. | ||||
* | | Fixed incorrect spelling in copyright notice | 11rcombs | 2014-01-29 | 1 | -1/+1 |
|/ | |||||
* | shaper: rewrite and simplify harfbuzz shaping | Grigori Goronzy | 2014-01-29 | 1 | -73/+72 |
| | | | | | | Rewrite the core of the harfbuzz shaping function. Gets rid of the MAX_RUNS limit of runs per line and reuses a single hb_buffer_t, which should be more efficient. | ||||
* | Merge pull request #37 from wm4/minor | Grigori Goronzy | 2014-01-28 | 1 | -5/+3 |
|\ | | | | | Minor cosmetics | ||||
| * | ass_utils: fix declarations | wm4 | 2014-01-27 | 1 | -3/+3 |
| | | | | | | | | Now they're the same as in ass_utils.h. | ||||
| * | ass_utils: don't include freetype headers | wm4 | 2014-01-27 | 1 | -2/+0 |
|/ | | | | They're not even used. | ||||
* | Added copyright notice for xy \be blur | 11rcombs | 2014-01-27 | 1 | -0/+1 |
| | |||||
* | Check for YASM in configure | 11rcombs | 2014-01-26 | 1 | -8/+19 |
| | |||||
* | Make apply_blur and make_shadow_bitmap static; remove an unneeded local variable | 11rcombs | 2014-01-25 | 2 | -96/+92 |
| | |||||
* | Make sure to release each event's vector clip mask | Oleg Oshmyan | 2014-01-26 | 1 | -9/+6 |
| | | | | | | | | Events with a clip mask but no text such as just Dialogue: ...,{\clip(m 47 32 )} had their clip masks carried over to the next event. Fixes GitHub issue #22. | ||||
* | Simplify storage size handling | Oleg Oshmyan | 2014-01-26 | 3 | -13/+4 |
| | | | | No functional changes. | ||||
* | Build: Remove references to unimplemented ARM ASM | 11rcombs | 2014-01-25 | 1 | -4/+0 |
| | |||||
* | Parser: don't increment render_priv->state.bm_run_id (unnecessary) | 11rcombs | 2014-01-25 | 2 | -15/+0 |
| | |||||
* | Added x86 ASM functions | 11rcombs | 2014-01-25 | 12 | -4/+2284 |
| | |||||
* | Combine bitmaps before applying blur and shadow | 11rcombs | 2014-01-25 | 11 | -336/+885 |
| | |||||
* | Test/Profile: Support out-of-tree builds | 11rcombs | 2014-01-25 | 2 | -5/+5 |
| | |||||
* | Test: Render at 1280x720 | 11rcombs | 2014-01-25 | 1 | -2/+2 |
| | |||||
* | Added profile program and corresponding configure options | 11rcombs | 2014-01-25 | 4 | -2/+116 |
| | |||||
* | Remove configure from autogen.sh | 11rcombs | 2014-01-25 | 1 | -2/+0 |
| | |||||
* | Merge pull request #26 from wm4/warnings | Grigori Goronzy | 2014-01-24 | 2 | -8/+11 |
|\ | | | | | Use more warning flags | ||||
| * | build: add more warnings | wm4 | 2014-01-24 | 1 | -1/+3 |
| | | |||||
| * | ass_strtod: use modern C | wm4 | 2014-01-24 | 1 | -7/+8 |
| | | |||||
* | | Attempt to make code more readable | wm4 | 2014-01-25 | 1 | -9/+11 |
| | | | | | | | | No more double pointer dereferencing. | ||||
* | | Append new cache items at the start of the collision list | 11rcombs | 2014-01-25 | 1 | -2/+2 |
| | | | | | | | | | | | | | | The idea is that more recently-added cache items are more likely to get hits. Signed-off-by: wm4 <wm4@nowhere> | ||||
* | | Simplify hash function | 11rcombs | 2014-01-25 | 1 | -7/+4 |
| | | | | | | | | | | | | | | | | | | We can rely on fast multiplication and good compilers. v2: use default FNV-1a prime Signed-off-by: wm4 <wm4@nowhere> Signed-off-by: Grigori Goronzy <greg@chown.ath.cx> | ||||