blob: 4555e7b34e67f88ed443160537e8a84d5b80d4e0 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>PVPlayerInterface class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.18 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; </center>
<hr><h1>PVPlayerInterface Class Reference</h1><code>#include &lt;<a class="el" href="pv__player__interface_8h-source.html">pv_player_interface.h</a>&gt;</code>
<p>
<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a0">~PVPlayerInterface</a> ()</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a1">GetSDKModuleInfo</a> (PVSDKModuleInfo &amp;aSDKModuleInfo, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a2">SetLogAppender</a> (const char *aTag, OsclSharedPtr&lt; PVLoggerAppender &gt; &amp;aAppender, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a3">RemoveLogAppender</a> (const char *aTag, OsclSharedPtr&lt; PVLoggerAppender &gt; &amp;aAppender, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a4">SetLogLevel</a> (const char *aTag, int32 aLevel, bool aSetSubtree=false, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a5">GetLogLevel</a> (const char *aTag, PVLogLevelInfo &amp;aLogInfo, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a6">QueryUUID</a> (const PvmfMimeString &amp;aMimeType, Oscl_Vector&lt; PVUuid, OsclMemAllocator &gt; &amp;aUuids, bool aExactUuidsOnly=false, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a7">QueryInterface</a> (const PVUuid &amp;aUuid, PVInterface *&amp;aInterfacePtr, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a8">CancelCommand</a> (PVCommandId aCancelCmdId, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a9">CancelAllCommands</a> (const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a10">GetPVPlayerState</a> (PVPlayerState &amp;aState, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVMFStatus&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a11">GetPVPlayerStateSync</a> (PVPlayerState &amp;aState)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a12">AddDataSource</a> (PVPlayerDataSource &amp;aDataSource, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a13">Init</a> (const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a14">GetMetadataKeys</a> (PVPMetadataList &amp;aKeyList, int32 aStartingIndex=0, int32 aMaxEntries=-1, char *aQueryKey=NULL, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a15">GetMetadataValues</a> (PVPMetadataList &amp;aKeyList, int32 aStartingValueIndex, int32 aMaxValueEntries, int32 &amp;aNumAvailableValueEntries, Oscl_Vector&lt; PvmiKvp, OsclMemAllocator &gt; &amp;aValueList, const OsclAny *aContextData=NULL, bool aMetadataValuesCopiedInCallBack=true)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a16">ReleaseMetadataValues</a> (Oscl_Vector&lt; PvmiKvp, OsclMemAllocator &gt; &amp;aValueList, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a17">AddDataSink</a> (PVPlayerDataSink &amp;aDataSink, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a18">SetPlaybackRange</a> (PVPPlaybackPosition aBeginPos, PVPPlaybackPosition aEndPos, bool aQueueRange, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a19">GetPlaybackRange</a> (PVPPlaybackPosition &amp;aBeginPos, PVPPlaybackPosition &amp;aEndPos, bool aQueued, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a20">GetCurrentPosition</a> (PVPPlaybackPosition &amp;aPos, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a21">SetPlaybackRate</a> (int32 aRate, PVMFTimebase *aTimebase=NULL, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a22">GetPlaybackRate</a> (int32 &amp;aRate, PVMFTimebase *&amp;aTimebase, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a23">GetPlaybackMinMaxRate</a> (int32 &amp;aMinRate, int32 &amp;aMaxRate, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVMFStatus&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a24">GetCurrentPositionSync</a> (PVPPlaybackPosition &amp;aPos)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a25">Prepare</a> (const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a26">Start</a> (const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a27">Pause</a> (const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a28">Resume</a> (const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a29">Stop</a> (const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a30">RemoveDataSink</a> (PVPlayerDataSink &amp;aDataSink, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a31">Reset</a> (const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual PVCommandId&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#a32">RemoveDataSource</a> (PVPlayerDataSource &amp;aDataSource, const OsclAny *aContextData=NULL)=0</td></tr>
<tr><td colspan=2><br><h2>Static Public Methods</h2></td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classPVPlayerInterface.html#d0">GetSDKInfo</a> (PVSDKInfo &amp;aSDKInfo)</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
PVPlayerInterface is the interface to the pvPlayer SDK, which allows control of a multimedia playback engine. The PVPlayerFactory factory class is to be used to create and delete instances of this object
<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a0" doxytag="PVPlayerInterface::~PVPlayerInterface"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVPlayerInterface::~PVPlayerInterface </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline, virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Object destructor function Releases all resources prior to destruction </td>
</tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="a17" doxytag="PVPlayerInterface::AddDataSink"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::AddDataSink </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVPlayerDataSink &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aDataSink</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function allows a player data sink to be specified for playback. This function must be called when pvPlayer is in PVP_STATE_INITIALIZED state. The specified data sink must be a valid PVPlayerDataSink to be accepted for use in playback. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aDataSink</em>&nbsp;</td><td>
The player data sink to be used for playback. </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrNotSupported if the format of the sink is incompatible with what the SDK can handle OsclErrInvalidState if invoked in the incorrect state OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a12" doxytag="PVPlayerInterface::AddDataSource"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::AddDataSource </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVPlayerDataSource &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aDataSource</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function allows a player data source to be specified for playback. This function must be called when pvPlayer is in PVP_STATE_IDLE state and before calling Init. The specified data source must be a valid PVPlayerDataSource to be accepted for use in playback. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aDataSource</em>&nbsp;</td><td>
Reference to the player data source to be used for playback </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrNotSupported if the format of the source is incompatible with what the SDK can handle OsclErrInvalidState if invoked in the incorrect state OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a9" doxytag="PVPlayerInterface::CancelAllCommands"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::CancelAllCommands </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const OsclAny *&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aContextData</em> = NULL </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This API is to allow the user to cancel all pending requests in pvPlayer. The current request being processed, if any, will also be aborted. The user of PV-SDK should get the state of PVPlayer Engine after the command completes and before issuing any other command. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a8" doxytag="PVPlayerInterface::CancelCommand"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::CancelCommand </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVCommandId&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aCancelCmdId</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This API is to allow user of the SDK to cancel any specific command which is pending on pvPlayer. If the request is to cancel a command which still has to be processed pvPlayer will just remove the command from its queue of commands to be processed. If the request is to cancel a command that is ongoing then player will attempt to interrupt the ongoing command. The state of player after a cancel can vary. So the user of pvPlayerSDK must always query for state before issuing any subsequent commands. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aCancelCmdId</em>&nbsp;</td><td>
Command Id to be cancelled. </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a20" doxytag="PVPlayerInterface::GetCurrentPosition"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::GetCurrentPosition </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVPPlaybackPosition &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aPos</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function allows querying of the current playback position. The playback position units will be in the one specified by the passed-in reference to PVPPlaybackPosition. If no units are specified, the units will default to milliseconds. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aPos</em>&nbsp;</td><td>
Reference to place the current playback position </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrInvalidState if invoked in the incorrect state </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a24" doxytag="PVPlayerInterface::GetCurrentPositionSync"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVMFStatus PVPlayerInterface::GetCurrentPositionSync </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVPPlaybackPosition &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aPos</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function allows querying of the current playback position as a synchronous command. The playback position units will be in the one specified by the passed-in reference to PVPPlaybackPosition. If no units are specified, the units will default to milliseconds.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aPos</em>&nbsp;</td><td>
Reference to place the current playback position @leave This method can leave with one of the following error codes OsclErrInvalidState if invoked in the incorrect state </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Status indicating whether the command succeeded or not. </dl> </td>
</tr>
</table>
<a name="a5" doxytag="PVPlayerInterface::GetLogLevel"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::GetLogLevel </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const char *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aTag</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>PVLogLevelInfo &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aLogInfo</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Allows the logging level to be queried for a particular logging tag. A larger log level will result in more messages being logged. In the asynchronous response, this should return the log level along with an indication of where the level was inherited (i.e., the ancestor tag). This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aTag</em>&nbsp;</td><td>
Specifies the logger tree tag where the log level should be retrieved. </td></tr>
<tr><td valign=top><em>aLogInfo</em>&nbsp;</td><td>
An output parameter which will be filled in with the log level information. </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response </td></tr>
</table>
</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>This</em>&nbsp;</td><td>
method can leave with one of the following error codes OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command ID for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a14" doxytag="PVPlayerInterface::GetMetadataKeys"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::GetMetadataKeys </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVPMetadataList &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aKeyList</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int32&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aStartingIndex</em> = 0, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int32&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aMaxEntries</em> = -1, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>char *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aQueryKey</em> = NULL, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function makes a request to return the list of all or segment of available metadata keys in the current pvPlayer state. The metadata key list is dynamic and can change during the course of pvPlayer usage. The list can be used to retrieve the metadata values with GetMetadataValues function. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aKeyList</em>&nbsp;</td><td>
Reference to a vector to place the metadata key list. </td></tr>
<tr><td valign=top><em>aStartingIndex</em>&nbsp;</td><td>
Input parameter to specify the starting index for aKeyList. This parameter along with aMaxEntries allows us to retrieve the metadata key list in segments. </td></tr>
<tr><td valign=top><em>aMaxEntries</em>&nbsp;</td><td>
Input parameter to specify the maximum number of entries to be added to aKeyList. If there is no limit, set to -1. </td></tr>
<tr><td valign=top><em>aQueryKey</em>&nbsp;</td><td>
Input parameter to narrow down the list of requested keys. For example, "track-info/video" indicates all keys related to "track-info/video". for eg: "track-info/video/width" "track-info/video/height". A NULL value indicates that all keys are requested. </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrInvalidState if invoked in the incorrect state OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a15" doxytag="PVPlayerInterface::GetMetadataValues"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::GetMetadataValues </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVPMetadataList &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aKeyList</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int32&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aStartingValueIndex</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int32&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aMaxValueEntries</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int32 &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aNumAvailableValueEntries</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>Oscl_Vector&lt; PvmiKvp, OsclMemAllocator &gt; &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aValueList</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>bool&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aMetadataValuesCopiedInCallBack</em> = true</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The function makes a request to return the metadata value(s) specified by the passed in metadata key list. If the requeted metadata value is unavailable or the metadata key is invalid, the returned list will not contain a KVP entry for the key. Note that value indexed in the returned aValueList does not necessary match the same index into the specified aKeyList since this command can return none or more than one KVP for a specified key. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aKeyList</em>&nbsp;</td><td>
Reference to a list of metadata keys for which metadata values are requested. </td></tr>
<tr><td valign=top><em>aStartingValueIndex</em>&nbsp;</td><td>
The starting index refers to the an index into the whole value list specified by the keys in aKeyList. This command would populate the aValueList starting from the specified index. </td></tr>
<tr><td valign=top><em>aMaxValueEntries</em>&nbsp;</td><td>
Input parameter to specify the maximum number of entries to be added to aValueList. If there is no limit, set to -1. </td></tr>
<tr><td valign=top><em>aNumAvailableValueEntries</em>&nbsp;</td><td>
Output parameter which will be filled with number of available values for the specified key list. </td></tr>
<tr><td valign=top><em>aValueList</em>&nbsp;</td><td>
Reference to a vector of KVP to place the specified metadata values </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response </td></tr>
<tr><td valign=top><em>aMetadataValuesCopiedInCallBack</em>&nbsp;</td><td>
Boolean to let engine know if metadata values are copied by User of SDK in command complete callback. By default the SDK assumes this to be the case. If this argument is set to false by the caller, then SDK assumes that user will call ReleaseMetaDataValues at a later point. @leave This method can leave with one of the following error codes OsclErrInvalidState if invoked in the incorrect state OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a23" doxytag="PVPlayerInterface::GetPlaybackMinMaxRate"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::GetPlaybackMinMaxRate </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">int32 &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aMinRate</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int32 &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aMaxRate</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function retrieves the minimum and maximum playback rate expressed as a millipercent of "real-time" playback rate. This function can be called anytime between pvPlayer instantiation and destruction. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aMinRate</em>&nbsp;</td><td>
A reference to an integer which will be filled in with the minimum playback rate allowed expressed as millipercent of "real-time" playback rate. </td></tr>
<tr><td valign=top><em>aMaxRate</em>&nbsp;</td><td>
A reference to an integer which will be filled in with the maximum playback rate allowed expressed as millipercent of "real-time" playback rate. </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a19" doxytag="PVPlayerInterface::GetPlaybackRange"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::GetPlaybackRange </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVPPlaybackPosition &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aBeginPos</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>PVPPlaybackPosition &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aEndPos</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>bool&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aQueued</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function retrieves the playback range information for the current or queued playback range. The user can choose which playback range by the aQueued flag. This function can be called when pvPlayer is in PVP_STATE_INITIALIZED, PVP_STATE_PREPARED, PVP_STATE_STARTED, or PVP_STATE_PAUSED state. The units of position is specified in the passed-in PVPlaybackPosition parameters which will be filled in when the command completes. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aBeginPos</em>&nbsp;</td><td>
Reference to place the begin position for the playback range </td></tr>
<tr><td valign=top><em>aEndPos</em>&nbsp;</td><td>
Reference to place the end position for the playback range </td></tr>
<tr><td valign=top><em>aQueued</em>&nbsp;</td><td>
Input flag to choose inof of which playback range to return. Set(true)for queued range. Reset(false) for current range. </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrInvalidState if invoked in the incorrect state </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a22" doxytag="PVPlayerInterface::GetPlaybackRate"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::GetPlaybackRate </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">int32 &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aRate</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>PVMFTimebase *&amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aTimebase</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function retrieves the current playback rate setting. If the playback rate is set as a millipercent of "real-time" playback rate, then aRate will be filled in with the milliperecent value when this command completes successfully. If the playback rate is set by an outside timebase, aRate will be set to 0 and aTimebase pointer will point to the PVMFTimebase being used when the command completes successfully. This function can be called when pvPlayer is in PVP_STATE_PREPARED, PVP_STATE_STARTED, or PVP_STATE_PAUSED state. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aRate</em>&nbsp;</td><td>
A reference to an integer which will be filled in with the current playback rate expressed as millipercent of "real-time" playback rate. If an outside timebase is being used, aRate would be set to 0. </td></tr>
<tr><td valign=top><em>aTimebase</em>&nbsp;</td><td>
Reference to an PVMFTimebase pointer which will be valid if an outside timebase is being used for the playback clock. </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a10" doxytag="PVPlayerInterface::GetPVPlayerState"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::GetPVPlayerState </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVPlayerState &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aState</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function returns the current state of pvPlayer. Application may use this info for updating display or determine if the pvPlayer is ready for the next request. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aState</em>&nbsp;</td><td>
A reference to a PVPlayerState. Upon successful completion of this command, it will contain the current state of pvPlayer. </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a11" doxytag="PVPlayerInterface::GetPVPlayerStateSync"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVMFStatus PVPlayerInterface::GetPVPlayerStateSync </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVPlayerState &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aState</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function returns the current state of pvPlayer as a synchronous command. Application may use this info for updating display or determine if the pvPlayer is ready for the next request.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aState</em>&nbsp;</td><td>
A reference to a PVPlayerState. Upon successful completion of this command, it will contain the current state of pvPlayer. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Status indicating whether the command succeeded or not. </dl> </td>
</tr>
</table>
<a name="d0" doxytag="PVPlayerInterface::GetSDKInfo"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF void PVPlayerInterface::GetSDKInfo </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVSDKInfo &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aSDKInfo</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [static]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Returns SDK version information about pvPlayer.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aSDKInfo</em>&nbsp;</td><td>
A reference to a PVSDKInfo structure which contains product name, supported hardware platform, supported software platform, version, part number, and PV UUID. These fields will contain info .for the currently instantiated pvPlayer engine when this function returns success. </td></tr>
</table>
</dl> </td>
</tr>
</table>
<a name="a1" doxytag="PVPlayerInterface::GetSDKModuleInfo"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::GetSDKModuleInfo </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVSDKModuleInfo &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aSDKModuleInfo</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Returns information about all modules currently used by pvPlayer SDK. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aSDKModuleInfo</em>&nbsp;</td><td>
A reference to a PVSDKModuleInfo structure which contains the number of modules currently used by pvPlayer SDK and the PV UUID and description string for each module. The PV UUID and description string for modules will be returned in one string buffer allocated by the client. If the string buffer is not large enough to hold the all the module's information, the information will be written up to the length of the buffer and truncated. </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command ID for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a13" doxytag="PVPlayerInterface::Init"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::Init </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const OsclAny *&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aContextData</em> = NULL </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function switches pvPlayer from PVP_STATE_IDLE state to the PVP_STATE_INITIALIZED state. During the transition, pvPlayer is in the PVP_STATE_INITIALIZING transitional state and the data source is being initialized to obtain metadata and track information of the source media. If initialization fails, pvPlayer will revert to PVP_STATE_IDLE state and the data source will be closed. The Command should only be called in PVP_STATE_IDLE. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrInvalidState if invoked in the incorrect state OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a27" doxytag="PVPlayerInterface::Pause"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::Pause </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const OsclAny *&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aContextData</em> = NULL </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function pauses the currently ongoing playback. pvPlayer must be in PVP_STATE_STARTED state to call this function. When pause successfully completes, pvPlayer will be in PVP_STATE_PAUSED state. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrInvalidState if invoked in the incorrect state OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a25" doxytag="PVPlayerInterface::Prepare"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::Prepare </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const OsclAny *&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aContextData</em> = NULL </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This functions prepares pvPlayer for playback. pvPlayer connects the data source with the data sinks and starts the data source to queue the media data for playback(e.g. for 3GPP streaming, fills the jitter buffer). pvPlayer also checks to make sure each component needed for playback is ready and capable. When successful, pvPlayer will be in PVP_STATE_PREPARED state, The command should be called only in PVP_STATE_INITIALISED. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrInvalidState if invoked in the incorrect state OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a7" doxytag="PVPlayerInterface::QueryInterface"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::QueryInterface </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const PVUuid &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aUuid</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>PVInterface *&amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aInterfacePtr</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This API is to allow for extensibility of the pvPlayer interface. It allows a caller to ask for an instance of a particular interface object to be returned. The mechanism is analogous to the COM IUnknown method. The interfaces are identified with an interface ID that is a UUID as in DCE and a pointer to the interface object is returned if it is supported. Otherwise the returned pointer is NULL. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aUuid</em>&nbsp;</td><td>
The UUID of the desired interface </td></tr>
<tr><td valign=top><em>aInterfacePtr</em>&nbsp;</td><td>
A reference to the output pointer to the desired interface </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response</td></tr>
</table>
</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>This</em>&nbsp;</td><td>
method can leave with one of the following error codes OsclErrNotSupported if the specified interface UUID is not supported </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command ID for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a6" doxytag="PVPlayerInterface::QueryUUID"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::QueryUUID </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const PvmfMimeString &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aMimeType</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>Oscl_Vector&lt; PVUuid, OsclMemAllocator &gt; &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aUuids</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>bool&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aExactUuidsOnly</em> = false, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This API is to allow for extensibility of the pvPlayer interface. It allows a caller to ask for all UUIDs associated with a particular MIME type. If interfaces of the requested MIME type are found within the system, they are added to the UUIDs array. Also added to the UUIDs array will be all interfaces which have the requested MIME type as a base MIME type. This functionality can be turned off. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aMimeType</em>&nbsp;</td><td>
The MIME type of the desired interfaces </td></tr>
<tr><td valign=top><em>aUuids</em>&nbsp;</td><td>
An array to hold the discovered UUIDs </td></tr>
<tr><td valign=top><em>aExactUuidsOnly</em>&nbsp;</td><td>
Turns on/off the retrival of UUIDs with aMimeType as a base type </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response</td></tr>
</table>
</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>This</em>&nbsp;</td><td>
method can leave with one of the following error codes OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command ID for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a16" doxytag="PVPlayerInterface::ReleaseMetadataValues"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::ReleaseMetadataValues </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">Oscl_Vector&lt; PvmiKvp, OsclMemAllocator &gt; &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aValueList</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The function makes a request to release the metadata value(s) specified by the passed in metadata value list. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.If a GetMetaDataValues were called in PVP_STATE_INITIALIZED state, then corresponding ReleaseMetaDataValues must be called before Reset. If a GetMetaDataValues were called in PVP_STATE_PREPARED, PVP_STATE_STARTED, PVP_STATE_PAUSED states, then corresponding ReleaseMetaDataValues must be called before Stop.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aValueList</em>&nbsp;</td><td>
Reference to a vector of KVP to place the specified metadata values </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrInvalidState if invoked in the incorrect state OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a30" doxytag="PVPlayerInterface::RemoveDataSink"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::RemoveDataSink </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVPlayerDataSink &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aDataSink</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function may be used to close and unbind a data sink that has been previously added. This function must be called when pvPlayer is in PVP_STATE_INITIALIZED state. If the data sink is in use for playback, Stop must be called first to stop the playback and free the data sink. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aDataSink</em>&nbsp;</td><td>
Reference to the data sink to be removed </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrBadHandle if the passed in sink parameter is invalid OsclErrInvalidState if invoked in the incorrect state OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a32" doxytag="PVPlayerInterface::RemoveDataSource"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::RemoveDataSource </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVPlayerDataSource &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aDataSource</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function may be used to close and unbind a data source that has been previously added. This function must be called when pvPlayer is in PVP_STATE_IDLE state. If the data source has already been initialized, Reset must be called first. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aDataSource</em>&nbsp;</td><td>
Reference to the data source to be removed. </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrBadHandle if the passed in sink parameter is invalid OsclErrInvalidState if invoked in the incorrect state OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a3" doxytag="PVPlayerInterface::RemoveLogAppender"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::RemoveLogAppender </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const char *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aTag</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>OsclSharedPtr&lt; PVLoggerAppender &gt; &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aAppender</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Allows a logging appender to be removed from the logger tree at the point specified by the input tag. If the input tag is NULL then the appender will be removed from locations in the tree. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aTag</em>&nbsp;</td><td>
Specifies the logger tree tag where the appender should be removed. Can be NULL to remove at all locations. </td></tr>
<tr><td valign=top><em>aAppender</em>&nbsp;</td><td>
The log appender to remove. </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response</td></tr>
</table>
</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>This</em>&nbsp;</td><td>
method can leave with one of the following error codes OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command ID for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a31" doxytag="PVPlayerInterface::Reset"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::Reset </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const OsclAny *&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aContextData</em> = NULL </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function cleans up resources used for playback to transition pvPlayer to PVP_STATE_IDLE state. While processing this command, pvPlayer is in the PVP_STATE_RESETTING state. If any data sinks are still referenced by pvPlayer when this function is called, the data sinks will be closed and removed from pvPlayer during the Reset. If already in PVP_STATE_IDLE state, then nothing will occur. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a28" doxytag="PVPlayerInterface::Resume"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::Resume </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const OsclAny *&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aContextData</em> = NULL </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function resumes the currently paused playback. pvPlayer must be in PVP_STATE_PAUSED state to call this function. When resume successfully completes, pvPlayer will be in PVP_STATE_STARTED state. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrInvalidState if invoked in the incorrect state OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a2" doxytag="PVPlayerInterface::SetLogAppender"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::SetLogAppender </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const char *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aTag</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>OsclSharedPtr&lt; PVLoggerAppender &gt; &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aAppender</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Allows a logging appender to be attached at some point in the logger tag tree. The location in the tag tree is specified by the input tag string. A single appender can be attached multiple times in the tree, but it may result in duplicate copies of log messages if the appender is not attached in disjoint portions of the tree. A logging appender is responsible for actually writing the log message to its final location (e.g., memory, file, network, etc). This API can be called anytime after creation of pvPlayer. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aTag</em>&nbsp;</td><td>
Specifies the logger tree tag where the appender should be attached. </td></tr>
<tr><td valign=top><em>aAppender</em>&nbsp;</td><td>
The log appender to attach. </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response </td></tr>
</table>
</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>This</em>&nbsp;</td><td>
method can leave with one of the following error codes OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command ID for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a4" doxytag="PVPlayerInterface::SetLogLevel"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::SetLogLevel </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const char *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aTag</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int32&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aLevel</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>bool&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aSetSubtree</em> = false, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Allows the logging level to be set for the logging node specified by the tag. A larger log level will result in more messages being logged. A message will only be logged if its level is LESS THAN or equal to the current log level. The aSetSubtree flag will allow an entire subtree, with the specified tag as the root, to be reset to the specified value. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aTag</em>&nbsp;</td><td>
Specifies the logger tree tag where the log level should be set. </td></tr>
<tr><td valign=top><em>aLevel</em>&nbsp;</td><td>
Specifies the log level to set. </td></tr>
<tr><td valign=top><em>aSetSubtree</em>&nbsp;</td><td>
Specifies whether the entire subtree with aTag as the root should be reset to the log level. </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response</td></tr>
</table>
</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>This</em>&nbsp;</td><td>
method can leave with one of the following error codes OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command ID for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a18" doxytag="PVPlayerInterface::SetPlaybackRange"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::SetPlaybackRange </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">PVPPlaybackPosition&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aBeginPos</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>PVPPlaybackPosition&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aEndPos</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>bool&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aQueueRange</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function sets the begin and end positions for the new playback range or changes the end position of the current playback range. This function must be called when pvPlayer is in PVP_STATE_INITIALIZED, PVP_STATE_PREPARED, PVP_STATE_STARTED, or PVP_STATE_PAUSED state. The specified positions must be between beginning of clip and clip duration. The units of position is specified in the passed-in parameter PVPPlaybackPosition. If either of the positions is indeterminate, use the indeterminate flag in PVPPlaybackPosition structure. The queued playback range can be done using aQueueRange flag which is Not Supported as of now by PV-SDK. This function will overwrite any previous playback range info. The only exception is the changing of end position for the current playback range during playback. Command if called in player state as PVP_STATE_INITIALISED or PVP_STATE_PAUSED, will complete in one Engine AO run without actually changing the position. The change in position will come into affect when Prepare or Resume respectively is called on Engine by the app. If reposition request is not honored by the source node during Prepare or Resume, engine will continue to complete Prepare or Resume but will send an informational event "PVMFInfoChangePlaybackPositionNotSupported" to the app informing that the SetPlaybackRange request could not be honored. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aBeginPos</em>&nbsp;</td><td>
Beginning position for the new playback range </td></tr>
<tr><td valign=top><em>aEndPos</em>&nbsp;</td><td>
Ending position for the new playback range. </td></tr>
<tr><td valign=top><em>aQueueRange</em>&nbsp;</td><td>
Input flag to tell pvPlayer to queue the new playback range (Set/true) or use the new playback range right away (Reset/false) </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrInvalidState if invoked in the incorrect state </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a21" doxytag="PVPlayerInterface::SetPlaybackRate"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::SetPlaybackRate </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">int32&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aRate</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>PVMFTimebase *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aTimebase</em> = NULL, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const OsclAny *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContextData</em> = NULL</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function allows the setting of the playback rate. The playback rate can be set as millipercent of "real-time" playback rate. For example, 100000 means 1X "real-time", 400000 means 4X, 25000 means 0.25X, and -100000 means 1X backward. The playback rate can also be modified by specifying the timebase to use for the playback clock. This is accomplished by setting the aRate parameter to 0 and passing in a pointer to an PVMFTimebase. This function can be called when pvPlayer is in PVP_STATE_PREPARED, PVP_STATE_STARTED, or PVP_STATE_PAUSED state. Changing to or from an outside timebase is only allowed in PVP_STATE_PREPARED. Command if called in player state PVP_STATE_PAUSED with a direction change, will complete in one Engine AO run without actually changing the direction. The change in direction will come into affect when Resume is called on Engine by the app. If the request is not honored by the source node during Resume, engine will continue to complete Resume but will send an informational event "PVMFInfoChangePlaybackPositionNotSupported" to the app informing that the SetPlaybackRate request could not be honored. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aRate</em>&nbsp;</td><td>
The playback rate specified as millipercent of "real-time". A millipercent is 1/1000 of a percent. So 2X = 200% of realtime is 200,000 millipercent. The motivation is to povide precision with an integer parameter. Negative rates specify backward playback. The valid range of absolute value of playback rates will be limited to the minimum and maximum returned by <a class="el" href="classPVPlayerInterface.html#a23">GetPlaybackMinMaxRate()</a>. </td></tr>
<tr><td valign=top><em>aTimebase</em>&nbsp;</td><td>
Reference to an PVMFTimebase which will be used to drive the playback clock. aRate must be set to 0, 1X, or -1X to use the timebase. </td></tr>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrArgument if rate or timebase is invalid </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a26" doxytag="PVPlayerInterface::Start"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::Start </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const OsclAny *&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aContextData</em> = NULL </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function kicks off the actual playback. Media data are sent out from the data source to the data sink(s). pvPlayer will transition to PVP_STATE_STARTED state after playback starts successfully. The command should be called only in PVP_STATE_PREPARED. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrInvalidState if invoked in the incorrect state OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<a name="a29" doxytag="PVPlayerInterface::Stop"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual PVCommandId PVPlayerInterface::Stop </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const OsclAny *&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aContextData</em> = NULL </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function stops the current playback and transitions pvPlayer to the PVP_STATE_INITIALIZED state. During the transition, data transmission from data source to all data sinks are terminated. Also all connections between data source and data sinks are torn down. This command request is asynchronous. PVCommandStatusObserver's CommandCompleted() callback handler will be called when this command request completes.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aContextData</em>&nbsp;</td><td>
Optional opaque data that will be passed back to the user with the command response @leave This method can leave with one of the following error codes OsclErrInvalidState if invoked in the incorrect state OsclErrNoMemory if the SDK failed to allocate memory during this operation </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A unique command id for asynchronous completion </dl> </td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="pv__player__interface_8h-source.html">pv_player_interface.h</a></ul>
<hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>PV Player Engine</small>
<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
</small></address>
</body>
</html>