From 73fe1d1f6fde90f55287f12c8b9af9d537dc6756 Mon Sep 17 00:00:00 2001 From: Stefan Sauer Date: Mon, 6 Jan 2014 13:36:38 +0100 Subject: [PATCH] wavparse: remove ifdef'ed code We do have adtl and cue parse as part of toc handling alreday. The fmt code is a left over from <0.10 times. --- gst/wavparse/gstwavparse.c | 426 --------------------------------------------- 1 file changed, 426 deletions(-) diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c index 4a10ee1..27b4795 100644 --- a/gst/wavparse/gstwavparse.c +++ b/gst/wavparse/gstwavparse.c @@ -281,432 +281,6 @@ gst_wavparse_init (GstWavParse * wavparse) gst_element_add_pad (GST_ELEMENT_CAST (wavparse), wavparse->srcpad); } -/* FIXME: why is that not in use? */ -#if 0 -static void -gst_wavparse_parse_adtl (GstWavParse * wavparse, int len) -{ - guint32 got_bytes; - GstByteStream *bs = wavparse->bs; - gst_riff_chunk *temp_chunk, chunk; - guint8 *tempdata; - struct _gst_riff_labl labl, *temp_labl; - struct _gst_riff_ltxt ltxt, *temp_ltxt; - struct _gst_riff_note note, *temp_note; - char *label_name; - GstProps *props; - GstPropsEntry *entry; - GstCaps *new_caps; - GList *caps = NULL; - - props = wavparse->metadata->properties; - - while (len > 0) { - got_bytes = - gst_bytestream_peek_bytes (bs, &tempdata, sizeof (gst_riff_chunk)); - if (got_bytes != sizeof (gst_riff_chunk)) { - return; - } - temp_chunk = (gst_riff_chunk *) tempdata; - - chunk.id = GUINT32_FROM_LE (temp_chunk->id); - chunk.size = GUINT32_FROM_LE (temp_chunk->size); - - if (chunk.size == 0) { - gst_bytestream_flush (bs, sizeof (gst_riff_chunk)); - len -= sizeof (gst_riff_chunk); - continue; - } - - switch (chunk.id) { - case GST_RIFF_adtl_labl: - got_bytes = - gst_bytestream_peek_bytes (bs, &tempdata, - sizeof (struct _gst_riff_labl)); - if (got_bytes != sizeof (struct _gst_riff_labl)) { - return; - } - - temp_labl = (struct _gst_riff_labl *) tempdata; - labl.id = GUINT32_FROM_LE (temp_labl->id); - labl.size = GUINT32_FROM_LE (temp_labl->size); - labl.identifier = GUINT32_FROM_LE (temp_labl->identifier); - - gst_bytestream_flush (bs, sizeof (struct _gst_riff_labl)); - len -= sizeof (struct _gst_riff_labl); - - got_bytes = gst_bytestream_peek_bytes (bs, &tempdata, labl.size - 4); - if (got_bytes != labl.size - 4) { - return; - } - - label_name = (char *) tempdata; - - gst_bytestream_flush (bs, ((labl.size - 4) + 1) & ~1); - len -= (((labl.size - 4) + 1) & ~1); - - new_caps = gst_caps_new ("label", - "application/x-gst-metadata", - gst_props_new ("identifier", G_TYPE_INT (labl.identifier), - "name", G_TYPE_STRING (label_name), NULL)); - - if (gst_props_get (props, "labels", &caps, NULL)) { - caps = g_list_append (caps, new_caps); - } else { - caps = g_list_append (NULL, new_caps); - - entry = gst_props_entry_new ("labels", GST_PROPS_GLIST (caps)); - gst_props_add_entry (props, entry); - } - - break; - - case GST_RIFF_adtl_ltxt: - got_bytes = - gst_bytestream_peek_bytes (bs, &tempdata, - sizeof (struct _gst_riff_ltxt)); - if (got_bytes != sizeof (struct _gst_riff_ltxt)) { - return; - } - - temp_ltxt = (struct _gst_riff_ltxt *) tempdata; - ltxt.id = GUINT32_FROM_LE (temp_ltxt->id); - ltxt.size = GUINT32_FROM_LE (temp_ltxt->size); - ltxt.identifier = GUINT32_FROM_LE (temp_ltxt->identifier); - ltxt.length = GUINT32_FROM_LE (temp_ltxt->length); - ltxt.purpose = GUINT32_FROM_LE (temp_ltxt->purpose); - ltxt.country = GUINT16_FROM_LE (temp_ltxt->country); - ltxt.language = GUINT16_FROM_LE (temp_ltxt->language); - ltxt.dialect = GUINT16_FROM_LE (temp_ltxt->dialect); - ltxt.codepage = GUINT16_FROM_LE (temp_ltxt->codepage); - - gst_bytestream_flush (bs, sizeof (struct _gst_riff_ltxt)); - len -= sizeof (struct _gst_riff_ltxt); - - if (ltxt.size - 20 > 0) { - got_bytes = gst_bytestream_peek_bytes (bs, &tempdata, ltxt.size - 20); - if (got_bytes != ltxt.size - 20) { - return; - } - - gst_bytestream_flush (bs, ((ltxt.size - 20) + 1) & ~1); - len -= (((ltxt.size - 20) + 1) & ~1); - - label_name = (char *) tempdata; - } else { - label_name = ""; - } - - new_caps = gst_caps_new ("ltxt", - "application/x-gst-metadata", - gst_props_new ("identifier", G_TYPE_INT (ltxt.identifier), - "name", G_TYPE_STRING (label_name), - "length", G_TYPE_INT (ltxt.length), NULL)); - - if (gst_props_get (props, "ltxts", &caps, NULL)) { - caps = g_list_append (caps, new_caps); - } else { - caps = g_list_append (NULL, new_caps); - - entry = gst_props_entry_new ("ltxts", GST_PROPS_GLIST (caps)); - gst_props_add_entry (props, entry); - } - - break; - - case GST_RIFF_adtl_note: - got_bytes = - gst_bytestream_peek_bytes (bs, &tempdata, - sizeof (struct _gst_riff_note)); - if (got_bytes != sizeof (struct _gst_riff_note)) { - return; - } - - temp_note = (struct _gst_riff_note *) tempdata; - note.id = GUINT32_FROM_LE (temp_note->id); - note.size = GUINT32_FROM_LE (temp_note->size); - note.identifier = GUINT32_FROM_LE (temp_note->identifier); - - gst_bytestream_flush (bs, sizeof (struct _gst_riff_note)); - len -= sizeof (struct _gst_riff_note); - - got_bytes = gst_bytestream_peek_bytes (bs, &tempdata, note.size - 4); - if (got_bytes != note.size - 4) { - return; - } - - gst_bytestream_flush (bs, ((note.size - 4) + 1) & ~1); - len -= (((note.size - 4) + 1) & ~1); - - label_name = (char *) tempdata; - - new_caps = gst_caps_new ("note", - "application/x-gst-metadata", - gst_props_new ("identifier", G_TYPE_INT (note.identifier), - "name", G_TYPE_STRING (label_name), NULL)); - - if (gst_props_get (props, "notes", &caps, NULL)) { - caps = g_list_append (caps, new_caps); - } else { - caps = g_list_append (NULL, new_caps); - - entry = gst_props_entry_new ("notes", GST_PROPS_GLIST (caps)); - gst_props_add_entry (props, entry); - } - - break; - - default: - g_print ("Unknown chunk: %" GST_FOURCC_FORMAT "\n", - GST_FOURCC_ARGS (chunk.id)); - return; - } - } - - g_object_notify (G_OBJECT (wavparse), "metadata"); -} - -static void -gst_wavparse_parse_cues (GstWavParse * wavparse, int len) -{ - guint32 got_bytes; - GstByteStream *bs = wavparse->bs; - struct _gst_riff_cue *temp_cue, cue; - struct _gst_riff_cuepoints *points; - guint8 *tempdata; - int i; - GList *cues = NULL; - GstPropsEntry *entry; - - while (len > 0) { - int required; - - got_bytes = - gst_bytestream_peek_bytes (bs, &tempdata, - sizeof (struct _gst_riff_cue)); - temp_cue = (struct _gst_riff_cue *) tempdata; - - /* fixup for our big endian friends */ - cue.id = GUINT32_FROM_LE (temp_cue->id); - cue.size = GUINT32_FROM_LE (temp_cue->size); - cue.cuepoints = GUINT32_FROM_LE (temp_cue->cuepoints); - - gst_bytestream_flush (bs, sizeof (struct _gst_riff_cue)); - if (got_bytes != sizeof (struct _gst_riff_cue)) { - return; - } - - len -= sizeof (struct _gst_riff_cue); - - /* -4 because cue.size contains the cuepoints size - and we've already flushed that out of the system */ - required = cue.size - 4; - got_bytes = gst_bytestream_peek_bytes (bs, &tempdata, required); - gst_bytestream_flush (bs, ((required) + 1) & ~1); - if (got_bytes != required) { - return; - } - - len -= (((cue.size - 4) + 1) & ~1); - - /* now we have an array of struct _gst_riff_cuepoints in tempdata */ - points = (struct _gst_riff_cuepoints *) tempdata; - - for (i = 0; i < cue.cuepoints; i++) { - GstCaps *caps; - - caps = gst_caps_new ("cues", - "application/x-gst-metadata", - gst_props_new ("identifier", G_TYPE_INT (points[i].identifier), - "position", G_TYPE_INT (points[i].offset), NULL)); - cues = g_list_append (cues, caps); - } - - entry = gst_props_entry_new ("cues", GST_PROPS_GLIST (cues)); - gst_props_add_entry (wavparse->metadata->properties, entry); - } - - g_object_notify (G_OBJECT (wavparse), "metadata"); -} - -/* Read 'fmt ' header */ -static gboolean -gst_wavparse_fmt (GstWavParse * wav) -{ - gst_riff_strf_auds *header = NULL; - GstCaps *caps; - - if (!gst_riff_read_strf_auds (wav, &header)) - goto no_fmt; - - wav->format = header->format; - wav->rate = header->rate; - wav->channels = header->channels; - if (wav->channels == 0) - goto no_channels; - - wav->blockalign = header->blockalign; - wav->width = (header->blockalign * 8) / header->channels; - wav->depth = header->size; - wav->bps = header->av_bps; - if (wav->bps <= 0) - goto no_bps; - - /* Note: gst_riff_create_audio_caps might need to fix values in - * the header header depending on the format, so call it first */ - /* FIXME: Need to handle the channel reorder map */ - caps = gst_riff_create_audio_caps (header->format, NULL, header, NULL, NULL); - g_free (header); - - if (caps == NULL) - goto no_caps; - - gst_wavparse_create_sourcepad (wav); - gst_pad_use_fixed_caps (wav->srcpad); - gst_pad_set_active (wav->srcpad, TRUE); - gst_pad_set_caps (wav->srcpad, caps); - gst_caps_free (caps); - gst_element_add_pad (GST_ELEMENT_CAST (wav), wav->srcpad); - gst_element_no_more_pads (GST_ELEMENT_CAST (wav)); - - GST_DEBUG ("frequency %u, channels %u", wav->rate, wav->channels); - - return TRUE; - - /* ERRORS */ -no_fmt: - { - GST_ELEMENT_ERROR (wav, STREAM, TYPE_NOT_FOUND, (NULL), - ("No FMT tag found")); - return FALSE; - } -no_channels: - { - GST_ELEMENT_ERROR (wav, STREAM, FAILED, (NULL), - ("Stream claims to contain zero channels - invalid data")); - g_free (header); - return FALSE; - } -no_bps: - { - GST_ELEMENT_ERROR (wav, STREAM, FAILED, (NULL), - ("Stream claims to bitrate of <= zero - invalid data")); - g_free (header); - return FALSE; - } -no_caps: - { - GST_ELEMENT_ERROR (wav, STREAM, TYPE_NOT_FOUND, (NULL), (NULL)); - return FALSE; - } -} - -static gboolean -gst_wavparse_other (GstWavParse * wav) -{ - guint32 tag, length; - - if (!gst_riff_peek_head (wav, &tag, &length, NULL)) { - GST_WARNING_OBJECT (wav, "could not peek head"); - return FALSE; - } - GST_DEBUG_OBJECT (wav, "got tag (%08x) %4.4s, length %u", tag, - (const gchar *) &tag, length); - - switch (tag) { - case GST_RIFF_TAG_LIST: - if (!(tag = gst_riff_peek_list (wav))) { - GST_WARNING_OBJECT (wav, "could not peek list"); - return FALSE; - } - - switch (tag) { - case GST_RIFF_LIST_INFO: - if (!gst_riff_read_list (wav, &tag) || !gst_riff_read_info (wav)) { - GST_WARNING_OBJECT (wav, "could not read list"); - return FALSE; - } - break; - - case GST_RIFF_LIST_adtl: - if (!gst_riff_read_skip (wav)) { - GST_WARNING_OBJECT (wav, "could not read skip"); - return FALSE; - } - break; - - default: - GST_DEBUG_OBJECT (wav, "skipping tag (%08x) %4.4s", tag, - (gchar *) & tag); - if (!gst_riff_read_skip (wav)) { - GST_WARNING_OBJECT (wav, "could not read skip"); - return FALSE; - } - break; - } - - break; - - case GST_RIFF_TAG_data: - if (!gst_bytestream_flush (wav->bs, 8)) { - GST_WARNING_OBJECT (wav, "could not flush 8 bytes"); - return FALSE; - } - - GST_DEBUG_OBJECT (wav, "switching to data mode"); - wav->state = GST_WAVPARSE_DATA; - wav->datastart = gst_bytestream_tell (wav->bs); - if (length == 0) { - guint64 file_length; - - /* length is 0, data probably stretches to the end - * of file */ - GST_DEBUG_OBJECT (wav, "length is 0 trying to find length"); - /* get length of file */ - file_length = gst_bytestream_length (wav->bs); - if (file_length == -1) { - GST_DEBUG_OBJECT (wav, - "could not get file length, assuming data to eof"); - /* could not get length, assuming till eof */ - length = G_MAXUINT32; - } - if (file_length > G_MAXUINT32) { - GST_DEBUG_OBJECT (wav, "file length %" G_GUINT64_FORMAT - ", clipping to 32 bits", file_length); - /* could not get length, assuming till eof */ - length = G_MAXUINT32; - } else { - GST_DEBUG_OBJECT (wav, "file length %" G_GUINT64_FORMAT - ", datalength %u", file_length, length); - /* substract offset of datastart from length */ - length = file_length - wav->datastart; - GST_DEBUG_OBJECT (wav, "datalength %u", length); - } - } - wav->datasize = (guint64) length; - GST_DEBUG_OBJECT (wav, "datasize = %ld", length) - break; - - case GST_RIFF_TAG_cue: - if (!gst_riff_read_skip (wav)) { - GST_WARNING_OBJECT (wav, "could not read skip"); - return FALSE; - } - break; - - default: - GST_WARNING_OBJECT (wav, "skipping tag %" GST_FOURCC_FORMAT, - GST_FOURCC_ARGS (tag)); - if (!gst_riff_read_skip (wav)) - return FALSE; - break; - } - - return TRUE; -} -#endif - - static gboolean gst_wavparse_parse_file_header (GstElement * element, GstBuffer * buf) { -- 2.7.4