move oggvorbis from peardoc

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@188684 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Friedhelm Betz 2005-06-17 23:05:14 +00:00
parent bebbeec80a
commit b6ad46c3f1
4 changed files with 345 additions and 0 deletions

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<section id="oggvorbis.installation">
&reftitle.install;
<simpara>
oggvorbis is installed through the usual PECL package installation process.
</simpara>
<itemizedlist>
<listitem>
<para>
<screen>
$ pear install Net_Gopher
</screen>
</para>
</listitem>
<listitem>
<simpara>
Copy the resulting <literal>oggvorbis.so</literal> to an appropriate
location and add <literal>extension=oggvorbis.so</literal> to your
&php.ini; file or load it dynamically in your PHP script using
<literal>dl(&quot;oggvorbis.so&quot;);</literal>
</simpara>
</listitem>
</itemizedlist>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View file

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<section id="oggvorbis.constants">
&reftitle.constants;
&extension.constants;
<table>
<title>OGG/Vorbis supports PCM encodings in the following formats</title>
<tgroup cols="2">
<thead>
<row>
<entry>Constant</entry>
<entry>Definition</entry>
</row>
</thead>
<tbody>
<row>
<entry><constant>OGGVORBIS_PCM_U8</constant></entry>
<entry>Unsigned 8-bit PCM.</entry>
</row>
<row>
<entry><constant>OGGVORBIS_PCM_S8</constant></entry>
<entry>Signed 8-bit PCM.</entry>
</row>
<row>
<entry><constant>OGGVORBIS_PCM_U16_LE</constant></entry>
<entry>Unsigned 16-bit PCM. Little Endian byte order.</entry>
</row>
<row>
<entry><constant>OGGVORBIS_PCM_U16_BE</constant></entry>
<entry>Unsigned 16-bit PCM. Big Endian byte order.</entry>
</row>
<row>
<entry><constant>OGGVORBIS_PCM_S16_LE</constant></entry>
<entry>Signed 16-bit PCM. Little Endian byte order.</entry>
</row>
<row>
<entry><constant>OGGVORBIS_PCM_S16_BE</constant></entry>
<entry>Signed 16-bit PCM. Big Endian byte order.</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View file

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<section id="oggvorbis.contexts">
<title>Context options</title>
<table>
<title>OGG/Vorbis tuning options</title>
<tgroup cols="4">
<thead>
<row>
<entry>Option</entry>
<entry>Definition</entry>
<entry>Relevance</entry>
<entry>Default</entry>
</row>
</thead>
<tbody>
<row>
<entry>pcm_mode</entry>
<entry>PCM byte encoding used. See constants below.</entry>
<entry>Read / Write</entry>
<entry><constant>OGGVORBIS_PCM_S16_LE</constant></entry>
</row>
<row>
<entry>rate</entry>
<entry>PCM Sampling rate. Measured in Hz.</entry>
<entry>Write only</entry>
<entry><constant>44100</constant></entry>
</row>
<row>
<entry>bitrate</entry>
<entry>
Vorbis Average Bitrate Encoding / Variable Bitrate Encoding.
Measured in bps (ABR) or Quality level (VBR: 0.0 to 1.0).
128000 ABR is rough equal to 0.4 VBR.
</entry>
<entry>Write only</entry>
<entry><constant>128000</constant></entry>
</row>
<row>
<entry>channels</entry>
<entry>Number of PCM channels. 1 == Mono, 2 == Stereo.</entry>
<entry>Write only</entry>
<entry><constant>2</constant></entry>
</row>
<row>
<entry>serialno</entry>
<entry>
Serial Number of stream within file. Must be unique within file.
Because of the potential to select a duplicate serial number within
a chained file, make efforts to manually assign unique numbers when
encoding.
</entry>
<entry>Write only</entry>
<entry><emphasis>Random</emphasis></entry>
</row>
<row>
<entry>comments</entry>
<entry>
Associative array of file comments.
Will be translated to <literal>strtoupper($name) . "=$value"</literal>.
Note: This context option is not available in oggvorbis-0.1
</entry>
<entry>Write only</entry>
<entry><constant>array('ENCODER' => 'PHP/OggVorbis, http://pear.php.net/oggvorbis')</constant></entry>
</row>
</tbody>
</tgroup>
</table>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View file

