]> granicus.if.org Git - libass/log
libass
9 years agoImplement cascade gaussian blur
Dr.Smile [Sat, 4 Jul 2015 19:39:26 +0000 (22:39 +0300)]
Implement cascade gaussian blur

That's complete version with SSE2/AVX2 assembly.
Should be much faster than old algorithm even in pure C.

Algorithm description can be found in this article (PDF):
https://github.com/MrSmile/CascadeBlur/releases

Close #9

9 years agoFix code path of rasterization through FreeType
Dr.Smile [Wed, 1 Jul 2015 18:21:11 +0000 (21:21 +0300)]
Fix code path of rasterization through FreeType

9 years agoRelease 0.12.3 0.12.3
wm4 [Tue, 30 Jun 2015 10:27:59 +0000 (12:27 +0200)]
Release 0.12.3

9 years agoMakefile.am: add missing ass_func_template.h to list of sources
wm4 [Tue, 30 Jun 2015 10:27:19 +0000 (12:27 +0200)]
Makefile.am: add missing ass_func_template.h to list of sources

9 years agoSwitch to virtual function table
Dr.Smile [Thu, 25 Jun 2015 23:14:21 +0000 (02:14 +0300)]
Switch to virtual function table

Use one pointer to table of functions instead of scattered
bunch of function pointers. Different versions of these tables
can be constructed in compile time.

Also, bitmap memory alignment now depends only on SSE2/AVX2 support
and is constant for every width. That simplifies code without
noticeable performance penalty.

9 years agoImprove rasterizer comments
Dr.Smile [Thu, 21 May 2015 23:25:23 +0000 (02:25 +0300)]
Improve rasterizer comments

9 years agoMerge pull request #160 from astiob/be
Grigori Goronzy [Tue, 23 Jun 2015 20:36:16 +0000 (22:36 +0200)]
Merge pull request #160 from astiob/be

\be fixes including clipping and value range

9 years agoFix crash when stroked outline overflows SHRT_MAX
Dr.Smile [Sun, 14 Jun 2015 15:55:41 +0000 (18:55 +0300)]
Fix crash when stroked outline overflows SHRT_MAX

9 years agoDo not apply ass_set_line_position() to positioned events
wm4 [Thu, 11 Jun 2015 20:01:51 +0000 (22:01 +0200)]
Do not apply ass_set_line_position() to positioned events

Even if we wanted this, the result would be inconsistent if e.g. \clip
is used.

9 years agostring2timecode: don't truncate to int
Oleg Oshmyan [Sun, 24 May 2015 22:00:38 +0000 (01:00 +0300)]
string2timecode: don't truncate to int

The timecode is a long long, but it is computed as a product whose
all multiplicands are (unsigned) ints and so effectively has the value
of an (unsigned) int. Fix this, and use the full long long range,
by explicitly making one of the first two multiplicands a long long.

Found by Coverity Scan.

9 years agoMerge pull request #181 from grigorig/clang-static-analysis
Grigori Goronzy [Mon, 8 Jun 2015 20:39:08 +0000 (22:39 +0200)]
Merge pull request #181 from grigorig/clang-static-analysis

Fix some issues reported by clang scan-build

9 years agoRemove several dead stores
Grigori Goronzy [Sun, 7 Jun 2015 19:48:36 +0000 (21:48 +0200)]
Remove several dead stores

Reported by clang scan-build static analysis.

9 years agoCheck possible NULL dereference
Grigori Goronzy [Sun, 7 Jun 2015 19:42:42 +0000 (21:42 +0200)]
Check possible NULL dereference

Reported by clang scan-build static analysis. This cannot happen with
the current code, but the check might make this more robust in case
anything changes.

9 years agoFix minor memory leak in ass_read_styles
Grigori Goronzy [Sun, 7 Jun 2015 19:30:41 +0000 (21:30 +0200)]
Fix minor memory leak in ass_read_styles

Reported by clang scan-build static analysis. Also fix incorrect
return value in case of error.

9 years agoStrictly clip non-dialog events against the video rectangle
wm4 [Mon, 25 May 2015 15:58:48 +0000 (17:58 +0200)]
Strictly clip non-dialog events against the video rectangle

Only normal dialog lines are allowed to appear outside.

Fixes #177.

