Commit 94bda0d1 authored by Laurent Aimar's avatar Laurent Aimar

* include/common.h and input_ext-plugins.h, src/misc/modules_plugin.h :...

    * include/common.h and input_ext-plugins.h, src/misc/modules_plugin.h : export input_ClockGetTS for plugins.
    * plugins/mpeg_system/mpeg_audio.c : a demux for mpeg audio stream (file, web radio ...)
    * Makefile configure.in : to compile it
parent cdfc1ede
...@@ -128,6 +128,7 @@ PLUGINS_TARGETS := a52/a52 \ ...@@ -128,6 +128,7 @@ PLUGINS_TARGETS := a52/a52 \
motion/motionmmxext \ motion/motionmmxext \
motion/motion3dnow \ motion/motion3dnow \
motion/motionaltivec \ motion/motionaltivec \
mpeg_system/mpeg_audio \
mpeg_system/mpeg_es \ mpeg_system/mpeg_es \
mpeg_system/mpeg_ps \ mpeg_system/mpeg_ps \
mpeg_system/mpeg_ts \ mpeg_system/mpeg_ts \
......
...@@ -5417,7 +5417,7 @@ case x"${target_cpu}" in ...@@ -5417,7 +5417,7 @@ case x"${target_cpu}" in
esac esac
BUILTINS="${BUILTINS} idct idctclassic motion imdct downmix chroma_i420_rgb chroma_i420_yuy2 chroma_i422_yuy2 chroma_i420_ymga mpeg_adec ac3_adec mpeg_vdec" BUILTINS="${BUILTINS} idct idctclassic motion imdct downmix chroma_i420_rgb chroma_i420_yuy2 chroma_i422_yuy2 chroma_i420_ymga mpeg_adec ac3_adec mpeg_vdec"
PLUGINS="${PLUGINS} dummy null rc logger mpeg_es mpeg_ps mpeg_ts file udp http ipv4 memcpy lpcm_adec ac3_spdif spudec filter_deinterlace filter_invert filter_wall filter_transform filter_distort fx_scope" PLUGINS="${PLUGINS} dummy null rc logger mpeg_es mpeg_ps mpeg_ts mpeg_audio file udp http ipv4 memcpy lpcm_adec ac3_spdif spudec filter_deinterlace filter_invert filter_wall filter_transform filter_distort fx_scope"
MMX_MODULES="memcpymmx idctmmx motionmmx chroma_i420_rgb_mmx chroma_i420_yuy2_mmx chroma_i422_yuy2_mmx chroma_i420_ymga_mmx" MMX_MODULES="memcpymmx idctmmx motionmmx chroma_i420_rgb_mmx chroma_i420_yuy2_mmx chroma_i422_yuy2_mmx chroma_i420_ymga_mmx"
MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext" MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext"
......
...@@ -406,7 +406,7 @@ dnl ...@@ -406,7 +406,7 @@ dnl
dnl default modules dnl default modules
dnl dnl
BUILTINS="${BUILTINS} idct idctclassic motion imdct downmix chroma_i420_rgb chroma_i420_yuy2 chroma_i422_yuy2 chroma_i420_ymga mpeg_adec ac3_adec mpeg_vdec" BUILTINS="${BUILTINS} idct idctclassic motion imdct downmix chroma_i420_rgb chroma_i420_yuy2 chroma_i422_yuy2 chroma_i420_ymga mpeg_adec ac3_adec mpeg_vdec"
PLUGINS="${PLUGINS} dummy null rc logger mpeg_es mpeg_ps mpeg_ts file udp http ipv4 memcpy lpcm_adec ac3_spdif spudec filter_deinterlace filter_invert filter_wall filter_transform filter_distort fx_scope" PLUGINS="${PLUGINS} dummy null rc logger mpeg_es mpeg_ps mpeg_ts mpeg_audio file udp http ipv4 memcpy lpcm_adec ac3_spdif spudec filter_deinterlace filter_invert filter_wall filter_transform filter_distort fx_scope"
dnl dnl
dnl Accelerated modules dnl Accelerated modules
......
...@@ -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: common.h,v 1.103 2002/05/03 20:49:30 sam Exp $ * $Id: common.h,v 1.104 2002/05/10 02:04:16 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>
...@@ -636,6 +636,9 @@ typedef struct module_symbols_s ...@@ -636,6 +636,9 @@ typedef struct module_symbols_s
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 );
mtime_t ( *input_ClockGetTS ) ( struct input_thread_s *,
struct pgrm_descriptor_s *,
mtime_t );
void ( * input_FDSeek ) ( struct input_thread_s *, off_t ); void ( * input_FDSeek ) ( struct input_thread_s *, off_t );
void ( * input_FDClose ) ( struct input_thread_s * ); void ( * input_FDClose ) ( struct input_thread_s * );
ssize_t ( * input_FDRead ) ( struct input_thread_s *, byte_t *, ssize_t ( * input_FDRead ) ( struct input_thread_s *, byte_t *,
......
...@@ -3,7 +3,7 @@ ...@@ -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.24 2002/04/25 21:52:42 sam Exp $ * $Id: input_ext-plugins.h,v 1.25 2002/05/10 02:04:16 fenrir Exp $
* *
* Authors: Christophe Massiot <massiot@via.ecp.fr> * Authors: Christophe Massiot <massiot@via.ecp.fr>
* *
...@@ -102,6 +102,7 @@ mtime_t input_ClockGetTS( struct input_thread_s *, ...@@ -102,6 +102,7 @@ mtime_t input_ClockGetTS( struct input_thread_s *,
#else #else
# define input_ClockManageRef p_symbols->input_ClockManageRef # define input_ClockManageRef p_symbols->input_ClockManageRef
# define input_ClockManageControl p_symbols->input_ClockManageControl # define input_ClockManageControl p_symbols->input_ClockManageControl
# define input_ClockGetTS p_symbols->input_ClockGetTS
#endif #endif
/***************************************************************************** /*****************************************************************************
......
...@@ -2,7 +2,7 @@ ...@@ -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.14 2002/05/07 13:53:55 fenrir Exp $ * $Id: avi.c,v 1.15 2002/05/10 02:04:17 fenrir 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
...@@ -438,7 +438,7 @@ static int AVIInit( input_thread_t *p_input ) ...@@ -438,7 +438,7 @@ static int AVIInit( input_thread_t *p_input )
/* we need to seek to be able to readcorrectly */ /* we need to seek to be able to readcorrectly */
if( !p_input->stream.b_seekable ) if( !p_input->stream.b_seekable )
{ {
intf_ErrMsg( "input error: need the ability to seek in stream" ); intf_WarnMsg( 2,"input: RIFF-AVI plug-in discarded (no seekable)" );
return( -1 ); return( -1 );
} }
p_input->p_demux_data = p_input->p_demux_data =
...@@ -461,7 +461,7 @@ static int AVIInit( input_thread_t *p_input ) ...@@ -461,7 +461,7 @@ static int AVIInit( input_thread_t *p_input )
if( RIFF_TestFileHeader( p_input, &p_riff, FOURCC_AVI ) != 0 ) if( RIFF_TestFileHeader( p_input, &p_riff, FOURCC_AVI ) != 0 )
{ {
__AVIFreeDemuxData( p_input ); __AVIFreeDemuxData( p_input );
intf_ErrMsg( "input: RIFF-AVI plug-in discarded (avi_file)" ); intf_WarnMsg( 2,"input: RIFF-AVI plug-in discarded (avi_file)" );
return( -1 ); return( -1 );
} }
p_avi_demux->p_riff = p_riff; p_avi_demux->p_riff = p_riff;
...@@ -802,7 +802,6 @@ static int AVIInit( input_thread_t *p_input ) ...@@ -802,7 +802,6 @@ static int AVIInit( input_thread_t *p_input )
} }
else else
{ {
/* TODO: if there is more than 1 video stream */
intf_Msg( "input error: no video stream found !" ); intf_Msg( "input error: no video stream found !" );
} }
if( p_avi_demux->p_info_audio != NULL ) if( p_avi_demux->p_info_audio != NULL )
...@@ -883,17 +882,14 @@ static int __AVI_NextIndexEntry( input_thread_t *p_input, ...@@ -883,17 +882,14 @@ static int __AVI_NextIndexEntry( input_thread_t *p_input,
p_info->i_idxposc--; p_info->i_idxposc--;
/* create entry on the fly */ /* create entry on the fly */
/* TODO: when parsing for a stream take care of the other to not do /* search for the more advance stream and parse from it for all streams*/
the same things two time */
/* search for the less advance stream and parse from it for all streams*/
p_info_tmp = p_info; p_info_tmp = p_info;
/* XXX XXX XXX change to take the stream the more advanced */
for( i = 0; i < p_avi_demux->i_streams; i++ ) for( i = 0; i < p_avi_demux->i_streams; i++ )
{ {
#define p_info_i p_avi_demux->pp_info[i] #define p_info_i p_avi_demux->pp_info[i]
if( p_info_i->p_index[p_info_i->i_idxnb - 1].i_offset + if( p_info_i->p_index[p_info_i->i_idxnb - 1].i_offset +
p_info_i->i_idxoffset < p_info_i->i_idxoffset >
p_info_tmp->p_index[p_info_tmp->i_idxnb - 1].i_offset + p_info_tmp->p_index[p_info_tmp->i_idxnb - 1].i_offset +
p_info_tmp->i_idxoffset ) p_info_tmp->i_idxoffset )
{ {
...@@ -1264,6 +1260,8 @@ static int AVI_ReAlign( input_thread_t *p_input ) ...@@ -1264,6 +1260,8 @@ static int AVI_ReAlign( input_thread_t *p_input )
&& ( i_pos < p_info->p_index[p_info->i_idxposc].i_offset + && ( i_pos < p_info->p_index[p_info->i_idxposc].i_offset +
p_info->p_index[p_info->i_idxposc].i_length ) ) p_info->p_index[p_info->i_idxposc].i_length ) )
{ {
/* FIXME FIXME FIXME if master == audio and samplesize != 0 */
/* don't work with big chunk */
/* don't do anything we are in the current chunk */ /* don't do anything we are in the current chunk */
return( 0 ); return( 0 );
} }
...@@ -1387,7 +1385,6 @@ static pes_packet_t *AVI_GetFrameInPES( input_thread_t *p_input, ...@@ -1387,7 +1385,6 @@ static pes_packet_t *AVI_GetFrameInPES( input_thread_t *p_input,
/* stream is chunk based , easy */ /* stream is chunk based , easy */
int i_chunk = __AVI_PTSToChunk( p_info, i_dpts); int i_chunk = __AVI_PTSToChunk( p_info, i_dpts);
/* at least one frame */ /* at least one frame */
/* i_chunk = __MIN( 50, i_chunk ); */ /* but no more than 20 */
/* read them */ /* read them */
p_pes_first = NULL; p_pes_first = NULL;
for( i = 0; i < i_chunk; i++ ) for( i = 0; i < i_chunk; i++ )
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* ffmpeg.c: video decoder using ffmpeg library * ffmpeg.c: video decoder using ffmpeg library
***************************************************************************** *****************************************************************************
* Copyright (C) 1999-2001 VideoLAN * Copyright (C) 1999-2001 VideoLAN
* $Id: ffmpeg.c,v 1.6 2002/05/07 13:55:36 fenrir Exp $ * $Id: ffmpeg.c,v 1.7 2002/05/10 02:04:17 fenrir Exp $
* *
* Authors: Laurent Aimar <fenrir@via.ecp.fr> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* *
......
...@@ -292,7 +292,7 @@ enum mad_flow libmad_output(void *data, struct mad_header const *p_libmad_header ...@@ -292,7 +292,7 @@ enum mad_flow libmad_output(void *data, struct mad_header const *p_libmad_header
{ {
p_mad_adec->p_aout_fifo = aout_CreateFifo( p_mad_adec->p_aout_fifo = aout_CreateFifo(
AOUT_FIFO_PCM, /* fifo type */ AOUT_FIFO_PCM, /* fifo type */
p_libmad_pcm->channels, /* nr. of channels */ 2, /*p_libmad_pcm->channels,*/ /* nr. of channels */
p_libmad_pcm->samplerate, /* frame rate in Hz ?*/ p_libmad_pcm->samplerate, /* frame rate in Hz ?*/
p_libmad_pcm->length*2, /* length of output buffer *2 channels*/ p_libmad_pcm->length*2, /* length of output buffer *2 channels*/
NULL ); /* buffer */ NULL ); /* buffer */
...@@ -373,9 +373,11 @@ enum mad_flow libmad_output(void *data, struct mad_header const *p_libmad_header ...@@ -373,9 +373,11 @@ enum mad_flow libmad_output(void *data, struct mad_header const *p_libmad_header
} }
/* DEBUG */ /* DEBUG */
/*
if (p_libmad_pcm->channels == 1) { if (p_libmad_pcm->channels == 1) {
intf_ErrMsg( "mad debug: libmad_output channels [%d]", p_libmad_pcm->channels); intf_ErrMsg( "mad debug: libmad_output channels [%d]", p_libmad_pcm->channels);
} }
*/
vlc_mutex_lock (&p_mad_adec->p_aout_fifo->data_lock); vlc_mutex_lock (&p_mad_adec->p_aout_fifo->data_lock);
p_mad_adec->p_aout_fifo->i_end_frame = (p_mad_adec->p_aout_fifo->i_end_frame + 1) & AOUT_FIFO_SIZE; p_mad_adec->p_aout_fifo->i_end_frame = (p_mad_adec->p_aout_fifo->i_end_frame + 1) & AOUT_FIFO_SIZE;
......
...@@ -2,3 +2,5 @@ mpeg_es_SOURCES = mpeg_es.c ...@@ -2,3 +2,5 @@ mpeg_es_SOURCES = mpeg_es.c
mpeg_ps_SOURCES = mpeg_ps.c mpeg_ps_SOURCES = mpeg_ps.c
mpeg_ts_SOURCES = mpeg_ts.c mpeg_ts_SOURCES = mpeg_ts.c
mpeg_ts_dvbpsi_SOURCES = mpeg_ts.c mpeg_ts_dvbpsi_SOURCES = mpeg_ts.c
mpeg_audio_SOURCES = mpeg_audio.c
This diff is collapsed.
...@@ -2,7 +2,7 @@ ...@@ -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.24 2002/05/03 20:49:30 sam Exp $ * $Id: modules_plugin.h,v 1.25 2002/05/10 02:04:17 fenrir Exp $
* *
* Authors: Samuel Hocevar <sam@zoy.org> * Authors: Samuel Hocevar <sam@zoy.org>
* *
...@@ -253,6 +253,7 @@ module_error( char *psz_buffer ) ...@@ -253,6 +253,7 @@ module_error( char *psz_buffer )
(p_symbols)->input_DemuxTS = input_DemuxTS; \ (p_symbols)->input_DemuxTS = input_DemuxTS; \
(p_symbols)->input_ClockManageRef = input_ClockManageRef; \ (p_symbols)->input_ClockManageRef = input_ClockManageRef; \
(p_symbols)->input_ClockManageControl = input_ClockManageControl; \ (p_symbols)->input_ClockManageControl = input_ClockManageControl; \
(p_symbols)->input_ClockGetTS = input_ClockGetTS; \
(p_symbols)->input_FDSeek = input_FDSeek; \ (p_symbols)->input_FDSeek = input_FDSeek; \
(p_symbols)->input_FDClose = input_FDClose; \ (p_symbols)->input_FDClose = input_FDClose; \
(p_symbols)->input_FDRead = input_FDRead; \ (p_symbols)->input_FDRead = input_FDRead; \
......
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