<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.openhome.org/mediawiki/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.openhome.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=OhMediaPlayer</id>
		<title>OhMediaPlayer - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.openhome.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=OhMediaPlayer"/>
		<link rel="alternate" type="text/html" href="http://wiki.openhome.org/mediawiki/index.php?title=OhMediaPlayer&amp;action=history"/>
		<updated>2026-05-22T09:12:33Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.16.2</generator>

	<entry>
		<id>http://wiki.openhome.org/mediawiki/index.php?title=OhMediaPlayer&amp;diff=978&amp;oldid=prev</id>
		<title>Simonc: /* Source Code */</title>
		<link rel="alternate" type="text/html" href="http://wiki.openhome.org/mediawiki/index.php?title=OhMediaPlayer&amp;diff=978&amp;oldid=prev"/>
				<updated>2013-08-07T10:42:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Source Code&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 10:42, 7 August 2013&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 76:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 76:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= Source Code =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= Source Code =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;ohMediaPlayer is provided in binary form (static library + header files) by default.&amp;nbsp; Contact us if you want to discuss a license to access the full source code.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;ohMediaPlayer is provided in binary form (static library + header files) by default.&amp;nbsp; Contact us if you want to discuss a license to access the full source code.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Note that we use a small number of externally sourced, commercially licensed audio codecs.&amp;nbsp; We could only share the source for these if you negotiate access to them directly with the copyright holders.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;Note that we use a small number of externally sourced, commercially licensed audio codecs.&amp;nbsp; We could only share the source for these if you negotiate access to them directly with the copyright holders.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Simonc</name></author>	</entry>

	<entry>
		<id>http://wiki.openhome.org/mediawiki/index.php?title=OhMediaPlayer&amp;diff=958&amp;oldid=prev</id>
		<title>Simonc: /* Integration */</title>
		<link rel="alternate" type="text/html" href="http://wiki.openhome.org/mediawiki/index.php?title=OhMediaPlayer&amp;diff=958&amp;oldid=prev"/>
				<updated>2013-07-12T08:54:22Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Integration&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 08:54, 12 July 2013&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 35:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 35:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;** Windows (x86, x64)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;** Windows (x86, x64)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;** Mac (x86, x64)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;** Mac (x86, x64)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;** Embedded (using FreeRTOS and lwIP).&amp;nbsp; Big and little endian ports exist.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;** Embedded (using &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://www.freertos.org/ &lt;/ins&gt;FreeRTOS&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;] &lt;/ins&gt;and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://lwip.wikia.com/wiki/LwIP_Wiki &lt;/ins&gt;lwIP&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/ins&gt;).&amp;nbsp; Big and little endian ports exist.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* R/W Store.&amp;nbsp; At a minimum, this can simply provide a set of string literals that are determined at design time.&amp;nbsp; If runtime user configuration is supported, this should also provide a means to persist and restore (string) key / (binary) value pairs.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* R/W Store.&amp;nbsp; At a minimum, this can simply provide a set of string literals that are determined at design time.&amp;nbsp; If runtime user configuration is supported, this should also provide a means to persist and restore (string) key / (binary) value pairs.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Application.&amp;nbsp; This can be pretty short - &amp;lt;100 lines of code - to cover&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Application.&amp;nbsp; This can be pretty short - &amp;lt;100 lines of code - to cover&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Simonc</name></author>	</entry>

	<entry>
		<id>http://wiki.openhome.org/mediawiki/index.php?title=OhMediaPlayer&amp;diff=957&amp;oldid=prev</id>
		<title>Simonc: /* Integration */</title>
		<link rel="alternate" type="text/html" href="http://wiki.openhome.org/mediawiki/index.php?title=OhMediaPlayer&amp;diff=957&amp;oldid=prev"/>
				<updated>2013-07-12T08:52:12Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Integration&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 08:52, 12 July 2013&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 49:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 49:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;** Create Driver, R/W Store&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;** Create Driver, R/W Store&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;** Enable UPnP device&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;** Enable UPnP device&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;No further code is required.&amp;nbsp; ohMediaPlayer is controlled via network APIs which will be automatically advertised on the network, ready to be used by any number of controllers in parallel.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;No further code is required.&amp;nbsp; ohMediaPlayer is controlled via &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[OhMediaDevelopers#Network_Services | &lt;/ins&gt;network APIs&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;which will be automatically advertised on the network, ready to be used by any number of controllers in parallel.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= Configuration =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= Configuration =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Simonc</name></author>	</entry>

	<entry>
		<id>http://wiki.openhome.org/mediawiki/index.php?title=OhMediaPlayer&amp;diff=955&amp;oldid=prev</id>
		<title>Simonc at 08:50, 12 July 2013</title>
		<link rel="alternate" type="text/html" href="http://wiki.openhome.org/mediawiki/index.php?title=OhMediaPlayer&amp;diff=955&amp;oldid=prev"/>
				<updated>2013-07-12T08:50:00Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 08:50, 12 July 2013&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 20:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 20:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= Architecture Overview =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= Architecture Overview =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Image(&lt;/del&gt;MediaPlayer-Integrators.png&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;)&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;File:&lt;/ins&gt;MediaPlayer-Integrators.png]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= System Requirements =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= System Requirements =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Simonc</name></author>	</entry>

	<entry>
		<id>http://wiki.openhome.org/mediawiki/index.php?title=OhMediaPlayer&amp;diff=952&amp;oldid=prev</id>
		<title>Simonc: Created page with &quot;= ohMediaPlayer = ohMediaPlayer is a portable software version of the ohMedia and UPnP:AV network services.  It is written in C++ and can be deployed to any desktop or mobile pla...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.openhome.org/mediawiki/index.php?title=OhMediaPlayer&amp;diff=952&amp;oldid=prev"/>
				<updated>2013-07-12T08:47:43Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;= ohMediaPlayer = ohMediaPlayer is a portable software version of the ohMedia and UPnP:AV network services.  It is written in C++ and can be deployed to any desktop or mobile pla...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= ohMediaPlayer =&lt;br /&gt;
ohMediaPlayer is a portable software version of the ohMedia and UPnP:AV network services.  It is written in C++ and can be deployed to any desktop or mobile platform and many embedded platforms.&lt;br /&gt;
Its headline features include&lt;br /&gt;
* Support for all popular digital formats&lt;br /&gt;
** …including FLAC, MP3, ALAC, WAV, AAC, Vorbis, WMA&lt;br /&gt;
** …for both 44.1kHz and 48kHz family sample rates&lt;br /&gt;
** …supported sample rates from 7.35kHz to 192kHz&lt;br /&gt;
** …at 8/16/24 bit depths&lt;br /&gt;
** …in 1-8 channels&lt;br /&gt;
* Playlist source.  Store a playlist of hundreds or even thousands of tracks on device, playing these without requiring further interaction from a control point.&lt;br /&gt;
* Songcast.&lt;br /&gt;
** Sender.  Share your audio stream with an unlimited number of other players&lt;br /&gt;
** Receiver.  Listen to the same audio stream as another device, in exact synchronisation with that device and all other receivers.&lt;br /&gt;
** Supports all audio resolutions, up to and including 24-bit / 192kHz&lt;br /&gt;
** &amp;quot;Clock pulling&amp;quot; architecture guarantees that playback starts then remains synchronised between all devices&lt;br /&gt;
* Radio.  Supports internet radio stations, podcasts and listen again.  Includes integration to the popular TuneIn service, allowing users to setup personalised presets from a list of all worldwide internet stations.&lt;br /&gt;
* UPnP:AV.  Presents the standard UPnP Media Renderer network services for use with basic control points.&lt;br /&gt;
* Playback of popular analogue and digital inputs - HDMI, SPDIF, TOS, Analogue, etc.&lt;br /&gt;
* Airplay.  Receive an audio stream via Apple’s Airplay protocol.&lt;br /&gt;
&lt;br /&gt;
= Architecture Overview =&lt;br /&gt;
[[Image(MediaPlayer-Integrators.png)]]&lt;br /&gt;
&lt;br /&gt;
= System Requirements =&lt;br /&gt;
RAM: 16MB standard; 4MB possible&lt;br /&gt;
&lt;br /&gt;
ROM: 8MB standard; 2.5MB possible (if Radio and Airplay sources are omitted)&lt;br /&gt;
&lt;br /&gt;
= Integration =&lt;br /&gt;
The integrator supplies a small number of components&lt;br /&gt;
* Driver.  This pulls decoded audio samples from ohMediaPlayer’s audio pipeline and is responsible for feeding them into the host’s audio hardware at the appropriate rate.&lt;br /&gt;
* Mutes.  Optionally mute audio hardware around changes in audio sample rate or bit depth.&lt;br /&gt;
* OS compatibility layer.  Threading and socket abstractions.  Many standard platforms are available with ohNet, including&lt;br /&gt;
** Linux (x86, x64, ARM)&lt;br /&gt;
** Windows (x86, x64)&lt;br /&gt;
** Mac (x86, x64)&lt;br /&gt;
** Embedded (using FreeRTOS and lwIP).  Big and little endian ports exist.&lt;br /&gt;
* R/W Store.  At a minimum, this can simply provide a set of string literals that are determined at design time.  If runtime user configuration is supported, this should also provide a means to persist and restore (string) key / (binary) value pairs.&lt;br /&gt;
* Application.  This can be pretty short - &amp;lt;100 lines of code - to cover&lt;br /&gt;
** Initialise the UPnP stack&lt;br /&gt;
** Create a UPnP device, adding manufacturer-specific attributes to it&lt;br /&gt;
** Create MediaPlayer object&lt;br /&gt;
** Add desired plug-ins to MediaPlayer object&lt;br /&gt;
*** Sources&lt;br /&gt;
*** Codecs&lt;br /&gt;
*** Protocols&lt;br /&gt;
*** Content Processors&lt;br /&gt;
*** (Note that a future release may reduce this to selection of sources, with each source enabling appropriate codecs, protocols, etc. automatically.)&lt;br /&gt;
** Create Driver, R/W Store&lt;br /&gt;
** Enable UPnP device&lt;br /&gt;
No further code is required.  ohMediaPlayer is controlled via network APIs which will be automatically advertised on the network, ready to be used by any number of controllers in parallel.&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
APIs are provided for design-time configuration&lt;br /&gt;
* Which audio ‘sources’ to include&lt;br /&gt;
* Which audio formats to support&lt;br /&gt;
* Sizes of various thread and memory pools&lt;br /&gt;
Additional software can be provided for run-time configuration, including&lt;br /&gt;
* Product name&lt;br /&gt;
* Username for externally provided radio presets&lt;br /&gt;
* Source naming + visibility to control app&lt;br /&gt;
* Delays to apply to different sources (e.g. for lip-sync)&lt;br /&gt;
This additional software includes&lt;br /&gt;
* On-device UPnP service&lt;br /&gt;
* On-device web UI to access these configuration values&lt;br /&gt;
* Desktop/mobile app to detect media players and display their configuration page.&lt;br /&gt;
&lt;br /&gt;
= Software Updates =&lt;br /&gt;
Deployments to open systems are assumed to use the host’s existing support for application deployment and update.&lt;br /&gt;
A highly robust, well proved firmware update mechanism is available for embedded products.  This includes&lt;br /&gt;
* Additional UPnP services to support reprogramming&lt;br /&gt;
* Desktop reprogramming utility&lt;br /&gt;
* Optionally, a desktop app which includes the reprogramming utility plus a user interface onto other device configuration options&lt;br /&gt;
This functionality is supplied separately from ohMediaPlayer and requires an additional 500KB ROM.&lt;br /&gt;
&lt;br /&gt;
= Source Code =&lt;br /&gt;
ohMediaPlayer is provided in binary form (static library + header files) by default.  Contact us if you want to discuss a license to access the full source code.&lt;br /&gt;
Note that we use a small number of externally sourced, commercially licensed audio codecs.  We could only share the source for these if you negotiate access to them directly with the copyright holders.&lt;/div&gt;</summary>
		<author><name>Simonc</name></author>	</entry>

	</feed>