* Corrected vlc-howto thanks to Arnaud Gomes-do-Vale
authorHenri Fallon <henri@videolan.org>
Wed, 2 May 2001 13:30:30 +0000 (13:30 +0000)
committerHenri Fallon <henri@videolan.org>
Wed, 2 May 2001 13:30:30 +0000 (13:30 +0000)
* Fixed a segfault in TS input. Some stream still do not work, or
  work very slowly with many error messages. I'll try to have a look.

ChangeLog
doc/vlc-howto.sgml
src/input/mpeg_system.c

index 9f238d6..6c2ed86 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,7 +3,9 @@
 #===================#
 
 HEAD
 #===================#
 
 HEAD
-
+  * Fixed a segfault in TS input (psi packets with adaptation field).
+  * Corrected vlc-howto.sgml thanks to Arnaud Gomes-do-Vale
+    <arnaud@carrosse.frmug.org>.
   * Fixed a remaining buffer overflow in the Gnome interface and applied
     the patches to the Gtk+ interface.
   * Fixed a segfault in the SPU decoder initialization.
   * Fixed a remaining buffer overflow in the Gnome interface and applied
     the patches to the Gtk+ interface.
   * Fixed a segfault in the SPU decoder initialization.
index 91fed66..9fee58a 100644 (file)
@@ -3,7 +3,7 @@
 <titlepag>
  <title>VLC HOWTO</title>
  <author>by the Videolan Team<tt><htmlurl url="mailto:videolan-faq@videlan.org" name="videolan-faq@videlan.org"></tt></author>
 <titlepag>
  <title>VLC HOWTO</title>
  <author>by the Videolan Team<tt><htmlurl url="mailto:videolan-faq@videlan.org" name="videolan-faq@videlan.org"></tt></author>
- <date>v0.0.2, 21 apr 2001</date>
+ <date>v0.0.3, 21 apr 2001</date>
 
  <abstract>
   This document describes how to use the vlc (VideoLAN client) to read DVDs and mpeg files and DVDs.
 
  <abstract>
   This document describes how to use the vlc (VideoLAN client) to read DVDs and mpeg files and DVDs.
@@ -18,7 +18,7 @@
  <sect1>
   <heading>What is VideoLAN ?</heading>
   <p>
  <sect1>
   <heading>What is VideoLAN ?</heading>
   <p>
-   VideoLAN is a project of sudent of  the École Centrale Paris which aims 
+   VideoLAN is a project of sudents of the École Centrale Paris which aims 
    to broadcast video on the campus, and provide the students with a MPEG2 
    software-only decoder. VideoLAN is an OpenSource project which will thus 
    allow anyone to watch DVD movies under Linux, BeOS, MacOS and most Unix 
    to broadcast video on the campus, and provide the students with a MPEG2 
    software-only decoder. VideoLAN is an OpenSource project which will thus 
    allow anyone to watch DVD movies under Linux, BeOS, MacOS and most Unix 
@@ -35,7 +35,7 @@
   <p>
    Vlc stands for VideoLAN client. It is the name of the program which is
    capable of decoding MPEG streams, and displaying them onto your screen,
   <p>
    Vlc stands for VideoLAN client. It is the name of the program which is
    capable of decoding MPEG streams, and displaying them onto your screen,
-   so you can watch you favorite movies, confortably sit in your armchair
+   so you can watch you favourite movies, confortably sit in your armchair
    :-).
   </p>
  </sect1>
    :-).
   </p>
  </sect1>
@@ -81,7 +81,7 @@
 <sect>
  <heading>Installing the vlc : the packages</heading>
   <p>
 <sect>
  <heading>Installing the vlc : the packages</heading>
   <p>
-   This is certainly the most simple way to intsall the vlc on your system,
+   This is certainly the simplest way to intsall the vlc on your system,
    especially if you're using a packaged OS.
   </p>
 
    especially if you're using a packaged OS.
   </p>
 
  <sect1>
   <heading>Linux/Unix users</heading>
   <sect2>
  <sect1>
   <heading>Linux/Unix users</heading>
   <sect2>
-   <heading>What package to chose ?</heading>
+   <heading>Which package to chose ?</heading>
    <p>
    <p>
-    There are different packages because vlc has "plugins" which provide functionnalities 
-    but also enlarges the executable and requires external libs. 
+    There are different packages because vlc has "plugins" which provide features 
+    but also enlarge the executable and require external libs. 
    </p>
    <p>
     SDL is a lib which allows you to have an accelerated video output.
     You will need libsdl > 1.1.6
    </p>
    <p>
    </p>
    <p>
     SDL is a lib which allows you to have an accelerated video output.
     You will need libsdl > 1.1.6
    </p>
    <p>
