]> git.sesse.net Git - vlc/commitdiff
Removed dead code in vout.
authorLaurent Aimar <fenrir@videolan.org>
Sun, 18 Apr 2010 01:18:22 +0000 (03:18 +0200)
committerLaurent Aimar <fenrir@videolan.org>
Sun, 18 Apr 2010 12:58:36 +0000 (14:58 +0200)
include/vlc_vout.h
src/libvlccore.sym
src/video_output/video_output.c
src/video_output/vout_internal.h
src/video_output/vout_pictures.c

index 183bcf61c64324d1f4548b013b175caced685332..b418fc00a4f31cffe7a21094bd818aff730ab312 100644 (file)
@@ -175,8 +175,6 @@ struct vout_thread_t
 #define VOUT_FULLSCREEN_CHANGE  0x0040
 /** i_zoom changed */
 #define VOUT_ZOOM_CHANGE        0x0080
-/** size changed */
-#define VOUT_SIZE_CHANGE        0x0200
 /** depth changed */
 #define VOUT_DEPTH_CHANGE       0x0400
 /** change chroma tables */
@@ -281,8 +279,6 @@ VLC_EXPORT( int, vout_GetSnapshot, ( vout_thread_t *p_vout,
                                      const char *psz_format, mtime_t i_timeout ) );
 
 /* */
-VLC_EXPORT( int,             vout_ChromaCmp,      ( uint32_t, uint32_t ) );
-
 VLC_EXPORT( picture_t *,     vout_CreatePicture,  ( vout_thread_t *, bool, bool, unsigned int ) );
 VLC_EXPORT( void,            vout_DestroyPicture, ( vout_thread_t *, picture_t * ) );
 VLC_EXPORT( void,            vout_DisplayPicture, ( vout_thread_t *, picture_t * ) );
index e618f92d6073999825604065f4769a5a1baa807e..0bb734e5d893addb85329ade0ecacb3e6a7c1c43 100644 (file)
@@ -606,7 +606,6 @@ vlm_MessageNew
 vlm_MessageSimpleNew
 vlm_New
 vout_AllocatePicture
-vout_ChromaCmp
 vout_Close
 vout_Create
 vout_CreatePicture
index 22b07d40799e3a578eb686c56b18d8a4676bf306..a1059988096efb0d44aa96e0f1d81ce4f9df92b7 100644 (file)
@@ -766,22 +766,6 @@ spu_t *vout_GetSpu( vout_thread_t *p_vout )
 static int ChromaCreate( vout_thread_t *p_vout );
 static void ChromaDestroy( vout_thread_t *p_vout );
 
-static bool ChromaIsEqual( const picture_heap_t *p_output, const picture_heap_t *p_render )
-{
-     if( !vout_ChromaCmp( p_output->i_chroma, p_render->i_chroma ) )
-         return false;
-
-     if( p_output->i_chroma != VLC_CODEC_RGB15 &&
-         p_output->i_chroma != VLC_CODEC_RGB16 &&
-         p_output->i_chroma != VLC_CODEC_RGB24 &&
-         p_output->i_chroma != VLC_CODEC_RGB32 )
-         return true;
-
-     return p_output->i_rmask == p_render->i_rmask &&
-            p_output->i_gmask == p_render->i_gmask &&
-            p_output->i_bmask == p_render->i_bmask;
-}
-
 static int InitThread( vout_thread_t *p_vout )
 {
     int i;
@@ -868,66 +852,34 @@ static int InitThread( vout_thread_t *p_vout )
              p_vout->fmt_out.i_sar_num, p_vout->fmt_out.i_sar_den,
              p_vout->fmt_out.i_rmask, p_vout->fmt_out.i_gmask, p_vout->fmt_out.i_bmask );
 
+    assert( p_vout->output.i_width == p_vout->render.i_width &&
+            p_vout->output.i_height == p_vout->render.i_height &&
+            p_vout->output.i_chroma == p_vout->render.i_chroma );
     /* Check whether we managed to create direct buffers similar to
      * the render buffers, ie same size and chroma */
