]> git.sesse.net Git - vlc/commitdiff
Split should now be complete (postproc still needs to be fixed).
authorAntoine Cellerier <dionoea@videolan.org>
Tue, 3 Jun 2008 13:19:37 +0000 (15:19 +0200)
committerAntoine Cellerier <dionoea@videolan.org>
Tue, 3 Jun 2008 13:19:37 +0000 (15:19 +0200)
modules/codec/ffmpeg/Modules.am
modules/codec/ffmpeg/avcodec.c
modules/codec/ffmpeg/avcodec.h
modules/codec/ffmpeg/avformat.c
modules/codec/ffmpeg/avutil.h [new file with mode: 0644]
modules/codec/ffmpeg/imgresample.c
modules/codec/ffmpeg/mux.c
modules/codec/ffmpeg/swscale.c
modules/codec/ffmpeg/video.c

index 2e844cbeae803761d09b80ac25d9826067124c08..a88ab9e61a21da907429d466d097a70f07e740f9 100644 (file)
@@ -4,6 +4,7 @@ SOURCES_avcodec = \
        video.c \
        audio.c \
        deinterlace.c \
+       avutil.h \
        fourcc.h \
        chroma.h \
        $(NULL)
@@ -20,6 +21,7 @@ SOURCES_avformat = \
        avformat.c \
        avformat.h \
        demux.c \
+       avutil.h \
        fourcc.h \
        chroma.h \
        $(NULL)
index 3d99bd33c6e9214637586147b994a9a749b176dd..120566f5259c2f21d418561d2039b8947cfe2129 100644 (file)
@@ -49,6 +49,7 @@
 
 #include "avcodec.h"
 #include "fourcc.h"