-    If you're using the enlighted sound daemon, you may want to try 
+    If you're using the enlightened sound daemon, you may want to try 
     the esd-aware vlc.
    </p>
    <p>
     the esd-aware vlc.
    </p>
    <p>
     <verb>
      vlc [file name]
     </verb>
     <verb>
      vlc [file name]
     </verb>
-    To play a dvd, if you dvd device is "/dev/dvd", you'll type :
+    To play a dvd, if your dvd device is "/dev/dvd", you'll type :
     <verb>
      vlc dvd:/dev/dvd
     </verb>
     <verb>
      vlc dvd:/dev/dvd
     </verb>
   </p>
   <p>
    When you're done with Makefile.opts (which also works if you leave it untouched), just 
   </p>
   <p>
    When you're done with Makefile.opts (which also works if you leave it untouched), just 
-   make, typing :
+   type:
     <verb>
     make
     </verb>
     <verb>
     make
     </verb>
   <heading>Using the videolan network solution</heading>
   <p>
    I'll only speak about the vlc here. There will be a howto on the whole network solution.
   <heading>Using the videolan network solution</heading>
   <p>
    I'll only speak about the vlc here. There will be a howto on the whole network solution.
-   You have to say to the vlc that it'll receive network streams. This can be done either by *
+   You have to tell the vlc that it will receive network streams. This can be done either by
    using the "network" button of the interface, or in the command line : 
    <verb>
     vlc ts://server[:port]
    using the "network" button of the interface, or in the command line : 
    <verb>
     vlc ts://server[:port]
index fd80efd..97aff27 100644 (file)
@@ -2,7 +2,7 @@
  * mpeg_system.c: TS, PS and PES management
  *****************************************************************************
  * Copyright (C) 1998, 1999, 2000 VideoLAN
  * mpeg_system.c: TS, PS and PES management
  *****************************************************************************
  * Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: mpeg_system.c,v 1.52 2001/04/28 03:36:25 sam Exp $
+ * $Id: mpeg_system.c,v 1.53 2001/05/02 13:30:30 henri Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *          Michel Lespinasse <walken@via.ecp.fr>
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *          Michel Lespinasse <walken@via.ecp.fr>
@@ -1048,7 +1048,7 @@ void input_DemuxTS( input_thread_t * p_input, data_packet_t * p_data )
                     /* If this is a PCR_PID, and this TS packet contains a
                      * PCR, we pass it along to the PCR decoder. */
 
                     /* If this is a PCR_PID, and this TS packet contains a
                      * PCR, we pass it along to the PCR decoder. */
 
-                    if( (p_pgrm_demux->i_pcr_pid == i_pid) && (p[5] & 0x10) )
+                    if( !b_psi && (p_pgrm_demux->i_pcr_pid == i_pid) && (p[5] & 0x10) )
                     {
                         /* There should be a PCR field in the packet, check
                          * if the adaptation field is long enough to carry
                     {
                         /* There should be a PCR field in the packet, check
                          * if the adaptation field is long enough to carry
@@ -1484,13 +1484,19 @@ static void input_DecodePMT( input_thread_t * p_input, es_descriptor_t * p_es )
                         break;
                     case MPEG1_AUDIO_ES:
                     case MPEG2_AUDIO_ES:
                         break;
                     case MPEG1_AUDIO_ES:
                     case MPEG2_AUDIO_ES:
-                    case AC3_AUDIO_ES :
                     case LPCM_AUDIO_ES :
                         p_new_es->i_cat = AUDIO_ES;
                         i_audio_es += 1;
                         if( i_audio_es == i_required_audio_es )
                             input_SelectES( p_input, p_new_es );
                         break;
                     case LPCM_AUDIO_ES :
                         p_new_es->i_cat = AUDIO_ES;
                         i_audio_es += 1;
                         if( i_audio_es == i_required_audio_es )
                             input_SelectES( p_input, p_new_es );
                         break;
+                    case AC3_AUDIO_ES :
+                        p_new_es->i_stream_id = 0xBD;
+                        p_new_es->i_cat = AUDIO_ES;
+                        i_audio_es += 1;
+                        if( i_audio_es == i_required_audio_es )
+                            input_SelectES( p_input, p_new_es );
+                        break;
                     /* Not sure this one is fully norm-compliant */
                     case DVD_SPU_ES :
                         p_new_es->i_cat = SPU_ES;
                     /* Not sure this one is fully norm-compliant */
                     case DVD_SPU_ES :
                         p_new_es->i_cat = SPU_ES;