mirror of
https://code.videolan.org/videolan/vlc
synced 2024-10-03 01:31:53 +02:00
* ./src/misc/modules_plugin.h: exported input_ClockManageRef for fenrir.
* ./include/video.h: moved vout_CopyPicture out of the way, an inline function did not make sense here. * ./include/video.h: moved vout_ChromaCmp out of the way. * ./plugins/avi/fourcc.h, ./include/video.h: merged these two files into video.h. * ./include/os_specific.h: this file is now always included. * ./include/debug.h: removed this file which was almost useless, and moved ASSERT to common.h. * ./include/common.h: fixed vlc_memalign and changed its prototype to follow posix_memalign's.
This commit is contained in:
parent
ebf1f25531
commit
eb1ec4a42c
51
ChangeLog
51
ChangeLog
@ -4,6 +4,57 @@
|
|||||||
|
|
||||||
HEAD
|
HEAD
|
||||||
|
|
||||||
|
* ./src/misc/modules_plugin.h: exported input_ClockManageRef for fenrir.
|
||||||
|
* ./include/video.h: moved vout_CopyPicture out of the way, an inline
|
||||||
|
function did not make sense here.
|
||||||
|
* ./include/video.h: moved vout_ChromaCmp out of the way.
|
||||||
|
* ./plugins/avi/fourcc.h, ./include/video.h: merged these two files into
|
||||||
|
video.h.
|
||||||
|
* ./include/os_specific.h: this file is now always included.
|
||||||
|
* ./include/debug.h: removed this file which was almost useless, and moved
|
||||||
|
ASSERT to common.h.
|
||||||
|
* ./include/common.h: fixed vlc_memalign and changed its prototype to
|
||||||
|
follow posix_memalign's.
|
||||||
|
* ./configure.in: dropped usage of $withval and $enableval in favor of the
|
||||||
|
safer variants $with_foo and $enable_foo.
|
||||||
|
* ./plugins/avi/avi.c: will not segfault when no audio is found/supported.
|
||||||
|
* ./plugins/ffmpeg/ffmpeg.c: with empty frame(data_packet) it won't segfault.
|
||||||
|
* ./plugins/avi/avi.c: use KeyFrame to seek, so video will not be bad as
|
||||||
|
before.
|
||||||
|
* ./plugins/mpeg_system/mpeg_ts.c: moved Program Specific Information
|
||||||
|
decoder to the ts demux module.
|
||||||
|
* ./plugins/mpeg_system/Makefile: added a mpeg_ts_dvbpsi module tha uses
|
||||||
|
libdvbpsi to decode PSIs. It is used by default if the lib is found. It
|
||||||
|
shares much code with mpeg_ts.
|
||||||
|
* ./plugins/directx/vout_events.c: fixed typo. You have to double click on
|
||||||
|
the video window to switch to fullscreen.
|
||||||
|
* ./src/misc/configuration.c: on Win32 the config file is now stored under
|
||||||
|
the "Application Data" folder belonging to the user. (this works if at
|
||||||
|
least IE4 is installed, otherwise the old method is used to get the
|
||||||
|
config directory)
|
||||||
|
* ./configure.in: fixed MacOS X module linking problem.
|
||||||
|
* ./src/interface/main.c: we no longer segfault if argc == 0.
|
||||||
|
* ALL: renamed PLUGINS to __PLUGINS__ to avoid conflicts with libraries
|
||||||
|
defining it. Grmbl.
|
||||||
|
* ./src/input/input_ext-plugins.c: cosmetic change.
|
||||||
|
* ./plugins/ac3_adec/*: use of _M to avoid conflict with libavcodec.a.
|
||||||
|
* ./plugins/avi/*: a light AVI demux.
|
||||||
|
* ./plugins/ffmpeg/*: a video decoder for divx v3 and opendivx.
|
||||||
|
* ./plugins/win32/preferences.cpp: fixed a compilation bug
|
||||||
|
* ./plugins/avi, ./plugins/ffmpeg: created empty directories for fenrir's
|
||||||
|
upcoming work.
|
||||||
|
* ./plugins/spudec/spu_decoder.c: fixed the spu decoder to take the pitch
|
||||||
|
of the destination picture into account when rendering the subtitles
|
||||||
|
(Implemented only for the YUV modes).
|
||||||
|
* ./plugins/directx/vout_events.c: fixed the mouse autohidding feature in
|
||||||
|
the DirectX plugin (at least partially).
|
||||||
|
* ./plugins/directx/vout_directx.c: fixed the DirectX video output for
|
||||||
|
non-overlay modes. It was only working in RGB16 before.
|
||||||
|
* ./plugins/directx/vout_directx.c: DirectX video output plugin now uses
|
||||||
|
triple buffering for YUV overlay. This improves the video quality a lot
|
||||||
|
(no tearing) without affecting performance. (I knew double buffering
|
||||||
|
sucked but I just discovered why triple buffering is better: you don't
|
||||||
|
have to wait for the vsync to flip the buffers).
|
||||||
* ./plugins/spudec/spu_decoder.c, ./plugins/dvd/dvd_es.c: temporary fix
|
* ./plugins/spudec/spu_decoder.c, ./plugins/dvd/dvd_es.c: temporary fix
|
||||||
to avoid retrieving the spu palette from a network stream as if it was
|
to avoid retrieving the spu palette from a network stream as if it was
|
||||||
a DVD.
|
a DVD.
|
||||||
|
@ -254,8 +254,8 @@ endif
|
|||||||
# C compiler flags: plugins and builtins compilation
|
# C compiler flags: plugins and builtins compilation
|
||||||
#
|
#
|
||||||
vlc_CFLAGS += -D__VLC__
|
vlc_CFLAGS += -D__VLC__
|
||||||
plugins_CFLAGS += -D__PLUGIN__ -I../../include -I../../extras
|
plugins_CFLAGS += -D__VLC__ -D__PLUGIN__ -I../../include -I../../extras
|
||||||
builtins_CFLAGS += -D__BUILTIN__ -I../../include -I../../extras
|
builtins_CFLAGS += -D__VLC__ -D__BUILTIN__ -I../../include -I../../extras
|
||||||
|
|
||||||
#
|
#
|
||||||
# Linker flags: plugins and builtins linking
|
# Linker flags: plugins and builtins linking
|
||||||
|
@ -1455,10 +1455,6 @@ SOURCE=..\..\include\darwin_specific.h
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\..\include\debug.h
|
|
||||||
# End Source File
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\defs.h
|
SOURCE=.\defs.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
@ -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: common.h,v 1.98 2002/04/25 02:10:33 jobi Exp $
|
* $Id: common.h,v 1.99 2002/04/25 21:52:42 sam 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>
|
||||||
@ -378,13 +378,15 @@ struct intf_subscription_s;
|
|||||||
/* Some systems have memalign() but no declaration for it */
|
/* Some systems have memalign() but no declaration for it */
|
||||||
void * memalign( size_t align, size_t size );
|
void * memalign( size_t align, size_t size );
|
||||||
|
|
||||||
# define vlc_memalign(align,size,pp_orig) \
|
# define vlc_memalign(pp_orig,align,size) \
|
||||||
( *(pp_orig) = memalign( align, size ) )
|
( *(pp_orig) = memalign( align, size ) )
|
||||||
|
|
||||||
#else /* We don't have any choice but to align manually */
|
#else /* We don't have any choice but to align manually */
|
||||||
# define vlc_memalign(align,size,pp_orig) \
|
# define vlc_memalign(pp_orig,align,size) \
|
||||||
(( *(pp_orig) = malloc( size + align - 1 )) ? \
|
(( *(pp_orig) = malloc( size + align - 1 )) \
|
||||||
(void *)( (((unsigned long)*(pp_orig)) + 15) & ~0xFUL ) : NULL )
|
? (void *)( (((unsigned long)*(pp_orig)) + (unsigned long)(align-1) ) \
|
||||||
|
% (unsigned long)align ) \
|
||||||
|
: NULL )
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -500,6 +502,22 @@ typedef __int64 off_t;
|
|||||||
# define N_(String) (String)
|
# define N_(String) (String)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
* Debug macros
|
||||||
|
*****************************************************************************/
|
||||||
|
/* ASSERT: this macro is used to test that a pointer is not nul. It inserts
|
||||||
|
* the needed code when the program is compiled with the debug option, but
|
||||||
|
* does nothing when not in debug mode. */
|
||||||
|
#ifdef DEBUG
|
||||||
|
# define ASSERT(p_Mem) \
|
||||||
|
if (!(p_Mem)) \
|
||||||
|
intf_ErrMsg("Void pointer error: " \
|
||||||
|
"%s line %d (variable %s at address %p)\n", \
|
||||||
|
__FILE__, __LINE__, #p_Mem, &p_Mem);
|
||||||
|
#else
|
||||||
|
# define ASSERT(p_Mem)
|
||||||
|
#endif
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Plug-in stuff
|
* Plug-in stuff
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
@ -615,6 +633,9 @@ typedef struct module_symbols_s
|
|||||||
struct data_packet_s *,
|
struct data_packet_s *,
|
||||||
struct es_descriptor_s *,
|
struct es_descriptor_s *,
|
||||||
boolean_t ) );
|
boolean_t ) );
|
||||||
|
void ( * input_ClockManageRef ) ( struct input_thread_s *,
|
||||||
|
struct pgrm_descriptor_s *,
|
||||||
|
mtime_t );
|
||||||
int ( * input_ClockManageControl ) ( struct input_thread_s *,
|
int ( * input_ClockManageControl ) ( struct input_thread_s *,
|
||||||
struct pgrm_descriptor_s *,
|
struct pgrm_descriptor_s *,
|
||||||
mtime_t );
|
mtime_t );
|
||||||
@ -664,6 +685,7 @@ typedef struct module_symbols_s
|
|||||||
struct picture_s *, mtime_t );
|
struct picture_s *, mtime_t );
|
||||||
void ( * vout_PlacePicture ) ( struct vout_thread_s *, int, int,
|
void ( * vout_PlacePicture ) ( struct vout_thread_s *, int, int,
|
||||||
int *, int *, int *, int * );
|
int *, int *, int *, int * );
|
||||||
|
int ( * vout_ChromaCmp ) ( u32, u32 );
|
||||||
|
|
||||||
struct subpicture_s * (* vout_CreateSubPicture)
|
struct subpicture_s * (* vout_CreateSubPicture)
|
||||||
( struct vout_thread_s *, int, int );
|
( struct vout_thread_s *, int, int );
|
||||||
|
101
include/debug.h
101
include/debug.h
@ -1,101 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* debug.h: vlc debug macros
|
|
||||||
* Stand alone file
|
|
||||||
*****************************************************************************
|
|
||||||
* Copyright (C) 1999, 2000 VideoLAN
|
|
||||||
* $Id: debug.h,v 1.8 2001/03/21 13:42:33 sam Exp $
|
|
||||||
*
|
|
||||||
* Authors: Benoît Steiner <benny@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.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
* Required headers:
|
|
||||||
* - <string.h>
|
|
||||||
* - intf_msg.h
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
* ASSERT
|
|
||||||
*****************************************************************************
|
|
||||||
* This macro is used to test that a pointer is not nul. It insert the needed
|
|
||||||
* code when the program is compiled with the debug option, but does nothing
|
|
||||||
* in release program.
|
|
||||||
*****************************************************************************/
|
|
||||||
#ifdef DEBUG
|
|
||||||
#define ASSERT(p_Mem) \
|
|
||||||
if (!(p_Mem)) \
|
|
||||||
intf_ErrMsg("Void pointer error: " \
|
|
||||||
"%s line %d (variable %s at address %p)\n", \
|
|
||||||
__FILE__, __LINE__, #p_Mem, &p_Mem);
|
|
||||||
|
|
||||||
#else
|
|
||||||
#define ASSERT(p_Mem)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
* RZERO
|
|
||||||
*****************************************************************************
|
|
||||||
* This macro is used to initialise a variable to 0. It is very useful when
|
|
||||||
* used with the ASSERT macro. It also only insert the needed code when the
|
|
||||||
* program is compiled with the debug option.
|
|
||||||
*****************************************************************************/
|
|
||||||
#ifdef DEBUG
|
|
||||||
#define RZERO(r_Var) \
|
|
||||||
bzero(&(r_Var), sizeof((r_Var)));
|
|
||||||
|
|
||||||
#else
|
|
||||||
#define RZERO(r_Var)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
* PZERO
|
|
||||||
*****************************************************************************
|
|
||||||
* This macro is used to initiase the memory pointed out by a pointer to 0.
|
|
||||||
* It has the same purpose than RZERO, but for pointers.
|
|
||||||
*****************************************************************************/
|
|
||||||
/* It is already defined on BSD */
|
|
||||||
#ifndef PZERO
|
|
||||||
#ifdef DEBUG
|
|
||||||
#define PZERO(p_Mem) \
|
|
||||||
bzero((p_Mem), sizeof(*(p_Mem)));
|
|
||||||
|
|
||||||
#else
|
|
||||||
#define PZERO(p_Mem)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
* AZERO
|
|
||||||
*****************************************************************************
|
|
||||||
* This macro is used to initiase an array of variables to 0.
|
|
||||||
* It has the same purpose than RZERO or PZERO, but for array
|
|
||||||
*****************************************************************************/
|
|
||||||
#ifdef DEBUG
|
|
||||||
#define AZERO(p_Array, i_Size) \
|
|
||||||
bzero((p_Array), (i_Size)*sizeof(*(p_Array)));
|
|
||||||
|
|
||||||
#else
|
|
||||||
#define ZERO(p_Array, i_Size)
|
|
||||||
|
|
||||||
#endif
|
|
@ -3,7 +3,7 @@
|
|||||||
* but exported to plug-ins
|
* but exported to plug-ins
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 1999-2002 VideoLAN
|
* Copyright (C) 1999-2002 VideoLAN
|
||||||
* $Id: input_ext-plugins.h,v 1.23 2002/04/25 02:10:33 jobi Exp $
|
* $Id: input_ext-plugins.h,v 1.24 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Authors: Christophe Massiot <massiot@via.ecp.fr>
|
* Authors: Christophe Massiot <massiot@via.ecp.fr>
|
||||||
*
|
*
|
||||||
@ -100,6 +100,7 @@ void input_ClockManageRef( struct input_thread_s *,
|
|||||||
mtime_t input_ClockGetTS( struct input_thread_s *,
|
mtime_t input_ClockGetTS( struct input_thread_s *,
|
||||||
struct pgrm_descriptor_s *, mtime_t );
|
struct pgrm_descriptor_s *, mtime_t );
|
||||||
#else
|
#else
|
||||||
|
# define input_ClockManageRef p_symbols->input_ClockManageRef
|
||||||
# define input_ClockManageControl p_symbols->input_ClockManageControl
|
# define input_ClockManageControl p_symbols->input_ClockManageControl
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* os_specific.h: OS specific features
|
* os_specific.h: OS specific features
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 2001 VideoLAN
|
* Copyright (C) 2001 VideoLAN
|
||||||
* $Id: os_specific.h,v 1.2 2002/04/24 00:36:24 sam Exp $
|
* $Id: os_specific.h,v 1.3 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Authors: Samuel Hocevar <sam@zoy.org>
|
* Authors: Samuel Hocevar <sam@zoy.org>
|
||||||
* Gildas Bazin <gbazin@netcourrier.com>
|
* Gildas Bazin <gbazin@netcourrier.com>
|
||||||
@ -22,39 +22,49 @@
|
|||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
#ifdef SYS_BEOS
|
#ifndef _NEED_OS_SPECIFIC_H
|
||||||
# include "beos_specific.h"
|
# define _NEED_OS_SPECIFIC_H 1
|
||||||
#endif
|
|
||||||
#ifdef SYS_DARWIN
|
|
||||||
# include "darwin_specific.h"
|
|
||||||
#endif
|
|
||||||
#ifdef WIN32
|
|
||||||
# include "win32_specific.h"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#if defined( SYS_BEOS )
|
||||||
extern "C" {
|
# include "beos_specific.h"
|
||||||
|
#elif defined( SYS_DARWIN )
|
||||||
|
# include "darwin_specific.h"
|
||||||
|
#elif defined( WIN32 )
|
||||||
|
# include "win32_specific.h"
|
||||||
|
#else
|
||||||
|
# undef _NEED_OS_SPECIFIC_H
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* main_sys_t: system specific descriptor
|
* main_sys_t: system specific descriptor
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
struct main_sys_s;
|
struct main_sys_s;
|
||||||
|
|
||||||
#ifndef __PLUGIN__
|
#ifndef __PLUGIN__
|
||||||
extern struct main_sys_s *p_main_sys;
|
extern struct main_sys_s *p_main_sys;
|
||||||
#else
|
#else
|
||||||
# define p_main_sys (p_symbols->p_main_sys)
|
# define p_main_sys (p_symbols->p_main_sys)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Prototypes
|
* Prototypes
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
void system_Init ( int *pi_argc, char *ppsz_argv[], char *ppsz_env[] );
|
#ifdef _NEED_OS_SPECIFIC_H
|
||||||
void system_Configure ( void );
|
void system_Init ( int *pi_argc, char *ppsz_argv[], char *ppsz_env[] );
|
||||||
void system_End ( void );
|
void system_Configure ( void );
|
||||||
|
void system_End ( void );
|
||||||
#ifdef __cplusplus
|
#else
|
||||||
}
|
# define system_Init(...) {}
|
||||||
|
# define system_Configure(...) {}
|
||||||
|
# define system_End(...) {}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
254
include/video.h
254
include/video.h
@ -4,7 +4,7 @@
|
|||||||
* includes all common video types and constants.
|
* includes all common video types and constants.
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 1999, 2000 VideoLAN
|
* Copyright (C) 1999, 2000 VideoLAN
|
||||||
* $Id: video.h,v 1.49 2002/04/15 23:04:08 massiot Exp $
|
* $Id: video.h,v 1.50 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Authors: Vincent Seguin <seguin@via.ecp.fr>
|
* Authors: Vincent Seguin <seguin@via.ecp.fr>
|
||||||
*
|
*
|
||||||
@ -142,38 +142,124 @@ typedef struct picture_heap_s
|
|||||||
#define DESTROYED_PICTURE 6 /* allocated but no more used */
|
#define DESTROYED_PICTURE 6 /* allocated but no more used */
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Flags used to describe picture format - see http://www.webartz.com/fourcc/
|
* Codes used to describe picture format - see http://www.webartz.com/fourcc/
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
#define MAKEFOURCC( a, b, c, d ) \
|
||||||
|
( ((u32)a) | ( ((u32)b) << 8 ) | ( ((u32)c) << 16 ) | ( ((u32)d) << 24 ) )
|
||||||
|
|
||||||
/* Packed RGB formats */
|
#define MAKETWOCC( a, b ) \
|
||||||
#define FOURCC_BI_RGB 0x00000000 /* RGB for 8bpp */
|
( (u16)(a) | ( (u16)(b) << 8 ) )
|
||||||
#define FOURCC_RGB2 0x32424752 /* alias for BI_RGB */
|
|
||||||
#define FOURCC_BI_BITFIELDS 0x00000003 /* RGB, for 16, 24, 32bpp */
|
|
||||||
#define FOURCC_RV15 0x35315652 /* RGB 15bpp, 0x1f, 0x7e0, 0xf800 */
|
|
||||||
#define FOURCC_RV16 0x36315652 /* RGB 16bpp, 0x1f, 0x3e0, 0x7c00 */
|
|
||||||
#define FOURCC_RV24 0x34325652 /* RGB 24bpp, 0xff, 0xff00, 0xff0000 */
|
|
||||||
#define FOURCC_RV32 0x32335652 /* RGB 32bpp, 0xff, 0xff00, 0xff0000 */
|
|
||||||
|
|
||||||
/* Planar YUV formats */
|
/* AVI stuff */
|
||||||
#define FOURCC_I420 0x30323449 /* Planar 4:2:0, Y:U:V */
|
#define FOURCC_RIFF MAKEFOURCC('R','I','F','F')
|
||||||
#define FOURCC_IYUV 0x56555949 /* alias for I420 */
|
#define FOURCC_LIST MAKEFOURCC('L','I','S','T')
|
||||||
#define FOURCC_YV12 0x32315659 /* Planar 4:2:0, Y:V:U */
|
#define FOURCC_JUNK MAKEFOURCC('J','U','N','K')
|
||||||
|
#define FOURCC_AVI MAKEFOURCC('A','V','I',' ')
|
||||||
|
#define FOURCC_WAVE MAKEFOURCC('W','A','V','E')
|
||||||
|
|
||||||
/* Packed YUV formats */
|
#define FOURCC_avih MAKEFOURCC('a','v','i','h')
|
||||||
#define FOURCC_IUYV 0x56595549 /* Packed 4:2:2, U:Y:V:Y, interlaced */
|
#define FOURCC_hdrl MAKEFOURCC('h','d','r','l')
|
||||||
#define FOURCC_UYVY 0x59565955 /* Packed 4:2:2, U:Y:V:Y */
|
#define FOURCC_movi MAKEFOURCC('m','o','v','i')
|
||||||
#define FOURCC_UYNV 0x564e5955 /* alias for UYVY */
|
#define FOURCC_idx1 MAKEFOURCC('i','d','x','1')
|
||||||
#define FOURCC_Y422 0x32323459 /* alias for UYVY */
|
|
||||||
#define FOURCC_cyuv 0x76757963 /* Packed 4:2:2, U:Y:V:Y, reverted */
|
#define FOURCC_strl MAKEFOURCC('s','t','r','l')
|
||||||
#define FOURCC_YUY2 0x32595559 /* Packed 4:2:2, Y:U:Y:V */
|
#define FOURCC_strh MAKEFOURCC('s','t','r','h')
|
||||||
#define FOURCC_YUNV 0x564e5559 /* alias for YUY2 */
|
#define FOURCC_strf MAKEFOURCC('s','t','r','f')
|
||||||
#define FOURCC_YVYU 0x55585659 /* Packed 4:2:2, Y:V:Y:U */
|
#define FOURCC_strd MAKEFOURCC('s','t','r','d')
|
||||||
#define FOURCC_Y211 0x31313259 /* Packed 2:1:1, Y:U:Y:V */
|
|
||||||
|
#define FOURCC_rec MAKEFOURCC('r','e','c',' ')
|
||||||
|
#define FOURCC_auds MAKEFOURCC('a','u','d','s')
|
||||||
|
#define FOURCC_vids MAKEFOURCC('v','i','d','s')
|
||||||
|
|
||||||
|
#define TWOCC_wb MAKETWOCC('w','b')
|
||||||
|
#define TWOCC_db MAKETWOCC('d','b')
|
||||||
|
#define TWOCC_dc MAKETWOCC('d','c')
|
||||||
|
#define TWOCC_pc MAKETWOCC('p','c')
|
||||||
|
|
||||||
|
/* MPEG4 (opendivx) codec */
|
||||||
|
#define FOURCC_DIVX MAKEFOURCC('D','I','V','X')
|
||||||
|
#define FOURCC_divx MAKEFOURCC('d','i','v','x')
|
||||||
|
#define FOURCC_DX50 MAKEFOURCC('D','X','5','0')
|
||||||
|
#define FOURCC_MP4S MAKEFOURCC('M','P','4','S')
|
||||||
|
#define FOURCC_MPG4 MAKEFOURCC('M','P','G','4')
|
||||||
|
#define FOURCC_mpg4 MAKEFOURCC('m','p','g','4')
|
||||||
|
#define FOURCC_mp4v MAKEFOURCC('m','p','4','v')
|
||||||
|
|
||||||
|
/* msmepg (divx v3) codec */
|
||||||
|
#define FOURCC_DIV3 MAKEFOURCC('D','I','V','3')
|
||||||
|
#define FOURCC_div3 MAKEFOURCC('d','i','v','3')
|
||||||
|
#define FOURCC_DIV4 MAKEFOURCC('D','I','V','4')
|
||||||
|
#define FOURCC_div4 MAKEFOURCC('d','i','v','4')
|
||||||
|
#define FOURCC_DIV5 MAKEFOURCC('D','I','V','5')
|
||||||
|
#define FOURCC_div5 MAKEFOURCC('d','i','v','5')
|
||||||
|
#define FOURCC_DIV6 MAKEFOURCC('D','I','V','6')
|
||||||
|
#define FOURCC_div6 MAKEFOURCC('d','i','v','6')
|
||||||
|
#define FOURCC_3IV1 MAKEFOURCC('3','I','V','1')
|
||||||
|
#define FOURCC_AP41 MAKEFOURCC('A','P','4','1')
|
||||||
|
#define FOURCC_MP43 MAKEFOURCC('M','P','4','3')
|
||||||
|
#define FOURCC_mp43 MAKEFOURCC('m','p','4','3')
|
||||||
|
|
||||||
|
/* Packed RGB for 8bpp */
|
||||||
|
#define FOURCC_BI_RGB MAKEFOURCC( 0 , 0 , 0 , 0 )
|
||||||
|
#define FOURCC_RGB2 MAKEFOURCC('R','G','B','2')
|
||||||
|
|
||||||
|
/* Packed RGB for 16, 24, 32bpp */
|
||||||
|
#define FOURCC_BI_BITFIELDS MAKEFOURCC( 0 , 0 , 0 , 3 )
|
||||||
|
|
||||||
|
/* Packed RGB 15bpp, 0x1f, 0x7e0, 0xf800 */
|
||||||
|
#define FOURCC_RV15 MAKEFOURCC('R','V','1','5')
|
||||||
|
|
||||||
|
/* Packed RGB 16bpp, 0x1f, 0x3e0, 0x7c00 */
|
||||||
|
#define FOURCC_RV16 MAKEFOURCC('R','V','1','6')
|
||||||
|
|
||||||
|
/* Packed RGB 24bpp, 0xff, 0xff00, 0xff0000 */
|
||||||
|
#define FOURCC_RV24 MAKEFOURCC('R','V','2','4')
|
||||||
|
|
||||||
|
/* Packed RGB 32bpp, 0xff, 0xff00, 0xff0000 */
|
||||||
|
#define FOURCC_RV32 MAKEFOURCC('R','V','3','2')
|
||||||
|
|
||||||
|
/* Planar YUV 4:2:0, Y:U:V */
|
||||||
|
#define FOURCC_I420 MAKEFOURCC('I','4','2','0')
|
||||||
|
#define FOURCC_IYUV MAKEFOURCC('I','Y','U','V')
|
||||||
|
|
||||||
|
/* Planar YUV 4:2:0, Y:V:U */
|
||||||
|
#define FOURCC_YV12 MAKEFOURCC('Y','V','1','2')
|
||||||
|
|
||||||
|
/* Packed YUV 4:2:2, U:Y:V:Y, interlaced */
|
||||||
|
#define FOURCC_IUYV MAKEFOURCC('I','U','Y','V')
|
||||||
|
|
||||||
|
/* Packed YUV 4:2:2, U:Y:V:Y */
|
||||||
|
#define FOURCC_UYVY MAKEFOURCC('U','Y','V','Y')
|
||||||
|
#define FOURCC_UYNV MAKEFOURCC('U','Y','N','V')
|
||||||
|
#define FOURCC_Y422 MAKEFOURCC('Y','4','2','2')
|
||||||
|
|
||||||
|
/* Packed YUV 4:2:2, U:Y:V:Y, reverted */
|
||||||
|
#define FOURCC_cyuv MAKEFOURCC('c','y','u','v')
|
||||||
|
|
||||||
|
/* Packed YUV 4:2:2, Y:U:Y:V */
|
||||||
|
#define FOURCC_YUY2 MAKEFOURCC('Y','U','Y','2')
|
||||||
|
#define FOURCC_YUNV MAKEFOURCC('Y','U','N','V')
|
||||||
|
|
||||||
|
/* Packed YUV 4:2:2, Y:V:Y:U */
|
||||||
|
#define FOURCC_YVYU MAKEFOURCC('Y','V','Y','U')
|
||||||
|
|
||||||
|
/* Packed YUV 2:1:1, Y:U:Y:V */
|
||||||
|
#define FOURCC_Y211 MAKEFOURCC('Y','2','1','1')
|
||||||
|
|
||||||
/* Custom formats which we use but which don't exist in the fourcc database */
|
/* Custom formats which we use but which don't exist in the fourcc database */
|
||||||
#define FOURCC_YMGA 0x41474d59 /* Planar Y, packed UV, from Matrox */
|
|
||||||
#define FOURCC_I422 0x32323449 /* Planar 4:2:2, Y:U:V */
|
/* Planar Y, packed UV, from Matrox */
|
||||||
#define FOURCC_I444 0x34343449 /* Planar 4:4:4, Y:U:V */
|
#define FOURCC_YMGA MAKEFOURCC('Y','M','G','A')
|
||||||
|
|
||||||
|
/* Planar 4:2:2, Y:U:V */
|
||||||
|
#define FOURCC_I422 MAKEFOURCC('I','4','2','2')
|
||||||
|
|
||||||
|
/* Planar 4:4:4, Y:U:V */
|
||||||
|
#define FOURCC_I444 MAKEFOURCC('I','4','4','4')
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
* Shortcuts to access image components
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
/* Plane indices */
|
/* Plane indices */
|
||||||
#define Y_PLANE 0
|
#define Y_PLANE 0
|
||||||
@ -188,120 +274,6 @@ typedef struct picture_heap_s
|
|||||||
#define V_PIXELS p[V_PLANE].p_pixels
|
#define V_PIXELS p[V_PLANE].p_pixels
|
||||||
#define V_PITCH p[V_PLANE].i_pitch
|
#define V_PITCH p[V_PLANE].i_pitch
|
||||||
|
|
||||||
static __inline__ int vout_ChromaCmp( u32 i_chroma, u32 i_amorhc )
|
|
||||||
{
|
|
||||||
/* If they are the same, they are the same ! */
|
|
||||||
if( i_chroma == i_amorhc )
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check for equivalence classes */
|
|
||||||
switch( i_chroma )
|
|
||||||
{
|
|
||||||
case FOURCC_I420:
|
|
||||||
case FOURCC_IYUV:
|
|
||||||
case FOURCC_YV12:
|
|
||||||
switch( i_amorhc )
|
|
||||||
{
|
|
||||||
case FOURCC_I420:
|
|
||||||
case FOURCC_IYUV:
|
|
||||||
case FOURCC_YV12:
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
case FOURCC_UYVY:
|
|
||||||
case FOURCC_UYNV:
|
|
||||||
case FOURCC_Y422:
|
|
||||||
switch( i_amorhc )
|
|
||||||
{
|
|
||||||
case FOURCC_UYVY:
|
|
||||||
case FOURCC_UYNV:
|
|
||||||
case FOURCC_Y422:
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
case FOURCC_YUY2:
|
|
||||||
case FOURCC_YUNV:
|
|
||||||
switch( i_amorhc )
|
|
||||||
{
|
|
||||||
case FOURCC_YUY2:
|
|
||||||
case FOURCC_YUNV:
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
* vout_CopyPicture: copy a picture to another one
|
|
||||||
*****************************************************************************
|
|
||||||
* This function takes advantage of the image format, and reduces the
|
|
||||||
* number of calls to memcpy() to the minimum. Source and destination
|
|
||||||
* images must have same width, height, and chroma.
|
|
||||||
*****************************************************************************/
|
|
||||||
static __inline__ void vout_CopyPicture( picture_t *p_src, picture_t *p_dest )
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for( i = 0; i < p_src->i_planes ; i++ )
|
|
||||||
{
|
|
||||||
if( p_src->p[i].i_pitch == p_dest->p[i].i_pitch )
|
|
||||||
{
|
|
||||||
if( p_src->p[i].b_margin )
|
|
||||||
{
|
|
||||||
/* If p_src->b_margin is set, p_dest->b_margin must be set */
|
|
||||||
if( p_dest->p[i].b_hidden )
|
|
||||||
{
|
|
||||||
/* There are margins, but they are hidden : perfect ! */
|
|
||||||
FAST_MEMCPY( p_dest->p[i].p_pixels, p_src->p[i].p_pixels,
|
|
||||||
p_src->p[i].i_pitch * p_src->p[i].i_lines );
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* We can't directly copy the margin. Too bad. */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Same pitch, no margins : perfect ! */
|
|
||||||
FAST_MEMCPY( p_dest->p[i].p_pixels, p_src->p[i].p_pixels,
|
|
||||||
p_src->p[i].i_pitch * p_src->p[i].i_lines );
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Pitch values are different */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* We need to proceed line by line */
|
|
||||||
{
|
|
||||||
u8 *p_in = p_src->p[i].p_pixels, *p_out = p_dest->p[i].p_pixels;
|
|
||||||
int i_line;
|
|
||||||
|
|
||||||
for( i_line = p_src->p[i].i_lines; i_line--; )
|
|
||||||
{
|
|
||||||
FAST_MEMCPY( p_out, p_in, p_src->p[i].i_visible_bytes );
|
|
||||||
p_in += p_src->p[i].i_pitch;
|
|
||||||
p_out += p_dest->p[i].i_pitch;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* subpicture_t: video subtitle
|
* subpicture_t: video subtitle
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* thread, and destroy a previously opened video output thread.
|
* thread, and destroy a previously opened video output thread.
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 1999, 2000 VideoLAN
|
* Copyright (C) 1999, 2000 VideoLAN
|
||||||
* $Id: video_output.h,v 1.74 2002/04/24 00:36:24 sam Exp $
|
* $Id: video_output.h,v 1.75 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Authors: Vincent Seguin <seguin@via.ecp.fr>
|
* Authors: Vincent Seguin <seguin@via.ecp.fr>
|
||||||
*
|
*
|
||||||
@ -200,6 +200,8 @@ vout_fifo_t * vout_CreateFifo ( void );
|
|||||||
void vout_DestroyFifo ( vout_fifo_t * );
|
void vout_DestroyFifo ( vout_fifo_t * );
|
||||||
void vout_FreeFifo ( vout_fifo_t * );
|
void vout_FreeFifo ( vout_fifo_t * );
|
||||||
|
|
||||||
|
int vout_ChromaCmp ( u32, u32 );
|
||||||
|
|
||||||
picture_t * vout_CreatePicture ( vout_thread_t *,
|
picture_t * vout_CreatePicture ( vout_thread_t *,
|
||||||
boolean_t, boolean_t, boolean_t );
|
boolean_t, boolean_t, boolean_t );
|
||||||
void vout_AllocatePicture( picture_t *, int, int, u32 );
|
void vout_AllocatePicture( picture_t *, int, int, u32 );
|
||||||
@ -233,5 +235,6 @@ void vout_RenderSubPictures ( vout_thread_t *, picture_t *,
|
|||||||
# define vout_LinkPicture p_symbols->vout_LinkPicture
|
# define vout_LinkPicture p_symbols->vout_LinkPicture
|
||||||
# define vout_UnlinkPicture p_symbols->vout_UnlinkPicture
|
# define vout_UnlinkPicture p_symbols->vout_UnlinkPicture
|
||||||
# define vout_PlacePicture p_symbols->vout_PlacePicture
|
# define vout_PlacePicture p_symbols->vout_PlacePicture
|
||||||
|
# define vout_ChromaCmp p_symbols->vout_ChromaCmp
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* vlc.h: global header for vlc
|
* vlc.h: global header for vlc
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 1998, 1999, 2000 VideoLAN
|
* Copyright (C) 1998, 1999, 2000 VideoLAN
|
||||||
* $Id: vlc.h,v 1.7 2002/04/24 00:36:24 sam Exp $
|
* $Id: vlc.h,v 1.8 2002/04/25 21:52:42 sam 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>
|
||||||
@ -26,7 +26,7 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Required vlc headers
|
* Required vlc headers
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
#if defined( __VLC__ ) || defined( __PLUGIN__ ) || defined( __BUILTIN__ )
|
#if defined( __VLC__ )
|
||||||
# include "defs.h"
|
# include "defs.h"
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* (http://liba52.sf.net/).
|
* (http://liba52.sf.net/).
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 2001 VideoLAN
|
* Copyright (C) 2001 VideoLAN
|
||||||
* $Id: a52.c,v 1.7 2002/04/19 13:56:10 sam Exp $
|
* $Id: a52.c,v 1.8 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Authors: Gildas Bazin <gbazin@netcourrier.com>
|
* Authors: Gildas Bazin <gbazin@netcourrier.com>
|
||||||
*
|
*
|
||||||
@ -37,8 +37,6 @@
|
|||||||
#include "stream_control.h"
|
#include "stream_control.h"
|
||||||
#include "input_ext-dec.h"
|
#include "input_ext-dec.h"
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
#include <a52dec/a52.h> /* liba52 header file */
|
#include <a52dec/a52.h> /* liba52 header file */
|
||||||
#include "a52.h"
|
#include "a52.h"
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ac3_adec.c: ac3 decoder module main file
|
* ac3_adec.c: ac3 decoder module main file
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 1999-2001 VideoLAN
|
* Copyright (C) 1999-2001 VideoLAN
|
||||||
* $Id: ac3_adec.c,v 1.28 2002/04/23 23:44:36 fenrir Exp $
|
* $Id: ac3_adec.c,v 1.29 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Authors: Michel Lespinasse <walken@zoy.org>
|
* Authors: Michel Lespinasse <walken@zoy.org>
|
||||||
*
|
*
|
||||||
@ -120,7 +120,7 @@ static int InitThread( ac3dec_thread_t * p_ac3thread )
|
|||||||
*/
|
*/
|
||||||
p_ac3thread->p_fifo = p_ac3thread->p_config->p_decoder_fifo;
|
p_ac3thread->p_fifo = p_ac3thread->p_config->p_decoder_fifo;
|
||||||
p_ac3thread->ac3_decoder =
|
p_ac3thread->ac3_decoder =
|
||||||
vlc_memalign( 16, sizeof(ac3dec_t), &p_ac3thread->ac3_decoder_orig );
|
vlc_memalign( &p_ac3thread->ac3_decoder_orig, 16, sizeof(ac3dec_t) );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Choose the best downmix module
|
* Choose the best downmix module
|
||||||
@ -153,7 +153,7 @@ static int InitThread( ac3dec_thread_t * p_ac3thread )
|
|||||||
* Choose the best IMDCT module
|
* Choose the best IMDCT module
|
||||||
*/
|
*/
|
||||||
p_ac3thread->ac3_decoder->imdct =
|
p_ac3thread->ac3_decoder->imdct =
|
||||||
vlc_memalign( 16, sizeof(imdct_t), &p_ac3thread->ac3_decoder->imdct_orig );
|
vlc_memalign( &p_ac3thread->ac3_decoder->imdct_orig, 16, sizeof(imdct_t) );
|
||||||
|
|
||||||
#define IMDCT p_ac3thread->ac3_decoder->imdct
|
#define IMDCT p_ac3thread->ac3_decoder->imdct
|
||||||
psz_name = config_GetPszVariable( IMDCT_METHOD_VAR );
|
psz_name = config_GetPszVariable( IMDCT_METHOD_VAR );
|
||||||
@ -180,39 +180,39 @@ static int InitThread( ac3dec_thread_t * p_ac3thread )
|
|||||||
|
|
||||||
/* Initialize the ac3 decoder structures */
|
/* Initialize the ac3 decoder structures */
|
||||||
p_ac3thread->ac3_decoder->samples =
|
p_ac3thread->ac3_decoder->samples =
|
||||||
vlc_memalign( 16, 6 * 256 * sizeof(float),
|
vlc_memalign( &p_ac3thread->ac3_decoder->samples_orig,
|
||||||
&p_ac3thread->ac3_decoder->samples_orig );
|
16, 6 * 256 * sizeof(float) );
|
||||||
|
|
||||||
IMDCT->buf = vlc_memalign( 16, N/4 * sizeof(complex_t),
|
IMDCT->buf = vlc_memalign( &IMDCT->buf_orig,
|
||||||
&IMDCT->buf_orig );
|
16, N/4 * sizeof(complex_t) );
|
||||||
IMDCT->delay = vlc_memalign( 16, 6 * 256 * sizeof(float),
|
IMDCT->delay = vlc_memalign( &IMDCT->delay_orig,
|
||||||
&IMDCT->delay_orig );
|
16, 6 * 256 * sizeof(float) );
|
||||||
IMDCT->delay1 = vlc_memalign( 16, 6 * 256 * sizeof(float),
|
IMDCT->delay1 = vlc_memalign( &IMDCT->delay1_orig,
|
||||||
&IMDCT->delay1_orig );
|
16, 6 * 256 * sizeof(float) );
|
||||||
IMDCT->xcos1 = vlc_memalign( 16, N/4 * sizeof(float),
|
IMDCT->xcos1 = vlc_memalign( &IMDCT->xcos1_orig,
|
||||||
&IMDCT->xcos1_orig );
|
16, N/4 * sizeof(float) );
|
||||||
IMDCT->xsin1 = vlc_memalign( 16, N/4 * sizeof(float),
|
IMDCT->xsin1 = vlc_memalign( &IMDCT->xsin1_orig,
|
||||||
&IMDCT->xsin1_orig );
|
16, N/4 * sizeof(float) );
|
||||||
IMDCT->xcos2 = vlc_memalign( 16, N/8 * sizeof(float),
|
IMDCT->xcos2 = vlc_memalign( &IMDCT->xcos2_orig,
|
||||||
&IMDCT->xcos2_orig );
|
16, N/8 * sizeof(float) );
|
||||||
IMDCT->xsin2 = vlc_memalign( 16, N/8 * sizeof(float),
|
IMDCT->xsin2 = vlc_memalign( &IMDCT->xsin2_orig,
|
||||||
&IMDCT->xsin2_orig );
|
16, N/8 * sizeof(float) );
|
||||||
IMDCT->xcos_sin_sse = vlc_memalign( 16, 128 * 4 * sizeof(float),
|
IMDCT->xcos_sin_sse = vlc_memalign( &IMDCT->xcos_sin_sse_orig,
|
||||||
&IMDCT->xcos_sin_sse_orig );
|
16, 128 * 4 * sizeof(float) );
|
||||||
IMDCT->w_1 = vlc_memalign( 16, 1 * sizeof(complex_t),
|
IMDCT->w_1 = vlc_memalign( &IMDCT->w_1_orig,
|
||||||
&IMDCT->w_1_orig );
|
16, 1 * sizeof(complex_t) );
|
||||||
IMDCT->w_2 = vlc_memalign( 16, 2 * sizeof(complex_t),
|
IMDCT->w_2 = vlc_memalign( &IMDCT->w_2_orig,
|
||||||
&IMDCT->w_2_orig );
|
16, 2 * sizeof(complex_t) );
|
||||||
IMDCT->w_4 = vlc_memalign( 16, 4 * sizeof(complex_t),
|
IMDCT->w_4 = vlc_memalign( &IMDCT->w_4_orig,
|
||||||
&IMDCT->w_4_orig );
|
16, 4 * sizeof(complex_t) );
|
||||||
IMDCT->w_8 = vlc_memalign( 16, 8 * sizeof(complex_t),
|
IMDCT->w_8 = vlc_memalign( &IMDCT->w_8_orig,
|
||||||
&IMDCT->w_8_orig );
|
16, 8 * sizeof(complex_t) );
|
||||||
IMDCT->w_16 = vlc_memalign( 16, 16 * sizeof(complex_t),
|
IMDCT->w_16 = vlc_memalign( &IMDCT->w_16_orig,
|
||||||
&IMDCT->w_16_orig );
|
16, 16 * sizeof(complex_t) );
|
||||||
IMDCT->w_32 = vlc_memalign( 16, 32 * sizeof(complex_t),
|
IMDCT->w_32 = vlc_memalign( &IMDCT->w_32_orig,
|
||||||
&IMDCT->w_32_orig );
|
16, 32 * sizeof(complex_t) );
|
||||||
IMDCT->w_64 = vlc_memalign( 16, 64 * sizeof(complex_t),
|
IMDCT->w_64 = vlc_memalign( &IMDCT->w_64_orig,
|
||||||
&IMDCT->w_64_orig );
|
16, 64 * sizeof(complex_t) );
|
||||||
|
|
||||||
_M( ac3_init )( p_ac3thread->ac3_decoder );
|
_M( ac3_init )( p_ac3thread->ac3_decoder );
|
||||||
|
|
||||||
@ -241,8 +241,8 @@ static int decoder_Run ( decoder_config_t * p_config )
|
|||||||
boolean_t b_sync = 0;
|
boolean_t b_sync = 0;
|
||||||
|
|
||||||
/* Allocate the memory needed to store the thread's structure */
|
/* Allocate the memory needed to store the thread's structure */
|
||||||
p_ac3thread = (ac3dec_thread_t *)vlc_memalign( 16,
|
p_ac3thread = (ac3dec_thread_t *)vlc_memalign( &p_ac3thread_orig, 16,
|
||||||
sizeof(ac3dec_thread_t), &p_ac3thread_orig );
|
sizeof(ac3dec_thread_t) );
|
||||||
|
|
||||||
if( p_ac3thread == NULL )
|
if( p_ac3thread == NULL )
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* avi.c : AVI file Stream input module for vlc
|
* avi.c : AVI file Stream input module for vlc
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 2001 VideoLAN
|
* Copyright (C) 2001 VideoLAN
|
||||||
* $Id: avi.c,v 1.3 2002/04/25 11:41:38 fenrir Exp $
|
* $Id: avi.c,v 1.4 2002/04/25 21:52:42 sam Exp $
|
||||||
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
|
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -35,6 +35,8 @@
|
|||||||
#include "input_ext-dec.h"
|
#include "input_ext-dec.h"
|
||||||
#include "input_ext-plugins.h"
|
#include "input_ext-plugins.h"
|
||||||
|
|
||||||
|
#include "video.h"
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Constants
|
* Constants
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
@ -69,7 +71,6 @@ MODULE_DEACTIVATE_STOP
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Definition of structures and libraries for this plugins
|
* Definition of structures and libraries for this plugins
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
#include "fourcc.h"
|
|
||||||
#include "libLE.c"
|
#include "libLE.c"
|
||||||
#include "libioRIFF.c"
|
#include "libioRIFF.c"
|
||||||
#include "avi.h"
|
#include "avi.h"
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* avi.h : AVI file Stream input module for vlc
|
* avi.h : AVI file Stream input module for vlc
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 2001 VideoLAN
|
* Copyright (C) 2001 VideoLAN
|
||||||
* $Id: avi.h,v 1.1 2002/04/23 23:44:36 fenrir Exp $
|
* $Id: avi.h,v 1.2 2002/04/25 21:52:42 sam Exp $
|
||||||
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
|
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -36,6 +36,13 @@
|
|||||||
#define AVIIF_NOTIME 0x00000100L /* this frame doesn't take any time */
|
#define AVIIF_NOTIME 0x00000100L /* this frame doesn't take any time */
|
||||||
#define AVIIF_COMPUSE 0x0FFF0000L /* these bits are for compressor use */
|
#define AVIIF_COMPUSE 0x0FFF0000L /* these bits are for compressor use */
|
||||||
|
|
||||||
|
/* Sound formats */
|
||||||
|
#define WAVE_FORMAT_UNKNOWN 0x0000
|
||||||
|
#define WAVE_FORMAT_PCM 0x0001
|
||||||
|
#define WAVE_FORMAT_MPEG 0x0050
|
||||||
|
#define WAVE_FORMAT_MPEGLAYER3 0x0055
|
||||||
|
#define WAVE_FORMAT_AC3 0x2000
|
||||||
|
|
||||||
typedef struct bitmapinfoheader_s
|
typedef struct bitmapinfoheader_s
|
||||||
{
|
{
|
||||||
u32 i_size; /* size of header */
|
u32 i_size; /* size of header */
|
||||||
|
@ -1,86 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* fourcc.h : AVI file Stream input module for vlc
|
|
||||||
*****************************************************************************
|
|
||||||
* Copyright (C) 2001 VideoLAN
|
|
||||||
* $Id: fourcc.h,v 1.1 2002/04/23 23:44:36 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.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
#define mmioFOURCC( ch0, ch1, ch2, ch3 ) \
|
|
||||||
( ((u32)ch0) | ( ((u32)ch1) << 8 ) | \
|
|
||||||
( ((u32)ch2) << 16 ) | ( ((u32)ch3) << 24 ) )
|
|
||||||
|
|
||||||
#define mmioTWOCC( ch0, ch1 ) \
|
|
||||||
( (u32)(ch0) | ( (u32)(ch1) << 8 ) )
|
|
||||||
|
|
||||||
#define WAVE_FORMAT_UNKNOWN 0x0000
|
|
||||||
#define WAVE_FORMAT_PCM 0x0001
|
|
||||||
#define WAVE_FORMAT_MPEG 0x0050
|
|
||||||
#define WAVE_FORMAT_MPEGLAYER3 0x0055
|
|
||||||
#define WAVE_FORMAT_AC3 0x2000
|
|
||||||
|
|
||||||
#define FOURCC_RIFF mmioFOURCC( 'R', 'I', 'F', 'F' )
|
|
||||||
#define FOURCC_LIST mmioFOURCC( 'L', 'I', 'S', 'T' )
|
|
||||||
#define FOURCC_JUNK mmioFOURCC( 'J', 'U', 'N', 'K' )
|
|
||||||
#define FOURCC_AVI mmioFOURCC( 'A', 'V', 'I', ' ' )
|
|
||||||
#define FOURCC_WAVE mmioFOURCC( 'W', 'A', 'V', 'E' )
|
|
||||||
|
|
||||||
#define FOURCC_avih mmioFOURCC( 'a', 'v', 'i', 'h' )
|
|
||||||
#define FOURCC_hdrl mmioFOURCC( 'h', 'd', 'r', 'l' )
|
|
||||||
#define FOURCC_movi mmioFOURCC( 'm', 'o', 'v', 'i' )
|
|
||||||
#define FOURCC_idx1 mmioFOURCC( 'i', 'd', 'x', '1' )
|
|
||||||
|
|
||||||
#define FOURCC_strl mmioFOURCC( 's', 't', 'r', 'l' )
|
|
||||||
#define FOURCC_strh mmioFOURCC( 's', 't', 'r', 'h' )
|
|
||||||
#define FOURCC_strf mmioFOURCC( 's', 't', 'r', 'f' )
|
|
||||||
#define FOURCC_strd mmioFOURCC( 's', 't', 'r', 'd' )
|
|
||||||
|
|
||||||
#define FOURCC_rec mmioFOURCC( 'r', 'e', 'c', ' ' )
|
|
||||||
#define FOURCC_auds mmioFOURCC( 'a', 'u', 'd', 's' )
|
|
||||||
#define FOURCC_vids mmioFOURCC( 'v', 'i', 'd', 's' )
|
|
||||||
|
|
||||||
|
|
||||||
#define TWOCC_wb mmioTWOCC( 'w', 'b' )
|
|
||||||
#define TWOCC_db mmioTWOCC( 'd', 'b' )
|
|
||||||
#define TWOCC_dc mmioTWOCC( 'd', 'c' )
|
|
||||||
#define TWOCC_pc mmioTWOCC( 'p', 'c' )
|
|
||||||
|
|
||||||
|
|
||||||
/* definition of mpeg4 (opendivx) codec */
|
|
||||||
#define FOURCC_DIVX mmioFOURCC( 'D', 'I', 'V', 'X' )
|
|
||||||
#define FOURCC_divx mmioFOURCC( 'd', 'i', 'v', 'x' )
|
|
||||||
#define FOURCC_DX50 mmioFOURCC( 'D', 'X', '5', '0' )
|
|
||||||
#define FOURCC_MP4S mmioFOURCC( 'M', 'P', '4', 'S' )
|
|
||||||
#define FOURCC_MPG4 mmioFOURCC( 'M', 'P', 'G', '4' )
|
|
||||||
#define FOURCC_mpg4 mmioFOURCC( 'm', 'p', 'g', '4' )
|
|
||||||
#define FOURCC_mp4v mmioFOURCC( 'm', 'p', '4', 'v' )
|
|
||||||
|
|
||||||
/* definition of msmepg (divx v3) codec */
|
|
||||||
#define FOURCC_DIV3 mmioFOURCC( 'D', 'I', 'V', '3' )
|
|
||||||
#define FOURCC_div3 mmioFOURCC( 'd', 'i', 'v', '3' )
|
|
||||||
#define FOURCC_DIV4 mmioFOURCC( 'D', 'I', 'V', '4' )
|
|
||||||
#define FOURCC_div4 mmioFOURCC( 'd', 'i', 'v', '4' )
|
|
||||||
#define FOURCC_DIV5 mmioFOURCC( 'D', 'I', 'V', '5' )
|
|
||||||
#define FOURCC_div5 mmioFOURCC( 'd', 'i', 'v', '5' )
|
|
||||||
#define FOURCC_DIV6 mmioFOURCC( 'D', 'I', 'V', '6' )
|
|
||||||
#define FOURCC_div6 mmioFOURCC( 'd', 'i', 'v', '6' )
|
|
||||||
#define FOURCC_3IV1 mmioFOURCC( '3', 'I', 'V', '1' )
|
|
||||||
#define FOURCC_AP41 mmioFOURCC( 'A', 'P', '4', '1' )
|
|
||||||
#define FOURCC_MP43 mmioFOURCC( 'M', 'P', '4', '3' )
|
|
||||||
#define FOURCC_mp43 mmioFOURCC( 'm', 'p', '4', '3' )
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
|||||||
* vout_dummy.c: Dummy video output display method for testing purposes
|
* vout_dummy.c: Dummy video output display method for testing purposes
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 2000, 2001 VideoLAN
|
* Copyright (C) 2000, 2001 VideoLAN
|
||||||
* $Id: vout_dummy.c,v 1.21 2002/04/05 01:05:22 gbazin Exp $
|
* $Id: vout_dummy.c,v 1.22 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Authors: Samuel Hocevar <sam@zoy.org>
|
* Authors: Samuel Hocevar <sam@zoy.org>
|
||||||
*
|
*
|
||||||
@ -234,8 +234,8 @@ static int DummyNewPicture( vout_thread_t *p_vout, picture_t *p_pic )
|
|||||||
case FOURCC_YV12:
|
case FOURCC_YV12:
|
||||||
|
|
||||||
/* Allocate the memory buffer */
|
/* Allocate the memory buffer */
|
||||||
p_pic->p_data = vlc_memalign( 16, i_width * i_height * 3 / 2,
|
p_pic->p_data = vlc_memalign( &p_pic->p_data_orig,
|
||||||
&p_pic->p_data_orig );
|
16, i_width * i_height * 3 / 2 );
|
||||||
|
|
||||||
/* Y buffer */
|
/* Y buffer */
|
||||||
p_pic->Y_PIXELS = p_pic->p_data;
|
p_pic->Y_PIXELS = p_pic->p_data;
|
||||||
@ -269,8 +269,8 @@ static int DummyNewPicture( vout_thread_t *p_vout, picture_t *p_pic )
|
|||||||
case FOURCC_RV16:
|
case FOURCC_RV16:
|
||||||
|
|
||||||
/* Allocate the memory buffer */
|
/* Allocate the memory buffer */
|
||||||
p_pic->p_data = vlc_memalign( 16, i_width * i_height * 2,
|
p_pic->p_data = vlc_memalign( &p_pic->p_data_orig,
|
||||||
&p_pic->p_data_orig );
|
16, i_width * i_height * 2 );
|
||||||
|
|
||||||
/* Fill important structures */
|
/* Fill important structures */
|
||||||
p_pic->p->p_pixels = p_pic->p_data;
|
p_pic->p->p_pixels = p_pic->p_data;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
* -dvd_udf to find files
|
* -dvd_udf to find files
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 1998-2001 VideoLAN
|
* Copyright (C) 1998-2001 VideoLAN
|
||||||
* $Id: dvd_access.c,v 1.14 2002/04/23 14:16:20 sam Exp $
|
* $Id: dvd_access.c,v 1.15 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Author: Stéphane Borel <stef@via.ecp.fr>
|
* Author: Stéphane Borel <stef@via.ecp.fr>
|
||||||
*
|
*
|
||||||
@ -68,8 +68,6 @@
|
|||||||
#include "dvd_summary.h"
|
#include "dvd_summary.h"
|
||||||
#include "iso_lang.h"
|
#include "iso_lang.h"
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Local prototypes
|
* Local prototypes
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* dvd_demux.c: DVD demux functions.
|
/* dvd_demux.c: DVD demux functions.
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 1998-2001 VideoLAN
|
* Copyright (C) 1998-2001 VideoLAN
|
||||||
* $Id: dvd_demux.c,v 1.4 2002/03/18 19:14:52 sam Exp $
|
* $Id: dvd_demux.c,v 1.5 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Author: Stéphane Borel <stef@via.ecp.fr>
|
* Author: Stéphane Borel <stef@via.ecp.fr>
|
||||||
*
|
*
|
||||||
@ -48,8 +48,6 @@
|
|||||||
#include "input_ext-dec.h"
|
#include "input_ext-dec.h"
|
||||||
#include "input_ext-plugins.h"
|
#include "input_ext-plugins.h"
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/* how many packets DVDDemux will read in each loop */
|
/* how many packets DVDDemux will read in each loop */
|
||||||
#define DVD_READ_ONCE 64
|
#define DVD_READ_ONCE 64
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* dvd_es.c: functions to find and select ES
|
/* dvd_es.c: functions to find and select ES
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 1998-2001 VideoLAN
|
* Copyright (C) 1998-2001 VideoLAN
|
||||||
* $Id: dvd_es.c,v 1.8 2002/04/23 20:58:23 sam Exp $
|
* $Id: dvd_es.c,v 1.9 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Author: Stéphane Borel <stef@via.ecp.fr>
|
* Author: Stéphane Borel <stef@via.ecp.fr>
|
||||||
*
|
*
|
||||||
@ -59,8 +59,6 @@
|
|||||||
#include "dvd_summary.h"
|
#include "dvd_summary.h"
|
||||||
#include "iso_lang.h"
|
#include "iso_lang.h"
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Local prototypes
|
* Local prototypes
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* dvd_seek.c: functions to navigate through DVD.
|
/* dvd_seek.c: functions to navigate through DVD.
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 1998-2001 VideoLAN
|
* Copyright (C) 1998-2001 VideoLAN
|
||||||
* $Id: dvd_seek.c,v 1.4 2002/04/03 06:23:08 sam Exp $
|
* $Id: dvd_seek.c,v 1.5 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Author: Stéphane Borel <stef@via.ecp.fr>
|
* Author: Stéphane Borel <stef@via.ecp.fr>
|
||||||
*
|
*
|
||||||
@ -58,8 +58,6 @@
|
|||||||
#include "dvd_seek.h"
|
#include "dvd_seek.h"
|
||||||
#include "dvd_ifo.h"
|
#include "dvd_ifo.h"
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
#define title \
|
#define title \
|
||||||
p_dvd->p_ifo->vts.title_unit.p_title[p_dvd->i_title_id-1].title
|
p_dvd->p_ifo->vts.title_unit.p_title[p_dvd->i_title_id-1].title
|
||||||
#define cell p_dvd->p_ifo->vts.cell_inf
|
#define cell p_dvd->p_ifo->vts.cell_inf
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
* found in .ifo.
|
* found in .ifo.
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 1998-2001 VideoLAN
|
* Copyright (C) 1998-2001 VideoLAN
|
||||||
* $Id: dvd_summary.c,v 1.16 2002/04/03 06:23:08 sam Exp $
|
* $Id: dvd_summary.c,v 1.17 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Author: Stéphane Borel <stef@via.ecp.fr>
|
* Author: Stéphane Borel <stef@via.ecp.fr>
|
||||||
*
|
*
|
||||||
@ -57,8 +57,6 @@
|
|||||||
#include "dvd_ifo.h"
|
#include "dvd_ifo.h"
|
||||||
#include "iso_lang.h"
|
#include "iso_lang.h"
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Local tools to decode some data in ifo
|
* Local tools to decode some data in ifo
|
||||||
*/
|
*/
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* It depends on: libdvdread for ifo files and block reading.
|
* It depends on: libdvdread for ifo files and block reading.
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 2001 VideoLAN
|
* Copyright (C) 2001 VideoLAN
|
||||||
* $Id: input_dvdread.c,v 1.36 2002/04/23 14:16:20 sam Exp $
|
* $Id: input_dvdread.c,v 1.37 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Author: Stéphane Borel <stef@via.ecp.fr>
|
* Author: Stéphane Borel <stef@via.ecp.fr>
|
||||||
*
|
*
|
||||||
@ -76,8 +76,6 @@
|
|||||||
|
|
||||||
#include "iso_lang.h"
|
#include "iso_lang.h"
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/* how many blocks DVDRead will read in each loop */
|
/* how many blocks DVDRead will read in each loop */
|
||||||
#define DVD_BLOCK_READ_ONCE 64
|
#define DVD_BLOCK_READ_ONCE 64
|
||||||
|
|
||||||
|
@ -640,8 +640,8 @@ static int QTNewPicture( vout_thread_t *p_vout, picture_t *p_pic )
|
|||||||
p_pic->p_sys->i_size = sizeof(PlanarPixmapInfoYUV420);
|
p_pic->p_sys->i_size = sizeof(PlanarPixmapInfoYUV420);
|
||||||
|
|
||||||
/* Allocate the memory buffer */
|
/* Allocate the memory buffer */
|
||||||
p_pic->p_data = vlc_memalign( 16, i_width * i_height * 3 / 2,
|
p_pic->p_data = vlc_memalign( &p_pic->p_data_orig,
|
||||||
&p_pic->p_data_orig );
|
16, i_width * i_height * 3 / 2 );
|
||||||
|
|
||||||
/* Y buffer */
|
/* Y buffer */
|
||||||
p_pic->Y_PIXELS = p_pic->p_data;
|
p_pic->Y_PIXELS = p_pic->p_data;
|
||||||
|
@ -33,8 +33,6 @@
|
|||||||
#include "stream_control.h"
|
#include "stream_control.h"
|
||||||
#include "input_ext-dec.h"
|
#include "input_ext-dec.h"
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Libmad include files *
|
* Libmad include files *
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
@ -31,8 +31,6 @@
|
|||||||
#include "stream_control.h"
|
#include "stream_control.h"
|
||||||
#include "input_ext-dec.h"
|
#include "input_ext-dec.h"
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Libmad includes files
|
* Libmad includes files
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* vpar_pool.c : management of the pool of decoder threads
|
* vpar_pool.c : management of the pool of decoder threads
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 2001 VideoLAN
|
* Copyright (C) 2001 VideoLAN
|
||||||
* $Id: vpar_pool.c,v 1.7 2002/04/05 01:05:22 gbazin Exp $
|
* $Id: vpar_pool.c,v 1.8 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Authors: Christophe Massiot <massiot@via.ecp.fr>
|
* Authors: Christophe Massiot <massiot@via.ecp.fr>
|
||||||
*
|
*
|
||||||
@ -89,8 +89,8 @@ void vpar_InitPool( vpar_thread_t * p_vpar )
|
|||||||
for( j = 0; j < 12; j++ )
|
for( j = 0; j < 12; j++ )
|
||||||
{
|
{
|
||||||
p_vpar->pool.mb.p_idcts[j].pi_block =
|
p_vpar->pool.mb.p_idcts[j].pi_block =
|
||||||
vlc_memalign( 16, 64 * sizeof(dctelem_t),
|
vlc_memalign( &p_vpar->pool.mb.p_idcts[j].pi_block_orig,
|
||||||
&p_vpar->pool.mb.p_idcts[j].pi_block_orig );
|
16, 64 * sizeof(dctelem_t) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,8 +168,8 @@ void vpar_SpawnPool( vpar_thread_t * p_vpar )
|
|||||||
for( j = 0; j < 12; j++ )
|
for( j = 0; j < 12; j++ )
|
||||||
{
|
{
|
||||||
p_vpar->pool.p_macroblocks[i].p_idcts[j].pi_block =
|
p_vpar->pool.p_macroblocks[i].p_idcts[j].pi_block =
|
||||||
vlc_memalign( 16, 64 * sizeof(dctelem_t),
|
vlc_memalign( &p_vpar->pool.p_macroblocks[i].p_idcts[j].pi_block_orig,
|
||||||
&p_vpar->pool.p_macroblocks[i].p_idcts[j].pi_block_orig );
|
16, 64 * sizeof(dctelem_t) );
|
||||||
}
|
}
|
||||||
|
|
||||||
p_vpar->pool.pp_vdec[i] = vdec_CreateThread( &p_vpar->pool );
|
p_vpar->pool.pp_vdec[i] = vdec_CreateThread( &p_vpar->pool );
|
||||||
|
@ -47,8 +47,6 @@
|
|||||||
#include "input_ext-dec.h"
|
#include "input_ext-dec.h"
|
||||||
#include "input_ext-plugins.h"
|
#include "input_ext-plugins.h"
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
#include "satellite_tools.h"
|
#include "satellite_tools.h"
|
||||||
|
|
||||||
#define SATELLITE_READ_ONCE 3
|
#define SATELLITE_READ_ONCE 3
|
||||||
|
@ -53,8 +53,6 @@
|
|||||||
#include "input_ext-dec.h"
|
#include "input_ext-dec.h"
|
||||||
#include "input_ext-plugins.h"
|
#include "input_ext-plugins.h"
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
#include "input_vcd.h"
|
#include "input_vcd.h"
|
||||||
#include "cdrom_tools.h"
|
#include "cdrom_tools.h"
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* input_programs.c: es_descriptor_t, pgrm_descriptor_t management
|
* input_programs.c: es_descriptor_t, pgrm_descriptor_t management
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 1999-2001 VideoLAN
|
* Copyright (C) 1999-2001 VideoLAN
|
||||||
* $Id: input_programs.c,v 1.82 2002/04/23 23:44:36 fenrir Exp $
|
* $Id: input_programs.c,v 1.83 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Authors: Christophe Massiot <massiot@via.ecp.fr>
|
* Authors: Christophe Massiot <massiot@via.ecp.fr>
|
||||||
*
|
*
|
||||||
@ -35,8 +35,6 @@
|
|||||||
#include "input_ext-dec.h"
|
#include "input_ext-dec.h"
|
||||||
#include "input_ext-plugins.h"
|
#include "input_ext-plugins.h"
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* NOTICE : all of these functions expect you to have taken the lock on
|
* NOTICE : all of these functions expect you to have taken the lock on
|
||||||
* p_input->stream.lock
|
* p_input->stream.lock
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* and spawn threads.
|
* and spawn threads.
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 1998-2001 VideoLAN
|
* Copyright (C) 1998-2001 VideoLAN
|
||||||
* $Id: main.c,v 1.187 2002/04/24 00:36:24 sam Exp $
|
* $Id: main.c,v 1.188 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Authors: Vincent Seguin <seguin@via.ecp.fr>
|
* Authors: Vincent Seguin <seguin@via.ecp.fr>
|
||||||
* Samuel Hocevar <sam@zoy.org>
|
* Samuel Hocevar <sam@zoy.org>
|
||||||
@ -80,8 +80,6 @@
|
|||||||
#include "video.h"
|
#include "video.h"
|
||||||
#include "video_output.h"
|
#include "video_output.h"
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Configuration options for the main program. Each module will also separatly
|
* Configuration options for the main program. Each module will also separatly
|
||||||
* define its own configuration options.
|
* define its own configuration options.
|
||||||
@ -679,9 +677,7 @@ int main( int i_argc, char *ppsz_argv[], char *ppsz_env[] )
|
|||||||
/*
|
/*
|
||||||
* System specific configuration
|
* System specific configuration
|
||||||
*/
|
*/
|
||||||
#if defined( WIN32 )
|
|
||||||
system_Configure();
|
system_Configure();
|
||||||
#endif
|
|
||||||
|
|
||||||
/* p_main inititalization. FIXME ? */
|
/* p_main inititalization. FIXME ? */
|
||||||
p_main->i_warning_level = config_GetIntVariable( "warning" );
|
p_main->i_warning_level = config_GetIntVariable( "warning" );
|
||||||
@ -844,10 +840,7 @@ int main( int i_argc, char *ppsz_argv[], char *ppsz_env[] )
|
|||||||
/*
|
/*
|
||||||
* System specific cleaning code
|
* System specific cleaning code
|
||||||
*/
|
*/
|
||||||
#if defined( SYS_BEOS ) || defined( SYS_DARWIN ) || defined( WIN32 )
|
|
||||||
system_End();
|
system_End();
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Terminate messages interface and program
|
* Terminate messages interface and program
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* modules_plugin.h : Plugin management functions used by the core application.
|
* modules_plugin.h : Plugin management functions used by the core application.
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 2001 VideoLAN
|
* Copyright (C) 2001 VideoLAN
|
||||||
* $Id: modules_plugin.h,v 1.20 2002/04/25 02:10:33 jobi Exp $
|
* $Id: modules_plugin.h,v 1.21 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Authors: Samuel Hocevar <sam@zoy.org>
|
* Authors: Samuel Hocevar <sam@zoy.org>
|
||||||
*
|
*
|
||||||
@ -248,6 +248,7 @@ module_error( char *psz_buffer )
|
|||||||
(p_symbols)->input_DemuxPS = input_DemuxPS; \
|
(p_symbols)->input_DemuxPS = input_DemuxPS; \
|
||||||
(p_symbols)->input_ReadTS = input_ReadTS; \
|
(p_symbols)->input_ReadTS = input_ReadTS; \
|
||||||
(p_symbols)->input_DemuxTS = input_DemuxTS; \
|
(p_symbols)->input_DemuxTS = input_DemuxTS; \
|
||||||
|
(p_symbols)->input_ClockManageRef = input_ClockManageRef; \
|
||||||
(p_symbols)->input_ClockManageControl = input_ClockManageControl; \
|
(p_symbols)->input_ClockManageControl = input_ClockManageControl; \
|
||||||
(p_symbols)->input_FDSeek = input_FDSeek; \
|
(p_symbols)->input_FDSeek = input_FDSeek; \
|
||||||
(p_symbols)->input_FDClose = input_FDClose; \
|
(p_symbols)->input_FDClose = input_FDClose; \
|
||||||
@ -283,6 +284,7 @@ module_error( char *psz_buffer )
|
|||||||
(p_symbols)->vout_LinkPicture = vout_LinkPicture; \
|
(p_symbols)->vout_LinkPicture = vout_LinkPicture; \
|
||||||
(p_symbols)->vout_UnlinkPicture = vout_UnlinkPicture; \
|
(p_symbols)->vout_UnlinkPicture = vout_UnlinkPicture; \
|
||||||
(p_symbols)->vout_PlacePicture = vout_PlacePicture; \
|
(p_symbols)->vout_PlacePicture = vout_PlacePicture; \
|
||||||
|
(p_symbols)->vout_ChromaCmp = vout_ChromaCmp; \
|
||||||
(p_symbols)->UnalignedGetBits = UnalignedGetBits; \
|
(p_symbols)->UnalignedGetBits = UnalignedGetBits; \
|
||||||
(p_symbols)->UnalignedRemoveBits = UnalignedRemoveBits; \
|
(p_symbols)->UnalignedRemoveBits = UnalignedRemoveBits; \
|
||||||
(p_symbols)->UnalignedShowBits = UnalignedShowBits; \
|
(p_symbols)->UnalignedShowBits = UnalignedShowBits; \
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* thread, and destroy a previously oppened video output thread.
|
* thread, and destroy a previously oppened video output thread.
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 2000-2001 VideoLAN
|
* Copyright (C) 2000-2001 VideoLAN
|
||||||
* $Id: video_output.c,v 1.172 2002/04/21 11:23:03 gbazin Exp $
|
* $Id: video_output.c,v 1.173 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Authors: Vincent Seguin <seguin@via.ecp.fr>
|
* Authors: Vincent Seguin <seguin@via.ecp.fr>
|
||||||
*
|
*
|
||||||
@ -265,6 +265,68 @@ void vout_DestroyThread( vout_thread_t *p_vout, int *pi_status )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
* vout_ChromaCmp: 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( u32 i_chroma, u32 i_amorhc )
|
||||||
|
{
|
||||||
|
/* If they are the same, they are the same ! */
|
||||||
|
if( i_chroma == i_amorhc )
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check for equivalence classes */
|
||||||
|
switch( i_chroma )
|
||||||
|
{
|
||||||
|
case FOURCC_I420:
|
||||||
|
case FOURCC_IYUV:
|
||||||
|
case FOURCC_YV12:
|
||||||
|
switch( i_amorhc )
|
||||||
|
{
|
||||||
|
case FOURCC_I420:
|
||||||
|
case FOURCC_IYUV:
|
||||||
|
case FOURCC_YV12:
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
case FOURCC_UYVY:
|
||||||
|
case FOURCC_UYNV:
|
||||||
|
case FOURCC_Y422:
|
||||||
|
switch( i_amorhc )
|
||||||
|
{
|
||||||
|
case FOURCC_UYVY:
|
||||||
|
case FOURCC_UYNV:
|
||||||
|
case FOURCC_Y422:
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
case FOURCC_YUY2:
|
||||||
|
case FOURCC_YUNV:
|
||||||
|
switch( i_amorhc )
|
||||||
|
{
|
||||||
|
case FOURCC_YUY2:
|
||||||
|
case FOURCC_YUNV:
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* InitThread: initialize video output thread
|
* InitThread: initialize video output thread
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* vout_pictures.c : picture management functions
|
* vout_pictures.c : picture management functions
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 2000 VideoLAN
|
* Copyright (C) 2000 VideoLAN
|
||||||
* $Id: vout_pictures.c,v 1.21 2002/04/15 23:04:08 massiot Exp $
|
* $Id: vout_pictures.c,v 1.22 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Authors: Vincent Seguin <seguin@via.ecp.fr>
|
* Authors: Vincent Seguin <seguin@via.ecp.fr>
|
||||||
* Samuel Hocevar <sam@zoy.org>
|
* Samuel Hocevar <sam@zoy.org>
|
||||||
@ -35,6 +35,11 @@
|
|||||||
#include "video.h"
|
#include "video.h"
|
||||||
#include "video_output.h"
|
#include "video_output.h"
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
* Local prototypes
|
||||||
|
*****************************************************************************/
|
||||||
|
static void vout_CopyPicture( picture_t *p_src, picture_t *p_dest );
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* vout_DisplayPicture: display a picture
|
* vout_DisplayPicture: display a picture
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
@ -517,7 +522,7 @@ void vout_AllocatePicture( picture_t *p_pic,
|
|||||||
i_bytes += p_pic->p[ i_index ].i_lines * p_pic->p[ i_index ].i_pitch;
|
i_bytes += p_pic->p[ i_index ].i_lines * p_pic->p[ i_index ].i_pitch;
|
||||||
}
|
}
|
||||||
|
|
||||||
p_pic->p_data = vlc_memalign( 16, i_bytes, &p_pic->p_data_orig );
|
p_pic->p_data = vlc_memalign( &p_pic->p_data_orig, 16, i_bytes );
|
||||||
|
|
||||||
if( p_pic->p_data == NULL )
|
if( p_pic->p_data == NULL )
|
||||||
{
|
{
|
||||||
@ -536,3 +541,65 @@ void vout_AllocatePicture( picture_t *p_pic,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Following functions are local */
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
* vout_CopyPicture: copy a picture to another one
|
||||||
|
*****************************************************************************
|
||||||
|
* This function takes advantage of the image format, and reduces the
|
||||||
|
* number of calls to memcpy() to the minimum. Source and destination
|
||||||
|
* images must have same width, height, and chroma.
|
||||||
|
*****************************************************************************/
|
||||||
|
static void vout_CopyPicture( picture_t *p_src, picture_t *p_dest )
|
||||||
|
{
|
||||||
|
#if 0
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for( i = 0; i < p_src->i_planes ; i++ )
|
||||||
|
{
|
||||||
|
if( p_src->p[i].i_pitch == p_dest->p[i].i_pitch )
|
||||||
|
{
|
||||||
|
if( p_src->p[i].b_margin )
|
||||||
|
{
|
||||||
|
/* If p_src->b_margin is set, p_dest->b_margin must be set */
|
||||||
|
if( p_dest->p[i].b_hidden )
|
||||||
|
{
|
||||||
|
/* There are margins, but they are hidden : perfect ! */
|
||||||
|
FAST_MEMCPY( p_dest->p[i].p_pixels, p_src->p[i].p_pixels,
|
||||||
|
p_src->p[i].i_pitch * p_src->p[i].i_lines );
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* We can't directly copy the margin. Too bad. */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Same pitch, no margins : perfect ! */
|
||||||
|
FAST_MEMCPY( p_dest->p[i].p_pixels, p_src->p[i].p_pixels,
|
||||||
|
p_src->p[i].i_pitch * p_src->p[i].i_lines );
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Pitch values are different */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* We need to proceed line by line */
|
||||||
|
{
|
||||||
|
u8 *p_in = p_src->p[i].p_pixels, *p_out = p_dest->p[i].p_pixels;
|
||||||
|
int i_line;
|
||||||
|
|
||||||
|
for( i_line = p_src->p[i].i_lines; i_line--; )
|
||||||
|
{
|
||||||
|
FAST_MEMCPY( p_out, p_in, p_src->p[i].i_visible_bytes );
|
||||||
|
p_in += p_src->p[i].i_pitch;
|
||||||
|
p_out += p_dest->p[i].i_pitch;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* vout_subpictures.c : subpicture management functions
|
* vout_subpictures.c : subpicture management functions
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 2000 VideoLAN
|
* Copyright (C) 2000 VideoLAN
|
||||||
* $Id: vout_subpictures.c,v 1.12 2002/04/05 01:05:22 gbazin Exp $
|
* $Id: vout_subpictures.c,v 1.13 2002/04/25 21:52:42 sam Exp $
|
||||||
*
|
*
|
||||||
* Authors: Vincent Seguin <seguin@via.ecp.fr>
|
* Authors: Vincent Seguin <seguin@via.ecp.fr>
|
||||||
* Samuel Hocevar <sam@zoy.org>
|
* Samuel Hocevar <sam@zoy.org>
|
||||||
@ -139,7 +139,7 @@ subpicture_t *vout_CreateSubPicture( vout_thread_t *p_vout, int i_type,
|
|||||||
}
|
}
|
||||||
|
|
||||||
p_free_subpic->p_sys =
|
p_free_subpic->p_sys =
|
||||||
vlc_memalign( 16, i_size, &p_free_subpic->p_sys_orig );
|
vlc_memalign( &p_free_subpic->p_sys_orig, 16, i_size );
|
||||||
|
|
||||||
if( p_free_subpic->p_sys != NULL )
|
if( p_free_subpic->p_sys != NULL )
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user