ringbuffer: Add support for E-AC3
authorArun Raghavan <arun.raghavan@collabora.co.uk>
Sat, 9 Apr 2011 04:19:10 +0000 (09:49 +0530)
committerArun Raghavan <arun.raghavan@collabora.co.uk>
Sat, 14 May 2011 12:51:23 +0000 (18:21 +0530)
Adds support for pushing E-AC3 buffers and doing bytes-to-ms conversion
correctly. The assumption (as with other formats) is that something like
IEC 61937 payloading will be used. Correspondingly the ringbuffer spec
is populated so that the data rate is 4x normal AC3.

https://bugzilla.gnome.org/show_bug.cgi?id=642730

gst-libs/gst/audio/gstringbuffer.c

index d0a6f7e..2a56bab 100644 (file)
@@ -436,6 +436,16 @@ gst_ring_buffer_parse_caps (GstRingBufferSpec * spec, GstCaps * caps)
     spec->width = 16;
     spec->depth = 16;
     spec->channels = 2;
+  } else if (!strncmp (mimetype, "audio/x-eac3", 12)) {
+    /* extract the needed information from the cap */
+    if (!(gst_structure_get_int (structure, "rate", &spec->rate)))
+      goto parse_error;
+
+    spec->type = GST_BUFTYPE_EAC3;
+    spec->format = GST_EAC3;
+    spec->width = 64;
+    spec->depth = 64;
+    spec->channels = 2;
   } else if (!strncmp (mimetype, "audio/x-dts", 11)) {
     /* extract the needed information from the cap */
     if (!(gst_structure_get_int (structure, "rate", &spec->rate)))