Added support for AAC passthrough

This commit is contained in:
Julian Sikorski 2013-11-12 22:45:37 +01:00
parent b6118284b6
commit 2891858b6d
2 changed files with 93 additions and 1 deletions

View File

@ -0,0 +1,87 @@
From cbf3acb54379f3334cf5d7844888536bb54d1c5e Mon Sep 17 00:00:00 2001
From: Akihiro Tsukada <atsukada@users.sourceforge.net>
Date: Mon, 25 Feb 2013 01:03:31 +0900
Subject: [PATCH 1/2] sinkwidget: add support for AAC pass-through
---
src/pavucontrol.glade | 19 ++++++++++++++++---
src/sinkwidget.cc | 12 ++++++++++++
src/sinkwidget.h | 2 +-
3 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/src/pavucontrol.glade b/src/pavucontrol.glade
index 6defb3d..4b3dd01 100644
--- a/src/pavucontrol.glade
+++ b/src/pavucontrol.glade
@@ -427,9 +427,6 @@
<property name="n_rows">2</property>
<property name="n_columns">3</property>
<child>
- <placeholder/>
- </child>
- <child>
<object class="GtkCheckButton" id="encodingFormatPCM">
<property name="label" translatable="yes">PCM</property>
<property name="use_action_appearance">False</property>
@@ -499,6 +496,22 @@
<property name="bottom_attach">2</property>
</packing>
</child>
+ <child>
+ <object class="GtkCheckButton" id="encodingFormatAAC">
+ <property name="label" translatable="yes">AAC</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc
index 1726550..7f4902c 100644
--- a/src/sinkwidget.cc
+++ b/src/sinkwidget.cc
@@ -62,6 +62,18 @@ SinkWidget::SinkWidget(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
encodings[i].encoding = PA_ENCODING_DTS_IEC61937;
x->get_widget("encodingFormatDTS", encodings[i].widget);
encodings[i].widget->signal_toggled().connect(sigc::mem_fun(*this, &SinkWidget::onEncodingsChange));
+
+ ++i;
+ encodings[i].encoding = PA_ENCODING_INVALID;
+ x->get_widget("encodingFormatAAC", encodings[i].widget);
+ encodings[i].widget->set_sensitive(false);
+#ifdef PA_ENCODING_MPEG2_AAC_IEC61937
+ if (pa_context_get_server_protocol_version(get_context()) >= 28) {
+ encodings[i].encoding = PA_ENCODING_MPEG2_AAC_IEC61937;
+ encodings[i].widget->signal_toggled().connect(sigc::mem_fun(*this, &SinkWidget::onEncodingsChange));
+ encodings[i].widget->set_sensitive(true);
+ }
+#endif
#endif
}
diff --git a/src/sinkwidget.h b/src/sinkwidget.h
index a2fbab9..0044ffc 100644
--- a/src/sinkwidget.h
+++ b/src/sinkwidget.h
@@ -27,7 +27,7 @@
#if HAVE_EXT_DEVICE_RESTORE_API
# include <pulse/format.h>
-# define PAVU_NUM_ENCODINGS 5
+# define PAVU_NUM_ENCODINGS 6
typedef struct {
pa_encoding encoding;
--
1.8.4.2

View File

@ -1,12 +1,13 @@
Name: pavucontrol
Version: 2.0
Release: 3%{?dist}
Release: 4%{?dist}
Summary: Volume control for PulseAudio
Group: Applications/Multimedia
License: GPLv2+
URL: http://freedesktop.org/software/pulseaudio/%{name}
Source0: http://freedesktop.org/software/pulseaudio/%{name}/%{name}-%{version}.tar.xz
Patch0: 0001-sinkwidget-add-support-for-AAC-pass-through.patch
BuildRequires: pulseaudio-libs-devel >= 3.0
BuildRequires: gtkmm30-devel libglademm24-devel
@ -23,6 +24,7 @@ of each playback stream separately.
%prep
%setup -q
%patch0 -p1
%build
%configure
@ -50,6 +52,9 @@ desktop-file-install \
%{_datadir}/applications/pavucontrol.desktop
%changelog
* Tue Nov 12 2013 Julian Sikorski <belegdol@fedoraproject.org> - 2.0-4
- Added support for AAC passthrough
* Wed Oct 23 2013 Bruno Wolff III <bruno@wolff.to> - 2.0-3
- Rebuild seems to fix segfaulting issue (bz 1021118)