9 years agoSimplify change_alpha and change_color
Oleg Oshmyan [Sun, 24 May 2015 11:47:37 +0000 (14:47 +0300)]
Simplify change_alpha and change_color

9 years agoApply fade only when the fade alpha is positive (like VSFilter)
Oleg Oshmyan [Fri, 22 May 2015 23:35:21 +0000 (02:35 +0300)]
Apply fade only when the fade alpha is positive (like VSFilter)

9 years agoparse_tag: split \[1-4][ac]
Oleg Oshmyan [Fri, 22 May 2015 21:21:35 +0000 (00:21 +0300)]
parse_tag: split \[1-4][ac]

9 years agoParse and animate all colors and alpha values like VSFilter
Oleg Oshmyan [Fri, 22 May 2015 21:06:40 +0000 (00:06 +0300)]
Parse and animate all colors and alpha values like VSFilter

* Allow exactly one of these prefixes in header values:
  0x, 0X, &h, &H. Note that "0x0xFFFFFF" is a correct value,
  as the first 0x is consumed by the parser and the second by
  the string-to-number conversion following strtol semantics.

* Allow arbitrary numbers of leading & and H
 (and not h) in any order in override tag values.

* Reduce header values modulo 2**32 instead
  of saturating them to LLONG_MIN/MAX.

* Saturate override tag values to INT32_MIN/MAX
  rather than to LLONG_MIN/MAX.

* Don't fiddle with bytes in alpha override tag values.
 (They can be outside of the 0..255 range.)

Also change the byte swapping code to be more sensible.

Fixes #80.
Fixes #145.
Fixes #178.

Also fixes our behavior in the case described in
https://code.google.com/p/xy-vsfilter/issues/detail?id=80.

9 years agoshaper: purge outdated comment
Grigori Goronzy [Thu, 29 May 2014 02:13:37 +0000 (04:13 +0200)]
shaper: purge outdated comment

HarfBuzz has been able to disable fallback kerning since commit
038c98f6. Add some more useful docstrings instead.

9 years agoFix a wrong comment
Oleg Oshmyan [Fri, 22 May 2015 21:23:17 +0000 (00:23 +0300)]
Fix a wrong comment

9 years agoAdd libjass to Other ASS/SSA implementations in README
Rodger Combs [Tue, 12 May 2015 11:11:11 +0000 (06:11 -0500)]
Add libjass to Other ASS/SSA implementations in README

Sure why not?
Closes #176.

9 years agoFix memory leak with drawings
wm4 [Sun, 10 May 2015 20:28:23 +0000 (22:28 +0200)]
Fix memory leak with drawings

What.

Closes #175.

9 years agoRemove RenderContext.drawing
wm4 [Sun, 10 May 2015 20:28:08 +0000 (22:28 +0200)]
Remove RenderContext.drawing

This really didn't make a lot of sense. This is a simplification, and
should not affect actual program behavior.

9 years agoRelease 0.12.2 0.12.2
wm4 [Thu, 7 May 2015 19:32:44 +0000 (21:32 +0200)]
Release 0.12.2

9 years agogg rcombs (fix README typo)
Rodger Combs [Tue, 21 Apr 2015 15:12:01 +0000 (10:12 -0500)]
gg rcombs (fix README typo)

9 years agoFix GStreamer link in README
Rodger Combs [Tue, 21 Apr 2015 02:30:18 +0000 (21:30 -0500)]
Fix GStreamer link in README

Closes #174

9 years agoDon't use margins for events that should not be overridden
wm4 [Mon, 16 Mar 2015 20:02:47 +0000 (21:02 +0100)]
Don't use margins for events that should not be overridden

libass already does not use the margins for events using \pos. This is
not quite complete: there are other tags that we consider as "not
dialogue", and which should not be overridden. These tags do not use
EVENT_POSITIONED, and thus use the margins, which can mess up rendering.

9 years agoReorder functions
wm4 [Mon, 16 Mar 2015 19:58:03 +0000 (20:58 +0100)]
Reorder functions

Just move the *_pos ones about the variants without this postfix.

9 years agoFix range in rot_key
Rodger Combs [Thu, 12 Mar 2015 20:30:26 +0000 (15:30 -0500)]
Fix range in rot_key

Oops, trig is hard. We output from -pi to +pi now.

