/*****************************************************************************
* input.h: input thread interface
- * (c)1999 VideoLAN
+ *****************************************************************************
+ * Copyright (C) 1999, 2000 VideoLAN
+ *
+ * Authors:
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
typedef struct pes_packet_s
{
/* PES properties */
- boolean_t b_data_loss; /* The previous (at least) PES packet
- * has been lost. The decoders will have to find a way to recover. */
- boolean_t b_data_alignment; /* used to find the beginning of a
- * video or audio unit */
+ boolean_t b_data_loss; /* The previous (at least) PES packet
+ * has been lost. The decoders will have to find a way to recover. */
+ boolean_t b_data_alignment; /* used to find the beginning of
+ * a video or audio unit */
boolean_t b_has_pts; /* is the following field set ? */
mtime_t i_pts; /* the PTS for this packet (if set above) */
boolean_t b_random_access;
- /* if TRUE, in the payload of this packet, there is the first byte
- * of a video sequence header, or the first byte of an audio frame.
- */
+ /* if TRUE, in the payload of this packet, there is the first byte
+ * of a video sequence header, or the first byte of an audio frame.
+ */
u8 i_stream_id; /* payload type and id */
int i_pes_size; /* size of the current PES packet */
+ int i_pes_real_size; /* real size of the current
+ * PES packet, ie. the one
+ * announced in the header */
int i_ts_packets;/* number of TS packets in this PES */
/* Demultiplexer environment */
u8 i_type; /* stream type */
boolean_t b_pcr; /* does the stream include a PCR ? */
- /* ?? b_pcr will be replaced by something else: since a PCR can't be shared
+ /* XXX?? b_pcr will be replaced by something else: since a PCR can't be shared
* between several ES, we will probably store the PCR fields directly here,
* and one of those fields will probably (again) be used as a test of the
* PCR presence */
* vdec_thread_t. We will use explicit
* casts. */
- /* ?? video stream descriptor ? */
- /* ?? audio stream descriptor ? */
- /* ?? hierarchy descriptor ? */
- /* ?? target background grid descriptor ? */
- /* ?? video window descriptor ? */
- /* ?? ISO 639 language descriptor ? */
+ /* XXX?? video stream descriptor ? */
+ /* XXX?? audio stream descriptor ? */
+ /* XXX?? hierarchy descriptor ? */
+ /* XXX?? target background grid descriptor ? */
+ /* XXX?? video window descriptor ? */
+ /* XXX?? ISO 639 language descriptor ? */
#ifdef STATS
/* Stats */
count_t c_bytes; /* total bytes read */
- count_t c_payload_bytes;/* total of payload usefull bytes */
+ count_t c_payload_bytes;/* total of payload useful bytes */
count_t c_packets; /* total packets read */
count_t c_invalid_packets; /* invalid packets read */
- /* ?? ... other stats */
+ /* XXX?? ... other stats */
#endif
} es_descriptor_t;
#define MPEG2_AUDIO_ES 0x04
#define AC3_AUDIO_ES 0x81
#define DVD_SPU_ES 0x82 /* 0x82 might violate the norm */
-
+#define LPCM_AUDIO_ES 0x83
/*****************************************************************************
* program_descriptor_t
*****************************************************************************
char* psz_srv_name;
#endif
- /* ?? target background grid descriptor ? */
- /* ?? video window descriptor ? */
- /* ?? ISO 639 language descriptor ? */
+ /* XXX?? target background grid descriptor ? */
+ /* XXX?? video window descriptor ? */
+ /* XXX?? ISO 639 language descriptor ? */
#ifdef STATS
/* Stats */
- /* ?? ...stats */
+ /* XXX?? ...stats */
#endif
} pgrm_descriptor_t;
#ifdef STATS
/* Stats */
- /* ?? ...stats */
+ /* XXX?? ...stats */
#endif
} stream_descriptor_t;