From a06f00ebb1af8ac9fd6bc4a4414d64c7c45026ad Mon Sep 17 00:00:00 2001 From: David Schleef Date: Thu, 10 Oct 2002 22:14:54 +0000 Subject: [PATCH] fix for big endian machines. Chunk ID conversion was being swabbed twice. Original commit message from CVS: fix for big endian machines. Chunk ID conversion was being swabbed twice. --- gst/avi/gstavidemux.c | 6 +++--- gst/avi/gstavidemux.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 6b2a8ffb4..e8af4215e 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -1316,8 +1316,8 @@ gst_avi_demux_process_chunk (GstAviDemux *avi_demux, guint64 *filepos, stream = &avi_demux->stream[stream_id]; - GST_DEBUG (0,"gst_avi_demux_chain: tag found %08x size %08x", - chunkid, *chunksize); + GST_DEBUG (0,"gst_avi_demux_chain: tag found %08x size %08x stream_id %d", + chunkid, *chunksize, stream_id); format = GST_FORMAT_TIME; gst_pad_query (stream->pad, GST_PAD_QUERY_POSITION, &format, &next_ts); @@ -1332,7 +1332,7 @@ gst_avi_demux_process_chunk (GstAviDemux *avi_demux, guint64 *filepos, stream->skip--; } else { - if (GST_PAD_IS_CONNECTED (stream->pad)) { + if (stream->pad && GST_PAD_IS_CONNECTED (stream->pad)) { GstBuffer *buf; guint32 got_bytes; diff --git a/gst/avi/gstavidemux.h b/gst/avi/gstavidemux.h index 5eb038772..7b7fac0bc 100644 --- a/gst/avi/gstavidemux.h +++ b/gst/avi/gstavidemux.h @@ -46,8 +46,8 @@ extern "C" { #define GST_AVI_DEMUX_MAX_STREAMS 16 #define CHUNKID_TO_STREAMNR(chunkid) \ - (((GUINT32_FROM_BE (chunkid) >> 24) - '0') * 10 + \ - ((GUINT32_FROM_BE (chunkid) >> 16) & 0xff) - '0') + ((((chunkid) & 0xff) - '0') * 10 + \ + (((chunkid) >> 8) & 0xff) - '0') typedef struct _GstAviDemux GstAviDemux; typedef struct _GstAviDemuxClass GstAviDemuxClass; -- 2.34.1