9 years agoFix degrees/radians cache confusion; avoid a fixed-point overflow
Rodger Combs [Thu, 12 Mar 2015 09:45:00 +0000 (04:45 -0500)]
Fix degrees/radians cache confusion; avoid a fixed-point overflow

Also fix an incorrect comment

9 years agoIgnore extra coordinates in drawings
wm4 [Mon, 9 Mar 2015 21:19:38 +0000 (22:19 +0100)]
Ignore extra coordinates in drawings

If there's an odd number of values, ignore the extra value, instead
of shifting all values after the next command. While such drawings are
boken strictly speaking, VSFilter handles them gracefully, and what
libass did before this commit made no sense anyway.

Test case:

{\an7\pos(0.01,0.7)\c&H5A493D&\p1\iclip(11,m 857379 -744112 l 517759 -744112 517759 -942768 857379 -942768 m 851235 -422238 l 689105 -422238 689105 -620546 851235 -620546 m 679889 -421552 l 517411 -421552 517411 -620894 679889 -620894 -55984 m 860113 425634 l 519459 425634 519459 226640 860113 226640 m 868305 992080 l 465361 992080 465361 793936 868305 793936 m 841343 1317200 l 520145 1317200 520145 1118206 841343 1118206 m 411662 -245762 b 411662 -242373 408918 -239618 405518 -239618 l 342931 -239618 b 339532 -239618 336787 -242373 336787 -245762 l 336787 -308226 b 336787 -311626 339532 -314370 342931 -314370 l 405518 -314370 b 408918 -314370 411662 -311626 411662 -308226 m 414929 -907440 b 414929 -904051 412174 -901296 408785 -901296 l 346198 -901296 b 342798 -901296 340054 -904051 340054 -907440 l 340054 -969904 b 340054 -973294 342798 -976048 346198 -976048 l 408785 -976048 b 412174 -976048 414929 -973294 414929 -969904 m 414417 -585904 b 414417 -582515 411652 -579760 408252 -579760 l 345450 -579760 b 342041 -579760 339286 -582515 339286 -585904 l 339286 -648368 b 339286 -651758 342041 -654512 345450 -654512 l 408252 -654512 b 411652 -654512 414417 -651758 414417 -648368 m 414929 -44997 b 414929 -41597 412174 -38832 408785 -38832 l 346198 -38832 b 342798 -38832 340054 -41597 340054 -44997 l 340054 -107676 b 340054 -111075 342798 -113840 346198 -113840 l 408785 -113840 b 412174 -113840 414929 -111075 414929 -107676 m 415932 261456 b 415932 264845 413178 267600 409788 267600 l 347191 267600 b 343802 267600 341047 264845 341047 261456 l 341047 198992 b 341047 195602 343802 192848 347191 192848 l 409788 192848 b 413178 192848 415932 195602 415932 198992 m 414929 564048 b 414929 567437 412174 570192 408785 570192 l 346198 570192 b 342798 570192 340054 567437 340054 564048 l 340054 501584 b 340054 498194 342798 495440 346198 495440 l 408785 495440 b 412174 495440 414929 498194 414929 501584 m 414929 781136 b 414929 784525 412174 787280 408785 787280 l 346198 787280 b 342798 787280 340054 784525 340054 781136 l 340054 718672 b 340054 715282 342798 712528 346198 712528 l 408785 712528 b 412174 712528 414929 715282 414929 718672 m 414929 1133525 b 414929 1136914 412174 1139669 408785 1139669 l 346198 1139669 b 342798 1139669 340054 1136914 340054 1133525 l 340054 1071061 b 340054 1067661 342798 1064917 346198 1064917 l 408785 1064917 b 412174 1064917 414929 1067661 414929 1071061)}m 0 0 l 1280 0 1280 720 0 720 0 0{\p0}

9 years agoFix BorderStyle=3 with zero Outline and Shadow
Dr.Smile [Fri, 6 Mar 2015 15:21:43 +0000 (18:21 +0300)]
Fix BorderStyle=3 with zero Outline and Shadow

9 years agoMake timestamp parsing more lenient
wm4 [Fri, 6 Mar 2015 12:28:48 +0000 (13:28 +0100)]
Make timestamp parsing more lenient

Fixes "[ARR] Musashi no Ken - 01 [AVC][5697986B].ssa", which has
timestamps like "00:02:30.85". It starts with 2 zeros instead of one,
which probably means it's an invalid file, but it's accepted by various
other parsers (VSFilter, MPlayer, vlc, ffmpeg).

