Commit 0a883937 authored by Sam Hocevar's avatar Sam Hocevar

* added a few sanity checks in the audio mpeg and ac3 decoders.

  * temporarily got rid of vlc.channels.
  * added notice in debian/control about unencrypted DVDs.
  * fixed PowerPC .deb build.
parent 33f9e173
Tue, 22 Aug 2000 01:31:58 +0200
0.1.99h : 0.1.99h :
* fixed the sound issue under beos * fixed the sound issue under beos
...@@ -15,8 +16,12 @@ ...@@ -15,8 +16,12 @@
* fixed a Makefile bug which removed the CVS directory. * fixed a Makefile bug which removed the CVS directory.
* removed the frame statistics output. * removed the frame statistics output.
* removed a verbose message in intf_sdl.c. * removed a verbose message in intf_sdl.c.
* added a few sanity checks in the audio mpeg and ac3 decoders.
* temporarily got rid of vlc.channels.
* added notice in debian/control about unencrypted DVDs.
* fixed PowerPC .deb build.
Wed Aug 16 01:07:14 CEST 2000 Wed, 16 Aug 2000 01:07:14 +0200
0.1.99g : 0.1.99g :
* removed all "*vlc" aliases except "gvlc" and "fbvlc". The other sucked. * removed all "*vlc" aliases except "gvlc" and "fbvlc". The other sucked.
...@@ -35,7 +40,7 @@ Wed Aug 16 01:07:14 CEST 2000 ...@@ -35,7 +40,7 @@ Wed Aug 16 01:07:14 CEST 2000
* added request for ALSA support in the TODO list. * added request for ALSA support in the TODO list.
* changed "pentiumpro" to "ppro" in the ./configure, it was misleading. * changed "pentiumpro" to "ppro" in the ./configure, it was misleading.
Tue Aug 8 11:24:01 CEST 2000 Tue, 8 Aug 2000 11:24:01 +0200
0.1.99f : 0.1.99f :
* plugin detection now works * plugin detection now works
...@@ -47,14 +52,14 @@ Tue Aug 8 11:24:01 CEST 2000 ...@@ -47,14 +52,14 @@ Tue Aug 8 11:24:01 CEST 2000
* borrowed linuxvideo's MMX motion compensation * borrowed linuxvideo's MMX motion compensation
* fixed an undefined symbol in the MMX YUV plugin * fixed an undefined symbol in the MMX YUV plugin
Thu Jul 20 15:14:06 CEST 2000 Thu, 20 Jul 2000 15:14:06 +0200
0.1.99e : 0.1.99e :
* new bitstream syntax and slight performance increase * new bitstream syntax and slight performance increase
* BeOS build fix * BeOS build fix
* removed the sample code from the reference decoder * removed the sample code from the reference decoder
Wed Jul 12 01:24:40 CEST 2000 Wed, 12 Jul 2000 01:24:40 +0200
0.1.99d : 0.1.99d :
* fixed RPM build * fixed RPM build
...@@ -77,7 +82,7 @@ Wed Jul 12 01:24:40 CEST 2000 ...@@ -77,7 +82,7 @@ Wed Jul 12 01:24:40 CEST 2000
* fixed an endianness problem which occured on iMacs * fixed an endianness problem which occured on iMacs
* fixed the build for the Mandrake distribution * fixed the build for the Mandrake distribution
Sun Jun 18 18:54:48 CEST 2000 Sun, 18 Jun 2000 18:54:48 +0200
0.1.99c : 0.1.99c :
* fixed Makefile.in for debug version * fixed Makefile.in for debug version
...@@ -90,14 +95,14 @@ Sun Jun 18 18:54:48 CEST 2000 ...@@ -90,14 +95,14 @@ Sun Jun 18 18:54:48 CEST 2000
* fixed a warning in ac3_exponent.c * fixed a warning in ac3_exponent.c
* automatic support for .rpm and .deb building * automatic support for .rpm and .deb building
Sat Jun 17 03:35:02 CEST 2000 Sat, 17 Jun 2000 03:35:02 +0200
0.1.99b : 0.1.99b :
* fixed a bug preventing to quit when run with no arguments * fixed a bug preventing to quit when run with no arguments
* new VLAN changing code * new VLAN changing code
* created the ChangeLog file :) * created the ChangeLog file :)
Thu Jun 15 20:48:54 CEST 2000 Thu, 15 Jun 2000 20:48:54 +0200
0.1.99a : 0.1.99a :
* first public release * first public release
......
...@@ -369,7 +369,7 @@ distclean: clean ...@@ -369,7 +369,7 @@ distclean: clean
rm -f config.status config.cache config.log rm -f config.status config.cache config.log
rm -f gmon.out core build-stamp rm -f gmon.out core build-stamp
rm -rf .dep rm -rf .dep
rm -rf debian/tmp debian/*.debhelper debian/*.substvars rm -rf debian/tmp debian/files debian/*.debhelper debian/*.substvars
find debian/* -type d -maxdepth 0 -name 'vlc-*' | xargs rm -rf find debian/* -type d -maxdepth 0 -name 'vlc-*' | xargs rm -rf
install: install:
...@@ -392,7 +392,7 @@ show: ...@@ -392,7 +392,7 @@ show:
snapshot: snapshot:
rm -rf /tmp/${SNAPSHOTDIR} rm -rf /tmp/${SNAPSHOTDIR}
mkdir /tmp/${SNAPSHOTDIR} mkdir /tmp/${SNAPSHOTDIR}
cp -r * /tmp/${SNAPSHOTDIR} cp -a * /tmp/${SNAPSHOTDIR}
(cd /tmp/${SNAPSHOTDIR} ; \ (cd /tmp/${SNAPSHOTDIR} ; \
make distclean ; \ make distclean ; \
find . -type d -name CVS | xargs rm -rf ; \ find . -type d -name CVS | xargs rm -rf ; \
......
...@@ -3055,7 +3055,7 @@ fi ...@@ -3055,7 +3055,7 @@ fi
# Check whether --enable-mmx or --disable-mmx was given. # Check whether --enable-mmx or --disable-mmx was given.
if test "${enable_mmx+set}" = set; then if test "${enable_mmx+set}" = set; then
enableval="$enable_mmx" enableval="$enable_mmx"
if test x$enableval = xyes; then ARCH=${ARCH}" mmx"; PLUGINS=${PLUGINS}"yuvmmx "; fi if test x`echo $ARCH | cut -b3-4` = x86 ; then if test x$enableval = xyes; then ARCH=${ARCH}" mmx"; PLUGINS=${PLUGINS}"yuvmmx "; fi; fi
fi fi
......
...@@ -67,7 +67,7 @@ AC_ARG_ENABLE(ppro, ...@@ -67,7 +67,7 @@ AC_ARG_ENABLE(ppro,
[ if test x$enableval = xyes; then ARCH=${ARCH}" ppro"; fi ]) [ if test x$enableval = xyes; then ARCH=${ARCH}" ppro"; fi ])
AC_ARG_ENABLE(mmx, AC_ARG_ENABLE(mmx,
[ --enable-mmx Enable MMX optimizations (default is no)], [ --enable-mmx Enable MMX optimizations (default is no)],
[ if test x$enableval = xyes; then ARCH=${ARCH}" mmx"; PLUGINS=${PLUGINS}"yuvmmx "; fi ]) [ if test x`echo $ARCH | cut -b3-4` = x86 ; then if test x$enableval = xyes; then ARCH=${ARCH}" mmx"; PLUGINS=${PLUGINS}"yuvmmx "; fi; fi ])
SYS=${host_os} SYS=${host_os}
......
vlc (0.1.99h) unstable; urgency=low
* added support for the SDL vout : the --display fullscreen allows
fullscreen when possible. Disabled by default.
* updated debian directory to build vlc-sdl.
* removed CCFLAGS flags which were improperly used.
* added hints for powerpc build.
* fixed the input_file exit bug.
* removed the frame statistics output.
* removed a verbose message in intf_sdl.c.
* added a few sanity checks in the audio mpeg and ac3 decoders.
* temporarily got rid of vlc.channels.
-- Samuel Hocevar <sam@via.ecp.fr> Tue, 22 Aug 2000 01:31:58 +0200
vlc (0.1.99g) unstable; urgency=low vlc (0.1.99g) unstable; urgency=low
* removed all "*vlc" aliases except "gvlc" and "fbvlc". The other sucked. * removed all "*vlc" aliases except "gvlc" and "fbvlc". The other sucked.
......
...@@ -10,8 +10,8 @@ Depends: ${shlibs:Depends} ...@@ -10,8 +10,8 @@ Depends: ${shlibs:Depends}
Description: VideoLAN Client - a free MPEG2 and DVD player Description: VideoLAN Client - a free MPEG2 and DVD player
VideoLAN is a free MPEG2 software solution. VideoLAN is a free MPEG2 software solution.
. .
This is the VideoLAN Client. It plays MPEG2 files, DVDs, or MPEG2 This is the VideoLAN Client. It plays MPEG2 files, unencrypted DVDs,
streams from a network source. or MPEG2 streams from a network source.
Package: vlc-gnome Package: vlc-gnome
Architecture: any Architecture: any
...@@ -20,7 +20,7 @@ Description: Gnome VideoLAN Client - a free MPEG2 and DVD player for Gnome ...@@ -20,7 +20,7 @@ Description: Gnome VideoLAN Client - a free MPEG2 and DVD player for Gnome
VideoLAN is a free MPEG2 software solution. VideoLAN is a free MPEG2 software solution.
. .
This is the Gnome version of the VideoLAN Client. It plays MPEG2 files, This is the Gnome version of the VideoLAN Client. It plays MPEG2 files,
DVDs, or MPEG2 streams from a network source. unencrypted DVDs, or MPEG2 streams from a network source.
Package: vlc-fb Package: vlc-fb
Architecture: any Architecture: any
...@@ -29,7 +29,7 @@ Description: Framebuffer VideoLAN Client - a free MPEG2 and DVD player ...@@ -29,7 +29,7 @@ Description: Framebuffer VideoLAN Client - a free MPEG2 and DVD player
VideoLAN is a free MPEG2 software solution. VideoLAN is a free MPEG2 software solution.
. .
This is the Linux framebuffer version of the VideoLAN Client. It plays This is the Linux framebuffer version of the VideoLAN Client. It plays
MPEG2 files, DVDs, or MPEG2 streams from a network source. MPEG2 files, unencrypted DVDs, or MPEG2 streams from a network source.
Package: vlc-ggi Package: vlc-ggi
Architecture: any Architecture: any
......
...@@ -79,7 +79,8 @@ ac3dec_thread_t * ac3dec_CreateThread (input_thread_t * p_input) ...@@ -79,7 +79,8 @@ ac3dec_thread_t * ac3dec_CreateThread (input_thread_t * p_input)
intf_DbgMsg( "ac3dec debug: creating ac3 decoder thread\n" ); intf_DbgMsg( "ac3dec debug: creating ac3 decoder thread\n" );
/* Allocate the memory needed to store the thread's structure */ /* Allocate the memory needed to store the thread's structure */
if ((p_ac3dec = (ac3dec_thread_t *)malloc (sizeof(ac3dec_thread_t))) == NULL) { if ((p_ac3dec = (ac3dec_thread_t *)malloc (sizeof(ac3dec_thread_t))) == NULL)
{
intf_ErrMsg ( "ac3dec error: not enough memory " intf_ErrMsg ( "ac3dec error: not enough memory "
"for ac3dec_CreateThread() to create the new thread\n"); "for ac3dec_CreateThread() to create the new thread\n");
return NULL; return NULL;
...@@ -114,7 +115,8 @@ ac3dec_thread_t * ac3dec_CreateThread (input_thread_t * p_input) ...@@ -114,7 +115,8 @@ ac3dec_thread_t * ac3dec_CreateThread (input_thread_t * p_input)
p_ac3dec->p_aout_fifo = NULL; p_ac3dec->p_aout_fifo = NULL;
/* Spawn the ac3 decoder thread */ /* Spawn the ac3 decoder thread */
if (vlc_thread_create(&p_ac3dec->thread_id, "ac3 decoder", (vlc_thread_func_t)RunThread, (void *)p_ac3dec)) { if (vlc_thread_create(&p_ac3dec->thread_id, "ac3 decoder", (vlc_thread_func_t)RunThread, (void *)p_ac3dec))
{
intf_ErrMsg( "ac3dec error: can't spawn ac3 decoder thread\n" ); intf_ErrMsg( "ac3dec error: can't spawn ac3 decoder thread\n" );
free (p_ac3dec); free (p_ac3dec);
return NULL; return NULL;
...@@ -159,8 +161,10 @@ static int InitThread (ac3dec_thread_t * p_ac3dec) ...@@ -159,8 +161,10 @@ static int InitThread (ac3dec_thread_t * p_ac3dec)
/* Our first job is to initialize the bit stream structure with the /* Our first job is to initialize the bit stream structure with the
* beginning of the input stream */ * beginning of the input stream */
vlc_mutex_lock (&p_ac3dec->fifo.data_lock); vlc_mutex_lock (&p_ac3dec->fifo.data_lock);
while (DECODER_FIFO_ISEMPTY(p_ac3dec->fifo)) { while (DECODER_FIFO_ISEMPTY(p_ac3dec->fifo))
if (p_ac3dec->b_die) { {
if (p_ac3dec->b_die)
{
vlc_mutex_unlock (&p_ac3dec->fifo.data_lock); vlc_mutex_unlock (&p_ac3dec->fifo.data_lock);
return -1; return -1;
} }
...@@ -182,7 +186,8 @@ static int InitThread (ac3dec_thread_t * p_ac3dec) ...@@ -182,7 +186,8 @@ static int InitThread (ac3dec_thread_t * p_ac3dec)
aout_fifo.l_frame_size = AC3DEC_FRAME_SIZE; aout_fifo.l_frame_size = AC3DEC_FRAME_SIZE;
/* Creating the audio output fifo */ /* Creating the audio output fifo */
if ((p_ac3dec->p_aout_fifo = aout_CreateFifo(p_ac3dec->p_aout, &aout_fifo)) == NULL) { if ((p_ac3dec->p_aout_fifo = aout_CreateFifo(p_ac3dec->p_aout, &aout_fifo)) == NULL)
{
return -1; return -1;
} }
...@@ -202,7 +207,8 @@ static void RunThread (ac3dec_thread_t * p_ac3dec) ...@@ -202,7 +207,8 @@ static void RunThread (ac3dec_thread_t * p_ac3dec)
msleep (INPUT_PTS_DELAY); msleep (INPUT_PTS_DELAY);
/* Initializing the ac3 decoder thread */ /* Initializing the ac3 decoder thread */
if (InitThread (p_ac3dec)) /* XXX?? */ { if (InitThread (p_ac3dec)) /* XXX?? */
{
p_ac3dec->b_error = 1; p_ac3dec->b_error = 1;
} }
...@@ -211,7 +217,8 @@ static void RunThread (ac3dec_thread_t * p_ac3dec) ...@@ -211,7 +217,8 @@ static void RunThread (ac3dec_thread_t * p_ac3dec)
/* ac3 decoder thread's main loop */ /* ac3 decoder thread's main loop */
/* FIXME : do we have enough room to store the decoded frames ?? */ /* FIXME : do we have enough room to store the decoded frames ?? */
while ((!p_ac3dec->b_die) && (!p_ac3dec->b_error)) { while ((!p_ac3dec->b_die) && (!p_ac3dec->b_error))
{
s16 * buffer; s16 * buffer;
ac3_sync_info_t sync_info; ac3_sync_info_t sync_info;
...@@ -224,35 +231,51 @@ static void RunThread (ac3dec_thread_t * p_ac3dec) ...@@ -224,35 +231,51 @@ static void RunThread (ac3dec_thread_t * p_ac3dec)
p_byte_stream = ac3_byte_stream (&p_ac3dec->ac3_decoder); p_byte_stream = ac3_byte_stream (&p_ac3dec->ac3_decoder);
/* first read till next ac3 magic header */ /* first read till next ac3 magic header */
do { do
{
ac3_byte_stream_next (p_byte_stream); ac3_byte_stream_next (p_byte_stream);
} while ((!p_ac3dec->sync_ptr) && } while ((!p_ac3dec->sync_ptr) &&
(!p_ac3dec->b_die) && (!p_ac3dec->b_die) &&
(!p_ac3dec->b_error)); (!p_ac3dec->b_error));
/* skip the specified number of bytes */ /* skip the specified number of bytes */
if( p_ac3dec->b_die || p_ac3dec->b_error )
{
goto bad_frame;
}
ptr = p_ac3dec->sync_ptr; ptr = p_ac3dec->sync_ptr;
while (--ptr && (!p_ac3dec->b_die) && (!p_ac3dec->b_error)) { while (--ptr && (!p_ac3dec->b_die) && (!p_ac3dec->b_error))
if (p_byte_stream->p_byte >= p_byte_stream->p_end) { {
if (p_byte_stream->p_byte >= p_byte_stream->p_end)
{
ac3_byte_stream_next (p_byte_stream); ac3_byte_stream_next (p_byte_stream);
} }
p_byte_stream->p_byte++; p_byte_stream->p_byte++;
} }
/* we are in sync now */ if( p_ac3dec->b_die || p_ac3dec->b_error )
{
goto bad_frame;
}
/* we are in sync now */
sync = 1; sync = 1;
p_ac3dec->sync_ptr = 0; p_ac3dec->sync_ptr = 0;
} }
if (DECODER_FIFO_START(p_ac3dec->fifo)->b_has_pts) { if (DECODER_FIFO_START(p_ac3dec->fifo)->b_has_pts)
{
p_ac3dec->p_aout_fifo->date[p_ac3dec->p_aout_fifo->l_end_frame] = DECODER_FIFO_START(p_ac3dec->fifo)->i_pts; p_ac3dec->p_aout_fifo->date[p_ac3dec->p_aout_fifo->l_end_frame] = DECODER_FIFO_START(p_ac3dec->fifo)->i_pts;
DECODER_FIFO_START(p_ac3dec->fifo)->b_has_pts = 0; DECODER_FIFO_START(p_ac3dec->fifo)->b_has_pts = 0;
} else { }
else
{
p_ac3dec->p_aout_fifo->date[p_ac3dec->p_aout_fifo->l_end_frame] = LAST_MDATE; p_ac3dec->p_aout_fifo->date[p_ac3dec->p_aout_fifo->l_end_frame] = LAST_MDATE;
} }
if (ac3_sync_frame (&p_ac3dec->ac3_decoder, &sync_info)) { if (ac3_sync_frame (&p_ac3dec->ac3_decoder, &sync_info))
{
sync = 0; sync = 0;
goto bad_frame; goto bad_frame;
} }
...@@ -261,7 +284,8 @@ static void RunThread (ac3dec_thread_t * p_ac3dec) ...@@ -261,7 +284,8 @@ static void RunThread (ac3dec_thread_t * p_ac3dec)
buffer = ((s16 *)p_ac3dec->p_aout_fifo->buffer) + (p_ac3dec->p_aout_fifo->l_end_frame * AC3DEC_FRAME_SIZE); buffer = ((s16 *)p_ac3dec->p_aout_fifo->buffer) + (p_ac3dec->p_aout_fifo->l_end_frame * AC3DEC_FRAME_SIZE);
if (ac3_decode_frame (&p_ac3dec->ac3_decoder, buffer)) { if (ac3_decode_frame (&p_ac3dec->ac3_decoder, buffer))
{
sync = 0; sync = 0;
goto bad_frame; goto bad_frame;
} }
...@@ -275,7 +299,8 @@ static void RunThread (ac3dec_thread_t * p_ac3dec) ...@@ -275,7 +299,8 @@ static void RunThread (ac3dec_thread_t * p_ac3dec)
} }
/* If b_error is set, the ac3 decoder thread enters the error loop */ /* If b_error is set, the ac3 decoder thread enters the error loop */
if (p_ac3dec->b_error) { if (p_ac3dec->b_error)
{
ErrorThread (p_ac3dec); ErrorThread (p_ac3dec);
} }
...@@ -293,9 +318,11 @@ static void ErrorThread (ac3dec_thread_t * p_ac3dec) ...@@ -293,9 +318,11 @@ static void ErrorThread (ac3dec_thread_t * p_ac3dec)
vlc_mutex_lock (&p_ac3dec->fifo.data_lock); vlc_mutex_lock (&p_ac3dec->fifo.data_lock);
/* Wait until a `die' order is sent */ /* Wait until a `die' order is sent */
while (!p_ac3dec->b_die) { while (!p_ac3dec->b_die)
{
/* Trash all received PES packets */ /* Trash all received PES packets */
while (!DECODER_FIFO_ISEMPTY(p_ac3dec->fifo)) { while (!DECODER_FIFO_ISEMPTY(p_ac3dec->fifo))
{
input_NetlistFreePES (p_ac3dec->p_input, DECODER_FIFO_START(p_ac3dec->fifo)); input_NetlistFreePES (p_ac3dec->p_input, DECODER_FIFO_START(p_ac3dec->fifo));
DECODER_FIFO_INCSTART (p_ac3dec->fifo); DECODER_FIFO_INCSTART (p_ac3dec->fifo);
} }
...@@ -316,7 +343,8 @@ static void EndThread (ac3dec_thread_t * p_ac3dec) ...@@ -316,7 +343,8 @@ static void EndThread (ac3dec_thread_t * p_ac3dec)
intf_DbgMsg ("ac3dec debug: destroying ac3 decoder thread %p\n", p_ac3dec); intf_DbgMsg ("ac3dec debug: destroying ac3 decoder thread %p\n", p_ac3dec);
/* If the audio output fifo was created, we destroy it */ /* If the audio output fifo was created, we destroy it */
if (p_ac3dec->p_aout_fifo != NULL) { if (p_ac3dec->p_aout_fifo != NULL)
{
aout_DestroyFifo (p_ac3dec->p_aout_fifo); aout_DestroyFifo (p_ac3dec->p_aout_fifo);
/* Make sure the output thread leaves the NextFrame() function */ /* Make sure the output thread leaves the NextFrame() function */
...@@ -337,10 +365,12 @@ void ac3_byte_stream_next (ac3_byte_stream_t * p_byte_stream) ...@@ -337,10 +365,12 @@ void ac3_byte_stream_next (ac3_byte_stream_t * p_byte_stream)
/* We are looking for the next TS packet that contains real data, /* We are looking for the next TS packet that contains real data,
* and not just a PES header */ * and not just a PES header */
do { do
{
/* We were reading the last TS packet of this PES packet... It's /* We were reading the last TS packet of this PES packet... It's
* time to jump to the next PES packet */ * time to jump to the next PES packet */
if (p_ac3dec->p_ts->p_next_ts == NULL) { if (p_ac3dec->p_ts->p_next_ts == NULL)
{
int ptr; int ptr;
/* We are going to read/write the start and end indexes of the /* We are going to read/write the start and end indexes of the
...@@ -349,7 +379,8 @@ void ac3_byte_stream_next (ac3_byte_stream_t * p_byte_stream) ...@@ -349,7 +379,8 @@ void ac3_byte_stream_next (ac3_byte_stream_t * p_byte_stream)
vlc_mutex_lock (&p_ac3dec->fifo.data_lock); vlc_mutex_lock (&p_ac3dec->fifo.data_lock);
/* Is the input thread dying ? */ /* Is the input thread dying ? */
if (p_ac3dec->p_input->b_die) { if (p_ac3dec->p_input->b_die)
{
vlc_mutex_unlock (&(p_ac3dec->fifo.data_lock)); vlc_mutex_unlock (&(p_ac3dec->fifo.data_lock));
return; return;
} }
...@@ -363,10 +394,12 @@ void ac3_byte_stream_next (ac3_byte_stream_t * p_byte_stream) ...@@ -363,10 +394,12 @@ void ac3_byte_stream_next (ac3_byte_stream_t * p_byte_stream)
DECODER_FIFO_INCSTART (p_ac3dec->fifo); DECODER_FIFO_INCSTART (p_ac3dec->fifo);
while (DECODER_FIFO_ISEMPTY(p_ac3dec->fifo)) { while (DECODER_FIFO_ISEMPTY(p_ac3dec->fifo))
{
vlc_cond_wait (&p_ac3dec->fifo.data_wait, &p_ac3dec->fifo.data_lock); vlc_cond_wait (&p_ac3dec->fifo.data_wait, &p_ac3dec->fifo.data_lock);
if (p_ac3dec->p_input->b_die) { if (p_ac3dec->p_input->b_die)
{
vlc_mutex_unlock (&(p_ac3dec->fifo.data_lock)); vlc_mutex_unlock (&(p_ac3dec->fifo.data_lock));
return; return;
} }
...@@ -385,10 +418,10 @@ void ac3_byte_stream_next (ac3_byte_stream_t * p_byte_stream) ...@@ -385,10 +418,10 @@ void ac3_byte_stream_next (ac3_byte_stream_t * p_byte_stream)
/* We can release the fifo's data lock */ /* We can release the fifo's data lock */
vlc_mutex_unlock (&p_ac3dec->fifo.data_lock); vlc_mutex_unlock (&p_ac3dec->fifo.data_lock);
} }
/* Perhaps the next TS packet of the current PES packet contains /* Perhaps the next TS packet of the current PES packet contains
* real data (ie its payload's size is greater than 0) */ * real data (ie its payload's size is greater than 0) */
else { else
{
p_ac3dec->p_ts = p_ac3dec->p_ts->p_next_ts; p_ac3dec->p_ts = p_ac3dec->p_ts->p_next_ts;
} }
} while (p_ac3dec->p_ts->i_payload_start == p_ac3dec->p_ts->i_payload_end); } while (p_ac3dec->p_ts->i_payload_start == p_ac3dec->p_ts->i_payload_end);
......
...@@ -245,9 +245,14 @@ static void RunThread (adec_thread_t * p_adec) ...@@ -245,9 +245,14 @@ static void RunThread (adec_thread_t * p_adec)
do do
{ {
adec_byte_stream_next ( p_byte_stream ); adec_byte_stream_next ( p_byte_stream );
} while ( 0 && (!p_adec->align) && (!p_adec->b_die) } while ( (!p_adec->align) && (!p_adec->b_die)
&& (!p_adec->b_error) ); && (!p_adec->b_error) );
if( p_adec->b_die || p_adec->b_error )
{
goto bad_frame;
}
sync = 1; sync = 1;
} }
......
...@@ -509,6 +509,9 @@ static int LoadChannels( intf_thread_t *p_intf, char *psz_filename ) ...@@ -509,6 +509,9 @@ static int LoadChannels( intf_thread_t *p_intf, char *psz_filename )
/* Set default value */ /* Set default value */
p_intf->p_channel = NULL; p_intf->p_channel = NULL;
/* FIXME: channels are disabled */
return( 0 );
/* Open file */ /* Open file */
p_file = fopen( psz_filename, "r" ); p_file = fopen( psz_filename, "r" );
if( p_file == NULL ) if( p_file == NULL )
......
0;Ptyx (caribou);20;caribou.via.ecp.fr;
1;Sam (bofh);20;bofh.via.ecp.fr;
2;Polux (dressler);20;dressler.via.ecp.fr;
3;Stef (kim);20;kim.via.ecp.fr;
#4;File;10;/home/sam/videolan/flux/bandesannonce.vob;
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