-    if( ( p_vout->output.i_width == p_vout->render.i_width )
-     && ( p_vout->output.i_height == p_vout->render.i_height )
-     && ( ChromaIsEqual( &p_vout->output, &p_vout->render ) ) )
-    {
-        /* Cool ! We have direct buffers, we can ask the decoder to
-         * directly decode into them ! Map the first render buffers to
-         * the first direct buffers, but keep the first direct buffer
-         * for memcpy operations */
-        p_vout->p->b_direct = true;
-
-        for( i = 1; i < VOUT_MAX_PICTURES; i++ )
-        {
-            if( p_vout->p_picture[ i ].i_type != DIRECT_PICTURE &&
-                I_RENDERPICTURES >= VOUT_MIN_DIRECT_PICTURES - 1 &&
-                p_vout->p_picture[ i - 1 ].i_type == DIRECT_PICTURE )
-            {
-                /* We have enough direct buffers so there's no need to
-                 * try to use system memory buffers. */
-                break;
-            }
-            PP_RENDERPICTURE[ I_RENDERPICTURES ] = &p_vout->p_picture[ i ];
-            I_RENDERPICTURES++;
-        }
 
-        msg_Dbg( p_vout, "direct render, mapping "
-                 "render pictures 0-%i to system pictures 1-%i",
-                 VOUT_MAX_PICTURES - 2, VOUT_MAX_PICTURES - 1 );
-    }
-    else
+    /* Cool ! We have direct buffers, we can ask the decoder to
+     * directly decode into them ! Map the first render buffers to
+     * the first direct buffers, but keep the first direct buffer
+     * for memcpy operations */
+    for( i = 1; i < VOUT_MAX_PICTURES; i++ )
     {
-        /* Rats... Something is wrong here, we could not find an output
-         * plugin able to directly render what we decode. See if we can
-         * find a chroma plugin to do the conversion */
-        p_vout->p->b_direct = false;
-
-        if( ChromaCreate( p_vout ) )
-        {
-            vout_EndWrapper( p_vout );
-            return VLC_EGENERIC;
-        }
-
-        msg_Dbg( p_vout, "indirect render, mapping "
-                 "render pictures 0-%i to system pictures %i-%i",
-                 VOUT_MAX_PICTURES - 1, I_OUTPUTPICTURES,
-                 I_OUTPUTPICTURES + VOUT_MAX_PICTURES - 1 );
-
-        /* Append render buffers after the direct buffers */
-        for( i = I_OUTPUTPICTURES; i < 2 * VOUT_MAX_PICTURES; i++ )
+        if( p_vout->p_picture[ i ].i_type != DIRECT_PICTURE &&
+            I_RENDERPICTURES >= VOUT_MIN_DIRECT_PICTURES - 1 &&
+            p_vout->p_picture[ i - 1 ].i_type == DIRECT_PICTURE )
         {
-            PP_RENDERPICTURE[ I_RENDERPICTURES ] = &p_vout->p_picture[ i ];
-            I_RENDERPICTURES++;
-
-            /* Check if we have enough render pictures */
-            if( I_RENDERPICTURES == VOUT_MAX_PICTURES )
-                break;
+            /* We have enough direct buffers so there's no need to
+             * try to use system memory buffers. */
+            break;
         }
+        PP_RENDERPICTURE[ I_RENDERPICTURES ] = &p_vout->p_picture[ i ];
+        I_RENDERPICTURES++;
     }
 
+    msg_Dbg( p_vout, "direct render, mapping "
+             "render pictures 0-%i to system pictures 1-%i",
+             VOUT_MAX_PICTURES - 2, VOUT_MAX_PICTURES - 1 );
+
     return VLC_SUCCESS;
 }
 
@@ -1248,53 +1200,6 @@ static void* RunThread( void *p_this )
         if( p_vout->i_changes & VOUT_ON_TOP_CHANGE )
             p_vout->i_changes &= ~VOUT_ON_TOP_CHANGE;
 