9 years agoPrevent selective style overrides with scrolling
wm4 [Fri, 6 Mar 2015 12:15:13 +0000 (13:15 +0100)]
Prevent selective style overrides with scrolling

Similar to xy-VSFilter.

9 years agoRefine list of tags that prevent selective style overrides
wm4 [Fri, 6 Mar 2015 12:14:39 +0000 (13:14 +0100)]
Refine list of tags that prevent selective style overrides

Somewhat stolen from:

https://github.com/Cyberbeing/xy-VSFilter/blob/xy_sub_filter_rc3/src/subtitles/RTS.cpp#L2004
(xy-VSFilter started work on this in commit 014da6d9766417d7886eb867c9f2c14038f2a226)

9 years agoAllow more fine grained control over style overrides
wm4 [Thu, 26 Feb 2015 19:49:18 +0000 (20:49 +0100)]
Allow more fine grained control over style overrides

Add tons of ASS_OVERRIDE_ flags, which control whether certain ASS_Style
fields are copied when doing selective style overrides with
ass_set_selective_style_override_enabled().

This comes with some cleanup. It should be fully backwards-compatible.

9 years agoChange what fields are overridden with style override
wm4 [Thu, 26 Feb 2015 19:49:15 +0000 (20:49 +0100)]
Change what fields are overridden with style override

"Bold" should obviously be taken from the script's style, like it's done
with StrikeOut and Underline.

treat_fontname_as_pattern is specific to the font, and thus should be
taken from the same style as the font (the override style).

9 years agoAlways use the new style with \r and style overrides
wm4 [Thu, 26 Feb 2015 19:49:10 +0000 (20:49 +0100)]
Always use the new style with \r and style overrides

I don't know why it was done this way, but some fields were always taken
from the event's style, instead of the (possibly different) \r style.
Undo this, as it seems like an unnecessary complication.

9 years agoDefine _GNU_SOURCE
Rodger Combs [Tue, 17 Feb 2015 17:44:52 +0000 (11:44 -0600)]
Define _GNU_SOURCE

Fixes #161

9 years agoMake sure the synth tmp buffer is large enough for be_blur
Oleg Oshmyan [Mon, 9 Feb 2015 22:37:41 +0000 (00:37 +0200)]
Make sure the synth tmp buffer is large enough for be_blur

9 years agoUse correct types in be_blur_c
Oleg Oshmyan [Mon, 9 Feb 2015 22:26:59 +0000 (00:26 +0200)]
Use correct types in be_blur_c

Also fix a related sort-of-bug: a multiple of sizeof(uint16_t)
was being added to a pointer that already pointed to uint16_t.
This was not causing any harm given enough space in the buffer.

Fixing the above also lets us combine the two memsets.

9 years agoAdd enough padding for \be to avoid clipping
Oleg Oshmyan [Mon, 9 Feb 2015 13:18:44 +0000 (15:18 +0200)]
Add enough padding for \be to avoid clipping

To avoid making bitmaps unnecessarily large, use just
the necessary amount of padding for the given \be value.

9 years agoCalculate \be using [0..64] value range (like VSFilter)
Oleg Oshmyan [Thu, 13 Mar 2014 03:15:18 +0000 (03:15 +0000)]
Calculate \be using [0..64] value range (like VSFilter)

To avoid banding in the output, the full [0..255] value range
is restored before the last \be pass, which then uses the full
range and hides the bands by virtue of being a blur.

With this, our \be finally closely matches VSFilter's.

The only visible difference (other than the lack of banding) is
in clipping: we add proper padding and output the whole blurred
image, while VSFilter does not add any padding and hence clips
the blurred image too early.

9 years agoApply \be after \blur (like VSFilter)
Oleg Oshmyan [Thu, 13 Mar 2014 03:05:11 +0000 (03:05 +0000)]
Apply \be after \blur (like VSFilter)

9 years agoDon't forget to apply \be to the first/last row/column (again)
Oleg Oshmyan [Wed, 12 Mar 2014 22:25:52 +0000 (22:25 +0000)]
Don't forget to apply \be to the first/last row/column (again)

The implementation of \be was changed to xy-VSFilter's, which (like
VSFilter's) reads but does not write out the first/last row/column.

