]> git.sesse.net Git - vlc/commitdiff
* Passage de NeedBits(), DumpBits(), etc. dans decoder_fifo.h ;
authorChristophe Massiot <massiot@videolan.org>
Mon, 20 Sep 1999 22:07:09 +0000 (22:07 +0000)
committerChristophe Massiot <massiot@videolan.org>
Mon, 20 Sep 1999 22:07:09 +0000 (22:07 +0000)
* Suppression de warnings ;

--Meuuh

include/audio_decoder.h
include/decoder_fifo.h
src/audio_decoder/audio_decoder.c
src/interface/interface.c
src/interface/intf_ctrl.c
src/interface/main.c

index f2b3a39f3e5c053159a831f467535741e9241043..009d5e222276f2b738153b3193245c1d31ee152b 100644 (file)
  *   directement sur le flux PES ?
  */
 
-/******************************************************************************
- * bit_fifo_t : bit fifo descriptor
- ******************************************************************************
- * This type describes a bit fifo used to store bits while working with the
- * input stream at the bit level.
- ******************************************************************************/
-typedef struct bit_fifo_s
-{
-    /* This unsigned integer allows us to work at the bit level. This buffer
-     * can contain 32 bits, and the used space can be found on the MSb's side
-     * and the available space on the LSb's side. */
-    u32                 buffer;
-
-    /* Number of bits available in the bit buffer */
-    int                 i_available;
-
-} bit_fifo_t;
-
-/******************************************************************************
- * bit_stream_t : bit stream descriptor
- ******************************************************************************
- * This type, based on a PES stream, includes all the structures needed to
- * handle the input stream like a bit stream.
- ******************************************************************************/
-typedef struct bit_stream_s
-{
-    /*
-     * Input structures
-     */
-    /* The input thread feeds the stream with fresh PES packets */
-    input_thread_t *    p_input;
-    /* The decoder fifo contains the data of the PES stream */
-    decoder_fifo_t *    p_decoder_fifo;
-
-    /*
-     * Byte structures
-     */
-    /* Current TS packet (in the current PES packet of the PES stream) */
-    ts_packet_t *       p_ts;
-    /* Index of the next byte that is to be read (in the current TS packet) */
-    unsigned int        i_byte;
-
-    /*
-     * Bit structures
-     */
-    bit_fifo_t          fifo;
-
-} bit_stream_t;
-
 /******************************************************************************
  * adec_bank_t
  ******************************************************************************/
index ff323a4ba2afb26fccb68ac05f948ec62c314267..d3d0de3cc73476c0b0606de3eadf9696d70bb593 100644 (file)
@@ -40,3 +40,140 @@ typedef struct
     int                 i_end;
 
 } decoder_fifo_t;
