File: reference.xml

package info (click to toggle)
php-doc 20061001-1
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 45,764 kB
  • ctags: 1,611
  • sloc: xml: 502,485; php: 7,645; cpp: 500; makefile: 297; perl: 161; sh: 141; awk: 28
file content (147 lines) | stat: -rw-r--r-- 3,980 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.6 $ -->
<!-- Purpose: utilspec.audio -->
<!-- Membership: pecl, external -->

<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.vorbis;">&url.ogg.vorbis;</ulink>, is a scheme
    for compressing audio streams by multiple factors with a minimum of
    quality loss. This extension adds Ogg Vorbis 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 extension 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 id="oggvorbis.usage">
  <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
-->