9 years agoSkip memset() when using internal rasterizer
Dr.Smile [Mon, 9 Feb 2015 02:01:55 +0000 (05:01 +0300)]
Skip memset() when using internal rasterizer

9 years agoFix incorrect memset
Dr.Smile [Thu, 29 Jan 2015 20:50:38 +0000 (23:50 +0300)]
Fix incorrect memset

9 years agoRemove unused function is_skip_symbol
Rodger Combs [Thu, 29 Jan 2015 18:18:36 +0000 (12:18 -0600)]
Remove unused function is_skip_symbol

9 years agoClean up bitmap combining
Dr.Smile [Fri, 23 Jan 2015 03:32:16 +0000 (06:32 +0300)]
Clean up bitmap combining

Now pre- and post-combining operations are clearly separated,
many parameters in cache keys are no longer necessary due to that.
Also an ambiguous (in case of multiple fonts) text string is replaced
with a list of direct bitmap references in composite cache key.

Fixes #153.
Fixes #82.

9 years agoFix bug in ASS_Outline intrastructure
Dr.Smile [Thu, 22 Jan 2015 20:18:56 +0000 (23:18 +0300)]
Fix bug in ASS_Outline intrastructure

9 years agoAdd extern "C" guard to public header
Oleg Oshmyan [Fri, 16 Jan 2015 11:26:13 +0000 (13:26 +0200)]
Add extern "C" guard to public header

Our public headers can be #included from C++. Hence, ass.h needs
an extern "C" guard to declare the correct linkage for functions.
ass_types.h only defines types, so it does not need a guard.

9 years agoFix rare edge-case bug in rasterizer
Dr.Smile [Thu, 15 Jan 2015 17:53:57 +0000 (20:53 +0300)]
Fix rare edge-case bug in rasterizer

9 years agoUpdate Aegisub links in README
Oleg Oshmyan [Fri, 9 Jan 2015 19:21:57 +0000 (21:21 +0200)]
Update Aegisub links in README

9 years agoUpdate README
Oleg Oshmyan [Thu, 8 Jan 2015 18:45:23 +0000 (20:45 +0200)]
Update README

9 years agoUpdate version and changelog 0.12.1
wm4 [Wed, 7 Jan 2015 16:29:04 +0000 (17:29 +0100)]
Update version and changelog

10 years agoDestroy harfbuzz faces before freetype faces
Behdad Esfahbod [Mon, 29 Dec 2014 00:34:47 +0000 (16:34 -0800)]
Destroy harfbuzz faces before freetype faces

HarfBuzz faces reference the FreeType faces.  Destroying FT faces first can cause crash in HB destruction code:

  https://bugs.freedesktop.org/show_bug.cgi?id=86300

10 years agoReplace FT_Outline with ASS_Outline
Dr.Smile [Sun, 23 Nov 2014 17:01:03 +0000 (20:01 +0300)]
Replace FT_Outline with ASS_Outline

10 years agoFlip coordinate system in rasterizer
Dr.Smile [Mon, 10 Nov 2014 19:36:21 +0000 (22:36 +0300)]
Flip coordinate system in rasterizer

10 years agoFix incorrect closing of last drawing contour
Dr.Smile [Tue, 4 Nov 2014 11:24:28 +0000 (14:24 +0300)]
Fix incorrect closing of last drawing contour

10 years agoLeave spline evaluation to rasterizer
Dr.Smile [Tue, 4 Nov 2014 07:45:08 +0000 (10:45 +0300)]
Leave spline evaluation to rasterizer

10 years agoTravis-CI: Coverity requires a notification email address
wm4 [Sat, 22 Nov 2014 02:23:00 +0000 (03:23 +0100)]
Travis-CI: Coverity requires a notification email address

Or at least it looks like it does.

10 years agoFix broken memory leak check in legacy API
wm4 [Sat, 22 Nov 2014 02:18:25 +0000 (03:18 +0100)]
Fix broken memory leak check in legacy API

This was a check for the realloc() call, but the result was never
used in the success case - which makes no sense.

Doesn't really matter, because it's the legacy charset code which
hopefully is not used by anyone.

Found by Coverity.

10 years agoTravis-CI: make Coverity scan work
wm4 [Sat, 22 Nov 2014 01:55:59 +0000 (02:55 +0100)]
Travis-CI: make Coverity scan work