@ -0,0 +1,144 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<reference id="ref.oggvorbis">
<title>oggvorbis</title>
<titleabbrev>OGG/Vorbis</titleabbrev>
<partintro>
<section id="oggvorbis.intro">
&reftitle.intro;
<simpara>
The OGG/Vorbis file format, as defined by <ulink url="&url.ogg;">&url.ogg;</ulink>
and <ulink url="&url.ogg.vorbis;">&url.ogg.vorbis;</ulink>, is a scheme
for compressing audio streams by multiple factors with a minimum of
quality loss. This extension adds oggvorbis support to PHP&apos;s
<link linkend="wrappers">URL Wrappers</link>. When used in read mode,
compressed OGG/Vorbis data is expanded to raw PCM audio in one of six PCM
encoding formats listed below.
</simpara>
</section>
<section id="oggvorbis.requirements">
&reftitle.required;
<para>
This extensiion requires <literal>PHP &gt;= 4.3.0</literal>,
<ulink url="&url.ogg.vorbis.downloads;">libogg</ulink> &gt;= 1.0, and
<ulink url="&url.ogg.vorbis.downloads;">libvorbis</ulink> &gt;= 1.0.
</para>
</section>
<section id="oggvorbis.configuration">
&reftitle.runtime;
&no.config;
</section>
<!--
&reference.oggvorbis.configure;
&reference.oggvorbis.contexts;
&reference.oggvorbis.constants;
-->
</partintro>
<refentry>
<refnamediv>
<refname>Usage</refname>
<refpurpose>
Examples on using the ogg:// wrapper.
</refpurpose>
</refnamediv>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Reading an OGG/Vorbis file</title>
<programlisting role="php">
<![CDATA[
<?php
dl("oggvorbis.so");
/* By default, ogg:// will decode to Signed 16-bit Little Endian */
$fp = fopen('ogg://myaudio.ogg', 'r');
/* Collect some information about the file. */
$metadata = stream_get_meta_data($fp);
/* Inspect the first song (usually the only song,
but OGG/Vorbis files may be chained) */
$songdata = $metadata['wrapper_data'][0];
echo "OGG/Vorbis file encoded by: {$songdata['vendor']}\n.";
echo " {$songdata['channels']} channels of {$songdata['rate']}Hz sampling encoded at {$songdata['bitrate_nominal']}bps.\n";
foreach($songdata['comments'] as $comment) {
echo " $comment\n";
}
while ($audio_data = fread($fp, 8192)) {
/* Do something with the PCM audio we're extracting from the OGG.
Copying to /dev/dsp is a good target on linux systems,
just remember to setup the device for your sampling mode first. */
}
fclose($fp);
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Encode an audio file to OGG/Vorbis</title>
<programlisting role="php">
<![CDATA[
<?php
dl('oggvorbis.so');
$context = stream_context_create(array('ogg'=>array(
'pcm_mode' => OGGVORBIS_PCM_S8, /* Signed 8bit audio */
'rate' => 44100, /* 44kHz CD quality */
'bitrate' => 0.5, /* Midquality VBR */
'channels' => 1, /* Mono */
'serialno' => 12345))); /* Unique within our stream */
/* Open file for appending. This will "chain" a second OGG stream at the end of the first. */
$ogg = fopen('ogg://mysong.ogg', 'a', false, $context);
$pcm = fopen('mysample.pcm', 'r');
/* Compress the raw PCM audio from mysample.pcm into mysong.ogg */
stream_copy_to_stream($pcm, $ogg);
fclose($pcm);
fclose($ogg);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
</refentry>
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->