diff options
author | Michael Roitzsch <mroi@users.sourceforge.net> | 2003-05-15 20:16:42 +0000 |
---|---|---|
committer | Michael Roitzsch <mroi@users.sourceforge.net> | 2003-05-15 20:16:42 +0000 |
commit | cdb980086e034eccb6abe4fb79121c7e368dd87f (patch) | |
tree | 15f6f869097ad6d232c5561da9ccffeedfd74ca1 | |
parent | 53edfa857610bf9984ec9985300536e517db4272 (diff) | |
download | xine-lib-cdb980086e034eccb6abe4fb79121c7e368dd87f.tar.gz xine-lib-cdb980086e034eccb6abe4fb79121c7e368dd87f.tar.bz2 |
That comment suits better here. It is about discontiuity detection, so it should
be close to the funtion doing this.
CVS patchset: 4856
CVS date: 2003/05/15 20:16:42
-rw-r--r-- | src/demuxers/demux_mpeg_block.c | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/src/demuxers/demux_mpeg_block.c b/src/demuxers/demux_mpeg_block.c index 8f3078cbd..63e3a52a9 100644 --- a/src/demuxers/demux_mpeg_block.c +++ b/src/demuxers/demux_mpeg_block.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_mpeg_block.c,v 1.185 2003/05/12 23:30:49 jcdutton Exp $ + * $Id: demux_mpeg_block.c,v 1.186 2003/05/15 20:16:42 mroi Exp $ * * demultiplexer for mpeg 1/2 program streams * used with fixed blocksize devices (like dvd/vcd) @@ -105,26 +105,6 @@ typedef struct { config_values_t *config; } demux_mpeg_block_class_t; -/* OK, i think demux_mpeg_block discontinuity handling demands some - explanation: - - - The preferred discontinuity handling/detection for DVD is based on - NAV packets information. Most of the time it will provide us very - accurate and reliable information. - - - Has been shown that sometimes a DVD discontinuity may happen before - a new NAV packet arrives (seeking?). To avoid sending wrong PTS to - decoders we _used_ to check for SCR discontinuities. Unfortunately - some VCDs have very broken SCR values causing false triggering. - - - To fix the above problem (also note that VCDs don't have NAV - packets) we fallback to the same PTS-based wrap detection as used - in demux_mpeg. The only trick is to not send discontinuity information - if NAV packets have already done the job. - - [Miguel 02-05-2002] -*/ - static int32_t parse_video_stream(demux_mpeg_block_t *this, uint8_t *p, buf_element_t *buf); static int32_t parse_audio_stream(demux_mpeg_block_t *this, uint8_t *p, buf_element_t *buf); static int32_t parse_ancillary_stream(demux_mpeg_block_t *this, uint8_t *p, buf_element_t *buf); @@ -149,8 +129,25 @@ static int32_t parse_program_stream_directory(demux_mpeg_block_t *this, uint8_t static int32_t parse_program_stream_pack_header(demux_mpeg_block_t *this, uint8_t *p, buf_element_t *buf); - - +/* OK, i think demux_mpeg_block discontinuity handling demands some + explanation: + + - The preferred discontinuity handling/detection for DVD is based on + NAV packets information. Most of the time it will provide us very + accurate and reliable information. + + - Has been shown that sometimes a DVD discontinuity may happen before + a new NAV packet arrives (seeking?). To avoid sending wrong PTS to + decoders we _used_ to check for SCR discontinuities. Unfortunately + some VCDs have very broken SCR values causing false triggering. + + - To fix the above problem (also note that VCDs don't have NAV + packets) we fallback to the same PTS-based wrap detection as used + in demux_mpeg. The only trick is to not send discontinuity information + if NAV packets have already done the job. + + [Miguel 02-05-2002] +*/ static void check_newpts( demux_mpeg_block_t *this, int64_t pts, int video ) { |