audio: add FLAC to GstAudioRingBufferFormatType
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Thu, 17 Nov 2016 13:04:18 +0000 (13:04 +0000)
committerOlivier CrĂȘte <olivier.crete@collabora.com>
Mon, 23 Jan 2017 18:47:39 +0000 (13:47 -0500)
https://bugzilla.gnome.org/show_bug.cgi?id=777655

gst-libs/gst/audio/gstaudioringbuffer.c
gst-libs/gst/audio/gstaudioringbuffer.h

index 2d7365a..610b161 100644 (file)
@@ -302,6 +302,14 @@ gst_audio_ring_buffer_parse_caps (GstAudioRingBufferSpec * spec, GstCaps * caps)
           GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC_RAW :
           GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW;
     info.bpf = 1;
+  } else if (g_str_equal (mimetype, "audio/x-flac")) {
+    /* extract the needed information from the cap */
+    if (!(gst_structure_get_int (structure, "rate", &info.rate)))
+      goto parse_error;
+
+    gst_structure_get_int (structure, "channels", &info.channels);
+    spec->type = GST_AUDIO_RING_BUFFER_FORMAT_TYPE_FLAC;
+    info.bpf = 1;
   } else {
     goto parse_error;
   }
index 27ead3a..8706317 100644 (file)
@@ -87,6 +87,7 @@ typedef enum {
  * @GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC: samples in MPEG-4 AAC ADTS format
  * @GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC_RAW: samples in MPEG-2 AAC raw format
  * @GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW: samples in MPEG-4 AAC raw format
+ * @GST_AUDIO_RING_BUFFER_FORMAT_TYPE_FLAC: samples in FLAC format
  *
  * The format of the samples in the ringbuffer.
  */
@@ -105,7 +106,8 @@ typedef enum
   GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC,
   GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC,
   GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC_RAW,
-  GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW
+  GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW,
+  GST_AUDIO_RING_BUFFER_FORMAT_TYPE_FLAC
 } GstAudioRingBufferFormatType;
 
 /**