+
+/****************************************************************************** * bit_fifo_t : bit fifo descriptor
+ ****************************************************************************** * This type describes a bit fifo used to store bits while working with the
+ * input stream at the bit level.
+ ******************************************************************************/
+typedef struct bit_fifo_s
+{
+    /* This unsigned integer allows us to work at the bit level. This buffer
+     * can contain 32 bits, and the used space can be found on the MSb's side
+     * and the available space on the LSb's side. */
+    u32                 buffer;
+
+    /* Number of bits available in the bit buffer */
+    int                 i_available;
+
+} bit_fifo_t;
+
+/****************************************************************************** * bit_stream_t : bit stream descriptor
+ ****************************************************************************** * This type, based on a PES stream, includes all the structures needed to
+ * handle the input stream like a bit stream.
+ ******************************************************************************/
+typedef struct bit_stream_s
+{
+    /*
+     * Input structures
+     */
+    /* The input thread feeds the stream with fresh PES packets */
+    input_thread_t *    p_input;
+    /* The decoder fifo contains the data of the PES stream */
+    decoder_fifo_t *    p_decoder_fifo;
+
+    /*
+     * Byte structures
+     */
+    /* Current TS packet (in the current PES packet of the PES stream) */
+    ts_packet_t *       p_ts;
+    /* Index of the next byte that is to be read (in the current TS packet) */
+    unsigned int        i_byte;
+
+    /*
+     * Bit structures
+     */
+    bit_fifo_t          fifo;
+
+} bit_stream_t;
+
+
+/*****************************************************************************
+ * GetByte : reads the next byte in the input stream
+ *****************************************************************************/
+static __inline__ byte_t GetByte( bit_stream_t * p_bit_stream )
+{
+    /* Are there some bytes left in the current TS packet ? */
+    if ( p_bit_stream->i_byte < p_bit_stream->p_ts->i_payload_end )
+    {
+        return( p_bit_stream->p_ts->buffer[ p_bit_stream->i_byte++ ] );
+    }
+    else
+    {
+        /* We are looking for the next TS packet that contains real data,
+         * and not just a PES header */
+        do
+        {
+            /* We were reading the last TS packet of this PES packet... It's
+             * time to jump to the next PES packet */
+            if ( p_bit_stream->p_ts->p_next_ts == NULL )
+            {
+                /* We are going to read/write the start and end indexes of the
+                 * decoder fifo and to use the fifo's conditional variable,
+                 * that's why we need to take the lock before */
+                pthread_mutex_lock( &p_bit_stream->p_decoder_fifo->data_lock );
+                /* We should increase the start index of the decoder fifo, but
+                 * if we do this now, the input thread could overwrite the
+                 * pointer to the current PES packet, and we weren't able to
+                 * give it back to the netlist. That's why we free the PES
+                 * packet first. */
+                input_NetlistFreePES( p_bit_stream->p_input, DECODER_FIFO_START(*p_bit_stream->p_decoder_fifo) );
+                DECODER_FIFO_INCSTART( *p_bit_stream->p_decoder_fifo );
+
+                /* !! b_die !! */
+                while ( DECODER_FIFO_ISEMPTY(*p_bit_stream->p_decoder_fifo) )
+                {
+                    pthread_cond_wait( &p_bit_stream->p_decoder_fifo->data_wait,
+                                       &p_bit_stream->p_decoder_fifo->data_lock );
+                }
+
+                /* The next byte could be found in the next PES packet */
+                p_bit_stream->p_ts = DECODER_FIFO_START( *p_bit_stream->p_decoder_fifo )->p_first_ts;
+
+                /* We can release the fifo's data lock */
+                pthread_mutex_unlock( &p_bit_stream->p_decoder_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
+            {
+                p_bit_stream->p_ts = p_bit_stream->p_ts->p_next_ts;
+            }
+        } while ( p_bit_stream->p_ts->i_payload_start == p_bit_stream->p_ts->i_payload_end );
+
+        /* We've found a TS packet which contains interesting data... As we
+         * return the payload's first byte, we set i_byte to the following
+         * one */
+        p_bit_stream->i_byte = p_bit_stream->p_ts->i_payload_start;
+        return( p_bit_stream->p_ts->buffer[ p_bit_stream->i_byte++ ] );
+    }
+}
+
+/****************************************************************************** * NeedBits : reads i_bits new bits in the bit stream and stores them in the
+ *            bit buffer
+ ****************************************************************************** * - i_bits must be less or equal 32 !
+ * - There is something important to notice with that function : if the number
+ * of bits available in the bit buffer when calling NeedBits() is greater than
+ * 24 (i_available > 24) but less than the number of needed bits
+ * (i_available < i_bits), the byte returned by GetByte() will be shifted with
+ * a negative value and the number of bits available in the bit buffer will be
+ * set to more than 32 !
+ ******************************************************************************/
+static __inline__ void NeedBits( bit_stream_t * p_bit_stream, int i_bits )
+{
+    while ( p_bit_stream->fifo.i_available < i_bits )
+    {
+        p_bit_stream->fifo.buffer |= ((u32)GetByte( p_bit_stream )) << (24 - p_bit_stream->fifo.i_available);
+        p_bit_stream->fifo.i_available += 8;
+    }
+}
+
+/****************************************************************************** * DumpBits : removes i_bits bits from the bit buffer
+ ****************************************************************************** * - i_bits <= i_available
+ * - i_bits < 32 (because (u32 << 32) <=> (u32 = u32))
+ ******************************************************************************/
+static __inline__ void DumpBits( bit_stream_t * p_bit_stream, int i_bits )
+{
+    p_bit_stream->fifo.buffer <<= i_bits;
+    p_bit_stream->fifo.i_available -= i_bits;
+}
+
index 6ae4bca9d11cdc863b70f7158ef9db39877c0bdb..1349ad919ef09f4cb3d16fcb06d77ada1fbc5d87 100644 (file)
@@ -143,107 +143,6 @@ void adec_DestroyThread( adec_thread_t * p_adec )
 
 /* Following functions are local */
 
-/******************************************************************************
- * GetByte : reads the next byte in the input stream
- ******************************************************************************/
-static __inline__ byte_t GetByte( bit_stream_t * p_bit_stream )
-{
-    /* Are there some bytes left in the current TS packet ? */
-    if ( p_bit_stream->i_byte < p_bit_stream->p_ts->i_payload_end )
-    {
-        return( p_bit_stream->p_ts->buffer[ p_bit_stream->i_byte++ ] );
-    }
-    else
-    {
-        /* We are looking for the next TS packet that contains real data,
-         * and not just a PES header */
-        do
-        {
-            /* We were reading the last TS packet of this PES packet... It's
-             * time to jump to the next PES packet */
-            if ( p_bit_stream->p_ts->p_next_ts == NULL )
-            {
-                /* We are going to read/write the start and end indexes of the
-                 * decoder fifo and to use the fifo's conditional variable,
-                 * that's why we need to take the lock before */
-                pthread_mutex_lock( &p_bit_stream->p_decoder_fifo->data_lock );
-
-                /* We should increase the start index of the decoder fifo, but
-                 * if we do this now, the input thread could overwrite the
-                 * pointer to the current PES packet, and we weren't able to
-                 * give it back to the netlist. That's why we free the PES
-                 * packet first. */
-                input_NetlistFreePES( p_bit_stream->p_input, DECODER_FIFO_START(*p_bit_stream->p_decoder_fifo) );
-                DECODER_FIFO_INCSTART( *p_bit_stream->p_decoder_fifo );
-
-                /* !! b_die !! */
-                while ( DECODER_FIFO_ISEMPTY(*p_bit_stream->p_decoder_fifo) )
-                {
-                    pthread_cond_wait( &p_bit_stream->p_decoder_fifo->data_wait,
-                                       &p_bit_stream->p_decoder_fifo->data_lock );
-                }
-
-                /* The next byte could be found in the next PES packet */
-#ifdef DEBUG
-//                fprintf(stderr, "*");
-#endif
-                p_bit_stream->p_ts = DECODER_FIFO_START( *p_bit_stream->p_decoder_fifo )->p_first_ts;
-
-                /* We can release the fifo's data lock */
-                pthread_mutex_unlock( &p_bit_stream->p_decoder_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
-            {
-#ifdef DEBUG
-//                fprintf(stderr, ".");
-#endif
-                p_bit_stream->p_ts = p_bit_stream->p_ts->p_next_ts;
-            }
-        } while ( p_bit_stream->p_ts->i_payload_start == p_bit_stream->p_ts->i_payload_end );
-
-        /* We've found a TS packet which contains interesting data... As we
-         * return the payload's first byte, we set i_byte to the following
-         * one */
-        p_bit_stream->i_byte = p_bit_stream->p_ts->i_payload_start;
-        return( p_bit_stream->p_ts->buffer[ p_bit_stream->i_byte++ ] );
-    }
-}
-
-/******************************************************************************
- * NeedBits : reads i_bits new bits in the bit stream and stores them in the
- *            bit buffer
- ******************************************************************************
- * - i_bits must be less or equal 32 !
- * - There is something important to notice with that function : if the number
- * of bits available in the bit buffer when calling NeedBits() is greater than
- * 24 (i_available > 24) but less than the number of needed bits
- * (i_available < i_bits), the byte returned by GetByte() will be shifted with
- * a negative value and the number of bits available in the bit buffer will be
- * set to more than 32 !
- ******************************************************************************/
-static __inline__ void NeedBits( bit_stream_t * p_bit_stream, int i_bits )
-{
-    while ( p_bit_stream->fifo.i_available < i_bits )
-    {
-        p_bit_stream->fifo.buffer |= ((u32)GetByte( p_bit_stream )) << (24 - p_bit_stream->fifo.i_available);
-        p_bit_stream->fifo.i_available += 8;
-    }
-}
-
-/******************************************************************************
- * DumpBits : removes i_bits bits from the bit buffer
- ******************************************************************************
- * - i_bits <= i_available
- * - i_bits < 32 (because (u32 << 32) <=> (u32 = u32))
- ******************************************************************************/
-static __inline__ void DumpBits( bit_stream_t * p_bit_stream, int i_bits )
-{
-    p_bit_stream->fifo.buffer <<= i_bits;
-    p_bit_stream->fifo.i_available -= i_bits;
-}
-
 /******************************************************************************
  * FindHeader : parses an input stream until an audio frame header could be
  *              found
index 7b50e4a8238490f99d179fac963b7ef6aa772c89..d6767d67cdb8224284c30a6cc454adc015bdb5e5 100644 (file)
 #include "common.h"
 #include "mtime.h"
 #include "thread.h"
+#include "debug.h"
+
+#include "intf_msg.h"
 
 #include "input.h"
+#include "input_netlist.h"
 #include "input_vlan.h"
 #include "decoder_fifo.h"
 
@@ -40,7 +44,6 @@
 
 #include "xconsole.h"
 #include "interface.h"
-#include "intf_msg.h"
 #include "intf_cmd.h"
 
 #include "pgm_data.h"
index 72d817026e61e79b350c2c5ac34fa2fbf16caeae..5f4b02625f71e6ce4c5f75394d6bd50573dd4074 100644 (file)
 #include "config.h"
 #include "common.h"
 #include "mtime.h"
+#include "debug.h"
+
+#include "intf_msg.h"
 
 #include "input.h"
 #include "input_ctrl.h"
 #include "input_vlan.h"
 #include "input_psi.h"
+#include "input_netlist.h"
 #include "decoder_fifo.h"
 
 #include "audio_output.h"
@@ -58,7 +62,6 @@
 
 #include "xconsole.h"
 #include "interface.h"
-#include "intf_msg.h"
 #include "intf_cmd.h"
 #include "control.h"
 #include "intf_ctrl.h"
index f3e3e3febb86c710705ea5fced938dc403d3632f..dd914573f3da1b825a603109530710c9ac44f647 100644 (file)
 #include "common.h"
 #include "mtime.h"
 #include "netutils.h"
+#include "debug.h"
+
+#include "intf_msg.h"
 
 #include "input.h"
 #include "input_vlan.h"
+#include "input_netlist.h"
 #include "decoder_fifo.h"
 
 #include "audio_output.h"
@@ -40,7 +44,6 @@
 
 #include "xconsole.h"
 #include "interface.h"
-#include "intf_msg.h"
 
 #include "pgm_data.h"