EstimateOutputSize Method

Summary
Gets the estimated capturing output size, in bytes, for the specified duration.
Syntax
C#
VB
C++
public virtual double EstimateOutputSize( 
   double duration 
) 
Public Overridable Function EstimateOutputSize( _ 
   ByVal duration As Double _ 
) As Double 
public: 
virtual double EstimateOutputSize(  
   double duration 
)  

Parameters

duration
A System.Double that represents the duration, in seconds, used to calculate the estimated output size.

Return Value

estimated captured object output size, in bytes.

Remarks

The estimated output size is calculated using the following equation: Size = (Bitrate * Duration) / 8.

The retrieved size depends on the state of the capture object. If the object is in the running state, the retrieved size is related to the actual number of bytes that have been written. If the object is not running, the retrieved size is a theoretical value dependent on the capturing settings and the chosen encoding settings.

Example
C#
VB
using Leadtools; 
using Leadtools.MediaFoundation; 
using LeadtoolsMediaFoundationExamples.Fixtures; 
 
public bool _result = false; 
public CaptureCtrlForm _form = new CaptureCtrlForm(); 
public CaptureCtrl _capturectrl; 
 
public void EstimateExample() 
{ 
   // reference the capture control 
   _capturectrl = _form.CaptureCtrl; 
 
   // output file  
   string outFile = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_EstimateOutputBitRateExample.avi"); 
 
   // set the video capture device, use your capture device name here 
   if (_capturectrl.VideoDevices["USB"] == null) 
      throw new Exception("No USB video device available"); 
 
   _capturectrl.VideoDevices["USB"].Selected = true; 
 
   try 
   { 
      // set the capture target file 
      _capturectrl.TargetFile = outFile; 
 
      // set the capture mode to still and start 
      _capturectrl.ReadyCapture(CaptureMode.Video | CaptureMode.InhibitRun); 
 
      // get the bit rate estimate 
      int bitRate = _capturectrl.EstimateOutputBitRate(); 
 
      // get file size estimate for 60 secs 
      double fileSize = _capturectrl.EstimateOutputSize(60.0); 
 
      // set the result to what we expect 
      _result = (bitRate != 0 && fileSize != 0.0); 
   } 
   catch (Exception) 
   { 
      _result = false; 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string MediaDir = @"C:\LEADTOOLS21\Media"; 
} 
Imports Leadtools 
Imports Leadtools.MediaFoundation 
Imports LeadtoolsMediaFoundationExamples.Fixtures 
 
Public _result As Boolean = False 
Public _form As New CaptureCtrlForm() 
Public _capturectrl As CaptureCtrl 
 
Public Sub EstimateExample() 
   ' reference the capture control 
   _capturectrl = _form.CaptureCtrl 
 
   ' output file  
   Dim outFile As String = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_EstimateOutputBitRateExample.avi") 
 
   ' set the video capture device, use your capture device name here 
   If _capturectrl.VideoDevices("USB") Is Nothing Then 
      Throw New Exception("No USB video device available") 
   End If 
 
   _capturectrl.VideoDevices("USB").Selected = True 
 
   Try 
      ' set the capture target file 
      _capturectrl.TargetFile = outFile 
 
      ' set the capture mode to still and start 
      _capturectrl.ReadyCapture(CaptureMode.Video Or CaptureMode.InhibitRun) 
 
      ' get the bit rate estimate 
      Dim bitRate As Integer = _capturectrl.EstimateOutputBitRate() 
 
      ' get file size estimate for 60 secs 
      Dim fileSize As Double = _capturectrl.EstimateOutputSize(60.0) 
 
      ' set the result to what we expect 
      _result = (bitRate <> 0 AndAlso fileSize <> 0.0) 
   Catch generatedExceptionName As Exception 
      _result = False 
   End Try 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const MediaDir As String = "C:\LEADTOOLS21\Media" 
End Class 
Requirements

Target Platforms

Help Version 21.0.2021.7.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.MediaFoundation Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.