baseaudioutils: remove, merged into or superseded by audio.c
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Sat, 27 Aug 2011 11:41:28 +0000 (12:41 +0100)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Sat, 27 Aug 2011 13:47:49 +0000 (14:47 +0100)
gst-libs/gst/audio/gstbaseaudioutils.c [deleted file]
gst-libs/gst/audio/gstbaseaudioutils.h [deleted file]

diff --git a/gst-libs/gst/audio/gstbaseaudioutils.c b/gst-libs/gst/audio/gstbaseaudioutils.c
deleted file mode 100644 (file)
index 3f23590..0000000
+++ /dev/null
@@ -1,417 +0,0 @@
-/* GStreamer
- * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
- * Copyright (C) 2011 Nokia Corporation. All rights reserved.
- *   Contact: Stefan Kost <stefan.kost@nokia.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "gstbaseaudioutils.h"
-
-#include <gst/gst.h>
-#include <gst/audio/multichannel.h>
-
-#include <string.h>
-
-/**
- * gst_base_audio_format_init:
- * @info: (transfer none): a #GstAudioFormatInfo instance
- *
- * Initializes a #GstAudioFormatInfo instance for subsequent use.
- * The instance must either have been previously cleared or set to 0
- * upon allocation.
- */
-void
-gst_base_audio_format_info_init (GstAudioFormatInfo * info)
-{
-  g_return_if_fail (info != NULL);
-
-  /* no-op for now */
-}
-
-/**
- * gst_base_audio_format_info_new:
- *
- * Allocate a new #GstAudioFormatInfo structure and initialize it using
- * gst_base_audio_format_info().
- *
- * Free-function: gst_base_audio_format_info_free
- *
- * Returns: (transfer full): a new #GstAudioFormatInfo,
- * free with gst_base_audio_format_info_free().
- */
-GstAudioFormatInfo *
-gst_base_audio_format_info_new (void)
-{
-  GstAudioFormatInfo *result;
-
-  result = g_slice_new0 (GstAudioFormatInfo);
-  gst_base_audio_format_info_init (result);
-
-  return result;
-}
-
-/**
- * gst_base_audio_format_clear:
- * @info: (transfer none): a #GstAudioFormatInfo instance
- *
- * Clears a #GstAudioFormatInfo instance.
- */
-void
-gst_base_audio_format_info_clear (GstAudioFormatInfo * info)
-{
-  g_return_if_fail (info != NULL);
-
-  g_free (info->channel_pos);
-  memset (info, 0, sizeof (*info));
-}
-
-/**
- * gst_base_audio_format_copy:
- * @info: (transfer none): a #GstAudioFormatInfo instance
- *
- * Create a copy of a given #GstAudioFormatInfo instance.
- *
- * Returns: (transfer full): a new #GstAudioFormatInfo,
- * free with gst_base_audio_format_info_free()
- */
-GstAudioFormatInfo *
-gst_base_audio_format_info_copy (GstAudioFormatInfo * info)
-{
-  GstAudioFormatInfo *result = NULL;
-
-  if (info) {
-    result = (GstAudioFormatInfo *) g_slice_copy (sizeof (GstAudioFormatInfo),
-        info);
-  }
-  return result;
-}
-
-/**
- * gst_base_audio_format_free:
- * @info: (in) (transfer full): a #GstAudioFormatInfo instance
- *
- * Frees the allocated @info.
- */
-void
-gst_base_audio_format_info_free (GstAudioFormatInfo * info)
-{
-  g_slice_free (GstAudioFormatInfo, info);
-}
-
-#define CHECK_VALUE(var, val) \
-G_STMT_START { \
-  if (!res) \
-    goto fail; \
-  var = val; \
-} G_STMT_END
-
-/**
- * gst_base_audio_parse_caps:
- * @caps: a #GstCaps
- * @state: a #GstAudioFormatInfo
- *
- * Parses audio format as represented by @caps into a more concise form
- * as represented by @state.
- *
- * Returns: TRUE if parsing succeeded, otherwise FALSE
- */
-gboolean
-gst_base_audio_parse_caps (GstCaps * caps, GstAudioFormatInfo * info)
-{
-  gboolean res = TRUE;
-  GstStructure *s;
-  gboolean vb;
-  gint vi;
-
-  g_return_val_if_fail (caps != NULL, FALSE);
-  g_return_val_if_fail (gst_caps_is_fixed (caps), FALSE);
-
-  gst_base_audio_format_info_clear (info);
-
-  s = gst_caps_get_structure (caps, 0);
-  if (gst_structure_has_name (s, "audio/x-raw-int"))
-    info->is_int = TRUE;
-  else if (gst_structure_has_name (s, "audio/x-raw-float"))
-    info->is_int = FALSE;
-  else
-    goto fail;
-
-  res = gst_structure_get_int (s, "rate", &vi);
-  CHECK_VALUE (info->rate, vi);
-  res &= gst_structure_get_int (s, "channels", &vi);
-  CHECK_VALUE (info->channels, vi);
-  res &= gst_structure_get_int (s, "width", &vi);
-  CHECK_VALUE (info->width, vi);
-  res &= (!info->is_int || gst_structure_get_int (s, "depth", &vi));
-  CHECK_VALUE (info->depth, vi);
-  res &= gst_structure_get_int (s, "endianness", &vi);
-  CHECK_VALUE (info->endian, vi);
-  res &= (!info->is_int || gst_structure_get_boolean (s, "signed", &vb));
-  CHECK_VALUE (info->sign, vb);
-
-  info->bpf = (info->width / 8) * info->channels;
-  GST_LOG ("bpf: %d", info->bpf);
-  if (!info->bpf)
-    goto fail;
-
-  info->channel_pos = gst_audio_get_channel_positions (s);
-
-  return res;
-
-  /* ERRORS */
-fail:
-  {
-    /* there should not be caps out there that fail parsing ... */
-    GST_WARNING ("failed to parse caps %" GST_PTR_FORMAT, caps);
-    return res;
-  }
-}
-
-/**
- * gst_base_audio_compare_format_info:
- * @from: a #GstAudioFormatInfo
- * @to: a #GstAudioFormatInfo
- *
- * Checks whether provides #GstAudioFormatInfo instances represent identical
- * audio dat.
- *
- * Returns: TRUE if represent audio formats are identical
- */
-gboolean
-gst_base_audio_compare_format_info (GstAudioFormatInfo * from,
-    GstAudioFormatInfo * to)
-{
-  g_return_val_if_fail (from != NULL, FALSE);
-  g_return_val_if_fail (to != NULL, FALSE);
-
-  /* this is a bit silly, so maybe should not need this function at all */
-  return memcmp (from, to, sizeof (*from));
-}
-
-/**
- * gst_base_audio_add_streamheader:
- * @caps: a #GstCaps
- * @buf: header buffers
- *
- * Adds given buffers to an array of buffers set as streamheader field
- * on the given @caps.  List of buffer arguments must be NULL-terminated.
- *
- * Returns: input caps with a streamheader field added, or NULL if some error
- */
-GstCaps *
-gst_base_audio_add_streamheader (GstCaps * caps, GstBuffer * buf, ...)
-{
-  GstStructure *structure = NULL;
-  va_list va;
-  GValue array = { 0 };
-  GValue value = { 0 };
-
-  g_return_val_if_fail (caps != NULL, NULL);
-  g_return_val_if_fail (gst_caps_is_fixed (caps), NULL);
-
-  caps = gst_caps_make_writable (caps);
-  structure = gst_caps_get_structure (caps, 0);
-
-  g_value_init (&array, GST_TYPE_ARRAY);
-
-  va_start (va, buf);
-  /* put buffers in a fixed list */
-  while (buf) {
-    g_assert (gst_buffer_is_metadata_writable (buf));
-
-    /* mark buffer */
-    GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_IN_CAPS);
-
-    g_value_init (&value, GST_TYPE_BUFFER);
-    buf = gst_buffer_copy (buf);
-    GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_IN_CAPS);
-    gst_value_set_buffer (&value, buf);
-    gst_buffer_unref (buf);
-    gst_value_array_append_value (&array, &value);
-    g_value_unset (&value);
-
-    buf = va_arg (va, GstBuffer *);
-  }
-
-  gst_structure_set_value (structure, "streamheader", &array);
-  g_value_unset (&array);
-
-  return caps;
-}
-
-/**
- * gst_base_audio_encoded_audio_convert:
- * @fmt: audio format of the encoded audio
- * @bytes: number of encoded bytes
- * @samples: number of encoded samples
- * @src_format: source format
- * @src_value: source value
- * @dest_format: destination format
- * @dest_value: destination format
- *
- * Helper function to convert @src_value in @src_format to @dest_value in
- * @dest_format for encoded audio data.  Conversion is possible between
- * BYTE and TIME format by using estimated bitrate based on
- * @samples and @bytes (and @fmt).
- */
-gboolean
-gst_base_audio_encoded_audio_convert (GstAudioFormatInfo * fmt,
-    gint64 bytes, gint64 samples, GstFormat src_format,
-    gint64 src_value, GstFormat * dest_format, gint64 * dest_value)
-{
-  gboolean res = FALSE;
-
-  g_return_val_if_fail (dest_format != NULL, FALSE);
-  g_return_val_if_fail (dest_value != NULL, FALSE);
-
-  if (G_UNLIKELY (src_format == *dest_format || src_value == 0 ||
-          src_value == -1)) {
-    if (dest_value)
-      *dest_value = src_value;
-    return TRUE;
-  }
-
-  if (samples == 0 || bytes == 0 || fmt->rate == 0) {
-    GST_DEBUG ("not enough metadata yet to convert");
-    goto exit;
-  }
-
-  bytes *= fmt->rate;
-
-  switch (src_format) {
-    case GST_FORMAT_BYTES:
-      switch (*dest_format) {
-        case GST_FORMAT_TIME:
-          *dest_value = gst_util_uint64_scale (src_value,
-              GST_SECOND * samples, bytes);
-          res = TRUE;
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    case GST_FORMAT_TIME:
-      switch (*dest_format) {
-        case GST_FORMAT_BYTES:
-          *dest_value = gst_util_uint64_scale (src_value, bytes,
-              samples * GST_SECOND);
-          res = TRUE;
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    default:
-      res = FALSE;
-  }
-
-exit:
-  return res;
-}
-
-/**
- * gst_base_audio_raw_audio_convert:
- * @fmt: audio format of the encoded audio
- * @src_format: source format
- * @src_value: source value
- * @dest_format: destination format
- * @dest_value: destination format
- *
- * Helper function to convert @src_value in @src_format to @dest_value in
- * @dest_format for encoded audio data.  Conversion is possible between
- * BYTE, DEFAULT and TIME format based on audio characteristics provided
- * by @fmt.
- */
-gboolean
-gst_base_audio_raw_audio_convert (GstAudioFormatInfo * fmt,
-    GstFormat src_format, gint64 src_value,
-    GstFormat * dest_format, gint64 * dest_value)
-{
-  gboolean res = FALSE;
-  guint scale = 1;
-  gint bytes_per_sample, rate, byterate;
-
-  g_return_val_if_fail (dest_format != NULL, FALSE);
-  g_return_val_if_fail (dest_value != NULL, FALSE);
-
-  if (G_UNLIKELY (src_format == *dest_format || src_value == 0 ||
-          src_value == -1)) {
-    if (dest_value)
-      *dest_value = src_value;
-    return TRUE;
-  }
-
-  bytes_per_sample = fmt->bpf;
-  rate = fmt->rate;
-  byterate = bytes_per_sample * rate;
-
-  if (G_UNLIKELY (bytes_per_sample == 0 || rate == 0)) {
-    GST_DEBUG ("not enough metadata yet to convert");
-    goto exit;
-  }
-
-  switch (src_format) {
-    case GST_FORMAT_BYTES:
-      switch (*dest_format) {
-        case GST_FORMAT_DEFAULT:
-          *dest_value = src_value / bytes_per_sample;
-          res = TRUE;
-          break;
-        case GST_FORMAT_TIME:
-          *dest_value =
-              gst_util_uint64_scale_int (src_value, GST_SECOND, byterate);
-          res = TRUE;
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    case GST_FORMAT_DEFAULT:
-      switch (*dest_format) {
-        case GST_FORMAT_BYTES:
-          *dest_value = src_value * bytes_per_sample;
-          res = TRUE;
-          break;
-        case GST_FORMAT_TIME:
-          *dest_value = gst_util_uint64_scale_int (src_value, GST_SECOND, rate);
-          res = TRUE;
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    case GST_FORMAT_TIME:
-      switch (*dest_format) {
-        case GST_FORMAT_BYTES:
-          scale = bytes_per_sample;
-          /* fallthrough */
-        case GST_FORMAT_DEFAULT:
-          *dest_value = gst_util_uint64_scale_int (src_value,
-              scale * rate, GST_SECOND);
-          res = TRUE;
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    default:
-      res = FALSE;
-  }
-
-exit:
-  return res;
-}
diff --git a/gst-libs/gst/audio/gstbaseaudioutils.h b/gst-libs/gst/audio/gstbaseaudioutils.h
deleted file mode 100644 (file)
index b31e722..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/* GStreamer
- * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
- * Copyright (C) 2011 Nokia Corporation. All rights reserved.
- *   Contact: Stefan Kost <stefan.kost@nokia.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef _GST_BASE_AUDIO_UTILS_H_
-#define _GST_BASE_AUDIO_UTILS_H_
-
-#ifndef GST_USE_UNSTABLE_API
-#warning "Base audio utils provide unstable API and may change in future."
-#warning "You can define GST_USE_UNSTABLE_API to avoid this warning."
-#endif
-
-#include <gst/gst.h>
-#include <gst/audio/multichannel.h>
-
-G_BEGIN_DECLS
-
-/**
- * GstAudioFormatInfo:
- * @is_int: whether sample data is int or float
- * @rate: rate of sample data
- * @channels: number of channels in sample data
- * @width: width (in bits) of sample data
- * @depth: used bits in sample data (if integer)
- * @sign: sign of sample data (if integer)
- * @endian: endianness of sample data
- * @bpf: bytes per audio frame
- */
-typedef struct _GstAudioFormatInfo {
-  gboolean is_int;
-  gint  rate;
-  gint  channels;
-  gint  width;
-  gint  depth;
-  gboolean sign;
-  gint  endian;
-  GstAudioChannelPosition *channel_pos;
-
-  gint  bpf;
-} GstAudioFormatInfo;
-
-void gst_base_audio_format_info_init (GstAudioFormatInfo * info);
-void gst_base_audio_format_info_clear (GstAudioFormatInfo * info);
-GstAudioFormatInfo *gst_base_audio_format_info_new (void);
-void gst_base_audio_format_info_free (GstAudioFormatInfo * info);
-GstAudioFormatInfo *gst_base_audio_format_info_copy (GstAudioFormatInfo * info);
-
-gboolean gst_base_audio_parse_caps (GstCaps * caps, GstAudioFormatInfo * info);
-gboolean gst_base_audio_compare_format_info (GstAudioFormatInfo * from,
-                                             GstAudioFormatInfo * to);
-
-GstCaps *gst_base_audio_add_streamheader (GstCaps * caps, GstBuffer * buf, ...);
-
-gboolean gst_base_audio_encoded_audio_convert (GstAudioFormatInfo * fmt,
-    gint64 bytes, gint64 samples, GstFormat src_format,
-    gint64 src_value, GstFormat * dest_format, gint64 * dest_value);
-
-gboolean gst_base_audio_raw_audio_convert (GstAudioFormatInfo * fmt, GstFormat src_format,
-    gint64 src_value, GstFormat * dest_format, gint64 * dest_value);
-
-G_END_DECLS
-
-#endif
-