summaryrefslogtreecommitdiffstats
path: root/gst
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2002-10-10 22:14:54 +0000
committerDavid Schleef <ds@schleef.org>2002-10-10 22:14:54 +0000
commita06f00ebb1af8ac9fd6bc4a4414d64c7c45026ad (patch)
treea1e3473fdcde52842867b11501ed0350617f0c06 /gst
parentbc93903d019bd83f382c2d4b93f1e08d761405a7 (diff)
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.
Diffstat (limited to 'gst')
-rw-r--r--gst/avi/gstavidemux.c6
-rw-r--r--gst/avi/gstavidemux.h4
2 files changed, 5 insertions, 5 deletions
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index 6b2a8ffb..e8af4215 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 5eb03877..7b7fac0b 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;