]> git.sesse.net Git - vlc/blobdiff - modules/video_filter/mosaic.c
mft: Link to mfplat when building with msvc
[vlc] / modules / video_filter / mosaic.c
index c59fb3953cc63bbd23a3d3974760708a7b3e9312..63d74a759574eb4cc6a4d067b36170721c549ce5 100644 (file)
@@ -433,8 +433,6 @@ static subpicture_t *Filter( filter_t *p_filter, mtime_t date )
     filter_sys_t *p_sys = p_filter->p_sys;
     bridge_t *p_bridge;
 
-    subpicture_t *p_spu;
-
     int i_index, i_real_index, i_row, i_col;
     int i_greatest_real_index_used = p_sys->i_order_length - 1;
 
@@ -444,7 +442,7 @@ static subpicture_t *Filter( filter_t *p_filter, mtime_t date )
     subpicture_region_t *p_region_prev = NULL;
 
     /* Allocate the subpicture internal data. */
-    p_spu = filter_NewSubpicture( p_filter );
+    subpicture_t *p_spu = filter_NewSubpicture( p_filter );
     if( !p_spu )
         return NULL;
 
@@ -456,6 +454,9 @@ static subpicture_t *Filter( filter_t *p_filter, mtime_t date )
     p_spu->i_alpha = p_sys->i_alpha;
     p_spu->b_absolute = false;
 
+    p_spu->i_original_picture_width = p_sys->i_width;
+    p_spu->i_original_picture_height = p_sys->i_height;
+
     vlc_mutex_lock( &p_sys->lock );
     vlc_global_lock( VLC_MOSAIC_MUTEX );
 
@@ -647,10 +648,10 @@ static subpicture_t *Filter( filter_t *p_filter, mtime_t date )
         if( !p_region )
         {
             msg_Err( p_filter, "cannot allocate SPU region" );
-            p_filter->pf_sub_buffer_del( p_filter, p_spu );
+            subpicture_Delete( p_spu );
             vlc_global_unlock( VLC_MOSAIC_MUTEX );
             vlc_mutex_unlock( &p_sys->lock );
-            return p_spu;
+            return NULL;
         }
 
         if( p_es->i_x >= 0 && p_es->i_y >= 0 )