ass_renderer_t *p_renderer;
video_format_t fmt;
} ass_handle_t;
-static ass_handle_t *AssHandleYield( decoder_t *p_dec );
+static ass_handle_t *AssHandleHold( decoder_t *p_dec );
static void AssHandleRelease( ass_handle_t * );
/* */
subpicture_t *p_spu_final;
};
static void DecSysRelease( decoder_sys_t *p_sys );
-static void DecSysYield( decoder_sys_t *p_sys );
+static void DecSysHold( decoder_sys_t *p_sys );
struct subpicture_sys_t
{
return VLC_ENOMEM;
/* */
- p_sys->p_ass = AssHandleYield( p_dec );
+ p_sys->p_ass = AssHandleHold( p_dec );
if( !p_sys->p_ass )
{
free( p_sys );
DecSysRelease( p_dec->p_sys );
}
-static void DecSysYield( decoder_sys_t *p_sys )
+static void DecSysHold( decoder_sys_t *p_sys )
{
vlc_mutex_lock( &p_sys->lock );
p_sys->i_refcount++;
p_spu->pf_destroy = DestroySubpicture;
p_spu->p_sys->p_dec_sys = p_sys;
- DecSysYield( p_sys );
+ DecSysHold( p_sys );
block_Release( p_block );
fmt_region.i_height =
fmt_region.i_visible_height = region[i].y1 - region[i].y0;
- pp_region[i] = r = p_subpic->pf_create_region( VLC_OBJECT(p_spu), &fmt_region );
+ pp_region[i] = r = subpicture_region_New( &fmt_region );
if( !r )
break;
r->i_x = region[i].x0;
static void RegionDraw( subpicture_region_t *p_region, ass_image_t *p_img )
{
- const plane_t *p = &p_region->picture.p[0];
+ const plane_t *p = &p_region->p_picture->p[0];
const int i_x = p_region->i_x;
const int i_y = p_region->i_y;
const int i_width = p_region->fmt.i_width;
static void SubpictureReleaseRegions( spu_t *p_spu, subpicture_t *p_subpic )
{
- while( p_subpic->p_region )
- {
- subpicture_region_t *p_region = p_subpic->p_region;
- p_subpic->p_region = p_region->p_next;
- spu_DestroyRegion( p_spu, p_region );
- }
+ subpicture_region_ChainDelete( p_subpic->p_region );
p_subpic->p_region = NULL;
}
/* */
-static ass_handle_t *AssHandleYield( decoder_t *p_dec )
+static ass_handle_t *AssHandleHold( decoder_t *p_dec )
{
vlc_mutex_t *p_lock = var_AcquireMutex( "libass" );
if( !p_lock )