LEADTOOLS Multimedia (Leadtools.Multimedia assembly)
LEAD Technologies, Inc

EstimateOutputSize Method (ConvertCtrl)

Example 





Value that represents the duration in seconds for which to calculate the estimated output size. Pass -1 to estimate the conversion output size for the entire file duration.
Gets the estimated conversion output size for the specified duration, in bytes.
Syntax
public virtual double EstimateOutputSize( 
   double duration
)
'Declaration
 
Public Overridable Function EstimateOutputSize( _
   ByVal duration As Double _
) As Double
'Usage
 
Dim instance As ConvertCtrl
Dim duration As Double
Dim value As Double
 
value = instance.EstimateOutputSize(duration)
public virtual double EstimateOutputSize( 
   double duration
)
 function Leadtools.Multimedia.ConvertCtrl.EstimateOutputSize( 
   duration 
)
public:
virtual double EstimateOutputSize( 
   double duration
) 

Parameters

duration
Value that represents the duration in seconds for which to calculate the estimated output size. Pass -1 to estimate the conversion output size for the entire file duration.

Return Value

A value that represents the conversion estimated output size.
Remarks
The estimated output size is calculated using the following equation: Size = (Bitrate * Duration) / 8. The retrieved size depends on the state of the convert 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 conversion settings and the selected encoding settings.
Example
Copy CodeCopy Code  
Public _result As Boolean = False
      Public _form As ConvertCtrlForm = New ConvertCtrlForm()
      Public _convertctrl As ConvertCtrl
      Public _estBitRate As Integer = 0
      Public _estFileSize As Double = 0.0
      Public Sub EstimateExample()
         ' reference the convert control
         _convertctrl = _form.ConvertCtrl

         ' input and output files
         Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "ConvertCtrl_Source.avi")
         Dim outFile As String = Path.Combine(LEAD_VARS.MediaDir, "ConvertCtrl_EstimateOutputBitRateExample.avi")

         Try
            ' set the source video
            _convertctrl.SourceFile = inFile

            ' set video and audio compressors
            _convertctrl.VideoCompressors.H264.Selected = True
            _convertctrl.AudioCompressors.AC3.Selected = True

            ' subscribe to the progress event
            AddHandler _convertctrl.Progress, AddressOf ConvertCtrl_Progress

            ' set the capture target file
            _convertctrl.TargetFile = outFile

            ' set the capture mode to still and start
            _convertctrl.StartConvert()

            ' we'll loop on the state and pump messages for this example.
            ' but you should not need to if running from a Windows Forms application.
            Do While _convertctrl.State = ConvertState.Running
               Application.DoEvents()
            Loop

            ' set the result to what we expect
            _result = (_estBitRate <> 0 AndAlso _estFileSize <> 0.0)
         Catch e1 As Exception
            _result = False
         End Try
      End Sub

      Private Sub ConvertCtrl_Progress(ByVal sender As Object, ByVal e As ProgressEventArgs)
         ' get the bit rate estimate
             ' we will get called multiple times throughout the conversion process
         ' but for this example it is ok just to use the last received estimate
         _estBitRate = _convertctrl.EstimateOutputBitRate()

         ' get the file size estimate
         _estFileSize = _convertctrl.EstimateOutputSize(CDbl(e.time))
      End Sub

Public NotInheritable Class LEAD_VARS
   Public Const MediaDir As String = "C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 175\Media";
End Class
public bool _result = false;
      public ConvertCtrlForm _form = new ConvertCtrlForm();
      public ConvertCtrl _convertctrl;
      public int _estBitRate = 0;
      public double _estFileSize = 0.0;
      public void EstimateExample()
      {
         // reference the convert control
         _convertctrl = _form.ConvertCtrl;

         // input and output files
         string inFile = Path.Combine(LEAD_VARS.MediaDir,"ConvertCtrl_Source.avi");
         string outFile = Path.Combine(LEAD_VARS.MediaDir,"ConvertCtrl_EstimateOutputBitRateExample.avi");

         try
         {
            // set the source video
            _convertctrl.SourceFile = inFile;

            // set video and audio compressors
            _convertctrl.VideoCompressors.H264.Selected = true;
            _convertctrl.AudioCompressors.AC3.Selected = true;

            // subscribe to the progress event
            _convertctrl.Progress += new ProgressEventHandler(ConvertCtrl_Progress);

            // set the capture target file
            _convertctrl.TargetFile = outFile;

            // set the capture mode to still and start
            _convertctrl.StartConvert();

            // we'll loop on the state and pump messages for this example.
            // but you should not need to if running from a Windows Forms application.
            while (_convertctrl.State == ConvertState.Running)
               Application.DoEvents();

            // set the result to what we expect
            _result = (_estBitRate != 0 && _estFileSize != 0.0);
         }
         catch (Exception)
         {
            _result = false;
         }
      }

      void ConvertCtrl_Progress(object sender, ProgressEventArgs e)
      {
         // get the bit rate estimate
         // we will get called multiple time throughout the conversion process
         // but for this example it is ok just to use the last received estimate
         _estBitRate = _convertctrl.EstimateOutputBitRate();

         // get the file size estimate
         _estFileSize = _convertctrl.EstimateOutputSize((double)e.time);
      }

static class LEAD_VARS
{
   public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 175\Media";
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

ConvertCtrl Class
ConvertCtrl Members

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.Multimedia requires a Multimedia or Multimedia Suite license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features