[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