Commit 5eeb2ea4 authored by Grigori Goronzy's avatar Grigori Goronzy Committed by Jean-Baptiste Kempf

libass: rename types to match upstream

Rename types and add compatibility macro for old libass versions.
Signed-off-by: default avatarLaurent Aimar <fenrir@videolan.org>
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>

Cherry-picked from e8189268
parent 676be215
...@@ -48,6 +48,14 @@ ...@@ -48,6 +48,14 @@
# include <vlc_charset.h> # include <vlc_charset.h>
#endif #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 * Module descriptor
*****************************************************************************/ *****************************************************************************/
...@@ -78,8 +86,8 @@ typedef struct ...@@ -78,8 +86,8 @@ typedef struct
vlc_object_t *p_libvlc; vlc_object_t *p_libvlc;
int i_refcount; int i_refcount;
ass_library_t *p_library; ASS_Library *p_library;
ass_renderer_t *p_renderer; ASS_Renderer *p_renderer;
video_format_t fmt; video_format_t fmt;
} ass_handle_t; } ass_handle_t;
static ass_handle_t *AssHandleHold( decoder_t *p_dec ); static ass_handle_t *AssHandleHold( decoder_t *p_dec );
...@@ -98,7 +106,7 @@ struct decoder_sys_t ...@@ -98,7 +106,7 @@ struct decoder_sys_t
ass_handle_t *p_ass; ass_handle_t *p_ass;
/* */ /* */
ass_track_t *p_track; ASS_Track *p_track;
/* */ /* */
subpicture_t *p_spu_final; subpicture_t *p_spu_final;
...@@ -122,9 +130,9 @@ typedef struct ...@@ -122,9 +130,9 @@ typedef struct
int y1; int y1;
} rectangle_t; } 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 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; static vlc_mutex_t libass_lock = VLC_STATIC_MUTEX;
...@@ -137,7 +145,7 @@ static int Create( vlc_object_t *p_this ) ...@@ -137,7 +145,7 @@ static int Create( vlc_object_t *p_this )
{ {
decoder_t *p_dec = (decoder_t *)p_this; decoder_t *p_dec = (decoder_t *)p_this;
decoder_sys_t *p_sys; decoder_sys_t *p_sys;
ass_track_t *p_track; ASS_Track *p_track;
if( p_dec->fmt_in.i_codec != VLC_FOURCC('s','s','a',' ') ) if( p_dec->fmt_in.i_codec != VLC_FOURCC('s','s','a',' ') )
return VLC_EGENERIC; return VLC_EGENERIC;
...@@ -361,7 +369,7 @@ static void UpdateRegions( spu_t *p_spu, subpicture_t *p_subpic, ...@@ -361,7 +369,7 @@ 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); const mtime_t i_stream_date = p_subpic->p_sys->i_pts + (i_ts - p_subpic->i_start);
int i_changed; int i_changed;
ass_image_t *p_img = ass_render_frame( p_ass->p_renderer, p_sys->p_track, ASS_Image *p_img = ass_render_frame( p_ass->p_renderer, p_sys->p_track,
i_stream_date/1000, &i_changed ); i_stream_date/1000, &i_changed );
if( !i_changed && !b_fmt_changed && if( !i_changed && !b_fmt_changed &&
...@@ -430,7 +438,7 @@ static rectangle_t r_create( int x0, int y0, int x1, int y1 ) ...@@ -430,7 +438,7 @@ static rectangle_t r_create( int x0, int y0, int x1, int y1 )
rectangle_t r = { x0, y0, x1, y1 }; rectangle_t r = { x0, y0, x1, y1 };
return r; 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 ); 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 );
} }
...@@ -451,9 +459,9 @@ static bool r_overlap( const rectangle_t *a, const rectangle_t *b, int i_dx, int ...@@ -451,9 +459,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 ); __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; int i_count;
VLC_UNUSED(p_spu); VLC_UNUSED(p_spu);
...@@ -467,7 +475,7 @@ static int BuildRegions( spu_t *p_spu, rectangle_t *p_region, int i_max_region, ...@@ -467,7 +475,7 @@ static int BuildRegions( spu_t *p_spu, rectangle_t *p_region, int i_max_region,
if( i_count <= 0 ) if( i_count <= 0 )
return 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 ) if( !pp_img )
return 0; return 0;
...@@ -500,7 +508,7 @@ static int BuildRegions( spu_t *p_spu, rectangle_t *p_region, int i_max_region, ...@@ -500,7 +508,7 @@ static int BuildRegions( spu_t *p_spu, rectangle_t *p_region, int i_max_region,
b_ok = false; b_ok = false;
for( n = 0; n < i_count; n++ ) 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 ) if( !p_img )
continue; continue;
rectangle_t r = r_img( p_img ); rectangle_t r = r_img( p_img );
...@@ -576,7 +584,7 @@ static int BuildRegions( spu_t *p_spu, rectangle_t *p_region, int i_max_region, ...@@ -576,7 +584,7 @@ static int BuildRegions( spu_t *p_spu, rectangle_t *p_region, int i_max_region,
return i_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 plane_t *p = &p_region->p_picture->p[0];
const int i_x = p_region->i_x; const int i_x = p_region->i_x;
...@@ -655,8 +663,8 @@ static ass_handle_t *AssHandleHold( decoder_t *p_dec ) ...@@ -655,8 +663,8 @@ static ass_handle_t *AssHandleHold( decoder_t *p_dec )
vlc_mutex_lock( &libass_lock ); vlc_mutex_lock( &libass_lock );
ass_handle_t *p_ass = NULL; ass_handle_t *p_ass = NULL;
ass_library_t *p_library = NULL; ASS_Library *p_library = NULL;
ass_renderer_t *p_renderer = NULL; ASS_Renderer *p_renderer = NULL;
vlc_value_t val; vlc_value_t val;
var_Create( p_dec->p_libvlc, "libass-handle", VLC_VAR_ADDRESS ); var_Create( p_dec->p_libvlc, "libass-handle", VLC_VAR_ADDRESS );
...@@ -836,4 +844,3 @@ static void AssHandleRelease( ass_handle_t *p_ass ) ...@@ -836,4 +844,3 @@ static void AssHandleRelease( ass_handle_t *p_ass )
vlc_mutex_unlock( &libass_lock ); vlc_mutex_unlock( &libass_lock );
free( p_ass ); free( p_ass );
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment