diff options
-rw-r--r-- | ChangeLog | 53 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | gst-libs/gst/riff/riff-read.c | 11 | ||||
-rw-r--r-- | gst/cdxaparse/gstcdxaparse.c | 2 | ||||
-rw-r--r-- | gst/mpeg1sys/buffer.c | 4 | ||||
-rw-r--r-- | gst/mpeg1videoparse/gstmp1videoparse.c | 8 | ||||
-rw-r--r-- | gst/mpeg2sub/gstmpeg2subt.c | 4 | ||||
-rw-r--r-- | gst/mpegaudioparse/gstmpegaudioparse.c | 4 | ||||
-rw-r--r-- | gst/qtdemux/qtdemux.c | 27 |
9 files changed, 85 insertions, 30 deletions
@@ -1,3 +1,56 @@ +2004-04-20 Daniel Gazard <daniel.gazard@epita.fr> + + reviewed by David Schleef + + * configure.ac: bump required gstreamer version to 0.8.1.1 + because of following changes [--ds] + + * gst-libs/gst/riff/riff-read.c: Include gst/gstutils.h. + (gst_riff_peek_head, gst_riff_peek_list, gst_riff_read_list) + (gst_riff_read_header): Use GST_READ_UINT* + macros to access possibly unaligned memory. + + * gst/typefind/gsttypefindfunctions.c: Include gst/gstutils.h. + (mp3_type_find): Use GST_READ_UINT* + macros to access possibly unaligned memory. + (mp3_type_find, mpeg1_parse_header, qt_type_find) + (speex_type_find): Likewise + + * gst/tags/gstvorbistag.c: (ADVANCE): Likewise + + * gst/qtdemux/qtdemux.c: Include stdlib.h (needed by realloc). + (QTDEMUX_GUINT32_GET, QTDEMUX_GUINT16_GET, QTDEMUX_FP32_GET) + (QTDEMUX_FP16_GET, QTDEMUX_FOURCC_GET) + (gst_qtdemux_loop_header, gst_qtdemux_loop_header) + (qtdemux_node_dump_foreach, qtdemux_tree_get_child_by_type) + (qtdemux_tree_get_sibling_by_type): Use GST_READ_UINT* + macros to access possibly unaligned memory. + + * gst/mpegstream/gstmpegpacketize.c: (parse_generic, parse_chunk): + Likewise. + + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead) + (gst_mpeg_demux_parse_packet, gst_mpeg_demux_parse_pes): Likewise. + + * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain): + Likewise. + + * gst/mpeg2sub/gstmpeg2subt.c: (GST_BUFFER_DATA) + (gst_mpeg2subt_chain_subtitle): Likewise. + + * gst/mpeg1videoparse/gstmp1videoparse.c: (mp1videoparse_parse_seq) + (gst_mp1videoparse_time_code, gst_mp1videoparse_real_chain): + Likewise. + + * gst/mpeg1sys/buffer.c: (mpeg1mux_buffer_update_audio_info): + Likewise. + + * gst/cdxaparse/gstcdxaparse.c: (gst_bytestream_peek_bytes): + Likewise. + + * gst/asfdemux/gstasfdemux.c: (_read_var_length, _read_uint): + Likewise. + 2004-04-20 Thomas Vander Stichele <thomas at apestaart dot org> * configure.ac: diff --git a/configure.ac b/configure.ac index 1130e9cc..fd895173 100644 --- a/configure.ac +++ b/configure.ac @@ -188,7 +188,7 @@ GST_CHECK_FEATURE(GCONF, [GConf libraries], , [ ]) dnl check for gstreamer; uninstalled is selected preferentially -- see pkg-config(1) -GST_REQ=0.8.1 +GST_REQ=0.8.1.1 PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= $GST_REQ, HAVE_GST="yes", HAVE_GST="no") diff --git a/gst-libs/gst/riff/riff-read.c b/gst-libs/gst/riff/riff-read.c index a86ec866..fa153e68 100644 --- a/gst-libs/gst/riff/riff-read.c +++ b/gst-libs/gst/riff/riff-read.c @@ -24,6 +24,7 @@ #endif #include <string.h> +#include <gst/gstutils.h> #include "riff-ids.h" #include "riff-read.h" @@ -173,9 +174,9 @@ gst_riff_peek_head (GstRiffRead * riff, } /* parse tag + length (if wanted) */ - *tag = GUINT32_FROM_LE (((guint32 *) data)[0]); + *tag = GST_READ_UINT32_LE (data); if (length) - *length = GUINT32_FROM_LE (((guint32 *) data)[1]); + *length = GST_READ_UINT32_LE (((guint32 *) data) + 1); /* level */ if (level_up) @@ -302,7 +303,7 @@ gst_riff_peek_list (GstRiffRead * riff) return 0; } - return GUINT32_FROM_LE (((guint32 *) data)[2]); + return GST_READ_UINT32_LE (((guint32 *) data) + 2); } /* @@ -672,7 +673,7 @@ gst_riff_read_list (GstRiffRead * riff, guint32 * tag) return FALSE; } gst_bytestream_flush_fast (riff->bs, 4); - *tag = GUINT32_FROM_LE (*(guint32 *) data); + *tag = GST_READ_UINT32_LE (data); /* remember level */ level = g_new (GstRiffLevel, 1); @@ -868,7 +869,7 @@ gst_riff_read_header (GstRiffRead * riff, guint32 * doctype) return FALSE; } gst_bytestream_flush_fast (riff->bs, 4); - *doctype = GUINT32_FROM_LE (*(guint32 *) data); + *doctype = GST_READ_UINT32_LE (data); /* remember level */ level = g_new (GstRiffLevel, 1); diff --git a/gst/cdxaparse/gstcdxaparse.c b/gst/cdxaparse/gstcdxaparse.c index 595191b7..36ebc335 100644 --- a/gst/cdxaparse/gstcdxaparse.c +++ b/gst/cdxaparse/gstcdxaparse.c @@ -250,7 +250,7 @@ gst_cdxa_parse_loop (GstElement * element) gst_bytestream_peek_bytes (cdxa_parse->bs, (guint8 **) & buf, 4); if (got_bytes < 4) return; - cdxa_parse->data_size = GUINT32_FROM_LE (*((guint32 *) buf)); + cdxa_parse->data_size = GST_READ_UINT32_LE (buf); /* flush the data size */ if (!gst_bytestream_flush (cdxa_parse->bs, 4)) diff --git a/gst/mpeg1sys/buffer.c b/gst/mpeg1sys/buffer.c index 6bfcbc06..6c326940 100644 --- a/gst/mpeg1sys/buffer.c +++ b/gst/mpeg1sys/buffer.c @@ -401,7 +401,7 @@ mpeg1mux_buffer_update_audio_info (Mpeg1MuxBuffer * mb) GST_DEBUG ("mpeg1mux::update_audio_info %lu %lu", mb->base, mb->scan_pos); if (mb->base == 0 && mb->scan_pos == 0) { - id = GUINT32_FROM_BE (*((guint32 *) (data))); + id = GST_READ_UINT32_BE (data); printf ("MPEG audio id = %08x\n", (unsigned int) id); if ((id & 0xfff00000) == AUDIO_SYNCWORD << 20) { @@ -486,7 +486,7 @@ mpeg1mux_buffer_update_audio_info (Mpeg1MuxBuffer * mb) } } while (offset < mb->length - 4) { - id = GUINT32_FROM_BE (*((guint32 *) (data + offset))); + id = GST_READ_UINT32_BE (data + offset); /* mpegver = (header >> 19) & 0x3; don't need this for bpf */ layer_index = (id >> 17) & 0x3; diff --git a/gst/mpeg1videoparse/gstmp1videoparse.c b/gst/mpeg1videoparse/gstmp1videoparse.c index 8d055817..4962a1fa 100644 --- a/gst/mpeg1videoparse/gstmp1videoparse.c +++ b/gst/mpeg1videoparse/gstmp1videoparse.c @@ -175,7 +175,7 @@ mp1videoparse_parse_seq (Mp1VideoParse * mp1videoparse, GstBuffer * buf) 30. / 1.001, 30., 50., 60. / 1.001, 60. }; - guint32 n = GUINT32_FROM_BE (*(guint32 *) GST_BUFFER_DATA (buf)); + guint32 n = GST_READ_UINT32_BE (GST_BUFFER_DATA (buf)); width = (n & 0xfff00000) >> 20; height = (n & 0x000fff00) >> 8; @@ -277,7 +277,7 @@ mp1videoparse_find_next_gop (Mp1VideoParse * mp1videoparse, GstBuffer * buf) static guint64 gst_mp1videoparse_time_code (guchar * gop, gfloat fps) { - guint32 data = GUINT32_FROM_BE (*(guint32 *) gop); + guint32 data = GST_READ_UINT32_BE (gop); return ((((data & 0xfc000000) >> 26) * 3600 * GST_SECOND) + /* hours */ (((data & 0x03f00000) >> 20) * 60 * GST_SECOND) + /* minutes */ @@ -381,7 +381,7 @@ gst_mp1videoparse_real_chain (Mp1VideoParse * mp1videoparse, GstBuffer * buf, data = GST_BUFFER_DATA (mp1videoparse->partialbuf); size = GST_BUFFER_SIZE (mp1videoparse->partialbuf); - head = GUINT32_FROM_BE (*((guint32 *) data)); + head = GST_READ_UINT32_BE (data); GST_DEBUG ("mp1videoparse: head is %08x", (unsigned int) head); @@ -406,7 +406,7 @@ gst_mp1videoparse_real_chain (Mp1VideoParse * mp1videoparse, GstBuffer * buf, offset = 0; } - head = GUINT32_FROM_BE (*((guint32 *) data)); + head = GST_READ_UINT32_BE (data); /* re-call this function so that if we hadn't already, we can * now read the sequence header and parse video properties, * set caps, stream data, be happy, bla, bla, bla... */ diff --git a/gst/mpeg2sub/gstmpeg2subt.c b/gst/mpeg2sub/gstmpeg2subt.c index d54669db..cea5939b 100644 --- a/gst/mpeg2sub/gstmpeg2subt.c +++ b/gst/mpeg2sub/gstmpeg2subt.c @@ -807,13 +807,13 @@ gst_mpeg2subt_handle_subtitle (GstMpeg2Subt * mpeg2subt, GstData * _data) size = GST_BUFFER_SIZE (mpeg2subt->partialbuf); if (size > 4) { - mpeg2subt->packet_size = GUINT16_FROM_BE (*(guint16 *) data); + mpeg2subt->packet_size = GST_READ_UINT16_BE (data); if (mpeg2subt->packet_size == size) { GST_LOG ("Subtitle packet size %d, current size %ld", mpeg2subt->packet_size, size); - mpeg2subt->data_size = GUINT16_FROM_BE (*(guint16 *) (data + 2)); + mpeg2subt->data_size = GST_READ_UINT16_BE (data + 2); mpeg2subt->have_title = TRUE; gst_mpeg2subt_parse_header (mpeg2subt); diff --git a/gst/mpegaudioparse/gstmpegaudioparse.c b/gst/mpegaudioparse/gstmpegaudioparse.c index a4152dea..7c3df7ba 100644 --- a/gst/mpegaudioparse/gstmpegaudioparse.c +++ b/gst/mpegaudioparse/gstmpegaudioparse.c @@ -336,7 +336,7 @@ gst_mp3parse_chain (GstPad * pad, GstData * _data) GST_DEBUG ("mp3parse: **** now at %ld skipped %d bytes", offset, skipped); } /* construct the header word */ - header = GUINT32_FROM_BE (*((guint32 *) (data + offset))); + header = GST_READ_UINT32_BE (data + offset); /* if it's a valid header, go ahead and send off the frame */ if (head_check (header)) { /* calculate the bpf of the frame */ @@ -362,7 +362,7 @@ gst_mp3parse_chain (GstPad * pad, GstData * _data) break; } /* wait until we have the the entire current frame as well as the next frame header */ - header2 = GUINT32_FROM_BE (*((guint32 *) (data + offset + bpf))); + header2 = GST_READ_UINT32_BE (data + offset + bpf); GST_DEBUG ("mp3parse: header=%08X, header2=%08X, bpf=%d", (unsigned int) header, (unsigned int) header2, bpf); diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index a25fdb18..3b32ef67 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -23,18 +23,19 @@ #endif #include "qtdemux.h" +#include <stdlib.h> #include <string.h> #include <zlib.h> GST_DEBUG_CATEGORY_EXTERN (qtdemux_debug); #define GST_CAT_DEFAULT qtdemux_debug -#define QTDEMUX_GUINT32_GET(a) GUINT32_FROM_BE(*(guint32 *)(a)) -#define QTDEMUX_GUINT16_GET(a) GUINT16_FROM_BE(*(guint16 *)(a)) +#define QTDEMUX_GUINT32_GET(a) (GST_READ_UINT32_BE(a)) +#define QTDEMUX_GUINT16_GET(a) (GST_READ_UINT16_BE(a)) #define QTDEMUX_GUINT8_GET(a) (*(guint8 *)(a)) -#define QTDEMUX_FP32_GET(a) (GUINT32_FROM_BE(*(guint16 *)(a))/65536.0) -#define QTDEMUX_FP16_GET(a) (GUINT16_FROM_BE(*(guint16 *)(a))/256.0) -#define QTDEMUX_FOURCC_GET(a) GUINT32_FROM_LE(*(guint32 *)(a)) +#define QTDEMUX_FP32_GET(a) ((GST_READ_UINT32_BE(a))/65536.0) +#define QTDEMUX_FP16_GET(a) ((GST_READ_UINT16_BE(a))/256.0) +#define QTDEMUX_FOURCC_GET(a) (GST_READ_UINT32_LE(a)) #define QTDEMUX_GUINT64_GET(a) ((((guint64)QTDEMUX_GUINT32_GET(a))<<32)|QTDEMUX_GUINT32_GET(((void *)a)+4)) @@ -522,9 +523,9 @@ gst_qtdemux_loop_header (GstElement * element) } } while (1); - length = GUINT32_FROM_BE (*(guint32 *) data); + length = GST_READ_UINT32_BE (data); GST_DEBUG ("length %08x", length); - fourcc = GUINT32_FROM_LE (*(guint32 *) (data + 4)); + fourcc = GST_READ_UINT32_LE (data + 4); GST_DEBUG ("fourcc " GST_FOURCC_FORMAT, GST_FOURCC_ARGS (fourcc)); if (length == 0) { @@ -533,9 +534,9 @@ gst_qtdemux_loop_header (GstElement * element) if (length == 1) { guint32 length1, length2; - length1 = GUINT32_FROM_BE (*(guint32 *) (data + 8)); + length1 = GST_READ_UINT32_BE (data + 8); GST_DEBUG ("length1 %08x", length1); - length2 = GUINT32_FROM_BE (*(guint32 *) (data + 12)); + length2 = GST_READ_UINT32_BE (data + 12); GST_DEBUG ("length2 %08x", length2); length = length2; @@ -1125,8 +1126,8 @@ qtdemux_node_dump_foreach (GNode * node, gpointer data) QtNodeType *type; int depth; - node_length = GUINT32_FROM_BE (*(guint32 *) buffer); - fourcc = GUINT32_FROM_LE (*(guint32 *) (buffer + 4)); + node_length = GST_READ_UINT32_BE (buffer); + fourcc = GST_READ_UINT32_LE (buffer + 4); type = qtdemux_type_get (fourcc); @@ -1518,7 +1519,7 @@ qtdemux_tree_get_child_by_type (GNode * node, guint32 fourcc) child = g_node_next_sibling (child)) { buffer = child->data; - child_fourcc = GUINT32_FROM_LE (*(guint32 *) (buffer + 4)); + child_fourcc = GST_READ_UINT32_LE (buffer + 4); if (child_fourcc == fourcc) { return child; @@ -1538,7 +1539,7 @@ qtdemux_tree_get_sibling_by_type (GNode * node, guint32 fourcc) child = g_node_next_sibling (child)) { buffer = child->data; - child_fourcc = GUINT32_FROM_LE (*(guint32 *) (buffer + 4)); + child_fourcc = GST_READ_UINT32_LE (buffer + 4); if (child_fourcc == fourcc) { return child; |