* 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
-
+  * 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.
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>
- <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.
@@ -18,7 +18,7 @@
  <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 
@@ -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,
-   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>
@@ -81,7 +81,7 @@
 <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>
 
  <sect1>
   <heading>Linux/Unix users</heading>
   <sect2>
-   <heading>What package to chose ?</heading>
+   <heading>Which package to chose ?</heading>
    <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>
-    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>
     <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>
   </p>
   <p>
    When you're done with Makefile.opts (which also works if you leave it untouched), just 
-   make, typing :
+   type:
     <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.
-   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]
index fd80efd..97aff27 100644 (file)
@@ -2,7 +2,7 @@
  * 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>
@@ -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( (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
@@ -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:
-                    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 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;