[vlc-devel] commit: libass: rename types to match upstream (Grigori Goronzy )

git version control git at videolan.org
Fri Aug 7 00:30:55 CEST 2009


vlc | branch: master | Grigori Goronzy <greg at blackbox> | Thu Aug  6 23:53:38 2009 +0200| [e8189268e1b1099611657b67800cf10454936af9] | committer: Laurent Aimar 

libass: rename types to match upstream

Rename types and add compatibility macro for old libass versions.

Signed-off-by: Laurent Aimar <fenrir at videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e8189268e1b1099611657b67800cf10454936af9
---

 modules/codec/libass.c |   43 +++++++++++++++++++++++++------------------
 1 files changed, 25 insertions(+), 18 deletions(-)

diff --git a/modules/codec/libass.c b/modules/codec/libass.c
index 16a4860..bfe0ab9 100644
--- a/modules/codec/libass.c
+++ b/modules/codec/libass.c
@@ -47,6 +47,14 @@
 #   include <vlc_charset.h>
 #endif
 
+/* Compatibility with old libass */
+#if !defined(LIBASS_VERSION) || LIBASS_VERSION < 0x00907010
+#   define ASS_Renderer    ass_renderer_t
+#   define ASS_Library     ass_library_t
+#   define ASS_Track       ass_track_t
+#   define ASS_Image       ass_image_t
+#endif
+
 /*****************************************************************************
  * Module descriptor
  *****************************************************************************/
@@ -71,13 +79,13 @@ static void UpdateRegions( spu_t *,
                            subpicture_t *, const video_format_t *, mtime_t );
 
 /* Yes libass sux with threads */
-typedef struct 
+typedef struct
 {
     vlc_object_t   *p_libvlc;
 
     int             i_refcount;
-    ass_library_t   *p_library;
-    ass_renderer_t  *p_renderer;
+    ASS_Library     *p_library;
+    ASS_Renderer    *p_renderer;
     video_format_t  fmt;
 } ass_handle_t;
 static ass_handle_t *AssHandleHold( decoder_t *p_dec );
@@ -96,7 +104,7 @@ struct decoder_sys_t
     ass_handle_t *p_ass;
 
     /* */
-    ass_track_t  *p_track;
+    ASS_Track    *p_track;
 };
 static void DecSysRelease( decoder_sys_t *p_sys );
 static void DecSysHold( decoder_sys_t *p_sys );
@@ -117,9 +125,9 @@ typedef struct
     int y1;
 } rectangle_t;
 
-static int BuildRegions( spu_t *p_spu, rectangle_t *p_region, int i_max_region, ass_image_t *p_img_list, int i_width, int i_height );
+static int BuildRegions( spu_t *p_spu, rectangle_t *p_region, int i_max_region, ASS_Image *p_img_list, int i_width, int i_height );
 static void SubpictureReleaseRegions( spu_t *p_spu, subpicture_t *p_subpic );
-static void RegionDraw( subpicture_region_t *p_region, ass_image_t *p_img );
+static void RegionDraw( subpicture_region_t *p_region, ASS_Image *p_img );
 
 static vlc_mutex_t libass_lock = VLC_STATIC_MUTEX;
 
@@ -132,7 +140,7 @@ static int Create( vlc_object_t *p_this )
 {
     decoder_t *p_dec = (decoder_t *)p_this;
     decoder_sys_t *p_sys;
-    ass_track_t *p_track;
+    ASS_Track *p_track;
 
     if( p_dec->fmt_in.i_codec != VLC_CODEC_SSA )
         return VLC_EGENERIC;
@@ -339,8 +347,8 @@ static void UpdateRegions( spu_t *p_spu, subpicture_t *p_subpic,
     /* */
     const mtime_t i_stream_date = p_subpic->p_sys->i_pts + (i_ts - p_subpic->i_start);
     int i_changed;
-    ass_image_t *p_img = ass_render_frame( p_ass->p_renderer, p_sys->p_track,
-                                           i_stream_date/1000, &i_changed );
+    ASS_Image *p_img = ass_render_frame( p_ass->p_renderer, p_sys->p_track,
+                                         i_stream_date/1000, &i_changed );
 
     if( !i_changed && !b_fmt_changed &&
         (p_img != NULL) == (p_subpic->p_region != NULL) )
@@ -408,7 +416,7 @@ static rectangle_t r_create( int x0, int y0, int x1, int y1 )
     rectangle_t r = { x0, y0, x1, y1 };
     return r;
 }
-static rectangle_t r_img( const ass_image_t *p_img )
+static rectangle_t r_img( const ASS_Image *p_img )
 {
     return r_create( p_img->dst_x, p_img->dst_y, p_img->dst_x+p_img->w, p_img->dst_y+p_img->h );
 }
@@ -429,9 +437,9 @@ static bool r_overlap( const rectangle_t *a, const rectangle_t *b, int i_dx, int
             __MAX(a->y0-i_dy, b->y0) < __MIN( a->y1+i_dy, b->y1 );
 }
 
-static int BuildRegions( spu_t *p_spu, rectangle_t *p_region, int i_max_region, ass_image_t *p_img_list, int i_width, int i_height )
+static int BuildRegions( spu_t *p_spu, rectangle_t *p_region, int i_max_region, ASS_Image *p_img_list, int i_width, int i_height )
 {
-    ass_image_t *p_tmp;
+    ASS_Image *p_tmp;
     int i_count;
 
     VLC_UNUSED(p_spu);
@@ -445,7 +453,7 @@ static int BuildRegions( spu_t *p_spu, rectangle_t *p_region, int i_max_region,
     if( i_count <= 0 )
         return 0;
 
-    ass_image_t **pp_img = calloc( i_count, sizeof(*pp_img) );
+    ASS_Image **pp_img = calloc( i_count, sizeof(*pp_img) );
     if( !pp_img )
         return 0;
 
@@ -478,7 +486,7 @@ static int BuildRegions( spu_t *p_spu, rectangle_t *p_region, int i_max_region,
             b_ok = false;
             for( n = 0; n < i_count; n++ )
             {
-                ass_image_t *p_img = pp_img[n];
+                ASS_Image *p_img = pp_img[n];
                 if( !p_img )
                     continue;
                 rectangle_t r = r_img( p_img );
@@ -554,7 +562,7 @@ static int BuildRegions( spu_t *p_spu, rectangle_t *p_region, int i_max_region,
     return i_region;
 }
 
-static void RegionDraw( subpicture_region_t *p_region, ass_image_t *p_img )
+static void RegionDraw( subpicture_region_t *p_region, ASS_Image *p_img )
 {
     const plane_t *p = &p_region->p_picture->p[0];
     const int i_x = p_region->i_x;
@@ -633,8 +641,8 @@ static ass_handle_t *AssHandleHold( decoder_t *p_dec )
     vlc_mutex_lock( &libass_lock );
 
     ass_handle_t *p_ass = NULL;
-    ass_library_t *p_library = NULL;
-    ass_renderer_t *p_renderer = NULL;
+    ASS_Library *p_library = NULL;
+    ASS_Renderer *p_renderer = NULL;
     vlc_value_t val;
 
     var_Create( p_dec->p_libvlc, "libass-handle", VLC_VAR_ADDRESS );
@@ -814,4 +822,3 @@ static void AssHandleRelease( ass_handle_t *p_ass )
     vlc_mutex_unlock( &libass_lock );
     free( p_ass );
 }
-




More information about the vlc-devel mailing list