Also add the obnoxious Coverity badge to the README
(thanks to torque for the reminder).

10 years agoTravis-CI: minor changes
wm4 [Sat, 22 Nov 2014 01:46:06 +0000 (02:46 +0100)]
Travis-CI: minor changes

Strictly use the default compiler, but this probably has exactly the
same effect as using the "gcc" entry.

Do a parallel build.

10 years agoTravis-CI: add coverity_scan branch to enabled branches
wm4 [Sat, 22 Nov 2014 01:16:28 +0000 (02:16 +0100)]
Travis-CI: add coverity_scan branch to enabled branches

10 years agoTravis-CI: add Coverity scan
wm4 [Sat, 22 Nov 2014 01:06:51 +0000 (02:06 +0100)]
Travis-CI: add Coverity scan

10 years agoTravis-CI: another attempt at making it work (2)
wm4 [Sat, 22 Nov 2014 01:03:19 +0000 (02:03 +0100)]
Travis-CI: another attempt at making it work (2)

10 years agoTravis-CI: another attempt at making it work
wm4 [Sat, 22 Nov 2014 00:37:40 +0000 (01:37 +0100)]
Travis-CI: another attempt at making it work

Switching to OSX, because homebrew is more uptodate than
Ubuntu Ancient LTS, which is what Travis uses on Linux.

10 years agoTravis-CI: sigh
wm4 [Sat, 22 Nov 2014 00:30:28 +0000 (01:30 +0100)]
Travis-CI: sigh

OK, so autogen.sh doesn't run configure.

10 years agotravis-CI: configure needs to be generated
wm4 [Sat, 22 Nov 2014 00:28:23 +0000 (01:28 +0100)]
travis-CI: configure needs to be generated

10 years agoAdd Travis-CI integration
wm4 [Sat, 22 Nov 2014 00:24:13 +0000 (01:24 +0100)]
Add Travis-CI integration

10 years agoMore malloc checking
wm4 [Thu, 20 Nov 2014 21:07:02 +0000 (22:07 +0100)]
More malloc checking

Don't crash if running out of memory when allocating per-glyph data
during shaping. Also some fixes to initialization.

The caller of ass_fontconfig.c/match_fullname() actually handles a NULL
return value correctly.

10 years agoMore malloc checking
wm4 [Tue, 18 Nov 2014 18:30:12 +0000 (19:30 +0100)]
More malloc checking

In both cases, fallback to doing nothing if alloc fails.

10 years agoMore malloc checking
wm4 [Mon, 17 Nov 2014 20:24:52 +0000 (21:24 +0100)]
More malloc checking

Use strndup() instead of malloc+copy.

Make all code deal with the possibility that ASS_Drawing.text can be
NULL (which can happen on allocation failure).

Skip fix_collisions() on malloc failure - the lines will overlap, but at
least libass won't crash.

10 years agoProvide a strndup() fallback
wm4 [Mon, 17 Nov 2014 20:22:21 +0000 (21:22 +0100)]
Provide a strndup() fallback

This standard function is not available everywhere, so we detect it and
provide a fallback if missing.

10 years agoFix some of the recently added checks
wm4 [Sun, 16 Nov 2014 23:03:05 +0000 (00:03 +0100)]
Fix some of the recently added checks

10 years agoSome more overflow checks
wm4 [Sun, 16 Nov 2014 20:35:48 +0000 (21:35 +0100)]
Some more overflow checks

10 years agoDeal with code-duplication bullshit
wm4 [Sun, 16 Nov 2014 16:30:02 +0000 (17:30 +0100)]
Deal with code-duplication bullshit

Much of outline_to_bitmap() is duplicated. What?

Add the overflow check to duplicated code too.

10 years agoCheck the overflow check for overflows
wm4 [Sun, 16 Nov 2014 16:23:39 +0000 (17:23 +0100)]
Check the overflow check for overflows

Seriously...

Checking for negative values might not be needed, but do it anyway.

10 years agoCheck bitmap allocation for overflows
wm4 [Sun, 16 Nov 2014 16:23:12 +0000 (17:23 +0100)]
Check bitmap allocation for overflows

This actually fixes #146.

The overflow check itself is obvious. Also, make ass_align() return an
unaligned value if aligning it would overflow. This is probably better,
as it for example makes the overflow check in the caller simpler.