+#include "avutil.h"
 
 /*****************************************************************************
  * decoder_sys_t: decoder descriptor
@@ -333,63 +334,6 @@ static void CloseDecoder( vlc_object_t *p_this )
     free( p_sys );
 }
 
-/*****************************************************************************
- *
- *****************************************************************************/
-void LibavcodecCallback( void *p_opaque, int i_level,
-                             const char *psz_format, va_list va )
-{
-    int i_vlc_level;
-    AVCodecContext *p_avctx = (AVCodecContext *)p_opaque;
-    AVClass *p_avc;
-    vlc_object_t *p_this;
-    char *psz_new_format;
-    const char *psz_item_name;
-
-    p_avc = p_avctx ? p_avctx->av_class : 0;
-
-#define cln p_avc->class_name
-    /* Make sure we can get p_this back */
-    if( !p_avctx || !p_avc || !cln ||
-        cln[0]!='A' || cln[1]!='V' || cln[2]!='C' || cln[3]!='o' ||
-        cln[4]!='d' || cln[5]!='e' || cln[6]!='c' )
-    {
-        if( i_level == AV_LOG_ERROR ) vfprintf( stderr, psz_format, va );
-        return;
-    }
-#undef cln
-
-    p_this = (vlc_object_t *)p_avctx->opaque;
-
-    switch( i_level )
-    {
-    case AV_LOG_QUIET:
-        i_vlc_level = VLC_MSG_ERR;
-        break;
-    case AV_LOG_ERROR:
-        i_vlc_level = VLC_MSG_WARN;
-        break;
-    case AV_LOG_INFO:
-        i_vlc_level = VLC_MSG_DBG;
-        break;
-    case AV_LOG_DEBUG:
-        /* Print debug messages if they were requested */
-        if( p_avctx->debug ) vfprintf( stderr, psz_format, va );
-        return;
-    default:
-        return;
-    }
-
-    psz_item_name = p_avc->item_name(p_opaque);
-    psz_new_format = malloc( strlen(psz_format) + strlen(psz_item_name)
-                              + 18 + 5 );
-    snprintf( psz_new_format, strlen(psz_format) + strlen(psz_item_name)
-              + 18 + 5, "%s (%s@%p)", psz_format, p_avc->item_name(p_opaque), p_opaque );
-    msg_GenericVa( p_this, i_vlc_level,
-                    MODULE_STRING, psz_new_format, va );
-    free( psz_new_format );
-}
-
 void InitLibavcodec( vlc_object_t *p_object )
 {
     static int b_ffmpeginit = 0;
@@ -400,7 +344,7 @@ void InitLibavcodec( vlc_object_t *p_object )
     {
         avcodec_init();
         avcodec_register_all();
-        av_log_set_callback( LibavcodecCallback );
+        av_log_set_callback( LibavutilCallback );
         b_ffmpeginit = 1;
 
         msg_Dbg( p_object, "libavcodec initialized (interface %d )",
index d95c2e89ac84500980523de603ed3ce42d1ae3f0..5938f08cf87d3875edefb7d9fd8ddf3a9c143c20 100644 (file)
@@ -21,8 +21,6 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
-#include <vlc_codecs.h>                               /* BITMAPINFOHEADER */
-
 picture_t * DecodeVideo    ( decoder_t *, block_t ** );
 aout_buffer_t * DecodeAudio( decoder_t *, block_t ** );
 
index 897f631595bbf6d84a1c507389abc66a17b65dc0..59a5862fd279aef65b2ee41f62fd8fbc434a3f4a 100644 (file)
 #include <vlc_codec.h>
 
 /* ffmpeg header */
-#define HAVE_MMX 1
-#ifdef HAVE_LIBAVCODEC_AVCODEC_H
-#   include <libavcodec/avcodec.h>
-#elif defined(HAVE_FFMPEG_AVCODEC_H)
-#   include <ffmpeg/avcodec.h>
-#else
-#   include <avcodec.h>
-#endif
-
-#if LIBAVCODEC_BUILD < 5000
-#   error You must have a libavcodec >= 5000 (get CVS)
+#ifdef HAVE_LIBAVFORMAT_AVFORMAT_H
+#   include <libavformat/avformat.h>
+#elif defined(HAVE_FFMPEG_AVFORMAT_H)
+#   include <ffmpeg/avformat.h>
 #endif
 
 #include "avformat.h"
@@ -70,84 +63,3 @@ vlc_module_begin();
     set_callbacks( OpenMux, CloseMux );
 #endif
 vlc_module_end();
-
-/*****************************************************************************
- *
- *****************************************************************************/
-void LibavcodecCallback( void *p_opaque, int i_level,
-                             const char *psz_format, va_list va )
-{
-    int i_vlc_level;
-    AVCodecContext *p_avctx = (AVCodecContext *)p_opaque;
-    AVClass *p_avc;
-    vlc_object_t *p_this;
-    char *psz_new_format;
-    const char *psz_item_name;
-
-    p_avc = p_avctx ? p_avctx->av_class : 0;
-
-#define cln p_avc->class_name
-    /* Make sure we can get p_this back */
-    if( !p_avctx || !p_avc || !cln ||
-        cln[0]!='A' || cln[1]!='V' || cln[2]!='C' || cln[3]!='o' ||
-        cln[4]!='d' || cln[5]!='e' || cln[6]!='c' )
-    {
-        if( i_level == AV_LOG_ERROR ) vfprintf( stderr, psz_format, va );
-        return;
-    }
-#undef cln
-
-    p_this = (vlc_object_t *)p_avctx->opaque;
-
-    switch( i_level )
-    {
-    case AV_LOG_QUIET:
-        i_vlc_level = VLC_MSG_ERR;
-        break;
-    case AV_LOG_ERROR:
-        i_vlc_level = VLC_MSG_WARN;
-        break;
-    case AV_LOG_INFO:
-        i_vlc_level = VLC_MSG_DBG;
-        break;
-    case AV_LOG_DEBUG:
-        /* Print debug messages if they were requested */
-        if( p_avctx->debug ) vfprintf( stderr, psz_format, va );
-        return;
-    default:
-        return;
-    }
-
-    psz_item_name = p_avc->item_name(p_opaque);
-    psz_new_format = malloc( strlen(psz_format) + strlen(psz_item_name)
-                              + 18 + 5 );
-    snprintf( psz_new_format, strlen(psz_format) + strlen(psz_item_name)
-              + 18 + 5, "%s (%s@%p)", psz_format, p_avc->item_name(p_opaque), p_opaque );
-    msg_GenericVa( p_this, i_vlc_level,
-                    MODULE_STRING, psz_new_format, va );
-    free( psz_new_format );
-}
-
-void InitLibavcodec( vlc_object_t *p_object )
-{
-    static int b_ffmpeginit = 0;
-    vlc_mutex_t *lock = var_AcquireMutex( "avcodec" );
-
-    /* *** init ffmpeg library (libavcodec) *** */
-    if( !b_ffmpeginit )
-    {
-        avcodec_init();
-        avcodec_register_all();
-        av_log_set_callback( LibavcodecCallback );
-        b_ffmpeginit = 1;
-
-        msg_Dbg( p_object, "libavcodec initialized (interface %d )",
-                 LIBAVCODEC_VERSION_INT );
-    }
-    else
-    {
-        msg_Dbg( p_object, "libavcodec already initialized" );
-    }
-
-    vlc_mutex_unlock( lock );
-}
diff --git a/modules/codec/ffmpeg/avutil.h b/modules/codec/ffmpeg/avutil.h
new file mode 100644 (file)
index 0000000..d7e5548
--- /dev/null
@@ -0,0 +1,80 @@
+/*****************************************************************************
+ * avutil.h: avutil helper functions
+ *****************************************************************************
+ * Copyright (C) 1999-2008 the VideoLAN team
+ * $Id$
+ *
+ * Authors: Laurent Aimar <fenrir@via.ecp.fr>
+ *          Gildas Bazin <gbazin@videolan.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+/*****************************************************************************
+ * Export libavutil messages to the VLC message system
+ *****************************************************************************/
+void LibavutilCallback( void *p_opaque, int i_level,
+                        const char *psz_format, va_list va )
+{
+    int i_vlc_level;
+    AVCodecContext *p_avctx = (AVCodecContext *)p_opaque;
+    AVClass *p_avc;
+    vlc_object_t *p_this;
+    char *psz_new_format;
+    const char *psz_item_name;
+
+    p_avc = p_avctx ? p_avctx->av_class : 0;
+
+#define cln p_avc->class_name
+    /* Make sure we can get p_this back */
+    if( !p_avctx || !p_avc || !cln ||
+        cln[0]!='A' || cln[1]!='V' || cln[2]!='C' || cln[3]!='o' ||
+        cln[4]!='d' || cln[5]!='e' || cln[6]!='c' )
+    {
+        if( i_level == AV_LOG_ERROR ) vfprintf( stderr, psz_format, va );
+        return;
+    }
+#undef cln
+
+    p_this = (vlc_object_t *)p_avctx->opaque;
+
+    switch( i_level )
+    {
+    case AV_LOG_QUIET:
+        i_vlc_level = VLC_MSG_ERR;
+        break;
+    case AV_LOG_ERROR:
+        i_vlc_level = VLC_MSG_WARN;
+        break;
+    case AV_LOG_INFO:
+        i_vlc_level = VLC_MSG_DBG;
+        break;
+    case AV_LOG_DEBUG:
+        /* Print debug messages if they were requested */
+        if( p_avctx->debug ) vfprintf( stderr, psz_format, va );
+        return;
+    default:
+        return;
+    }
+
+    psz_item_name = p_avc->item_name(p_opaque);
+    psz_new_format = malloc( strlen(psz_format) + strlen(psz_item_name)
+                              + 18 + 5 );
+    snprintf( psz_new_format, strlen(psz_format) + strlen(psz_item_name)
+              + 18 + 5, "%s (%s@%p)", psz_format, p_avc->item_name(p_opaque), p_opaque );
+    msg_GenericVa( p_this, i_vlc_level,
+                    MODULE_STRING, psz_new_format, va );
+    free( psz_new_format );
+}
index 1622a5b3477d4b4eb7841f153a07d9ab11f415af..1a132758400caf48e46d8bab0f4214a5d44b88f2 100644 (file)
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * ffmpeg.c: video decoder using ffmpeg library
+ * imageresample.c: scaling and chroma conversion using the old libavcodec API
  *****************************************************************************
  * Copyright (C) 1999-2001 the VideoLAN team
  * $Id$
 #include <vlc_plugin.h>
 #include <vlc_codec.h>
 
-/* ffmpeg header */
-#define HAVE_MMX 1
-#ifdef HAVE_LIBAVCODEC_AVCODEC_H
-#   include <libavcodec/avcodec.h>
-#elif defined(HAVE_FFMPEG_AVCODEC_H)
-#   include <ffmpeg/avcodec.h>
-#else
-#   include <avcodec.h>
-#endif
-
-#if LIBAVCODEC_BUILD < 5000
-#   error You must have a libavcodec >= 5000 (get CVS)
-#endif
-
 #include "imgresample.h"
 
-/****************************************************************************
- * Local prototypes
- ****************************************************************************/
-static const int pi_mode_values[] = { 0, 1, 2, 4, 8, 5, 6, 9, 10 };
-static const char *const ppsz_mode_descriptions[] =
-{ N_("Fast bilinear"), N_("Bilinear"), N_("Bicubic (good quality)"),
-  N_("Experimental"), N_("Nearest neighbour (bad quality)"),
-  N_("Area"), N_("Luma bicubic / chroma bilinear"), N_("Gauss"),
-  N_("SincR"), N_("Lanczos"), N_("Bicubic spline") };
-
 /*****************************************************************************
  * Module descriptor
  *****************************************************************************/
index 7e5d64c9a5bee98fdc16c84fab255d8bec78ac75..a8b783591a0378b5bd7f22e354c8ddfc0b883d04 100644 (file)
 
 #include "avformat.h"
 #include "fourcc.h"
+#include "avutil.h"
 
 //#define AVFORMAT_DEBUG 1
 
-/* Version checking */
-#if defined(HAVE_LIBAVFORMAT_AVFORMAT_H) || defined(HAVE_FFMPEG_AVFORMAT_H)
-
 static const char *const ppsz_mux_options[] = {
     "mux", NULL
 };
@@ -95,7 +93,7 @@ int OpenMux( vlc_object_t *p_this )
 
     /* Should we call it only once ? */
     av_register_all();
-    av_log_set_callback( LibavcodecCallback );
+    av_log_set_callback( LibavutilCallback );
 
     config_ChainParse( p_mux, "ffmpeg-", ppsz_mux_options, p_mux->p_cfg );
 
@@ -224,7 +222,7 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
     }
     codec = stream->codec;
 
-    /* This is used by LibavcodecCallback (ffmpeg.c) to print messages */
+    /* This is used by LibavutilCallback (avutil.h) to print messages */
     codec->opaque = (void*)p_mux;
 
     switch( p_input->p_fmt->i_cat )
@@ -505,5 +503,3 @@ static offset_t IOSeek( void *opaque, offset_t offset, int whence )
 
     return 0;
 }
-
-#endif /* HAVE_FFMPEG_AVFORMAT_H */
index c8c48332196c45068b5dc27fa7698a2d56c5ca08..61f7b2bb428f1d58569ea7fa5727aa77241e8359 100644 (file)
@@ -38,7 +38,7 @@
  * Local prototypes
  ****************************************************************************/
 static const int pi_mode_values[] = { 0, 1, 2, 4, 8, 5, 6, 9, 10 };
-static const char *const ppsz_mode_descriptions[] =
+const char *const ppsz_mode_descriptions[] =
 { N_("Fast bilinear"), N_("Bilinear"), N_("Bicubic (good quality)"),
   N_("Experimental"), N_("Nearest neighbour (bad quality)"),
   N_("Area"), N_("Luma bicubic / chroma bilinear"), N_("Gauss"),
index f8a7a204546de7081588d93e286bf4114fd38a37..3e380bb6a3fe1e10ec7eda726e5eb35efa8a7b43 100644 (file)
@@ -33,6 +33,7 @@
 #include <vlc_codec.h>
 #include <vlc_vout.h>
 #include <vlc_input.h>                  /* hmmm, just for INPUT_RATE_DEFAULT */
+#include <vlc_codecs.h>                               /* BITMAPINFOHEADER */
 
 /* ffmpeg header */
 #ifdef HAVE_LIBAVCODEC_AVCODEC_H