]> git.sesse.net Git - vlc/commitdiff
* added a few sanity checks in the audio mpeg and ac3 decoders.
authorSam Hocevar <sam@videolan.org>
Tue, 22 Aug 2000 00:13:26 +0000 (00:13 +0000)
committerSam Hocevar <sam@videolan.org>
Tue, 22 Aug 2000 00:13:26 +0000 (00:13 +0000)
  * temporarily got rid of vlc.channels.
  * added notice in debian/control about unencrypted DVDs.
  * fixed PowerPC .deb build.

ChangeLog
Makefile.in
configure
configure.in
debian/changelog
debian/control
src/ac3_decoder/ac3_decoder_thread.c
src/audio_decoder/audio_decoder_thread.c
src/interface/interface.c
vlc.channels [deleted file]

index 7f9d9ec2723ebaee30f3bb810f4a308c254b12dd..90e0fa2fbd32b288741d72eea1e579d3c03d898f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,4 @@
+Tue, 22 Aug 2000 01:31:58 +0200
 0.1.99h :
 
   * fixed the sound issue under beos
   * fixed a Makefile bug which removed the CVS directory.
   * 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.
+  * 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 :
 
   * removed all "*vlc" aliases except "gvlc" and "fbvlc". The other sucked.
@@ -35,7 +40,7 @@ Wed Aug 16 01:07:14 CEST 2000
   * added request for ALSA support in the TODO list.
   * 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 :
 
   * plugin detection now works
@@ -47,14 +52,14 @@ Tue Aug  8 11:24:01 CEST 2000
   * borrowed linuxvideo's MMX motion compensation
   * 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 :
 
   * new bitstream syntax and slight performance increase
   * BeOS build fix
   * 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 :
 
   * fixed RPM build
@@ -77,7 +82,7 @@ Wed Jul 12 01:24:40 CEST 2000
   * fixed an endianness problem which occured on iMacs
   * 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 :
 
   * fixed Makefile.in for debug version
@@ -90,14 +95,14 @@ Sun Jun 18 18:54:48 CEST 2000
   * fixed a warning in ac3_exponent.c
   * 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 :
 
   * fixed a bug preventing to quit when run with no arguments
   * new VLAN changing code
   * created the ChangeLog file :)
 
-Thu Jun 15 20:48:54 CEST 2000
+Thu, 15 Jun 2000 20:48:54 +0200
 0.1.99a :
 
   * first public release
index 1e4002acf84919610072954cf9d64e1fff54d0e9..72bd707885a4a305147e1cd24d3a41bbf817fdc1 100644 (file)
@@ -369,7 +369,7 @@ distclean: clean
        rm -f config.status config.cache config.log
        rm -f gmon.out core build-stamp
        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
 
 install:
@@ -392,7 +392,7 @@ show:
 snapshot:
        rm -rf /tmp/${SNAPSHOTDIR}
        mkdir /tmp/${SNAPSHOTDIR}
