You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							1190 lines
						
					
					
						
							51 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							1190 lines
						
					
					
						
							51 KiB
						
					
					
				
								<?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="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="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="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>
							 | 
						|
								        <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.IVideoSource">
							 | 
						|
								            <summary>
							 | 
						|
								            Video source interface.
							 | 
						|
								            </summary>
							 | 
						|
								            
							 | 
						|
								            <remarks>The interface describes common methods for different type of video sources.</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.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="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="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="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="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="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="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="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="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="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="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>
							 | 
						|
								    </members>
							 | 
						|
								</doc>
							 |