-        if( p_vout->i_changes & VOUT_SIZE_CHANGE )
-        {
-            /* this must only happen when the vout plugin is incapable of
-             * rescaling the picture itself. In this case we need to destroy
-             * the current picture buffers and recreate new ones with the right
-             * dimensions */
-            int i;
-
-            p_vout->i_changes &= ~VOUT_SIZE_CHANGE;
-
-            assert( !p_vout->p->b_direct );
-
-            ChromaDestroy( p_vout );
-
-            vlc_mutex_lock( &p_vout->picture_lock );
-
-            vout_EndWrapper( p_vout );
-
-            p_vout->p->p_picture_displayed = NULL;
-            for( i = 0; i < I_OUTPUTPICTURES; i++ )
-                 p_vout->p_picture[ i ].i_status = FREE_PICTURE;
-            vlc_cond_signal( &p_vout->p->picture_wait );
-
-            I_OUTPUTPICTURES = 0;
-
-            if( vout_InitWrapper( p_vout ) )
-            {
-                msg_Err( p_vout, "cannot resize display" );
-                /* FIXME: pf_end will be called again in CleanThread()? */
-                p_vout->b_error = 1;
-            }
-
-            vlc_mutex_unlock( &p_vout->picture_lock );
-
-            /* Need to reinitialise the chroma plugin. Since we might need
-             * resizing too and it's not sure that we already had it,
-             * recreate the chroma plugin chain from scratch. */
-            /* dionoea */
-            if( ChromaCreate( p_vout ) )
-            {
-                msg_Err( p_vout, "WOW THIS SUCKS BIG TIME!!!!!" );
-                p_vout->b_error = 1;
-            }
-            if( p_vout->b_error )
-                break;
-        }
-
         if( p_vout->i_changes & VOUT_PICTURE_BUFFERS_CHANGE )
         {
             /* This happens when the picture buffers need to be recreated.
@@ -1304,9 +1209,6 @@ static void* RunThread( void *p_this )
              * buffer!! */
             p_vout->i_changes &= ~VOUT_PICTURE_BUFFERS_CHANGE;
 
-            if( !p_vout->p->b_direct )
-                ChromaDestroy( p_vout );
-
             vlc_mutex_lock( &p_vout->picture_lock );
 
             vout_EndWrapper( p_vout );
@@ -1412,9 +1314,6 @@ static void CleanThread( vout_thread_t *p_vout )
 {
     int     i_index;                                        /* index in heap */
 
-    if( !p_vout->p->b_direct )
-        ChromaDestroy( p_vout );
-
     /* Destroy all remaining pictures */
     for( i_index = 0; i_index < 2 * VOUT_MAX_PICTURES + 1; i_index++ )
     {
@@ -1448,64 +1347,6 @@ static void EndThread( vout_thread_t *p_vout )
     filter_chain_Delete( p_vout->p->p_vf2_chain );
 }
 
-/* Thread helpers */
-static picture_t *ChromaGetPicture( filter_t *p_filter )
-{
-    picture_t *p_pic = (picture_t *)p_filter->p_owner;
-    p_filter->p_owner = NULL;
-    return p_pic;
-}
-
-static int ChromaCreate( vout_thread_t *p_vout )
-{
-    static const char typename[] = "chroma";
-    filter_t *p_chroma;
-
-    /* Choose the best module */
-    p_chroma = p_vout->p->p_chroma =
-        vlc_custom_create( p_vout, sizeof(filter_t), VLC_OBJECT_GENERIC,
-                           typename );
-
-    vlc_object_attach( p_chroma, p_vout );
-
-    /* TODO: Set the fmt_in and fmt_out stuff here */
-    p_chroma->fmt_in.video = p_vout->fmt_render;
-    p_chroma->fmt_out.video = p_vout->fmt_out;
-    VideoFormatImportRgb( &p_chroma->fmt_in.video, &p_vout->render );
-    VideoFormatImportRgb( &p_chroma->fmt_out.video, &p_vout->output );
-
-    p_chroma->p_module = module_need( p_chroma, "video filter2", NULL, false );
-
-    if( p_chroma->p_module == NULL )
-    {
-        msg_Err( p_vout, "no chroma module for %4.4s to %4.4s i=%dx%d o=%dx%d",
-                 (char*)&p_vout->render.i_chroma,
-                 (char*)&p_vout->output.i_chroma,
-                 p_chroma->fmt_in.video.i_width, p_chroma->fmt_in.video.i_height,
-                 p_chroma->fmt_out.video.i_width, p_chroma->fmt_out.video.i_height
-                 );
-
-        vlc_object_release( p_vout->p->p_chroma );
-        p_vout->p->p_chroma = NULL;
-
-        return VLC_EGENERIC;
-    }
-    p_chroma->pf_video_buffer_new = ChromaGetPicture;
-    return VLC_SUCCESS;
-}
-
-static void ChromaDestroy( vout_thread_t *p_vout )
-{
-    assert( !p_vout->p->b_direct );
-
-    if( !p_vout->p->p_chroma )
-        return;
-
-    module_unneed( p_vout->p->p_chroma, p_vout->p->p_chroma->p_module );
-    vlc_object_release( p_vout->p->p_chroma );
-    p_vout->p->p_chroma = NULL;
-}
-
 /* following functions are local */
 
 /**
index 21655f5da6c15c9aedc98db20d9731812c2ed657..820bfbb346c495e17322d9ba44fdc42b96c734af 100644 (file)
@@ -66,10 +66,6 @@ struct vout_thread_sys_t
     unsigned int    i_par_num;           /**< monitor pixel aspect-ratio */
     unsigned int    i_par_den;           /**< monitor pixel aspect-ratio */
 
-    /* */
-    bool            b_direct;            /**< rendered are like direct ? */
-    filter_t        *p_chroma;
-
     /**
      * These numbers are not supposed to be accurate, but are a
      * good indication of the thread status */
index 9327a4b28b7a4db306ab9545de98ed01017034e0..07359e24b3ee8aa38505e0c37ebce1980dad5baa 100644 (file)
@@ -368,16 +368,10 @@ picture_t *vout_RenderPicture( vout_thread_t *p_vout, picture_t *p_pic,
         /* We can directly render into a direct buffer */
         p_render = PP_OUTPUTPICTURE[0];
     }
-    /* Copy or convert */
-    if( p_vout->p->b_direct )
-    {
-        picture_Copy( p_render, p_pic );
-    }
-    else
-    {
-        p_vout->p->p_chroma->p_owner = (filter_owner_sys_t *)p_render;
-        p_vout->p->p_chroma->pf_video_filter( p_vout->p->p_chroma, p_pic );
-    }
+
+    /* Copy */
+    picture_Copy( p_render, p_pic );
+
     /* Render the subtitles if present */
     if( p_subpic )
         spu_RenderSubpictures( p_vout->p_spu,
@@ -540,56 +534,6 @@ int vout_AllocatePicture( vlc_object_t *p_this, picture_t *p_pic,
     return VLC_SUCCESS;
 }
 
-/**
- * Compare two chroma values
- *
- * This function returns 1 if the two fourcc values given as argument are
- * the same format (eg. UYVY/UYNV) or almost the same format (eg. I420/YV12)
- */
-int vout_ChromaCmp( vlc_fourcc_t i_chroma, vlc_fourcc_t i_amorhc )
-{
-    static const vlc_fourcc_t p_I420[] = {
-        VLC_CODEC_I420, VLC_CODEC_YV12, VLC_CODEC_J420, 0
-    };
-    static const vlc_fourcc_t p_I422[] = {
-        VLC_CODEC_I422, VLC_CODEC_J422, 0
-    };
-    static const vlc_fourcc_t p_I440[] = {
-        VLC_CODEC_I440, VLC_CODEC_J440, 0
-    };
-    static const vlc_fourcc_t p_I444[] = {
-        VLC_CODEC_I444, VLC_CODEC_J444, 0
-    };
-    static const vlc_fourcc_t *pp_fcc[] = {
-        p_I420, p_I422, p_I440, p_I444, NULL
-    };
-
-    /* */
-    i_chroma = vlc_fourcc_GetCodec( VIDEO_ES, i_chroma );
-    i_amorhc = vlc_fourcc_GetCodec( VIDEO_ES, i_amorhc );
-
-    /* If they are the same, they are the same ! */
-    if( i_chroma == i_amorhc )
-        return 1;
-
-    /* Check for equivalence classes */
-    for( int i = 0; pp_fcc[i] != NULL; i++ )
-    {
-        bool b_fcc1 = false;
-        bool b_fcc2 = false;
-        for( int j = 0; pp_fcc[i][j] != 0; j++ )
-        {
-            if( i_chroma == pp_fcc[i][j] )
-                b_fcc1 = true;
-            if( i_amorhc == pp_fcc[i][j] )
-                b_fcc2 = true;
-        }
-        if( b_fcc1 && b_fcc2 )
-            return 1;
-    }
-    return 0;
-}
-
 /*****************************************************************************
  *
  *****************************************************************************/