diff options
Diffstat (limited to 'libass')
-rw-r--r-- | libass/ass_cache_template.h | 1 | ||||
-rw-r--r-- | libass/ass_drawing.c | 20 | ||||
-rw-r--r-- | libass/ass_drawing.h | 3 | ||||
-rw-r--r-- | libass/ass_render.c | 2 |
4 files changed, 4 insertions, 22 deletions
diff --git a/libass/ass_cache_template.h b/libass/ass_cache_template.h index ba9303f..2cb2df4 100644 --- a/libass/ass_cache_template.h +++ b/libass/ass_cache_template.h @@ -114,7 +114,6 @@ START(drawing, drawing_hash_key) GENERIC(unsigned, border_style) GENERIC(int, hspacing) GENERIC(int, scale) - GENERIC(unsigned, hash) STRING(text) END(DrawingHashKey) diff --git a/libass/ass_drawing.c b/libass/ass_drawing.c index 5918469..01547d8 100644 --- a/libass/ass_drawing.c +++ b/libass/ass_drawing.c @@ -265,29 +265,17 @@ void ass_drawing_set_text(ASS_Drawing *drawing, char *str, size_t len) } /* - * \brief Create a hashcode for the drawing - * XXX: To avoid collisions a better hash algorithm might be useful. - */ -void ass_drawing_hash(ASS_Drawing *drawing) -{ - if (!drawing->text) - return; - drawing->hash = fnv_32a_str(drawing->text, FNV1_32A_INIT); -} - -/* * \brief Convert token list to outline. Calls the line and curve evaluators. */ ASS_Outline *ass_drawing_parse(ASS_Drawing *drawing, bool raw_mode) { bool started = false; - ASS_DrawingToken *token; ASS_Vector pen = {0, 0}; - drawing->tokens = drawing_tokenize(drawing->text); + ASS_DrawingToken *tokens = drawing_tokenize(drawing->text); drawing_prepare(drawing); - token = drawing->tokens; + ASS_DrawingToken *token = tokens; while (token) { // Draw something according to current command switch (token->type) { @@ -356,10 +344,10 @@ ASS_Outline *ass_drawing_parse(ASS_Drawing *drawing, bool raw_mode) } drawing_finish(drawing, raw_mode); - drawing_free_tokens(drawing->tokens); + drawing_free_tokens(tokens); return &drawing->outline; error: - drawing_free_tokens(drawing->tokens); + drawing_free_tokens(tokens); return NULL; } diff --git a/libass/ass_drawing.h b/libass/ass_drawing.h index 95e361f..5fef7e0 100644 --- a/libass/ass_drawing.h +++ b/libass/ass_drawing.h @@ -51,11 +51,9 @@ typedef struct { int desc; // descender ASS_Outline outline; // target outline ASS_Vector advance; // advance (from cbox) - int hash; // hash value (for caching) // private ASS_Library *library; - ASS_DrawingToken *tokens; // tokenized drawing double point_scale_x; double point_scale_y; ASS_Rect cbox; // bounding box, or let's say... VSFilter's idea of it @@ -64,7 +62,6 @@ typedef struct { ASS_Drawing *ass_drawing_new(ASS_Library *lib); void ass_drawing_free(ASS_Drawing *drawing); void ass_drawing_set_text(ASS_Drawing *drawing, char *str, size_t n); -void ass_drawing_hash(ASS_Drawing *drawing); ASS_Outline *ass_drawing_parse(ASS_Drawing *drawing, bool raw_mode); #endif /* LIBASS_DRAWING_H */ diff --git a/libass/ass_render.c b/libass/ass_render.c index 4ac5798..1f9bc81 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -975,7 +975,6 @@ fill_glyph_hash(ASS_Renderer *priv, OutlineHashKey *outline_key, // so for normal borders, maximize cache utility by ignoring it key->hspacing = info->border_style == 3 ? double_to_d16(info->hspacing) : 0; - key->hash = info->drawing->hash; key->text = info->drawing->text; key->pbo = info->drawing->pbo; key->scale = info->drawing->scale; @@ -1032,7 +1031,6 @@ get_outline_glyph(ASS_Renderer *priv, GlyphInfo *info) if (info->drawing) { ASS_Drawing *drawing = info->drawing; - ass_drawing_hash(drawing); if(!ass_drawing_parse(drawing, false) || !outline_copy(&val->outline, &drawing->outline)) { ass_cache_commit(val, 1); |