10 years agoPrint debug message when loading a memory font
wm4 [Sat, 15 Nov 2014 19:24:04 +0000 (20:24 +0100)]
Print debug message when loading a memory font

10 years agoSplit some parts of ass_render_event into functions
wm4 [Sat, 15 Nov 2014 19:21:37 +0000 (20:21 +0100)]
Split some parts of ass_render_event into functions

The split doesn't necessarily follow any logic; for the most part
it just moves each processing loop into its own function.

10 years agoCheck some allocations in strike-through code
wm4 [Fri, 14 Nov 2014 19:19:34 +0000 (20:19 +0100)]
Check some allocations in strike-through code

10 years agoAdd another helper-macro for array allocation
wm4 [Fri, 14 Nov 2014 19:19:14 +0000 (20:19 +0100)]
Add another helper-macro for array allocation

10 years agoFix recently introduced overflow check (again)
wm4 [Fri, 14 Nov 2014 18:03:04 +0000 (19:03 +0100)]
Fix recently introduced overflow check (again)

10 years agoFix the bug
wm4 [Fri, 14 Nov 2014 00:45:09 +0000 (01:45 +0100)]
Fix the bug

Commit 8536eaa was slightly broken: for some incomprehensible reason,
(w + 1) memory instead of w is needed. The missing space could lead to
memory corruption and crashes.

10 years agoSimplify ass_utils.c code
Youka [Sun, 9 Nov 2014 19:11:57 +0000 (20:11 +0100)]
Simplify ass_utils.c code

Mainly cosmetic, but maybe some optimizations the compiler misses.

10 years agoClean up and improve .gitignore
Youka [Fri, 7 Nov 2014 16:03:22 +0000 (17:03 +0100)]
Clean up and improve .gitignore

Add * suffix to executable names for the sake of Windows,
where they get .exe extension automatically appended.

10 years agoUse stdbool.h in another place
wm4 [Thu, 13 Nov 2014 20:27:23 +0000 (21:27 +0100)]
Use stdbool.h in another place

Also fix that ass_synth_init() could deref NULL.

10 years agoCheck for another overflow in blur code
wm4 [Thu, 13 Nov 2014 20:06:10 +0000 (21:06 +0100)]
Check for another overflow in blur code

10 years agoMove apply_blur() to ass_bitmap.c
wm4 [Thu, 13 Nov 2014 19:51:51 +0000 (20:51 +0100)]
Move apply_blur() to ass_bitmap.c

Put all code into one place, which makes it easier to follow.

10 years agoCheck against some overflows and allocation failures on blur
wm4 [Tue, 11 Nov 2014 10:45:37 +0000 (11:45 +0100)]
Check against some overflows and allocation failures on blur

This still doesn't catch all cases.

10 years agoAdd ass_realloc_array()
wm4 [Tue, 11 Nov 2014 10:44:54 +0000 (11:44 +0100)]
Add ass_realloc_array()

Helps with overflow and allocation failure checking.

10 years agoCheck more mallocs
wm4 [Sun, 9 Nov 2014 09:41:54 +0000 (10:41 +0100)]
Check more mallocs

This is just a start and gets most easy ones.

10 years agoProvide SIZE_MAX fallback
wm4 [Sun, 9 Nov 2014 09:40:59 +0000 (10:40 +0100)]
Provide SIZE_MAX fallback

SIZE_MAX is in C99, but not in C89. It is in <stdint.h>, and is always a
macro, so this fallback should be pretty portable and cause no issues.

10 years agoCheck more allocations
Rodger Combs [Fri, 7 Nov 2014 18:49:18 +0000 (14:49 -0400)]
Check more allocations

Part of #146

10 years agoFix UB at left shifts of negative integers
Dr.Smile [Fri, 7 Nov 2014 14:14:40 +0000 (17:14 +0300)]
Fix UB at left shifts of negative integers

10 years agoFix subpixel shadow shift
Dr.Smile [Wed, 5 Nov 2014 23:57:03 +0000 (02:57 +0300)]
Fix subpixel shadow shift

10 years agoOnly use the subpixel value when shifting bitmaps. Fixes #142
Rodger Combs [Wed, 5 Nov 2014 18:52:07 +0000 (14:52 -0400)]
Only use the subpixel value when shifting bitmaps. Fixes #142