diff options
Diffstat (limited to 'gst/auparse/gstauparse.c')
-rw-r--r-- | gst/auparse/gstauparse.c | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/gst/auparse/gstauparse.c b/gst/auparse/gstauparse.c index 11b049bb..e3fb4a2f 100644 --- a/gst/auparse/gstauparse.c +++ b/gst/auparse/gstauparse.c @@ -193,22 +193,35 @@ gst_auparse_chain (GstPad *pad, GstBuffer *buf) gulong *head = (gulong *)data; /* normal format is big endian (au is a Sparc format) */ - if (GULONG_FROM_BE (*(head++)) == 0x2e736e64) { + if (GULONG_FROM_BE (*head) == 0x2e736e64) { + head++; auparse->le = 0; - auparse->offset = GULONG_FROM_BE (*(head++)); - auparse->size = GULONG_FROM_BE (*(head++)); - auparse->encoding = GULONG_FROM_BE (*(head++)); - auparse->frequency = GULONG_FROM_BE (*(head++)); - auparse->channels = GULONG_FROM_BE (*(head++)); + auparse->offset = GULONG_FROM_BE (*head); + head++; + auparse->size = GULONG_FROM_BE (*head); + head++; + auparse->encoding = GULONG_FROM_BE (*head); + head++; + auparse->frequency = GULONG_FROM_BE (*head); + head++; + auparse->channels = GULONG_FROM_BE (*head); + head++; /* but I wouldn't be surprised by a little endian version */ - } else if (GULONG_FROM_LE (*(head++)) == 0x2e736e64) { + } else if (GULONG_FROM_LE (head) == 0x2e736e64) { auparse->le = 1; - auparse->offset = GULONG_FROM_LE(*(head++)); - auparse->size = GULONG_FROM_LE(*(head++)); - auparse->encoding = GULONG_FROM_LE(*(head++)); - auparse->frequency = GULONG_FROM_LE(*(head++)); - auparse->channels = GULONG_FROM_LE(*(head++)); + head++; + auparse->le = 0; + auparse->offset = GULONG_FROM_LE (*head); + head++; + auparse->size = GULONG_FROM_LE (*head); + head++; + auparse->encoding = GULONG_FROM_LE (*head); + head++; + auparse->frequency = GULONG_FROM_LE (*head); + head++; + auparse->channels = GULONG_FROM_LE (*head); + head++; } else { g_warning ("help, dunno what I'm looking at!\n"); |