1
0
mirror of https://gitlab.xiph.org/xiph/ezstream.git synced 2024-12-04 14:46:31 -05:00

More, rather evil Windows stuff. This is about as far as I'm willing to go for

now. Volunteers willing to take all this Windows stuff off my hands are very
welcome. ;-)


git-svn-id: https://svn.xiph.org/trunk/ezstream@12621 0101bb08-14d6-0310-b084-bc0e0c8e3800
This commit is contained in:
moritz 2007-03-03 20:20:40 +00:00
parent 2c8e1beef3
commit b87b03f2d6
5 changed files with 441 additions and 7 deletions

View File

@ -1,5 +1,5 @@
AUTOMAKE_OPTIONS = 1.9 foreign
EXTRA_DIST = ezstream.sln ezstream.vcproj
EXTRA_DIST = README.win32 ezstream.1.html ezstream.sln ezstream.vcproj
CLEANFILES = core *.core *~ .*~

56
win32/README.win32 Normal file
View File

@ -0,0 +1,56 @@
README.win32 - Information about the binary Ezstream distribution for Windows
=============================================================================
1. .ZIP Archive Contents
------------------------
| File | Description |
+======================================================================+
| \README.txt | This file. |
+-----------------------+----------------------------------------------+
| \ezstream.1.html | The ezstream manual in HTML format. It is |
| | automatically generated and looks very bad, |
| | but should be readable enough to be useful. |
+-----------------------+----------------------------------------------+
| \bin\ezstream.exe | The ezstream executable file. |
+-----------------------+----------------------------------------------+
| \bin\*.dll | .DLL libraries required by ezstream. These |
| | need to be located in the same directory as |
| | the ezstream.exe executable. |
+-----------------------+----------------------------------------------+
| \conf\*.xml | Ezstream example configuration files. |
+-----------------------+----------------------------------------------+
2. Installation
---------------
As of version 0.3.0, ezstream no longer comes with an installer. If you have a
previous version of ezstream installed, you might want to simply uninstall it.
The ezstream.exe file will simply work as long as libxml2.dll, iconv.dll and
zlib.dll are located in the same directory.
To install ezstream, simply copy the contents of the \bin directory in this
archive to a location of your choosing.
3. Source code
--------------
Ezstream uses libxml2 (http://xmlsoft.org/, BSD-like license), libogg and
libvorbis (http://www.vorbis.com/, BSD-like license) and libshout
(http://www.icecast.org/, LGPL licensed). Also, libxml2 depends on zlib
(http://zlib.net/, BSD-like license) and libiconv
(http://www.gnu.org/software/libiconv/, LGPL licensed.)
Ezstream itself is licensed under the GPL (see COPYING.txt), with the source
code available at http://www.icecast.org/ezstream.php in the distribution
tarball (.tar.gz).

271
win32/ezstream.1.html Normal file
View File

@ -0,0 +1,271 @@
<html>
<head>
<meta name="Content-Style" content="text/css">
</head>
<body>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#XML CONFIGURATION">XML CONFIGURATION</a><br>
<a href="#FILES">FILES</a><br>
<a href="#AUTHORS">AUTHORS</a><br>
<!-- Creator : groff version 1.15 -->
<!-- CreationDate: Sat Mar 3 20:44:03 2007
-->
<!-- Total number of pages: 4 -->
<!-- Page: 1 -->
<!-- left margin: 100 -->
<!-- right margin: 750 -->
<p><font size=3>EZSTREAM ( 1 ) OpenBSD Reference Manual EZSTREAM ( 1 )</p>
<a name="NAME"></a><h2>NAME</h2><p><span style=" text-indent: 0.4500in;"></span><font size=3><tt><B>ezstream</tt></B> <font size=3>- source client for Icecast with external en-/decoder support</p>
<a name="SYNOPSIS"></a><h2>SYNOPSIS</h2><p><span style=" text-indent: 0.4500in;"></span><font size=3><tt><B>ezstream</tt></B> <font size=3>[ <font size=3><tt><B>-hqv</tt></B> <font size=3>] [ <font size=3><tt><B>-c</tt></B> <font size=3><tt><I>configfile</tt></I> <font size=3>]</p>
<a name="DESCRIPTION"></a><h2>DESCRIPTION</h2>
<table width="100%" rules="none" frame="none" cols="2">
<tr valign="top" align="left">
<td valign="top" align="left" width="3.0769%">
</td>
<td valign="top" align="left" width="96.9231%">
<p><span style=" text-indent: 0.2500in;"></span><font size=3>The <font size=3><tt><B>ezstream</tt></B> <font size=3>utility is a source client for the Icecast media streaming server. In its basic mode of op-<br>
<span style=" text-indent: 0.2500in;"></span>eration, it streams media files and data from standard input "as-is" -- such as Ogg Vorbis, Ogg Theora and<br>
<span style=" text-indent: 0.2500in;"></span>MP3 -- to a server. It can also use various external decoders and encoders to reencode from one format<br>
<span style=" text-indent: 0.2500in;"></span>to another, and stream the result. The only requirement is that the external programs support writing to or<br>
<span style=" text-indent: 0.2500in;"></span>reading from standard input, and can be used from the command line.</p>
<p><font size=3><B>Command line parameters</p>
</B><p><span style=" text-indent: 0.2700in;"></span><font size=3><tt><B>-c</tt></B> <font size=3><tt><I>configfile<br>
<span style=" text-indent: 0.6800in;"></span></tt></I>Use the XML configuration in <font size=3><tt><I>configfile</tt></I><font size=3>. ( Mandatory. )</p>
<p><span style=" text-indent: 0.2700in;"></span><font size=3><tt><B>-h</tt></B> <font size=3>Print a summary of available command line parameters with short descriptions and exit.</p>
<p><span style=" text-indent: 0.2700in;"></span><font size=3><tt><B>-q</tt></B> <font size=3>Be more quiet. Suppress the output that external programs send to standard error.</p>
<p><span style=" text-indent: 0.2700in;"></span><font size=3><tt><B>-v</tt></B> <font size=3>Produce more verbose output from <font size=3><tt><B>ezstream</tt></B><font size=3>. Use twice for even more verbose output.</p>
<p><span style=" text-indent: 0.2500in;"></span><font size=3>When the <font size=3><tt><B>-q</tt></B> <font size=3>and <font size=3><tt><B>-v</tt></B> <font size=3>parameters are provided simultaneously, an additional line of information about the<br>
<span style=" text-indent: 0.2500in;"></span>currently streamed file -- playlist position, approximate playing time and bitrate -- is displayed.</p>
<p><font size=3><B>Runtime control<br>
<span style=" text-indent: 0.2500in;"></span></B>On POSIX systems, <font size=3><tt><B>ezstream</tt></B> <font size=3>offers limited runtime control via signals when it is not streaming data<br>
<span style=" text-indent: 0.2500in;"></span>from standard input. By sending a signal to the ezstream process, e.g. with the <font size=3><tt>kill</tt><font size=3>(1) utility, a certain<br>
<span style=" text-indent: 0.2500in;"></span>action will be triggered.</p>
<p><span style=" text-indent: 0.2500in;"></span><font size=3><tt><B>SIGHUP<br>
<span style=" text-indent: 0.5900in;"></span></tt></B>Rereads the playlist file after the track that is currently streamed. If the playlist is not to be shuffled,<br>
<span style=" text-indent: 0.5900in;"></span><tt><B>ezstream</tt></B> <font size=3>attempts to find the previously streamed file and continue with the one following it, or<br>
<span style=" text-indent: 0.5900in;"></span>restarts from the beginning of the list otherwise.</p>
<p><span style=" text-indent: 0.2500in;"></span><font size=3><tt><B>SIGUSR1<br>
<span style=" text-indent: 0.5900in;"></span></tt></B>Skips the currently playing track and moves on to the next in playlist mode, or restarts the current<br>
<span style=" text-indent: 0.5900in;"></span>track when streaming a single file.</p>
</td>
</tr>
</table>
<p><font size=3><B>CONFIGURATION FILE SYNTAX</p>
</B>
<table width="100%" rules="none" frame="none" cols="2">
<tr valign="top" align="left">
<td valign="top" align="left" width="6.9231%">
</td>
<td valign="top" align="left" width="93.0769%">
<p><font size=3>The <font size=3><tt><B>ezstream</tt></B> <font size=3>utility uses a simple XML configuration file format. It has a tree-like structure and is made up of <font size=3><I>XML elements</I><font size=3>. Of all the possible XML features, only regular elements that contain text or other elements, and comments, appear in an <font size=3><tt><B>ezstream</tt></B> <font size=3>configuration file.</p>
<p><font size=3>Each element in the configuration file consists of a <font size=3><tt>start tag</tt><font size=3>, its content and an <font size=3><tt>end tag</tt><font size=3>. For ex- ample:</p>
<p><span style=" text-indent: 0.3600in;"></span><font size=3><tt>&lt;filename&gt;playlist.m3u&lt;/filename&gt;<br>
<span style=" text-indent: 0.3600in;"></span>&lt;!-- XML comments look like this. --&gt;</p>
</tt></td>
</tr>
</table>
<a name="XML CONFIGURATION"></a><h2>XML CONFIGURATION</h2><p><span style=" text-indent: 0.4500in;"></span><font size=3>In this section, each available element is listed and described. Note that for this purpose, elements are in-<br>
<span style=" text-indent: 0.4500in;"></span>troduced in their short, i.e. empty form. In the configuration file, they need to be used as <font size=3><I>start tag +<br>
<span style=" text-indent: 0.4500in;"></span>content + end tag</I><font size=3>, like in the introductory example shown above.</p>
<p><font size=3>OpenBSD 4.1 February 20, 2007 1<br>
</p>
<!-- Page: 2 -->
<!-- left margin: 100 -->
<!-- right margin: 750 -->
<p><font size=3>EZSTREAM ( 1 ) OpenBSD Reference Manual EZSTREAM ( 1 )</p>
<p><span style=" text-indent: 0.2000in;"></span><font size=3><B>Root element</p>
</B><p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;ezstream /&gt;<br>
<span style=" text-indent: 0.4700in;"></span></B>( Mandatory. ) The configuration file's root element. It contains all other configuration elements.</p>
<p><span style=" text-indent: 0.2000in;"></span><font size=3><B>Global configuration elements<br>
<span style=" text-indent: 0.4500in;"></span></B>Each of the global configuration elements have the &lt;ezstream/&gt; element as their parent.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;url /&gt;<br>
<span style=" text-indent: 0.4700in;"></span></B>( Mandatory. ) Specifies the location and mountpoint of the Icecast server, to which the stream will be<br>
<span style=" text-indent: 0.4500in;"></span>sent. The content must be of the form <font size=3><tt>http://server:port/mountpoint</tt> <font size=3>For example:</p>
<p><span style=" text-indent: 0.8100in;"></span><font size=3><tt>&lt;url&gt;http://example.com:8000/stream.ogg&lt;/url&gt;</p>
</tt><p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;sourcepassword /&gt;<br>
<span style=" text-indent: 0.4700in;"></span></B>( Mandatory. ) Sets the source password for authentication with the Icecast server.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;format /&gt;<br>
<span style=" text-indent: 0.4700in;"></span></B>( Mandatory. ) This element has two different meanings, depending on whether reencoding is enabled or<br>
<span style=" text-indent: 0.4500in;"></span>not. It specifies the <font size=3><I>output format</I> <font size=3>of the stream if reencoding is enabled. Otherwise, it specifies the <font size=3><I>input<br>
<span style=" text-indent: 0.4500in;"></span>format</I> <font size=3>of <font size=3><B>all</B> <font size=3>input files. Recognized and supported values are <font size=3><B>VORBIS</B><font size=3>, <font size=3><B>MP3</B> <font size=3>and <font size=3><B>THEORA</B><font size=3>. Other val-<br>
<span style=" text-indent: 0.4500in;"></span>ues will be ignored and cause <font size=3><tt><B>ezstream</tt></B> <font size=3>to simply pass through the data, which may or may not work.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;filename /&gt;<br>
<span style=" text-indent: 0.4700in;"></span></B>( Mandatory. ) Set the path and name of a single media file, a playlist, the name of an external program<br>
<span style=" text-indent: 0.4700in;"></span>( see below ) , or the keyword <font size=3><tt>stdin</tt> <font size=3>for streaming from standard input. Playlists are recognized by their<br>
<span style=" text-indent: 0.4500in;"></span>filename extension and end with either <font size=3><I>.m3u</I> <font size=3>or <font size=3><I>.txt</I><font size=3>.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3>A playlist consists of filenames, one entry per line. Comments in playlists are introduced by a `<font size=3><tt>#</tt><font size=3>' sign at<br>
<span style=" text-indent: 0.4500in;"></span>the beginning of a line and ignored by <font size=3><tt><B>ezstream</tt></B><font size=3>.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;playlist_program /&gt;<br>
<span style=" text-indent: 0.4700in;"></span></B>( Optional. ) Set to <font size=3><B>1</B> <font size=3>( one ) to indicate that the file in &lt;filename/&gt; is actually an executable program or<br>
<span style=" text-indent: 0.4500in;"></span>script. This program is supposed to print ( to standard output ) one line with the name of a file that should<br>
<span style=" text-indent: 0.4500in;"></span>be streamed next and then exit.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3>If set to <font size=3><B>0</B> <font size=3>( zero ) , &lt;filename/&gt; content is assumed to be a media file, playlist file or the keyword <font size=3><tt>stdin<br>
<span style=" text-indent: 0.4700in;"></span></tt>( the default ) .</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;shuffle /&gt;<br>
<span style=" text-indent: 0.4700in;"></span></B>( Optional. ) Set to <font size=3><B>1</B> <font size=3>( one ) to randomly shuffle the entries of the playlist specified in &lt;filename/&gt;. Files<br>
<span style=" text-indent: 0.4500in;"></span>are played sequentially if set to <font size=3><B>0</B> <font size=3>( zero ) or when the &lt;shuffle/&gt; element is absent. This option will be ig-<br>
<span style=" text-indent: 0.4500in;"></span>nored if &lt;playlist_program/&gt; is set to 1 ( one. )</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;stream_once /&gt;<br>
<span style=" text-indent: 0.4500in;"></span></B>Set to <font size=3><B>1</B> <font size=3>( one ) to stream &lt;filename/&gt; content only once, and to <font size=3><B>0</B> <font size=3>( zero ) for continuous streaming ( the<br>
<span style=" text-indent: 0.4500in;"></span>default ) .</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;reconnect_tries /&gt;<br>
<span style=" text-indent: 0.4500in;"></span></B>Set how many attempts should be made to reconnect to the Icecast server in case the connection is inter-<br>
<span style=" text-indent: 0.4500in;"></span>rupted. The default is to try indefinitely, which is equal to setting this configuration option to <font size=3><B>0</B> <font size=3>( zero ) .</p>
<table width="100%" rules="none" frame="none" cols="3">
<tr valign="top" align="left">
<td valign="top" align="left" width="6.9231%">
<p><font size=3><B><span style=" text-indent: 0.4500in;"></span>&lt;svrinfoname<br>
<span style=" text-indent: 0.4700in;"></span></B>( Optional.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;svrinfourl<br>
<span style=" text-indent: 0.4700in;"></span></B>( Optional.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;svrinfogenre<br>
<span style=" text-indent: 0.4700in;"></span></B>( Optional.</p>
<p><font size=3>OpenBSD</p>
</td>
<td valign="top" align="left" width="80.1538%">
<p><font size=3><B>&lt;svrinfoname /&gt;<br>
<span style=" text-indent: 0.0200in;"></span></B>( Optional. ) Set the name of the broadcast. Informational only.</p>
<p><font size=3><B>&lt;svrinfourl /&gt;<br>
<span style=" text-indent: 0.0200in;"></span></B>( Optional. ) Set the URL of the web site associated with the broadcast. Informational only.</p>
<p><font size=3><B>&lt;svrinfogenre /&gt;<br>
<span style=" text-indent: 0.0200in;"></span></B>( Optional. ) Set the genre of the broadcast. Informational only, used for YP.</p>
<p><span style=" text-indent: 0.1600in;"></span><font size=3>4.1 February 20, 2007</p>
</td>
<td valign="top" align="left" width="1.0769%">
<p><font size=3>2</p>
</td>
</tr>
</table>
<br>
<!-- Page: 3 -->
<!-- left margin: 100 -->
<!-- right margin: 750 -->
<table width="100%" rules="none" frame="none" cols="5">
<tr valign="top" align="left">
<td valign="top" align="left" width="36.6154%">
<p><font size=3>EZSTREAM ( 1 )</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;svrinfodescription /&gt;<br>
<span style=" text-indent: 0.4700in;"></span></B>( Optional. ) Set the description of</p>
</td>
<td valign="top" align="left" width="1.0000%">
</td>
<td valign="top" align="left" width="41.3846%">
<p><font size=3>OpenBSD Reference Manual</p>
<p><font size=3>the broadcast. Informational only, used for YP.</p>
</td>
<td valign="top" align="left" width="6.3077%">
</td>
<td valign="top" align="left" width="15.2308%">
<p><font size=3>EZSTREAM ( 1 )</p>
</td>
</tr>
<tr valign="top" align="left">
<td valign="top" align="left" width="29.6923%">
<p><font size=3><B> &lt;svrinfobitrate /&gt;</p>
</B></td>
<td valign="top" align="left" width="1.0000%">
</td>
<td valign="top" align="left" width="41.3846%">
</td>
<td valign="top" align="left" width="6.3077%">
</td>
<td valign="top" align="left" width="15.2308%">
</td>
</tr>
</table>
<p><font size=3>( Optional. ) Set the bitrate of the broadcast. This setting is also purely informational and only used for YP.<br>
<span style=" text-indent: 0.4500in;"></span>The value is set by the user and not <font size=3><tt><B>ezstream</tt></B><font size=3>, and should match the bitrate of the stream.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;svrinfoquality /&gt;<br>
<span style=" text-indent: 0.4700in;"></span></B>( Optional. ) Set the quality setting of an Ogg Vorbis broadcast. Informational only and needs to be set by<br>
<span style=" text-indent: 0.4500in;"></span>the user, used for YP.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;svrinfochannels /&gt;<br>
<span style=" text-indent: 0.4700in;"></span></B>( Optional. ) Set the number of audio channels in the broadcast, e.g. <font size=3><B>1</B> <font size=3>( one ) for mono or <font size=3><B>2</B> <font size=3>for stereo. In-<br>
<span style=" text-indent: 0.4500in;"></span>formational only and needs to be set by the user, used for YP.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;svrinfosamplerate /&gt;<br>
<span style=" text-indent: 0.4700in;"></span></B>( Optional. ) Set the sample rate of the broadcast. Informational only and needs to be set by the user, used<br>
<span style=" text-indent: 0.4500in;"></span>for YP.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;svrinfopublic /&gt;<br>
<span style=" text-indent: 0.4700in;"></span></B>( Optional. ) Set to <font size=3><B>1</B> <font size=3>( one ) if the broadcast may be listed in a public YP directory. If set to <font size=3><B>0</B> <font size=3>( zero ) , the<br>
<span style=" text-indent: 0.4500in;"></span>Icecast server will not submit this stream to a YP directory, which is also the default if the &lt;svrinfopublic/&gt;<br>
<span style=" text-indent: 0.4500in;"></span>element is absent.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;reencode /&gt;<br>
<span style=" text-indent: 0.4700in;"></span></B>( Optional. ) Element that contains child elements, which specify if and how reencoding should be done.</p>
<p><span style=" text-indent: 0.2000in;"></span><font size=3><B>Reencoding settings<br>
<span style=" text-indent: 0.4500in;"></span></B>Each of the reencoding configuration elements have the &lt;reencode/&gt; element as their parent.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;enable /&gt;<br>
<span style=" text-indent: 0.4500in;"></span></B>Set to <font size=3><B>1</B> <font size=3>( one ) to enable reencoding. If set to <font size=3><B>0</B> <font size=3>( zero ) , no reencoding will be done, which is also the de-<br>
<span style=" text-indent: 0.4500in;"></span>fault if the &lt;enable/&gt; element is absent.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;encdec /&gt;<br>
<span style=" text-indent: 0.4500in;"></span></B>Element that contains child elements, which specify how to decode and encode a certain media file format<br>
<span style=" text-indent: 0.4500in;"></span>for streaming. Each format is described by a separate &lt;encdec/&gt; element.</p>
<p><span style=" text-indent: 0.2000in;"></span><font size=3><B>Dencoder/Encoder settings<br>
<span style=" text-indent: 0.4500in;"></span></B>Each of the decoder/encoder configuration elements have the &lt;encdec/&gt; element as their parent.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;format /&gt;<br>
<span style=" text-indent: 0.4500in;"></span></B>This element is used by <font size=3><tt><B>ezstream</tt></B> <font size=3>to find the appropriate encoder for the output stream format specified<br>
<span style=" text-indent: 0.4500in;"></span>in the &lt;format/&gt; element inside the global configuration. It is recommended that this element is always<br>
<span style=" text-indent: 0.4500in;"></span>supplied, even for currently unsupported output formats, with content such as <font size=3><B>VORBIS</B><font size=3>, <font size=3><B>MP3</B><font size=3>, <font size=3><B>THEORA</B><font size=3>,<br>
<span style=" text-indent: 0.4500in;"></span><B>FLAC</B><font size=3>, et cetera.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;match /&gt;<br>
<span style=" text-indent: 0.4500in;"></span></B>Set the filename extension used to identify a given media file format. This allows <font size=3><tt><B>ezstream</tt></B> <font size=3>to find the<br>
<span style=" text-indent: 0.4500in;"></span>appropriate decoder for a given file. Should be set to <font size=3><I>.mp3</I> <font size=3>for MP3, <font size=3><I>.flac</I> <font size=3>for FLAC, <font size=3><I>.ogg</I> <font size=3>for Ogg Vorbis,<br>
<span style=" text-indent: 0.4500in;"></span>and so on.</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3><B>&lt;decode /&gt;<br>
<span style=" text-indent: 0.4500in;"></span></B>Set the command to decode the specified media file format to raw data and send it to standard output.<br>
<span style=" text-indent: 0.4500in;"></span>During runtime, the placeholder `<font size=3><tt>@T@</tt><font size=3>' is replaced with the fully qualified name of the media file, as speci-<br>
<span style=" text-indent: 0.4500in;"></span>fied in the &lt;filename/&gt; element or a playlist file. It should always be enclosed in quotes, to prevent prob-<br>
<span style=" text-indent: 0.4500in;"></span>lems with filenames that contain whitespaces.</p>
<p><font size=3>OpenBSD 4.1 February 20, 2007 3<br>
</p>
<!-- Page: 4 -->
<!-- left margin: 100 -->
<!-- right margin: 750 -->
<p><font size=3>EZSTREAM ( 1 ) OpenBSD Reference Manual EZSTREAM ( 1 )</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3>The metadata placeholder, `@M@', is also available in the &lt;decode/&gt; element. That way it can be used<br>
<span style=" text-indent: 0.4500in;"></span>for combined de-/encoder programs that produce readily streamable data.</p>
<table width="100%" rules="none" frame="none" cols="2">
<tr valign="top" align="left">
<td valign="top" align="left" width="6.9231%">
</td>
<td valign="top" align="left" width="93.0769%">
<p><font size=3>For example, to decode Ogg Vorbis files using the <font size=3><tt><B>oggdec</tt></B> <font size=3>utility:</p>
<p><span style=" text-indent: 0.3600in;"></span><font size=3><tt>&lt;decode&gt;oggdec -R -o - "@T@"&lt;/decode&gt;</p>
</tt><p><font size=3><B>&lt;encode /&gt;<br>
</B>Set the command to encode raw data, received from standard input, to the specified stream format. Dur- ing runtime, the placeholder `<font size=3><tt>@M@</tt><font size=3>' is replaced with the metadata (e.g. ``Artist - Title'') for the current track. It also should be enclosed in quotes at all times.</p>
<p><font size=3>For example, to encode an Ogg Vorbis stream using the quality setting 1.5 with the <font size=3><tt><B>oggenc</tt></B> <font size=3>utility:</p>
<p><span style=" text-indent: 0.3600in;"></span><font size=3><tt>&lt;encode&gt;oggenc -r -q 1.5 -t "@M@" -&lt;/encode&gt;</p>
</tt></td>
</tr>
</table>
<a name="FILES"></a><h2>FILES</h2><p><span style=" text-indent: 0.4500in;"></span><font size=3><tt>\conf</tt> <font size=3>Directory containing example configuration files for various uses of<br>
<span style=" text-indent: 1.9600in;"></span><tt><B>ezstream</tt></B><font size=3>.</p>
<a name="AUTHORS"></a><h2>AUTHORS</h2>
<table width="100%" rules="none" frame="none" cols="3">
<tr valign="top" align="left">
<td valign="top" align="left" width="6.9231%">
<p><span style=" text-indent: 0.4500in;"></span><font size=3><tt><B>ezstream</p>
</tt></B><p><span style=" text-indent: 0.4500in;"></span><font size=3>Ed<br>
<span style=" text-indent: 0.4500in;"></span>Moritz</p>
<p><span style=" text-indent: 0.4500in;"></span><font size=3>This</p>
<p><font size=3>OpenBSD</p>
</td>
<td valign="top" align="left" width="38.0000%">
<p><font size=3><tt><B>ezstream</tt></B> <font size=3>was written by:</p>
<p><font size=3>Ed Zaleski &lt;oddsock@oddsock.org&gt;<br>
Moritz Grimm &lt;gtgbr@gmx.net&gt;</p>
<p><font size=3>This manual was written by Moritz Grimm.</p>
<p><span style=" text-indent: 0.1600in;"></span><font size=3>4.1 February</p>
</td>
<td valign="top" align="left" width="49.3846%">
<p><font size=3>20, 2007 4</p>
</td>
</tr>
</table>
</body>
</html>

View File

@ -37,31 +37,135 @@ EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug
DLL ASM Debug = DLL ASM Debug
DLL ASM Release = DLL ASM Release
DLL Debug = DLL Debug
DLL Release = DLL Release
LIB ASM Debug = LIB ASM Debug
LIB ASM Release = LIB ASM Release
LIB Debug = LIB Debug
LIB Release = LIB Release
Release = Release
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{A0144DD0-0064-46CF-93D3-78DB712034D4}.Debug.ActiveCfg = Debug|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.Debug.Build.0 = Debug|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.DLL ASM Debug.ActiveCfg = Debug|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.DLL ASM Debug.Build.0 = Debug|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.DLL ASM Release.ActiveCfg = Release|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.DLL ASM Release.Build.0 = Release|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.DLL Debug.ActiveCfg = Debug|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.DLL Debug.Build.0 = Debug|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.DLL Release.ActiveCfg = Release|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.DLL Release.Build.0 = Release|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.LIB ASM Debug.ActiveCfg = Debug|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.LIB ASM Debug.Build.0 = Debug|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.LIB ASM Release.ActiveCfg = Release|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.LIB ASM Release.Build.0 = Release|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.LIB Debug.ActiveCfg = Debug|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.LIB Debug.Build.0 = Debug|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.LIB Release.ActiveCfg = Release|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.LIB Release.Build.0 = Release|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.Release.ActiveCfg = Release|Win32
{A0144DD0-0064-46CF-93D3-78DB712034D4}.Release.Build.0 = Release|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.Debug.ActiveCfg = Debug|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.Debug.Build.0 = Debug|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.DLL ASM Debug.ActiveCfg = Debug|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.DLL ASM Debug.Build.0 = Debug|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.DLL ASM Release.ActiveCfg = Release|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.DLL ASM Release.Build.0 = Release|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.DLL Debug.ActiveCfg = Debug|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.DLL Debug.Build.0 = Debug|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.DLL Release.ActiveCfg = Release|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.DLL Release.Build.0 = Release|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.LIB ASM Debug.ActiveCfg = Debug|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.LIB ASM Debug.Build.0 = Debug|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.LIB ASM Release.ActiveCfg = Release|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.LIB ASM Release.Build.0 = Release|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.LIB Debug.ActiveCfg = Debug|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.LIB Debug.Build.0 = Debug|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.LIB Release.ActiveCfg = Release|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.LIB Release.Build.0 = Release|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.Release.ActiveCfg = Release|Win32
{FB2ECA7B-D98C-4341-84B7-005E037E25A7}.Release.Build.0 = Release|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.Debug.ActiveCfg = Debug|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.Debug.Build.0 = Debug|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.DLL ASM Debug.ActiveCfg = Debug|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.DLL ASM Debug.Build.0 = Debug|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.DLL ASM Release.ActiveCfg = Release|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.DLL ASM Release.Build.0 = Release|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.DLL Debug.ActiveCfg = Debug|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.DLL Debug.Build.0 = Debug|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.DLL Release.ActiveCfg = Release|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.DLL Release.Build.0 = Release|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.LIB ASM Debug.ActiveCfg = Debug|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.LIB ASM Debug.Build.0 = Debug|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.LIB ASM Release.ActiveCfg = Release|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.LIB ASM Release.Build.0 = Release|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.LIB Debug.ActiveCfg = Debug|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.LIB Debug.Build.0 = Debug|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.LIB Release.ActiveCfg = Release|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.LIB Release.Build.0 = Release|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.Release.ActiveCfg = Release|Win32
{5E55AD4D-483E-466D-B3B7-EAD8B6128DC9}.Release.Build.0 = Release|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.Debug.ActiveCfg = Debug|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.Debug.Build.0 = Debug|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.DLL ASM Debug.ActiveCfg = Debug|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.DLL ASM Debug.Build.0 = Debug|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.DLL ASM Release.ActiveCfg = Release|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.DLL ASM Release.Build.0 = Release|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.DLL Debug.ActiveCfg = Debug|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.DLL Debug.Build.0 = Debug|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.DLL Release.ActiveCfg = Release|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.DLL Release.Build.0 = Release|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.LIB ASM Debug.ActiveCfg = Debug|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.LIB ASM Debug.Build.0 = Debug|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.LIB ASM Release.ActiveCfg = Release|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.LIB ASM Release.Build.0 = Release|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.LIB Debug.ActiveCfg = Debug|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.LIB Debug.Build.0 = Debug|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.LIB Release.ActiveCfg = Release|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.LIB Release.Build.0 = Release|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.Release.ActiveCfg = Release|Win32
{63A539B9-C6CD-4DC9-80B2-B28DB92C151E}.Release.Build.0 = Release|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.Debug.ActiveCfg = Debug|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.Debug.Build.0 = Debug|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.DLL ASM Debug.ActiveCfg = Debug|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.DLL ASM Debug.Build.0 = Debug|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.DLL ASM Release.ActiveCfg = Release|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.DLL ASM Release.Build.0 = Release|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.DLL Debug.ActiveCfg = Debug|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.DLL Debug.Build.0 = Debug|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.DLL Release.ActiveCfg = Release|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.DLL Release.Build.0 = Release|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.LIB ASM Debug.ActiveCfg = Debug|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.LIB ASM Debug.Build.0 = Debug|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.LIB ASM Release.ActiveCfg = Release|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.LIB ASM Release.Build.0 = Release|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.LIB Debug.ActiveCfg = Debug|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.LIB Debug.Build.0 = Debug|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.LIB Release.ActiveCfg = Release|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.LIB Release.Build.0 = Release|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.Release.ActiveCfg = Release|Win32
{376BDB5E-7092-44EC-AF16-C087D2D80FC6}.Release.Build.0 = Release|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.Debug.ActiveCfg = Debug|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.Debug.Build.0 = Debug|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.DLL ASM Debug.ActiveCfg = Debug|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.DLL ASM Debug.Build.0 = Debug|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.DLL ASM Release.ActiveCfg = Release|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.DLL ASM Release.Build.0 = Release|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.DLL Debug.ActiveCfg = Debug|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.DLL Debug.Build.0 = Debug|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.DLL Release.ActiveCfg = Release|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.DLL Release.Build.0 = Release|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.LIB ASM Debug.ActiveCfg = Debug|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.LIB ASM Debug.Build.0 = Debug|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.LIB ASM Release.ActiveCfg = Release|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.LIB ASM Release.Build.0 = Release|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.LIB Debug.ActiveCfg = Debug|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.LIB Debug.Build.0 = Debug|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.LIB Release.ActiveCfg = Release|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.LIB Release.Build.0 = Release|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.Release.ActiveCfg = Release|Win32
{4C27B249-0C17-4007-9D51-2ED145DF06C2}.Release.Build.0 = Release|Win32
EndGlobalSection

View File

@ -27,14 +27,15 @@
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_SYS_TYPES_H;HAVE_SYS_STAT_H;HAVE_STAT"
StringPooling="TRUE"
ExceptionHandling="FALSE"
RuntimeLibrary="0"
BasicRuntimeChecks="0"
RuntimeLibrary="4"
EnableFunctionLevelLinking="FALSE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/ezstream.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
WarningLevel="2"
SuppressStartupBanner="TRUE"
Detect64BitPortabilityProblems="TRUE"
CompileAs="0"/>
@ -42,15 +43,17 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="odbc32.lib odbccp32.lib ..\..\shout\win32\Release\libshout.lib ogg_static.lib vorbis_static.lib pthreadVC2.lib ws2_32.lib winmm.lib libxml2.lib iconv.lib vorbisfile_static.lib"
AdditionalDependencies="odbc32.lib odbccp32.lib ..\..\shout\win32\Release\libshout.lib ogg_static.lib vorbis_static.lib ws2_32.lib winmm.lib libxml2.lib iconv.lib vorbisfile_static.lib"
OutputFile=".\Release/ezstream.exe"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="../../theora/win32/Static_Release,../../shout/win32/Static_Release,../../../lib,../../ogg/win32/Static_Release,../../vorbis/win32/Vorbis_Static_Release,../../vorbis/win32/VorbisFile_Static_Release"
IgnoreDefaultLibraryNames="libc.lib;msvcrt.lib;libcd.lib;libcmtd.lib;msvcrtd.lib"
IgnoreDefaultLibraryNames="libcmt.lib;msvcrt.lib;libcd.lib;libcmtd.lib;msvcrtd.lib"
ProgramDatabaseFile=".\Release/ezstream.pdb"
SubSystem="1"
LargeAddressAware="2"
SetChecksum="TRUE"
SupportUnloadOfDelayLoadedDLL="FALSE"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
@ -91,8 +94,8 @@
AdditionalIncludeDirectories="../../ogg/include,../../vorbis/include,../../shout/include,../src,../../../include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_SYS_TYPES_H;HAVE_SYS_STAT_H;HAVE_STAT"
ExceptionHandling="FALSE"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
BasicRuntimeChecks="0"
RuntimeLibrary="4"
BufferSecurityCheck="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/ezstream.pch"