diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c index 1603838ad0..53448a2615 100644 --- a/ext/pulse/pulsesink.c +++ b/ext/pulse/pulsesink.c @@ -1796,6 +1796,8 @@ gst_pulsesink_payload (GstAudioBaseSink * sink, GstBuffer * buf) case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_EAC3: case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS: case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG: + case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC: + case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC: { /* FIXME: alloc memory from PA if possible */ gint framesize = gst_audio_iec61937_frame_size (&sink->ringbuffer->spec); diff --git a/ext/pulse/pulsesink.h b/ext/pulse/pulsesink.h index 09872a70cc..dfed7be5f3 100644 --- a/ext/pulse/pulsesink.h +++ b/ext/pulse/pulsesink.h @@ -97,7 +97,8 @@ GType gst_pulsesink_get_type (void); _PULSE_CAPS_AC3 \ _PULSE_CAPS_EAC3 \ _PULSE_CAPS_DTS \ - _PULSE_CAPS_MP3 + _PULSE_CAPS_MP3 \ + _PULSE_CAPS_AAC G_END_DECLS diff --git a/ext/pulse/pulseutil.c b/ext/pulse/pulseutil.c index 9febb25040..89ed1068f3 100644 --- a/ext/pulse/pulseutil.c +++ b/ext/pulse/pulseutil.c @@ -164,6 +164,13 @@ gst_pulse_fill_format_info (GstAudioRingBufferSpec * spec, pa_format_info ** f, format->encoding = PA_ENCODING_DTS_IEC61937; } else if (spec->type == GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG) { format->encoding = PA_ENCODING_MPEG_IEC61937; +#if PA_CHECK_VERSION(3,99,0) + } else if (spec->type == GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC) { + format->encoding = PA_ENCODING_MPEG2_AAC_IEC61937; + } else if (spec->type == GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC) { + /* HACK. treat MPEG4 AAC as MPEG2 AAC for the moment */ + format->encoding = PA_ENCODING_MPEG2_AAC_IEC61937; +#endif } else { goto fail; } diff --git a/ext/pulse/pulseutil.h b/ext/pulse/pulseutil.h index 9356d37b3e..d558afac20 100644 --- a/ext/pulse/pulseutil.h +++ b/ext/pulse/pulseutil.h @@ -61,6 +61,8 @@ "block-size = (int) { 512, 1024, 2048 }; " #define _PULSE_CAPS_MP3 "audio/mpeg, mpegversion = (int) 1, " \ "mpegaudioversion = (int) [ 1, 2 ], parsed = (boolean) true;" +#define _PULSE_CAPS_AAC "audio/mpeg, mpegversion = (int) { 2, 4 }, " \ + "framed = (boolean) true, stream-format = (string) adts;" #define _PULSE_CAPS_PCM \ _PULSE_CAPS_LINEAR \