diff options
author | James Courtier-Dutton <jcdutton@users.sourceforge.net> | 2003-05-19 13:52:29 +0000 |
---|---|---|
committer | James Courtier-Dutton <jcdutton@users.sourceforge.net> | 2003-05-19 13:52:29 +0000 |
commit | 1147f794a6a7bc0b566faf39644b8cda5ed3c9c1 (patch) | |
tree | 3e3e9c897f403bda86649a1c16e818f8d1f3aa9b /src | |
parent | 18a26e7276905eacd5552b3d7355a05c950d23c0 (diff) | |
download | xine-lib-1147f794a6a7bc0b566faf39644b8cda5ed3c9c1.tar.gz xine-lib-1147f794a6a7bc0b566faf39644b8cda5ed3c9c1.tar.bz2 |
Patch submitted by : David Shimizu
Description:
The problem is that the only conditions which cause
demux_ts_get_lang_desc() to return are
no descriptors, or the first descriptor is an
ISO 639 language descriptor.
CVS patchset: 4874
CVS date: 2003/05/19 13:52:29
Diffstat (limited to 'src')
-rw-r--r-- | src/demuxers/demux_ts.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index 31b080d99..4a893ddac 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.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_ts.c,v 1.82 2003/04/26 20:16:25 guenter Exp $ + * $Id: demux_ts.c,v 1.83 2003/05/19 13:52:29 jcdutton Exp $ * * Demultiplexer for MPEG2 Transport Streams. * @@ -844,15 +844,20 @@ static void demux_ts_pes_new(demux_ts_t*this, static void demux_ts_get_lang_desc(demux_ts_t *this, char *dest, const unsigned char *data, int length) { - while (length >= 2 && length >= 2 + data[1]) + const unsigned char *d = data; + + while (d < (data + length)) + { - if (data[0] == 10 && data[1] >= 4) + if (d[0] == 10 && d[1] >= 4) + { - memcpy(dest, data + 2, 3); + memcpy(dest, d + 2, 3); dest[3] = 0; printf("demux_ts: found ISO 639 lang: %s\n", dest); return; } + d += 2 + d[1]; } printf("demux_ts: found no ISO 639 lang\n"); memset(dest, 0, 4); |