mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-16 08:58:56 +00:00
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:
parent
bebbeec80a
commit
b6ad46c3f1
4 changed files with 345 additions and 0 deletions
47
reference/oggvorbis/configure.xml
Normal file
47
reference/oggvorbis/configure.xml
Normal 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("oggvorbis.so");</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
|
||||
-->
|
64
reference/oggvorbis/constants.xml
Normal file
64
reference/oggvorbis/constants.xml
Normal 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
|
||||
-->
|
90
reference/oggvorbis/contexts.xml
Normal file
90
reference/oggvorbis/contexts.xml
Normal 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
|
||||
-->
|
144
reference/oggvorbis/reference.xml
Normal file
144
reference/oggvorbis/reference.xml
Normal 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'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 >= 4.3.0</literal>,
|
||||
<ulink url="&url.ogg.vorbis.downloads;">libogg</ulink> >= 1.0, and
|
||||
<ulink url="&url.ogg.vorbis.downloads;">libvorbis</ulink> >= 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
|
||||
-->
|
||||
|
Loading…
Reference in a new issue