12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190 |
- <?xml version="1.0"?>
- <doc>
- <assembly>
- <name>AForge.Video</name>
- </assembly>
- <members>
- <member name="T:AForge.Video.AsyncVideoSource">
- <summary>
- Proxy video source for asynchronous processing of another nested video source.
- </summary>
-
- <remarks><para>The class represents a simple proxy, which wraps the specified <see cref="P:AForge.Video.AsyncVideoSource.NestedVideoSource"/>
- with the aim of asynchronous processing of received video frames. The class intercepts <see cref="E:AForge.Video.AsyncVideoSource.NewFrame"/>
- event from the nested video source and fires it to clients from its own thread, which is different from the thread
- used by nested video source for video acquisition. This allows clients to perform processing of video frames
- without blocking video acquisition thread, which continue to run and acquire next video frame while current is still
- processed.</para>
-
- <para>For example, let’s suppose that it takes 100 ms for the nested video source to acquire single frame, so the original
- frame rate is 10 frames per second. Also let’s assume that we have an image processing routine, which also takes
- 100 ms to process a single frame. If the acquisition and processing are done sequentially, then resulting
- frame rate will drop to 5 frames per second. However, if doing both in parallel, then there is a good chance to
- keep resulting frame rate equal (or close) to the original frame rate.</para>
-
- <para>The class provides a bonus side effect - easer debugging of image processing routines, which are put into
- <see cref="E:AForge.Video.AsyncVideoSource.NewFrame"/> event handler. In many cases video source classes fire their <see cref="E:AForge.Video.IVideoSource.NewFrame"/>
- event from a try/catch block, which makes it very hard to spot error made in user's code - the catch block simply
- hides exception raised in user’s code. The <see cref="T:AForge.Video.AsyncVideoSource"/> does not have any try/catch blocks around
- firing of <see cref="E:AForge.Video.AsyncVideoSource.NewFrame"/> event, so always user gets exception in the case it comes from his code. At the same time
- nested video source is not affected by the user's exception, since it runs in different thread.</para>
-
- <para>Sample usage:</para>
- <code>
- // usage of AsyncVideoSource is the same as usage of any
- // other video source class, so code change is very little
-
- // create nested video source, for example JPEGStream
- JPEGStream stream = new JPEGStream( "some url" );
- // create async video source
- AsyncVideoSource asyncSource = new AsyncVideoSource( stream );
- // set NewFrame event handler
- asyncSource.NewFrame += new NewFrameEventHandler( video_NewFrame );
- // start the video source
- asyncSource.Start( );
- // ...
-
- private void video_NewFrame( object sender, NewFrameEventArgs eventArgs )
- {
- // get new frame
- Bitmap bitmap = eventArgs.Frame;
- // process the frame
- }
- </code>
- </remarks>
-
- </member>
- <member name="T:AForge.Video.IVideoSource">
- <summary>
- Video source interface.
- </summary>
-
- <remarks>The interface describes common methods for different type of video sources.</remarks>
-
- </member>
- <member name="M:AForge.Video.IVideoSource.Start">
- <summary>
- Start video source.
- </summary>
-
- <remarks>Starts video source and return execution to caller. Video source
- object creates background thread and notifies about new frames with the
- help of <see cref="E:AForge.Video.IVideoSource.NewFrame"/> event.</remarks>
-
- </member>
- <member name="M:AForge.Video.IVideoSource.SignalToStop">
- <summary>
- Signal video source to stop its work.
- </summary>
-
- <remarks>Signals video source to stop its background thread, stop to
- provide new frames and free resources.</remarks>
-
- </member>
- <member name="M:AForge.Video.IVideoSource.WaitForStop">
- <summary>
- Wait for video source has stopped.
- </summary>
-
- <remarks>Waits for video source stopping after it was signalled to stop using
- <see cref="M:AForge.Video.IVideoSource.SignalToStop"/> method.</remarks>
-
- </member>
- <member name="M:AForge.Video.IVideoSource.Stop">
- <summary>
- Stop video source.
- </summary>
-
- <remarks>Stops video source aborting its thread.</remarks>
-
- </member>
- <member name="E:AForge.Video.IVideoSource.NewFrame">
- <summary>
- New frame event.
- </summary>
-
- <remarks><para>This event is used to notify clients about new available video frame.</para>
-
- <para><note>Since video source may have multiple clients, each client is responsible for
- making a copy (cloning) of the passed video frame, but video source is responsible for
- disposing its own original copy after notifying of clients.</note></para>
- </remarks>
-
- </member>
- <member name="E:AForge.Video.IVideoSource.VideoSourceError">
- <summary>
- Video source error event.
- </summary>
-
- <remarks>This event is used to notify clients about any type of errors occurred in
- video source object, for example internal exceptions.</remarks>
-
- </member>
- <member name="E:AForge.Video.IVideoSource.PlayingFinished">
- <summary>
- Video playing finished event.
- </summary>
-
- <remarks><para>This event is used to notify clients that the video playing has finished.</para>
- </remarks>
-
- </member>
- <member name="P:AForge.Video.IVideoSource.Source">
- <summary>
- Video source.
- </summary>
-
- <remarks>The meaning of the property depends on particular video source.
- Depending on video source it may be a file name, URL or any other string
- describing the video source.</remarks>
-
- </member>
- <member name="P:AForge.Video.IVideoSource.FramesReceived">
- <summary>
- Received frames count.
- </summary>
-
- <remarks>Number of frames the video source provided from the moment of the last
- access to the property.
- </remarks>
-
- </member>
- <member name="P:AForge.Video.IVideoSource.BytesReceived">
- <summary>
- Received bytes count.
- </summary>
-
- <remarks>Number of bytes the video source provided from the moment of the last
- access to the property.
- </remarks>
-
- </member>
- <member name="P:AForge.Video.IVideoSource.IsRunning">
- <summary>
- State of the video source.
- </summary>
-
- <remarks>Current state of video source object - running or not.</remarks>
-
- </member>
- <member name="M:AForge.Video.AsyncVideoSource.#ctor(AForge.Video.IVideoSource)">
- <summary>
- Initializes a new instance of the <see cref="T:AForge.Video.AsyncVideoSource"/> class.
- </summary>
-
- <param name="nestedVideoSource">Nested video source which is the target for asynchronous processing.</param>
-
- </member>
- <member name="M:AForge.Video.AsyncVideoSource.#ctor(AForge.Video.IVideoSource,System.Boolean)">
- <summary>
- Initializes a new instance of the <see cref="T:AForge.Video.AsyncVideoSource"/> class.
- </summary>
-
- <param name="nestedVideoSource">Nested video source which is the target for asynchronous processing.</param>
- <param name="skipFramesIfBusy">Specifies if the object should skip frames from the nested video source
- in the case if it is still busy processing the previous video frame.</param>
-
- </member>
- <member name="M:AForge.Video.AsyncVideoSource.Start">
- <summary>
- Start video source.
- </summary>
-
- <remarks><para>Starts the nested video source and returns execution to caller. This object creates
- an extra thread which is used to fire <see cref="E:AForge.Video.AsyncVideoSource.NewFrame"/> events, so the image processing could be
- done on another thread without blocking video acquisition thread.</para></remarks>
-
- </member>
- <member name="M:AForge.Video.AsyncVideoSource.SignalToStop">
- <summary>
- Signal video source to stop its work.
- </summary>
-
- <remarks><para>Signals video source to stop its background thread, stop to
- provide new frames and free resources.</para></remarks>
-
- </member>
- <member name="M:AForge.Video.AsyncVideoSource.WaitForStop">
- <summary>
- Wait for video source has stopped.
- </summary>
-
- <remarks><para>Waits for video source stopping after it was signalled to stop using
- <see cref="M:AForge.Video.AsyncVideoSource.SignalToStop"/> method.</para></remarks>
-
- </member>
- <member name="M:AForge.Video.AsyncVideoSource.Stop">
- <summary>
- Stop video source.
- </summary>
-
- <remarks><para>Stops nested video source by calling its <see cref="M:AForge.Video.IVideoSource.Stop"/> method.
- See documentation of the particular video source for additional details.</para></remarks>
-
- </member>
- <member name="E:AForge.Video.AsyncVideoSource.NewFrame">
- <summary>
- New frame event.
- </summary>
-
- <remarks><para>Notifies clients about new available frame from video source.</para>
-
- <para><note>This event is fired from a different thread other than the video acquisition thread created
- by <see cref="P:AForge.Video.AsyncVideoSource.NestedVideoSource"/>. This allows nested video frame to continue acquisition of the next
- video frame while clients perform processing of the current video frame.</note></para>
-
- <para><note>Since video source may have multiple clients, each client is responsible for
- making a copy (cloning) of the passed video frame, because the video source disposes its
- own original copy after notifying of clients.</note></para>
- </remarks>
-
- </member>
- <member name="E:AForge.Video.AsyncVideoSource.VideoSourceError">
- <summary>
- Video source error event.
- </summary>
-
- <remarks><para>This event is used to notify clients about any type of errors occurred in
- video source object, for example internal exceptions.</para>
-
- <para><note>Unlike <see cref="E:AForge.Video.AsyncVideoSource.NewFrame"/> event, this event is simply redirected to the corresponding
- event of the <see cref="P:AForge.Video.AsyncVideoSource.NestedVideoSource"/>, so it is fired from the thread of the nested video source.</note></para>
- </remarks>
-
- </member>
- <member name="E:AForge.Video.AsyncVideoSource.PlayingFinished">
- <summary>
- Video playing finished event.
- </summary>
-
- <remarks><para>This event is used to notify clients that the video playing has finished.</para>
-
- <para><note>Unlike <see cref="E:AForge.Video.AsyncVideoSource.NewFrame"/> event, this event is simply redirected to the corresponding
- event of the <see cref="P:AForge.Video.AsyncVideoSource.NestedVideoSource"/>, so it is fired from the thread of the nested video source.</note></para>
- </remarks>
-
- </member>
- <member name="P:AForge.Video.AsyncVideoSource.NestedVideoSource">
- <summary>
- Nested video source which is the target for asynchronous processing.
- </summary>
-
- <remarks><para>The property is set through the class constructor.</para>
-
- <para>All calls to this object are actually redirected to the nested video source. The only
- exception is the <see cref="E:AForge.Video.AsyncVideoSource.NewFrame"/> event, which is handled differently. This object gets
- <see cref="E:AForge.Video.IVideoSource.NewFrame"/> event from the nested class and then fires another
- <see cref="E:AForge.Video.AsyncVideoSource.NewFrame"/> event, but from a different thread.</para>
- </remarks>
-
- </member>
- <member name="P:AForge.Video.AsyncVideoSource.SkipFramesIfBusy">
- <summary>
- Specifies if the object should skip frames from the nested video source when it is busy.
- </summary>
-
- <remarks><para>Specifies if the object should skip frames from the nested video source
- in the case if it is still busy processing the previous video frame in its own thread.</para>
-
- <para>Default value is set to <see langword="false"/>.</para></remarks>
-
- </member>
- <member name="P:AForge.Video.AsyncVideoSource.Source">
- <summary>
- Video source string.
- </summary>
-
- <remarks><para>The property is redirected to the corresponding property of <see cref="P:AForge.Video.AsyncVideoSource.NestedVideoSource"/>,
- so check its documentation to find what it means.</para></remarks>
-
- </member>
- <member name="P:AForge.Video.AsyncVideoSource.FramesReceived">
- <summary>
- Received frames count.
- </summary>
-
- <remarks><para>Number of frames the <see cref="P:AForge.Video.AsyncVideoSource.NestedVideoSource">nested video source</see> received from
- the moment of the last access to the property.</para>
- </remarks>
-
- </member>
- <member name="P:AForge.Video.AsyncVideoSource.BytesReceived">
- <summary>
- Received bytes count.
- </summary>
-
- <remarks><para>Number of bytes the <see cref="P:AForge.Video.AsyncVideoSource.NestedVideoSource">nested video source</see> received from
- the moment of the last access to the property.</para></remarks>
-
- </member>
- <member name="P:AForge.Video.AsyncVideoSource.FramesProcessed">
- <summary>
- Processed frames count.
- </summary>
-
- <remarks><para>The property keeps the number of processed video frames since the last access to this property.
- </para>
-
- <para>The value of this property equals to <see cref="P:AForge.Video.AsyncVideoSource.FramesReceived"/> in most cases if the
- <see cref="P:AForge.Video.AsyncVideoSource.SkipFramesIfBusy"/> property is set to <see langword="false"/> - every received frame gets processed
- sooner or later. However, if the <see cref="P:AForge.Video.AsyncVideoSource.SkipFramesIfBusy"/> property is set to <see langword="true"/>,
- then value of this property may be lower than the value of the <see cref="P:AForge.Video.AsyncVideoSource.FramesReceived"/> property, which
- means that nested video source performs acquisition faster than client perform processing of the received frame
- and some frame are skipped from processing.</para>
- </remarks>
-
- </member>
- <member name="P:AForge.Video.AsyncVideoSource.IsRunning">
- <summary>
- State of the video source.
- </summary>
-
- <remarks><para>Current state of the video source object - running or not.</para></remarks>
-
- </member>
- <member name="T:AForge.Video.ScreenCaptureStream">
- <summary>
- Screen capture video source.
- </summary>
-
- <remarks><para>The video source constantly captures the desktop screen.</para>
-
- <para>Sample usage:</para>
- <code>
- // get entire desktop area size
- Rectangle screenArea = Rectangle.Empty;
- foreach ( System.Windows.Forms.Screen screen in
- System.Windows.Forms.Screen.AllScreens )
- {
- screenArea = Rectangle.Union( screenArea, screen.Bounds );
- }
-
- // create screen capture video source
- ScreenCaptureStream stream = new ScreenCaptureStream( screenArea );
-
- // set NewFrame event handler
- stream.NewFrame += new NewFrameEventHandler( video_NewFrame );
-
- // start the video source
- stream.Start( );
-
- // ...
- // signal to stop
- stream.SignalToStop( );
- // ...
-
- private void video_NewFrame( object sender, NewFrameEventArgs eventArgs )
- {
- // get new frame
- Bitmap bitmap = eventArgs.Frame;
- // process the frame
- }
- </code>
- </remarks>
-
- </member>
- <member name="M:AForge.Video.ScreenCaptureStream.#ctor(System.Drawing.Rectangle)">
- <summary>
- Initializes a new instance of the <see cref="T:AForge.Video.ScreenCaptureStream"/> class.
- </summary>
-
- <param name="region">Screen's rectangle to capture (the rectangle may cover multiple displays).</param>
-
- </member>
- <member name="M:AForge.Video.ScreenCaptureStream.#ctor(System.Drawing.Rectangle,System.Int32)">
- <summary>
- Initializes a new instance of the <see cref="T:AForge.Video.ScreenCaptureStream"/> class.
- </summary>
-
- <param name="region">Screen's rectangle to capture (the rectangle may cover multiple displays).</param>
- <param name="frameInterval">Time interval between making screen shots, ms.</param>
-
- </member>
- <member name="M:AForge.Video.ScreenCaptureStream.Start">
- <summary>
- Start video source.
- </summary>
-
- <remarks>Starts video source and return execution to caller. Video source
- object creates background thread and notifies about new frames with the
- help of <see cref="E:AForge.Video.ScreenCaptureStream.NewFrame"/> event.</remarks>
-
- <exception cref="T:System.ArgumentException">Video source is not specified.</exception>
-
- </member>
- <member name="M:AForge.Video.ScreenCaptureStream.SignalToStop">
- <summary>
- Signal video source to stop its work.
- </summary>
-
- <remarks>Signals video source to stop its background thread, stop to
- provide new frames and free resources.</remarks>
-
- </member>
- <member name="M:AForge.Video.ScreenCaptureStream.WaitForStop">
- <summary>
- Wait for video source has stopped.
- </summary>
-
- <remarks>Waits for source stopping after it was signalled to stop using
- <see cref="M:AForge.Video.ScreenCaptureStream.SignalToStop"/> method.</remarks>
-
- </member>
- <member name="M:AForge.Video.ScreenCaptureStream.Stop">
- <summary>
- Stop video source.
- </summary>
-
- <remarks><para>Stops video source aborting its thread.</para>
-
- <para><note>Since the method aborts background thread, its usage is highly not preferred
- and should be done only if there are no other options. The correct way of stopping camera
- is <see cref="M:AForge.Video.ScreenCaptureStream.SignalToStop">signaling it stop</see> and then
- <see cref="M:AForge.Video.ScreenCaptureStream.WaitForStop">waiting</see> for background thread's completion.</note></para>
- </remarks>
-
- </member>
- <member name="M:AForge.Video.ScreenCaptureStream.Free">
- <summary>
- Free resource.
- </summary>
-
- </member>
- <member name="E:AForge.Video.ScreenCaptureStream.NewFrame">
- <summary>
- New frame event.
- </summary>
-
- <remarks><para>Notifies clients about new available frame from video source.</para>
-
- <para><note>Since video source may have multiple clients, each client is responsible for
- making a copy (cloning) of the passed video frame, because the video source disposes its
- own original copy after notifying of clients.</note></para>
- </remarks>
-
- </member>
- <member name="E:AForge.Video.ScreenCaptureStream.VideoSourceError">
- <summary>
- Video source error event.
- </summary>
-
- <remarks>This event is used to notify clients about any type of errors occurred in
- video source object, for example internal exceptions.</remarks>
-
- </member>
- <member name="E:AForge.Video.ScreenCaptureStream.PlayingFinished">
- <summary>
- Video playing finished event.
- </summary>
-
- <remarks><para>This event is used to notify clients that the video playing has finished.</para>
- </remarks>
-
- </member>
- <member name="P:AForge.Video.ScreenCaptureStream.Source">
- <summary>
- Video source.
- </summary>
-
- </member>
- <member name="P:AForge.Video.ScreenCaptureStream.Region">
- <summary>
- Gets or sets the screen capture region.
- </summary>
-
- <remarks><para>This property specifies which region (rectangle) of the screen to capture. It may cover multiple displays
- if those are available in the system.</para>
-
- <para><note>The property must be set before starting video source to have any effect.</note></para>
- </remarks>
-
- </member>
- <member name="P:AForge.Video.ScreenCaptureStream.FrameInterval">
- <summary>
- Time interval between making screen shots, ms.
- </summary>
-
- <remarks><para>The property specifies time interval in milliseconds between consequent screen captures.
- Expected frame rate of the stream should be approximately 1000/FrameInteval.</para>
-
- <para>If the property is set to 0, then the stream will capture screen as fast as the system allows.</para>
-
- <para>Default value is set to <b>100</b>.</para>
- </remarks>
-
- </member>
- <member name="P:AForge.Video.ScreenCaptureStream.FramesReceived">
- <summary>
- Received frames count.
- </summary>
-
- <remarks>Number of frames the video source provided from the moment of the last
- access to the property.
- </remarks>
-
- </member>
- <member name="P:AForge.Video.ScreenCaptureStream.BytesReceived">
- <summary>
- Received bytes count.
- </summary>
-
- <remarks><para><note>The property is not implemented for this video source and always returns 0.</note></para>
- </remarks>
-
- </member>
- <member name="P:AForge.Video.ScreenCaptureStream.IsRunning">
- <summary>
- State of the video source.
- </summary>
-
- <remarks>Current state of video source object - running or not.</remarks>
-
- </member>
- <member name="T:AForge.Video.MJPEGStream">
- <summary>
- MJPEG video source.
- </summary>
-
- <remarks><para>The video source downloads JPEG images from the specified URL, which represents
- MJPEG stream.</para>
-
- <para>Sample usage:</para>
- <code>
- // create MJPEG video source
- MJPEGStream stream = new MJPEGStream( "some url" );
- // set event handlers
- stream.NewFrame += new NewFrameEventHandler( video_NewFrame );
- // start the video source
- stream.Start( );
- // ...
- </code>
-
- <para><note>Some cameras produce HTTP header, which does not conform strictly to
- standard, what leads to .NET exception. To avoid this exception the <b>useUnsafeHeaderParsing</b>
- configuration option of <b>httpWebRequest</b> should be set, what may be done using application
- configuration file.</note></para>
- <code>
- <configuration>
- <system.net>
- <settings>
- <httpWebRequest useUnsafeHeaderParsing="true" />
- </settings>
- </system.net>
- </configuration>
- </code>
- </remarks>
-
- </member>
- <member name="M:AForge.Video.MJPEGStream.#ctor">
- <summary>
- Initializes a new instance of the <see cref="T:AForge.Video.MJPEGStream"/> class.
- </summary>
-
- </member>
- <member name="M:AForge.Video.MJPEGStream.#ctor(System.String)">
- <summary>
- Initializes a new instance of the <see cref="T:AForge.Video.MJPEGStream"/> class.
- </summary>
-
- <param name="source">URL, which provides MJPEG stream.</param>
-
- </member>
- <member name="M:AForge.Video.MJPEGStream.Start">
- <summary>
- Start video source.
- </summary>
-
- <remarks>Starts video source and return execution to caller. Video source
- object creates background thread and notifies about new frames with the
- help of <see cref="E:AForge.Video.MJPEGStream.NewFrame"/> event.</remarks>
-
- <exception cref="T:System.ArgumentException">Video source is not specified.</exception>
-
- </member>
- <member name="M:AForge.Video.MJPEGStream.SignalToStop">
- <summary>
- Signal video source to stop its work.
- </summary>
-
- <remarks>Signals video source to stop its background thread, stop to
- provide new frames and free resources.</remarks>
-
- </member>
- <member name="M:AForge.Video.MJPEGStream.WaitForStop">
- <summary>
- Wait for video source has stopped.
- </summary>
-
- <remarks>Waits for source stopping after it was signalled to stop using
- <see cref="M:AForge.Video.MJPEGStream.SignalToStop"/> method.</remarks>
-
- </member>
- <member name="M:AForge.Video.MJPEGStream.Stop">
- <summary>
- Stop video source.
- </summary>
-
- <remarks><para>Stops video source aborting its thread.</para>
-
- <para><note>Since the method aborts background thread, its usage is highly not preferred
- and should be done only if there are no other options. The correct way of stopping camera
- is <see cref="M:AForge.Video.MJPEGStream.SignalToStop">signaling it stop</see> and then
- <see cref="M:AForge.Video.MJPEGStream.WaitForStop">waiting</see> for background thread's completion.</note></para>
- </remarks>
-
- </member>
- <member name="M:AForge.Video.MJPEGStream.Free">
- <summary>
- Free resource.
- </summary>
-
- </member>
- <member name="E:AForge.Video.MJPEGStream.NewFrame">
- <summary>
- New frame event.
- </summary>
-
- <remarks><para>Notifies clients about new available frame from video source.</para>
-
- <para><note>Since video source may have multiple clients, each client is responsible for
- making a copy (cloning) of the passed video frame, because the video source disposes its
- own original copy after notifying of clients.</note></para>
- </remarks>
-
- </member>
- <member name="E:AForge.Video.MJPEGStream.VideoSourceError">
- <summary>
- Video source error event.
- </summary>
-
- <remarks>This event is used to notify clients about any type of errors occurred in
- video source object, for example internal exceptions.</remarks>
-
- </member>
- <member name="E:AForge.Video.MJPEGStream.PlayingFinished">
- <summary>
- Video playing finished event.
- </summary>
-
- <remarks><para>This event is used to notify clients that the video playing has finished.</para>
- </remarks>
-
- </member>
- <member name="P:AForge.Video.MJPEGStream.SeparateConnectionGroup">
- <summary>
- Use or not separate connection group.
- </summary>
-
- <remarks>The property indicates to open web request in separate connection group.</remarks>
-
- </member>
- <member name="P:AForge.Video.MJPEGStream.Source">
- <summary>
- Video source.
- </summary>
-
- <remarks>URL, which provides MJPEG stream.</remarks>
-
- </member>
- <member name="P:AForge.Video.MJPEGStream.Login">
- <summary>
- Login value.
- </summary>
-
- <remarks>Login required to access video source.</remarks>
-
- </member>
- <member name="P:AForge.Video.MJPEGStream.Password">
- <summary>
- Password value.
- </summary>
-
- <remarks>Password required to access video source.</remarks>
-
- </member>
- <member name="P:AForge.Video.MJPEGStream.Proxy">
- <summary>
- Gets or sets proxy information for the request.
- </summary>
-
- <remarks><para>The local computer or application config file may specify that a default
- proxy to be used. If the Proxy property is specified, then the proxy settings from the Proxy
- property overridea the local computer or application config file and the instance will use
- the proxy settings specified. If no proxy is specified in a config file
- and the Proxy property is unspecified, the request uses the proxy settings
- inherited from Internet Explorer on the local computer. If there are no proxy settings
- in Internet Explorer, the request is sent directly to the server.
- </para></remarks>
-
- </member>
- <member name="P:AForge.Video.MJPEGStream.HttpUserAgent">
- <summary>
- User agent to specify in HTTP request header.
- </summary>
-
- <remarks><para>Some IP cameras check what is the requesting user agent and depending
- on it they provide video in different formats or do not provide it at all. The property
- sets the value of user agent string, which is sent to camera in request header.
- </para>
-
- <para>Default value is set to "Mozilla/5.0". If the value is set to <see langword="null"/>,
- the user agent string is not sent in request header.</para>
- </remarks>
-
- </member>
- <member name="P:AForge.Video.MJPEGStream.FramesReceived">
- <summary>
- Received frames count.
- </summary>
-
- <remarks>Number of frames the video source provided from the moment of the last
- access to the property.
- </remarks>
-
- </member>
- <member name="P:AForge.Video.MJPEGStream.BytesReceived">
- <summary>
- Received bytes count.
- </summary>
-
- <remarks>Number of bytes the video source provided from the moment of the last
- access to the property.
- </remarks>
-
- </member>
- <member name="P:AForge.Video.MJPEGStream.RequestTimeout">
- <summary>
- Request timeout value.
- </summary>
-
- <remarks>The property sets timeout value in milliseconds for web requests.
- Default value is 10000 milliseconds.</remarks>
-
- </member>
- <member name="P:AForge.Video.MJPEGStream.IsRunning">
- <summary>
- State of the video source.
- </summary>
-
- <remarks>Current state of video source object - running or not.</remarks>
-
- </member>
- <member name="P:AForge.Video.MJPEGStream.ForceBasicAuthentication">
- <summary>
- Force using of basic authentication when connecting to the video source.
- </summary>
-
- <remarks><para>For some IP cameras (TrendNET IP cameras, for example) using standard .NET's authentication via credentials
- does not seem to be working (seems like camera does not request for authentication, but expects corresponding headers to be
- present on connection request). So this property allows to force basic authentication by adding required HTTP headers when
- request is sent.</para>
-
- <para>Default value is set to <see langword="false"/>.</para>
- </remarks>
-
- </member>
- <member name="T:AForge.Video.VideoException">
- <summary>
- Video related exception.
- </summary>
-
- <remarks><para>The exception is thrown in the case of some video related issues, like
- failure of initializing codec, compression, etc.</para></remarks>
-
- </member>
- <member name="M:AForge.Video.VideoException.#ctor(System.String)">
- <summary>
- Initializes a new instance of the <see cref="T:AForge.Video.VideoException"/> class.
- </summary>
-
- <param name="message">Exception's message.</param>
-
- </member>
- <member name="T:AForge.Video.NewFrameEventHandler">
- <summary>
- Delegate for new frame event handler.
- </summary>
-
- <param name="sender">Sender object.</param>
- <param name="eventArgs">Event arguments.</param>
-
- </member>
- <member name="T:AForge.Video.VideoSourceErrorEventHandler">
- <summary>
- Delegate for video source error event handler.
- </summary>
-
- <param name="sender">Sender object.</param>
- <param name="eventArgs">Event arguments.</param>
-
- </member>
- <member name="T:AForge.Video.PlayingFinishedEventHandler">
- <summary>
- Delegate for playing finished event handler.
- </summary>
-
- <param name="sender">Sender object.</param>
- <param name="reason">Reason of finishing video playing.</param>
-
- </member>
- <member name="T:AForge.Video.ReasonToFinishPlaying">
- <summary>
- Reason of finishing video playing.
- </summary>
-
- <remarks><para>When video source class fire the <see cref="E:AForge.Video.IVideoSource.PlayingFinished"/> event, they
- need to specify reason of finishing video playing. For example, it may be end of stream reached.</para></remarks>
-
- </member>
- <member name="F:AForge.Video.ReasonToFinishPlaying.EndOfStreamReached">
- <summary>
- Video playing has finished because it end was reached.
- </summary>
- </member>
- <member name="F:AForge.Video.ReasonToFinishPlaying.StoppedByUser">
- <summary>
- Video playing has finished because it was stopped by user.
- </summary>
- </member>
- <member name="F:AForge.Video.ReasonToFinishPlaying.DeviceLost">
- <summary>
- Video playing has finished because the device was lost (unplugged).
- </summary>
- </member>
- <member name="F:AForge.Video.ReasonToFinishPlaying.VideoSourceError">
- <summary>
- Video playing has finished because of some error happened the video source (camera, stream, file, etc.).
- A error reporting event usually is fired to provide error information.
- </summary>
- </member>
- <member name="T:AForge.Video.NewFrameEventArgs">
- <summary>
- Arguments for new frame event from video source.
- </summary>
-
- </member>
- <member name="M:AForge.Video.NewFrameEventArgs.#ctor(System.Drawing.Bitmap)">
- <summary>
- Initializes a new instance of the <see cref="T:AForge.Video.NewFrameEventArgs"/> class.
- </summary>
-
- <param name="frame">New frame.</param>
-
- </member>
- <member name="P:AForge.Video.NewFrameEventArgs.Frame">
- <summary>
- New frame from video source.
- </summary>
-
- </member>
- <member name="T:AForge.Video.VideoSourceErrorEventArgs">
- <summary>
- Arguments for video source error event from video source.
- </summary>
-
- </member>
- <member name="M:AForge.Video.VideoSourceErrorEventArgs.#ctor(System.String)">
- <summary>
- Initializes a new instance of the <see cref="T:AForge.Video.VideoSourceErrorEventArgs"/> class.
- </summary>
-
- <param name="description">Error description.</param>
-
- </member>
- <member name="P:AForge.Video.VideoSourceErrorEventArgs.Description">
- <summary>
- Video source error description.
- </summary>
-
- </member>
- <member name="T:AForge.Video.JPEGStream">
- <summary>
- JPEG video source.
- </summary>
-
- <remarks><para>The video source constantly downloads JPEG files from the specified URL.</para>
-
- <para>Sample usage:</para>
- <code>
- // create JPEG video source
- JPEGStream stream = new JPEGStream( "some url" );
- // set NewFrame event handler
- stream.NewFrame += new NewFrameEventHandler( video_NewFrame );
- // start the video source
- stream.Start( );
- // ...
- // signal to stop
- stream.SignalToStop( );
- // ...
-
- private void video_NewFrame( object sender, NewFrameEventArgs eventArgs )
- {
- // get new frame
- Bitmap bitmap = eventArgs.Frame;
- // process the frame
- }
- </code>
-
- <para><note>Some cameras produce HTTP header, which does not conform strictly to
- standard, what leads to .NET exception. To avoid this exception the <b>useUnsafeHeaderParsing</b>
- configuration option of <b>httpWebRequest</b> should be set, what may be done using application
- configuration file.</note></para>
- <code>
- <configuration>
- <system.net>
- <settings>
- <httpWebRequest useUnsafeHeaderParsing="true" />
- </settings>
- </system.net>
- </configuration>
- </code>
- </remarks>
-
- </member>
- <member name="M:AForge.Video.JPEGStream.#ctor">
- <summary>
- Initializes a new instance of the <see cref="T:AForge.Video.JPEGStream"/> class.
- </summary>
-
- </member>
- <member name="M:AForge.Video.JPEGStream.#ctor(System.String)">
- <summary>
- Initializes a new instance of the <see cref="T:AForge.Video.JPEGStream"/> class.
- </summary>
-
- <param name="source">URL, which provides JPEG files.</param>
-
- </member>
- <member name="M:AForge.Video.JPEGStream.Start">
- <summary>
- Start video source.
- </summary>
-
- <remarks>Starts video source and return execution to caller. Video source
- object creates background thread and notifies about new frames with the
- help of <see cref="E:AForge.Video.JPEGStream.NewFrame"/> event.</remarks>
-
- <exception cref="T:System.ArgumentException">Video source is not specified.</exception>
-
- </member>
- <member name="M:AForge.Video.JPEGStream.SignalToStop">
- <summary>
- Signal video source to stop its work.
- </summary>
-
- <remarks>Signals video source to stop its background thread, stop to
- provide new frames and free resources.</remarks>
-
- </member>
- <member name="M:AForge.Video.JPEGStream.WaitForStop">
- <summary>
- Wait for video source has stopped.
- </summary>
-
- <remarks>Waits for source stopping after it was signalled to stop using
- <see cref="M:AForge.Video.JPEGStream.SignalToStop"/> method.</remarks>
-
- </member>
- <member name="M:AForge.Video.JPEGStream.Stop">
- <summary>
- Stop video source.
- </summary>
-
- <remarks><para>Stops video source aborting its thread.</para>
-
- <para><note>Since the method aborts background thread, its usage is highly not preferred
- and should be done only if there are no other options. The correct way of stopping camera
- is <see cref="M:AForge.Video.JPEGStream.SignalToStop">signaling it stop</see> and then
- <see cref="M:AForge.Video.JPEGStream.WaitForStop">waiting</see> for background thread's completion.</note></para>
- </remarks>
-
- </member>
- <member name="M:AForge.Video.JPEGStream.Free">
- <summary>
- Free resource.
- </summary>
-
- </member>
- <member name="E:AForge.Video.JPEGStream.NewFrame">
- <summary>
- New frame event.
- </summary>
-
- <remarks><para>Notifies clients about new available frame from video source.</para>
-
- <para><note>Since video source may have multiple clients, each client is responsible for
- making a copy (cloning) of the passed video frame, because the video source disposes its
- own original copy after notifying of clients.</note></para>
- </remarks>
-
- </member>
- <member name="E:AForge.Video.JPEGStream.VideoSourceError">
- <summary>
- Video source error event.
- </summary>
-
- <remarks>This event is used to notify clients about any type of errors occurred in
- video source object, for example internal exceptions.</remarks>
-
- </member>
- <member name="E:AForge.Video.JPEGStream.PlayingFinished">
- <summary>
- Video playing finished event.
- </summary>
-
- <remarks><para>This event is used to notify clients that the video playing has finished.</para>
- </remarks>
-
- </member>
- <member name="P:AForge.Video.JPEGStream.SeparateConnectionGroup">
- <summary>
- Use or not separate connection group.
- </summary>
-
- <remarks>The property indicates to open web request in separate connection group.</remarks>
-
- </member>
- <member name="P:AForge.Video.JPEGStream.PreventCaching">
- <summary>
- Use or not caching.
- </summary>
-
- <remarks>If the property is set to <b>true</b>, then a fake random parameter will be added
- to URL to prevent caching. It's required for clients, who are behind proxy server.</remarks>
-
- </member>
- <member name="P:AForge.Video.JPEGStream.FrameInterval">
- <summary>
- Frame interval.
- </summary>
-
- <remarks>The property sets the interval in milliseconds betwen frames. If the property is
- set to 100, then the desired frame rate will be 10 frames per second. Default value is 0 -
- get new frames as fast as possible.</remarks>
-
- </member>
- <member name="P:AForge.Video.JPEGStream.Source">
- <summary>
- Video source.
- </summary>
-
- <remarks>URL, which provides JPEG files.</remarks>
-
- </member>
- <member name="P:AForge.Video.JPEGStream.Login">
- <summary>
- Login value.
- </summary>
-
- <remarks>Login required to access video source.</remarks>
-
- </member>
- <member name="P:AForge.Video.JPEGStream.Password">
- <summary>
- Password value.
- </summary>
-
- <remarks>Password required to access video source.</remarks>
-
- </member>
- <member name="P:AForge.Video.JPEGStream.Proxy">
- <summary>
- Gets or sets proxy information for the request.
- </summary>
-
- <remarks><para>The local computer or application config file may specify that a default
- proxy to be used. If the Proxy property is specified, then the proxy settings from the Proxy
- property overridea the local computer or application config file and the instance will use
- the proxy settings specified. If no proxy is specified in a config file
- and the Proxy property is unspecified, the request uses the proxy settings
- inherited from Internet Explorer on the local computer. If there are no proxy settings
- in Internet Explorer, the request is sent directly to the server.
- </para></remarks>
-
- </member>
- <member name="P:AForge.Video.JPEGStream.FramesReceived">
- <summary>
- Received frames count.
- </summary>
-
- <remarks>Number of frames the video source provided from the moment of the last
- access to the property.
- </remarks>
-
- </member>
- <member name="P:AForge.Video.JPEGStream.BytesReceived">
- <summary>
- Received bytes count.
- </summary>
-
- <remarks>Number of bytes the video source provided from the moment of the last
- access to the property.
- </remarks>
-
- </member>
- <member name="P:AForge.Video.JPEGStream.RequestTimeout">
- <summary>
- Request timeout value.
- </summary>
-
- <remarks><para>The property sets timeout value in milliseconds for web requests.</para>
-
- <para>Default value is set <b>10000</b> milliseconds.</para></remarks>
-
- </member>
- <member name="P:AForge.Video.JPEGStream.IsRunning">
- <summary>
- State of the video source.
- </summary>
-
- <remarks>Current state of video source object - running or not.</remarks>
-
- </member>
- <member name="P:AForge.Video.JPEGStream.ForceBasicAuthentication">
- <summary>
- Force using of basic authentication when connecting to the video source.
- </summary>
-
- <remarks><para>For some IP cameras (TrendNET IP cameras, for example) using standard .NET's authentication via credentials
- does not seem to be working (seems like camera does not request for authentication, but expects corresponding headers to be
- present on connection request). So this property allows to force basic authentication by adding required HTTP headers when
- request is sent.</para>
-
- <para>Default value is set to <see langword="false"/>.</para>
- </remarks>
-
- </member>
- <member name="T:AForge.Video.ByteArrayUtils">
- <summary>
- Some internal utilities for handling arrays.
- </summary>
-
- </member>
- <member name="M:AForge.Video.ByteArrayUtils.Compare(System.Byte[],System.Byte[],System.Int32)">
- <summary>
- Check if the array contains needle at specified position.
- </summary>
-
- <param name="array">Source array to check for needle.</param>
- <param name="needle">Needle we are searching for.</param>
- <param name="startIndex">Start index in source array.</param>
-
- <returns>Returns <b>true</b> if the source array contains the needle at
- the specified index. Otherwise it returns <b>false</b>.</returns>
-
- </member>
- <member name="M:AForge.Video.ByteArrayUtils.Find(System.Byte[],System.Byte[],System.Int32,System.Int32)">
- <summary>
- Find subarray in the source array.
- </summary>
-
- <param name="array">Source array to search for needle.</param>
- <param name="needle">Needle we are searching for.</param>
- <param name="startIndex">Start index in source array.</param>
- <param name="sourceLength">Number of bytes in source array, where the needle is searched for.</param>
-
- <returns>Returns starting position of the needle if it was found or <b>-1</b> otherwise.</returns>
-
- </member>
- </members>
- </doc>
|