📄 classpvideochannel.html
字号:
<!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>PVideoChannel 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> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center><hr><h1>PVideoChannel Class Reference</h1><code>#include <<a class="el" href="video_8h-source.html">video.h</a>></code><p><p>Inheritance diagram for PVideoChannel:<p><center><img src="classPVideoChannel.png" usemap="#PVideoChannel_map" border="0" alt=""></center><map name="PVideoChannel_map"><area href="classPChannel.html" alt="PChannel" shape="rect" coords="0,56,100,80"><area href="classPObject.html" alt="PObject" shape="rect" coords="0,0,100,24"></map><a href="classPVideoChannel-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Construction</h2></td></tr><tr><td nowrap align=right valign=top>enum </td><td valign=bottom><a class="el" href="classPVideoChannel.html#z471_0">Directions</a> { <a class="el" href="classPVideoChannel.html#z471_0s0">Recorder</a>, <a class="el" href="classPVideoChannel.html#z471_0s1">Player</a> }</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPVideoChannel.html#z471_1">PVideoChannel</a> ()</td></tr><tr><td> </td><td><font size=-1><em>Create a video channel.</em> <a href="#z471_1"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPVideoChannel.html#z471_2">PVideoChannel</a> (const <a class="el" href="classPString.html">PString</a> &device, <a class="el" href="classPVideoChannel.html#z471_0">Directions</a> dir)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPVideoChannel.html#z471_3">~PVideoChannel</a> ()</td></tr><tr><td colspan=2><br><h2>Open functions</h2></td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPVideoChannel.html#z473_0">Open</a> (const <a class="el" href="classPString.html">PString</a> &device, <a class="el" href="classPVideoChannel.html#z471_0">Directions</a> dir)</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPVideoChannel.html#z473_1">IsOpen</a> () const</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPStringList.html">PStringList</a> </td><td valign=bottom><a class="el" href="classPVideoChannel.html#z473_2">GetDeviceNames</a> (<a class="el" href="classPVideoChannel.html#z471_0">Directions</a> dir)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPString.html">PString</a> </td><td valign=bottom><a class="el" href="classPVideoChannel.html#z473_3">GetDefaultDevice</a> (<a class="el" href="classPVideoChannel.html#z471_0">Directions</a> dir)</td></tr><tr><td colspan=2><br><h2>Public Types</h2></td></tr><tr><td colspan=2><br><h2>Public Methods</h2></td></tr><tr><td nowrap align=right valign=top>virtual PINDEX </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a0">GetGrabWidth</a> ()</td></tr><tr><td nowrap align=right valign=top>virtual PINDEX </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a1">GetGrabHeight</a> ()</td></tr><tr><td nowrap align=right valign=top>virtual BOOL </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a2">Read</a> (void *buf, PINDEX len)</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a3">Write</a> (const void *buf, PINDEX len)</td></tr><tr><td nowrap align=right valign=top>virtual BOOL </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a4">Redraw</a> (const void *frame)</td></tr><tr><td nowrap align=right valign=top>PINDEX </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a5">GetRenderWidth</a> ()</td></tr><tr><td nowrap align=right valign=top>PINDEX </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a6">GetRenderHeight</a> ()</td></tr><tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a7">SetRenderFrameSize</a> (int _width, int _height)</td></tr><tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a8">SetGrabberFrameSize</a> (int _width, int _height)</td></tr><tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a9">AttachVideoPlayer</a> (<a class="el" href="classPVideoOutputDevice.html">PVideoOutputDevice</a> *device, BOOL keepCurrent=TRUE)</td></tr><tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a10">AttachVideoReader</a> (<a class="el" href="classPVideoInputDevice.html">PVideoInputDevice</a> *device, BOOL keepCurrent=TRUE)</td></tr><tr><td nowrap align=right valign=top>virtual <a class="el" href="classPVideoInputDevice.html">PVideoInputDevice</a> * </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a11">GetVideoReader</a> ()</td></tr><tr><td nowrap align=right valign=top>virtual <a class="el" href="classPVideoOutputDevice.html">PVideoOutputDevice</a> * </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a12">GetVideoPlayer</a> ()</td></tr><tr><td nowrap align=right valign=top>virtual BOOL </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a13">IsGrabberOpen</a> ()</td></tr><tr><td nowrap align=right valign=top>virtual BOOL </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a14">IsRenderOpen</a> ()</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a15">DisplayRawData</a> (void *videoBuffer)</td></tr><tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a16">CloseVideoReader</a> ()</td></tr><tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a17">CloseVideoPlayer</a> ()</td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a18">RestrictAccess</a> ()</td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a19">EnableAccess</a> ()</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a20">ToggleVFlipInput</a> ()</td></tr><tr><td nowrap align=right valign=top>virtual BOOL </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a21">Close</a> ()</td></tr><tr><td nowrap align=right valign=top>virtual <a class="el" href="classPString.html">PString</a> </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a22">GetName</a> () const</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPString.html">PString</a> </td><td valign=bottom><a class="el" href="classPVideoChannel.html#a23">GetErrorText</a> () const</td></tr><tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPVideoChannel.html#z471_0">Directions</a> </td><td valign=bottom><a class="el" href="classPVideoChannel.html#n0">direction</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPString.html">PString</a> </td><td valign=bottom><a class="el" href="classPVideoChannel.html#n1">deviceName</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPVideoInputDevice.html">PVideoInputDevice</a> * </td><td valign=bottom><a class="el" href="classPVideoChannel.html#n2">mpInput</a></td></tr><tr><td> </td><td><font size=-1><em>Specified video device name, eg /dev/video0.</em> <a href="#n2"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPVideoOutputDevice.html">PVideoOutputDevice</a> * </td><td valign=bottom><a class="el" href="classPVideoChannel.html#n3">mpOutput</a></td></tr><tr><td> </td><td><font size=-1><em>For grabbing video from the camera.</em> <a href="#n3"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPMutex.html">PMutex</a> </td><td valign=bottom><a class="el" href="classPVideoChannel.html#n4">accessMutex</a></td></tr><tr><td> </td><td><font size=-1><em>For displaying video on the screen.</em> <a href="#n4"></a><em></em></font><br><br></td></tr><tr><td colspan=2><br><h2>Static Protected Attributes</h2></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPMutex.html">PMutex</a> </td><td valign=bottom><a class="el" href="classPVideoChannel.html#q0">dictMutex</a></td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>A class representing a video channel. This class is provided mainly for the playback or recording of video on the system.<p>Note that this video channel is implicitly a series of frames in YUV411P format. No conversion is performed on data to/from the channel. <p><hr><h2>Member Enumeration Documentation</h2><a name="z471_0" doxytag="PVideoChannel::Directions"></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"> enum PVideoChannel::Directions </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p><dl compact><dt><b>Enumeration values: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em><a name="z471_0s0" doxytag="Recorder"></a><em>Recorder</em></em> </td><td></td></tr><tr><td valign=top><em><a name="z471_0s1" doxytag="Player"></a><em>Player</em></em> </td><td></td></tr></table></dl> </td> </tr></table><hr><h2>Constructor & Destructor Documentation</h2><a name="z471_1" doxytag="PVideoChannel::PVideoChannel"></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"> PVideoChannel::PVideoChannel </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Create a video channel.<p> </td> </tr></table><a name="z471_2" doxytag="PVideoChannel::PVideoChannel"></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"> PVideoChannel::PVideoChannel </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="classPString.html">PString</a> & </td> <td class="mdname" nowrap> <em>device</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="classPVideoChannel.html#z471_0">Directions</a> </td> <td class="mdname" nowrap> <em>dir</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Create a video channel. Create a reference to the video drivers for the platform. <dl compact><dt><b>Parameters: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em>dir</em> </td><td>Name of video driver/device Video I/O direction </td></tr></table></dl> </td> </tr></table><a name="z471_3" doxytag="PVideoChannel::~PVideoChannel"></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"> PVideoChannel::~PVideoChannel </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><hr><h2>Member Function Documentation</h2><a name="a9" doxytag="PVideoChannel::AttachVideoPlayer"></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 void PVideoChannel::AttachVideoPlayer </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="classPVideoOutputDevice.html">PVideoOutputDevice</a> * </td> <td class="mdname" nowrap> <em>device</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>BOOL </td> <td class="mdname" nowrap> <em>keepCurrent</em> = TRUE</td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"><code> [virtual]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Attach a user specific class for rendering video<p>If keepCurrent is true, an abort is caused when the program attempts to attach a new player when there is already a video player attached.<p>If keepCurrent is false, the existing video player is deleted before attaching the new player. </td> </tr></table><a name="a10" doxytag="PVideoChannel::AttachVideoReader"></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 void PVideoChannel::AttachVideoReader </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="classPVideoInputDevice.html">PVideoInputDevice</a> * </td> <td class="mdname" nowrap> <em>device</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>BOOL </td> <td class="mdname" nowrap> <em>keepCurrent</em> = TRUE</td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"><code> [virtual]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Attach a user specific class for acquiring video<p>If keepCurrent is true, an abort is caused when the program attempts to attach a new reader when there is already a video reader attached.<p>If keepCurrent is false, the existing video reader is deleted before attaching the new reader. </td> </tr></table><a name="a21" doxytag="PVideoChannel::Close"></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 BOOL PVideoChannel::Close </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Close the channel, shutting down the link to the data source.<p><dl compact><dt><b>Returns: </b></dt><dd>TRUE if the channel successfully closed. </dl><p>Reimplemented from <a class="el" href="classPChannel.html#z53_1">PChannel</a>. </td> </tr></table><a name="a17" doxytag="PVideoChannel::CloseVideoPlayer"></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 void PVideoChannel::CloseVideoPlayer </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Destroy the attached video display class. </td> </tr></table><a name="a16" doxytag="PVideoChannel::CloseVideoReader"></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 void PVideoChannel::CloseVideoReader </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Destroy the attached grabber class. </td> </tr></table><a name="a15" doxytag="PVideoChannel::DisplayRawData"></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"> BOOL PVideoChannel::DisplayRawData </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void * </td> <td class="mdname1" valign="top" nowrap> <em>videoBuffer</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Get data from the attached inputDevice, and display on the attached ouptutDevice. </td> </tr></table><a name="a19" doxytag="PVideoChannel::EnableAccess"></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"> void PVideoChannel::EnableAccess </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -