Commit 1312bc9e authored by Laurent Aimar's avatar Laurent Aimar

* configure.ac : added --enable-goom and --with-goom-tree. Btw, I use a

special goom tree source as I was unable to use standard goom library.
(I will provide it once mmx/ppc included)
 * modules/visualization/Modules.am: added goom
 * include/vlc_block.h src/misc/block.c: introduce a new data block
 api (not yet tested, ported from my local new input work).
parent ee7dfec5
...@@ -90,6 +90,7 @@ HEADERS_include = \ ...@@ -90,6 +90,7 @@ HEADERS_include = \
include/stream_output.h \ include/stream_output.h \
include/variables.h \ include/variables.h \
include/video_output.h \ include/video_output.h \
include/vlc_block.h \
include/vlc_common.h \ include/vlc_common.h \
include/vlc_config.h \ include/vlc_config.h \
include/vlc_cpu.h \ include/vlc_cpu.h \
...@@ -317,6 +318,7 @@ SOURCES_libvlc_common = \ ...@@ -317,6 +318,7 @@ SOURCES_libvlc_common = \
src/stream_output/stream_output.c \ src/stream_output/stream_output.c \
src/misc/charset.c \ src/misc/charset.c \
src/misc/mtime.c \ src/misc/mtime.c \
src/misc/block.c \
src/misc/modules.c \ src/misc/modules.c \
src/misc/threads.c \ src/misc/threads.c \
src/misc/cpu.c \ src/misc/cpu.c \
......
dnl Autoconf settings for vlc dnl Autoconf settings for vlc
dnl $Id: configure.ac,v 1.66 2003/08/23 12:59:31 hartman Exp $ dnl $Id: configure.ac,v 1.67 2003/08/23 22:49:50 fenrir Exp $
AC_INIT(vlc,0.6.3-cvs) AC_INIT(vlc,0.6.3-cvs)
...@@ -2846,6 +2846,44 @@ then ...@@ -2846,6 +2846,44 @@ then
AX_ADD_PLUGINS([visual]) AX_ADD_PLUGINS([visual])
fi fi
dnl
dnl goom visualization plugin
dnl
AC_ARG_ENABLE(goom,
[ --enable-goom goom visualisation plugin (default disabled)])
if test "${enable_goom}" = "yes"
then
AC_ARG_WITH(goom-tree,
[ --with-goom-tree=PATH goom tree for static linking (required)])
dnl
dnl test for --with-goom-tree
dnl
if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}";then
AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
if test -z "${real_goom_tree}"; then
dnl The given directory can't be found
AC_MSG_RESULT(no)
AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
fi
if test -f "${real_goom_tree}/libgoom.a"; then
AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
AX_ADD_BUILTINS([goom])
AX_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
AX_ADD_CPPFLAGS([goom],[-I${real_goom_tree}])
else
dnl The given libgoom wasn't built
AC_MSG_RESULT(no)
AC_MSG_ERROR([cannot find ${real_goom_tree}/libgoom.a, make sure you compiled goom in ${with_goom_tree}])
fi
else
dnl The --with-goom-tree isn't specified wasn't built
AC_MSG_RESULT(no)
AC_MSG_ERROR([You have to specify a tree with --with-goom-tree])
fi
fi
dnl dnl
dnl SLP access plugin dnl SLP access plugin
dnl dnl
......
/*****************************************************************************
* block.h
*****************************************************************************
* Copyright (C) 2003 VideoLAN
* $Id: vlc_block.h,v 1.1 2003/08/23 22:49:50 fenrir Exp $
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
* 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., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
#ifndef _BLOCK_H
#define _BLOCK_H 1
/*
* block
*/
typedef struct block_sys_t block_sys_t;
struct block_t
{
block_t *p_next;
vlc_bool_t b_frame_display;
vlc_bool_t b_frame_start;
mtime_t i_pts;
mtime_t i_dts;
int i_buffer;
uint8_t *p_buffer;
void (*pf_release) ( block_t * );
block_t *(*pf_modify) ( block_t *, vlc_bool_t );
block_t *(*pf_duplicate) ( block_t * );
block_t *(*pf_realloc) ( block_t *, int i_prebody, int i_body );
/* Following fields are private, user should never touch it */
/* XXX never touch that OK !!! the first that access that will
* have cvs account removed ;) XXX */
/* It's an object that should be valid as long as the block_t is valid */
/* It should become a true block manager to reduce malloc/free */
vlc_object_t *p_manager;
/* private member for block_New, .... manager */
block_sys_t *p_sys;
};
struct block_fifo_t
{
vlc_mutex_t lock; /* fifo data lock */
vlc_cond_t wait; /* fifo data conditional variable */
int i_depth;
block_t *p_first;
block_t **pp_last;
};
/*
* block
*/
#define block_New( a, b ) __block_New( VLC_OBJECT(a), b )
VLC_EXPORT( block_t *, __block_New, ( vlc_object_t *, int ) );
static inline void block_Release( block_t *p_block )
{
p_block->pf_release( p_block );
}
static inline block_t *block_Modify( block_t *p_block, vlc_bool_t b_willmodify )
{
return p_block->pf_modify( p_block, b_willmodify );
}
static inline block_t *block_Duplicate( block_t *p_block )
{
return p_block->pf_duplicate( p_block );
}
static inline block_t *block_Realloc( block_t *p_block, int i_pre, int i_body )
{
return p_block->pf_realloc( p_block, i_pre, i_body );
}
VLC_EXPORT( void, block_ChainAppend, ( block_t **, block_t * ) );
VLC_EXPORT( void, block_ChainRelease, ( block_t * ) );
VLC_EXPORT( int, block_ChainExtract, ( block_t *, void *, int ) );
VLC_EXPORT( block_t *, block_ChainGather, ( block_t * ) );
/* a bit special, only for new/other block manager */
VLC_EXPORT( block_t *, block_NewEmpty, ( void ) );
#define block_FifoNew( a ) __block_FifoNew( VLC_OBJECT(a) )
VLC_EXPORT( block_fifo_t *, __block_FifoNew, ( vlc_object_t * ) );
VLC_EXPORT( void, block_FifoRelease, ( block_fifo_t * ) );
VLC_EXPORT( void, block_FifoEmpty, ( block_fifo_t * ) );
VLC_EXPORT( int, block_FifoPut, ( block_fifo_t *, block_t * ) );
VLC_EXPORT( block_t *, block_FifoGet, ( block_fifo_t * ) );
VLC_EXPORT( block_t *, block_FifoGetFrame, ( block_fifo_t * ) );
VLC_EXPORT( block_t *, block_FifoShow, ( block_fifo_t * ) );
#endif
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* Collection of useful common types and macros definitions * Collection of useful common types and macros definitions
***************************************************************************** *****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN * Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: vlc_common.h,v 1.74 2003/08/17 23:02:51 fenrir Exp $ * $Id: vlc_common.h,v 1.75 2003/08/23 22:49:50 fenrir Exp $
* *
* Authors: Samuel Hocevar <sam@via.ecp.fr> * Authors: Samuel Hocevar <sam@via.ecp.fr>
* Vincent Seguin <seguin@via.ecp.fr> * Vincent Seguin <seguin@via.ecp.fr>
...@@ -279,6 +279,10 @@ typedef struct bit_stream_t bit_stream_t; ...@@ -279,6 +279,10 @@ typedef struct bit_stream_t bit_stream_t;
typedef struct network_socket_t network_socket_t; typedef struct network_socket_t network_socket_t;
typedef struct iso639_lang_t iso639_lang_t; typedef struct iso639_lang_t iso639_lang_t;
/* block */
typedef struct block_t block_t;
typedef struct block_fifo_t block_fifo_t;
/***************************************************************************** /*****************************************************************************
* Variable callbacks * Variable callbacks
*****************************************************************************/ *****************************************************************************/
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* goom.c: based on libgoom (see http://ios.free.fr/?page=projet&quoi=1) * goom.c: based on libgoom (see http://ios.free.fr/?page=projet&quoi=1)
***************************************************************************** *****************************************************************************
* Copyright (C) 2003 VideoLAN * Copyright (C) 2003 VideoLAN
* $Id: goom.c,v 1.1 2003/08/23 17:23:45 fenrir Exp $ * $Id: goom.c,v 1.2 2003/08/23 22:49:50 fenrir Exp $
* *
* Authors: Laurent Aimar * Authors: Laurent Aimar
* *
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
#include <vlc/vout.h> #include <vlc/vout.h>
#include "aout_internal.h" #include "aout_internal.h"
#include "goom/goom_core.h" #include "goom_core.h"
#define GOOM_WIDTH 160 #define GOOM_WIDTH 160
#define GOOM_HEIGHT 120 #define GOOM_HEIGHT 120
......
This diff is collapsed.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* modules.c : Builtin and plugin modules management functions * modules.c : Builtin and plugin modules management functions
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: modules.c,v 1.129 2003/08/23 14:14:01 hartman Exp $ * $Id: modules.c,v 1.130 2003/08/23 22:49:50 fenrir Exp $
* *
* Authors: Samuel Hocevar <sam@zoy.org> * Authors: Samuel Hocevar <sam@zoy.org>
* Ethan C. Baldridge <BaldridgeE@cadmus.com> * Ethan C. Baldridge <BaldridgeE@cadmus.com>
...@@ -93,6 +93,8 @@ ...@@ -93,6 +93,8 @@
#include "iso_lang.h" #include "iso_lang.h"
#include "charset.h" #include "charset.h"
#include "vlc_block.h"
#if defined( UNDER_CE ) #if defined( UNDER_CE )
# define MYCHAR wchar_t # define MYCHAR wchar_t
#else #else
......
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