-       cp -r * /tmp/${SNAPSHOTDIR}
+       cp -a * /tmp/${SNAPSHOTDIR}
                (cd /tmp/${SNAPSHOTDIR} ; \
                make distclean ; \
                find . -type d -name CVS | xargs rm -rf ; \
index 7cecea714149f77e12b608082715d18a14cf1839..3e89a9ef86668ef8473f811f0cb2e75c4e587cb7 100755 (executable)
--- a/configure
+++ b/configure
@@ -3055,7 +3055,7 @@ fi
 # Check whether --enable-mmx or --disable-mmx was given.
 if test "${enable_mmx+set}" = set; then
   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
 
 
index 834a9f6e3963091bc22d4d3f4729418e31d646cf..6530bba7e3f6b23e3e50033fe91e3b70bf694389 100644 (file)
@@ -67,7 +67,7 @@ AC_ARG_ENABLE(ppro,
 [ if test x$enableval = xyes; then ARCH=${ARCH}" ppro"; fi ])
 AC_ARG_ENABLE(mmx,
 [  --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}
 
index 6f1b79ec882a6d76b5ac23db4c06214735bc3fbb..e383afa8616f0ceb6f9879737ead0cc01c3ffc54 100644 (file)
@@ -1,3 +1,18 @@
+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
 
   * removed all "*vlc" aliases except "gvlc" and "fbvlc". The other sucked.
index f84af33e109b8edb47d77fa3861d39d22e6fe488..55e830fb7b2a70899697e155c7da91dec30a4543 100644 (file)
@@ -10,8 +10,8 @@ Depends: ${shlibs:Depends}
 Description: VideoLAN Client - a free MPEG2 and DVD player
  VideoLAN is a free MPEG2 software solution.
  .
- This is the VideoLAN Client. It plays MPEG2 files, DVDs, or MPEG2
- streams from a network source.
+ This is the VideoLAN Client. It plays MPEG2 files, unencrypted DVDs,
or MPEG2 streams from a network source.
 
 Package: vlc-gnome
 Architecture: any
@@ -20,7 +20,7 @@ Description: Gnome VideoLAN Client - a free MPEG2 and DVD player for Gnome
  VideoLAN is a free MPEG2 software solution.
  .
  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
 Architecture: any
@@ -29,7 +29,7 @@ Description: Framebuffer VideoLAN Client - a free MPEG2 and DVD player
  VideoLAN is a free MPEG2 software solution.
  .
  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
 Architecture: any
index ba950ff1e5872fb409dd2752bab7c0b1bafa26e2..cf6f1c76abd794b15446d53d850fa112fa611b95 100644 (file)
@@ -79,7 +79,8 @@ ac3dec_thread_t * ac3dec_CreateThread (input_thread_t * p_input)
     intf_DbgMsg( "ac3dec debug: creating ac3 decoder thread\n" );
 
     /* 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 "
                       "for ac3dec_CreateThread() to create the new thread\n");
         return NULL;
@@ -114,7 +115,8 @@ ac3dec_thread_t * ac3dec_CreateThread (input_thread_t * p_input)
     p_ac3dec->p_aout_fifo = NULL;
 
     /* 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" );
         free (p_ac3dec);
         return NULL;
@@ -159,8 +161,10 @@ static int InitThread (ac3dec_thread_t * p_ac3dec)
     /* Our first job is to initialize the bit stream structure with the
      * beginning of the input stream */
     vlc_mutex_lock (&p_ac3dec->fifo.data_lock);
-    while (DECODER_FIFO_ISEMPTY(p_ac3dec->fifo)) {
-        if (p_ac3dec->b_die) {
+    while (DECODER_FIFO_ISEMPTY(p_ac3dec->fifo))
+    {
+        if (p_ac3dec->b_die)
+        {
             vlc_mutex_unlock (&p_ac3dec->fifo.data_lock);
             return -1;
         }
@@ -182,7 +186,8 @@ static int InitThread (ac3dec_thread_t * p_ac3dec)
     aout_fifo.l_frame_size = AC3DEC_FRAME_SIZE;
 
     /* 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;
     }
 
@@ -202,7 +207,8 @@ static void RunThread (ac3dec_thread_t * p_ac3dec)
     msleep (INPUT_PTS_DELAY);
 
     /* Initializing the ac3 decoder thread */
-    if (InitThread (p_ac3dec)) /* XXX?? */ {
+    if (InitThread (p_ac3dec)) /* XXX?? */
+    {
         p_ac3dec->b_error = 1;
     }
 
@@ -211,7 +217,8 @@ static void RunThread (ac3dec_thread_t * p_ac3dec)
 
     /* ac3 decoder thread's main loop */
     /* 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;
         ac3_sync_info_t sync_info;
 
@@ -224,35 +231,51 @@ static void RunThread (ac3dec_thread_t * p_ac3dec)
             p_byte_stream = ac3_byte_stream (&p_ac3dec->ac3_decoder);
 
             /* first read till next ac3 magic header */
-            do {
+            do
+            {
                 ac3_byte_stream_next (p_byte_stream);
             } while ((!p_ac3dec->sync_ptr) &&
                     (!p_ac3dec->b_die) &&
                     (!p_ac3dec->b_error));
             /* skip the specified number of bytes */
 
+            if( p_ac3dec->b_die || p_ac3dec->b_error )
+            {
+                goto bad_frame;
+            }
+
             ptr = p_ac3dec->sync_ptr;
-            while (--ptr && (!p_ac3dec->b_die) && (!p_ac3dec->b_error)) {
-                if (p_byte_stream->p_byte >= p_byte_stream->p_end) {
+            while (--ptr && (!p_ac3dec->b_die) && (!p_ac3dec->b_error))
+            {
+                if (p_byte_stream->p_byte >= p_byte_stream->p_end)
+                {
                     ac3_byte_stream_next (p_byte_stream);                    
                 }
                 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;
             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;
             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;
         }
 
-        if (ac3_sync_frame (&p_ac3dec->ac3_decoder, &sync_info)) {
+        if (ac3_sync_frame (&p_ac3dec->ac3_decoder, &sync_info))
+        {
             sync = 0;
             goto bad_frame;
         }
@@ -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);
 
-        if (ac3_decode_frame (&p_ac3dec->ac3_decoder, buffer)) {
+        if (ac3_decode_frame (&p_ac3dec->ac3_decoder, buffer))
+        {
             sync = 0;
             goto bad_frame;
         }
@@ -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 (p_ac3dec->b_error) {
+    if (p_ac3dec->b_error)
+    {
         ErrorThread (p_ac3dec);
     }
 
@@ -293,9 +318,11 @@ static void ErrorThread (ac3dec_thread_t * p_ac3dec)
     vlc_mutex_lock (&p_ac3dec->fifo.data_lock);
 
     /* Wait until a `die' order is sent */
-    while (!p_ac3dec->b_die) {
+    while (!p_ac3dec->b_die)
+    {
         /* 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));
             DECODER_FIFO_INCSTART (p_ac3dec->fifo);
         }
@@ -316,7 +343,8 @@ static void EndThread (ac3dec_thread_t * 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 (p_ac3dec->p_aout_fifo != NULL) {
+    if (p_ac3dec->p_aout_fifo != NULL)
+    {
         aout_DestroyFifo (p_ac3dec->p_aout_fifo);
 
         /* 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)
 
     /* We are looking for the next TS packet that contains real data,
      * and not just a PES header */
-    do {
+    do
+    {
         /* We were reading the last TS packet of this PES packet... It's
          * 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;
 
             /* 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)
             vlc_mutex_lock (&p_ac3dec->fifo.data_lock);
 
             /* 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));
                 return;
             }
@@ -363,10 +394,12 @@ void ac3_byte_stream_next (ac3_byte_stream_t * p_byte_stream)
 
             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);
 
-                if (p_ac3dec->p_input->b_die) {
+                if (p_ac3dec->p_input->b_die)
+                {
                     vlc_mutex_unlock (&(p_ac3dec->fifo.data_lock));
                     return;
                 }
@@ -385,10 +418,10 @@ void ac3_byte_stream_next (ac3_byte_stream_t * p_byte_stream)
             /* We can release the fifo's data lock */
             vlc_mutex_unlock (&p_ac3dec->fifo.data_lock);
         }
-
         /* Perhaps the next TS packet of the current PES packet contains 
          * real data (ie its payload's size is greater than 0) */
-        else {
+        else
+        {
             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);
index cfa80bb39519facb46c7c5f88c5520bf8f8a22f1..df739a124f997465b8fde5ee5b4c6577d9db415b 100644 (file)
@@ -245,9 +245,14 @@ static void RunThread (adec_thread_t * p_adec)
             do 
             {
                 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) );
 
+            if( p_adec->b_die || p_adec->b_error )
+            {
+                goto bad_frame;
+            }
+
             sync = 1;
         }
 
index ce8aa8a7bc8dcbb601088d9f13d23138a8ebc6f0..453abfefa615936a428779a9e1efec8a5105e679 100644 (file)
@@ -509,6 +509,9 @@ static int LoadChannels( intf_thread_t *p_intf, char *psz_filename )
     /* Set default value */
     p_intf->p_channel = NULL;
 
+    /* FIXME: channels are disabled */
+    return( 0 );
+
     /* Open file */
     p_file = fopen( psz_filename, "r" );
     if( p_file == NULL )
diff --git a/vlc.channels b/vlc.channels
deleted file mode 100644 (file)
index 7229d1e..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-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;