format: Add correct sample spec conversion for E-AC3
authorArun Raghavan <arun.raghavan@collabora.co.uk>
Sat, 9 Apr 2011 04:06:25 +0000 (09:36 +0530)
committerArun Raghavan <arun.raghavan@collabora.co.uk>
Sun, 15 May 2011 04:39:35 +0000 (10:09 +0530)
IEC61937-encapsulated E-AC3 frames contain 6 audio blocks per substream,
which corresponds to 1536 samples contained a 24576-byte frame. To cope
with this, we maintain the s16le stereo sample spec, but quadruple the
sample rate so that the conversion remains accurate.

src/pulse/format.c

index a634b27..84df76b 100644 (file)
@@ -203,5 +203,8 @@ pa_bool_t pa_format_info_to_sample_spec_fake(pa_format_info *f, pa_sample_spec *
     pa_return_val_if_fail(r = pa_proplist_gets(f->plist, PA_PROP_FORMAT_RATE), FALSE);
     pa_return_val_if_fail(pa_atou(r, &ss->rate) == 0, FALSE);
 
+    if (f->encoding == PA_ENCODING_EAC3_IEC61937)
+        ss->rate *= 4;
+
     return TRUE;
 }