[vorbisspi/f14/master] Initial import
Hicham HAOUARI
hicham at fedoraproject.org
Thu Jan 27 15:22:12 UTC 2011
commit 424eb7f90976495bfda01b3a95adf116a19c4df5
Author: Hicham HAOUARI <hicham.haouari at gmail.com>
Date: Thu Jan 27 15:21:57 2011 +0000
Initial import
.gitignore | 1 +
TMatrixFormatConversionProvider.java | 182 ++++++++++++++++++++++++++++++++++
sources | 1 +
vorbisspi.spec | 84 ++++++++++++++++
4 files changed, 268 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..3c92601 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/vorbisspi1.0.3.tar.gz
diff --git a/TMatrixFormatConversionProvider.java b/TMatrixFormatConversionProvider.java
new file mode 100644
index 0000000..05dca90
--- /dev/null
+++ b/TMatrixFormatConversionProvider.java
@@ -0,0 +1,182 @@
+/*
+ * TMatrixFormatConversionProvider.java
+ */
+
+/*
+ * Copyright (c) 1999, 2000 by Matthias Pfisterer <Matthias.Pfisterer at gmx.de>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Library General Public License as published
+ * by the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+
+package org.tritonus.share.sampled.convert;
+
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.HashMap;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.AudioInputStream;
+import javax.sound.sampled.spi.FormatConversionProvider;
+
+import org.tritonus.share.sampled.AudioFormats;
+import org.tritonus.share.ArraySet;
+
+/**
+ * Base class for arbitrary formatConversionProviders.
+ *
+ * @author Matthias Pfisterer
+ */
+
+
+public abstract class TMatrixFormatConversionProvider
+ extends TSimpleFormatConversionProvider
+{
+ /*
+ * keys: source AudioFormat
+ * values: collection of possible target encodings
+ *
+ * Note that accessing values with get() is not appropriate,
+ * since the equals() method in AudioFormat is not overloaded.
+ * The hashtable is just used as a convenient storage
+ * organization.
+ */
+ private Map m_targetEncodingsFromSourceFormat;
+
+
+ /*
+ * keys: source AudioFormat
+ * values: a Map that contains a mapping from target encodings
+ * (keys) to a collection of target formats (values).
+ *
+ * Note that accessing values with get() is not appropriate,
+ * since the equals() method in AudioFormat is not overloaded.
+ * The hashtable is just used as a convenient storage
+ * organization.
+ */
+ private Map m_targetFormatsFromSourceFormat;
+
+
+
+ protected TMatrixFormatConversionProvider(
+ List sourceFormats,
+ List targetFormats,
+ boolean[][] abConversionPossible)
+ {
+ super(sourceFormats,
+ targetFormats);
+ m_targetEncodingsFromSourceFormat = new HashMap();
+ m_targetFormatsFromSourceFormat = new HashMap();
+
+ for (int nSourceFormat = 0;
+ nSourceFormat < sourceFormats.size();
+ nSourceFormat++)
+ {
+ AudioFormat sourceFormat = (AudioFormat) sourceFormats.get(nSourceFormat);
+ List supportedTargetEncodings = new ArraySet();
+ m_targetEncodingsFromSourceFormat.put(sourceFormat, supportedTargetEncodings);
+ Map targetFormatsFromTargetEncodings = new HashMap();
+ m_targetFormatsFromSourceFormat.put(sourceFormat, targetFormatsFromTargetEncodings);
+ for (int nTargetFormat = 0;
+ nTargetFormat < targetFormats.size();
+ nTargetFormat++)
+ {
+ AudioFormat targetFormat = (AudioFormat) targetFormats.get(nTargetFormat);
+ if (abConversionPossible[nSourceFormat][nTargetFormat])
+ {
+ AudioFormat.Encoding targetEncoding = targetFormat.getEncoding();
+ supportedTargetEncodings.add(targetEncoding);
+ Collection supportedTargetFormats = (Collection) targetFormatsFromTargetEncodings.get(targetEncoding);
+ if (supportedTargetFormats == null)
+ {
+ supportedTargetFormats = new ArraySet();
+ targetFormatsFromTargetEncodings.put(targetEncoding, supportedTargetFormats);
+ }
+ supportedTargetFormats.add(targetFormat);
+ }
+ }
+ }
+ }
+
+
+
+ public AudioFormat.Encoding[] getTargetEncodings(AudioFormat sourceFormat)
+ {
+ Iterator iterator = m_targetEncodingsFromSourceFormat.entrySet().iterator();
+ while (iterator.hasNext())
+ {
+ Map.Entry entry = (Map.Entry) iterator.next();
+ AudioFormat format = (AudioFormat) entry.getKey();
+ if (AudioFormats.matches(format, sourceFormat))
+ {
+ Collection targetEncodings = (Collection) entry.getValue();
+ return (AudioFormat.Encoding[]) targetEncodings.toArray(EMPTY_ENCODING_ARRAY);
+ }
+
+ }
+ return EMPTY_ENCODING_ARRAY;
+ }
+
+
+
+ // TODO: this should work on the array returned by getTargetEncodings(AudioFormat)
+/*
+ public boolean isConversionSupported(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat)
+ {
+ return isAllowedSourceFormat(sourceFormat) &&
+ isTargetEncodingSupported(targetEncoding);
+ }
+*/
+
+
+
+ public AudioFormat[] getTargetFormats(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat)
+ {
+ Iterator iterator = m_targetFormatsFromSourceFormat.entrySet().iterator();
+ while (iterator.hasNext())
+ {
+ Map.Entry entry = (Map.Entry) iterator.next();
+ AudioFormat format = (AudioFormat) entry.getKey();
+ if (AudioFormats.matches(format, sourceFormat))
+ {
+ Map targetEncodings = (Map) entry.getValue();
+ Collection targetFormats = (Collection) targetEncodings.get(targetEncoding);
+ if (targetFormats != null)
+ {
+ return (AudioFormat[]) targetFormats.toArray(EMPTY_FORMAT_ARRAY);
+ }
+ else
+ {
+ return EMPTY_FORMAT_ARRAY;
+ }
+ }
+
+ }
+ return EMPTY_FORMAT_ARRAY;
+ }
+
+
+}
+
+
+
+/*** TMatrixFormatConversionProvider.java ***/
diff --git a/sources b/sources
index e69de29..8a6cfd8 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+636675d1746a4e41e186f2203685a6a0 vorbisspi1.0.3.tar.gz
diff --git a/vorbisspi.spec b/vorbisspi.spec
new file mode 100644
index 0000000..96e8adf
--- /dev/null
+++ b/vorbisspi.spec
@@ -0,0 +1,84 @@
+Name: vorbisspi
+Version: 1.0.3
+Release: 2%{?dist}
+Summary: Java Service Provider Interface for the OGG Vorbis audio format
+
+Group: Development/Libraries
+License: LGPLv2+
+URL: http://www.javazoom.net/vorbisspi/vorbisspi.html
+Source0: http://www.javazoom.net/%{name}/sources/%{name}%{version}.tar.gz
+# Sample class implementation removed from tritonus_share.jar currently shipped by fedora,
+# but necessary to build this package
+Source1: http://tritonus.cvs.sourceforge.net/viewvc/tritonus/tritonus/src/org/tritonus/share/sampled/convert/TMatrixFormatConversionProvider.java
+BuildArch: noarch
+
+BuildRequires: jpackage-utils
+BuildRequires: java-devel >= 1:1.6.0
+BuildRequires: ant
+BuildRequires: tritonus
+BuildRequires: jorbis
+
+Requires: jpackage-utils
+Requires: java >= 1:1.6.0
+Requires: tritonus
+Requires: jorbis
+
+%description
+VorbisSPI is a Java Service Provider Interface that adds OGG Vorbis audio
+format support to Java platform. It supports Icecast streaming. It is
+based on JOrbis Java libraries.
+
+OGG Vorbis is a fully Open, non-proprietary, patent-and-royalty-free,
+general-purpose compressed audio format for high quality (44.1-48.0kHz,
+16+ bit, polyphonic) audio and music at fixed and variable bit rates from
+16 to 128 Kbps/channel. This places Vorbis in the same class as audio
+representations including MPEG-1 audio layer 3, MPEG-4 audio
+(AAC and TwinVQ), and PAC.
+
+%package javadoc
+Summary: Java docs for %{name}
+Group: Documentation
+Requires: jpackage-utils
+
+%description javadoc
+This package contains the API documentation for %{name}.
+
+%prep
+%setup -q -n VorbisSPI%{version}
+# Make sure to remove all prebuilt classes and jars
+find . \( -name '*.class' -o -name '*.jar' \) -exec rm -rf '{}' \;
+# Remove the docs dir if it is already there
+[ -d docs ] && rm -rf docs
+# Fix end of line encoding
+sed -i 's|\r||g' *.txt
+
+# Put the sample class where it should be
+cp -p %{SOURCE1} src/javazoom/spi/vorbis/sampled/convert
+
+%build
+%ant all -Dtritonusjar=%{_libdir}/tritonus/tritonus_share.jar \
+ -Djorbisjar=$(build-classpath jorbis) \
+ -Doggjar=$(build-classpath jogg)
+
+%install
+install -Dpm 644 %{name}%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}.jar
+mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}
+cp -rp docs $RPM_BUILD_ROOT%{_javadocdir}/%{name}
+
+
+%files
+%defattr(-,root,root,-)
+%doc LICENSE.txt README.txt
+%{_javadir}/%{name}.jar
+
+%files javadoc
+%defattr(-,root,root,-)
+%doc LICENSE.txt
+%{_javadocdir}/%{name}
+
+%changelog
+* Tue Jan 25 2011 Hicham HAOUARI <hicham.haouari at gmail.com> - 1.0.3-2
+- Spec cleanup per https://bugzilla.redhat.com/show_bug.cgi?id=664615#c2
+
+* Mon Dec 20 2010 Hicham HAOUARI <hicham.haouari at gmail.com> - 1.0.3-1
+- Initial package for Fedora
More information about the scm-commits
mailing list