Commit 3a49e9f3 authored by Antoine Cellerier's avatar Antoine Cellerier

Split should now be complete (postproc still needs to be fixed).

parent 11aac010
......@@ -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)
......
......@@ -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 )",
......
......@@ -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 ** );
......
......@@ -34,17 +34,10 @@
#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 );
}
/*****************************************************************************
* 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 );
}
/*****************************************************************************
* 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$
......@@ -33,32 +33,8 @@
#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
*****************************************************************************/
......
......@@ -42,12 +42,10 @@
#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 */
......@@ -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"),
......
......@@ -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
......
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