Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Download Visual Studio Add-In

AVIStreamReadFormat (avifil32)
 
.
Summary
The AVIStreamReadFormat function reads the stream format data.

C# Signature:

[DllImport("avifil32.dll")]
static extern int AVIStreamReadFormat(IntPtr pavi, int lPos, out WAVEFORMATEX lpFormat, out int lpcbFormat);

VB Signature:

  'Read the format for a Video stream
    <DllImport("avifil32.dll", entrypoint:="AVIStreamReadFormat")> _
      Public Shared Function AVIStreamReadFormat(ByVal aviStream As IntPtr,
                         ByVal lPos As Int32,
                         ByRef lpFormat As BITMAPINFOHEADER,
                         ByRef cbFormat As Int32) As Integer
    End Function

    'Read the format for a audio stream
    <DllImport("avifil32.dll")> _
    Public Shared Function AVIStreamReadFormat(ByVal aviStream As IntPtr,
                           ByVal lPos As Int32,
                           ByRef lpFormat As PCMWAVEFORMAT,
                           ByRef cbFormat As Int32) As Integer
    End Function

VB Structure:

    Public Structure BITMAPINFOHEADER
    Public biSize As Int32
    Public biWidth As Int32
    Public biHeight As Int32
    Public biPlanes As Int16
    Public biBitCount As Int16
    '<MarshalAs(UnmanagedType.ByValArray, SizeConst:=4)> Public biCompression As Char()  ' for recup directly char (string) FOURCC
    Public biCompression As Int32
    Public biSizeImage As Int32
    Public biXPelsPerMeter As Int32
    Public biYPelsPerMeter As Int32
    Public biClrUsed As Int32
    Public biClrImportant As Int32
    End Structure

   Public Structure PCMWAVEFORMAT
    Public wFormatTag As Short
    Public nChannels As Short
    Public nSamplesPerSec As Integer
    Public nAvgBytesPerSec As Integer
    Public nBlockAlign As Short
    Public wBitsPerSample As Short
    Public cbSize As Short
    End Structure

VB BITMAPINFOHEADER Warning

    Public Shared Function AVIStreamReadFormat2(ByVal aviStream As IntPtr, ByVal lPos As Int32, ByRef lpFormat As BITMAPINFOHEADER, ByRef cbFormat As Int32) As Integer
    Dim hr As Integer = AVIStreamReadFormat(aviStream, lPos, lpFormat, cbFormat)

    If lpFormat.biBitCount > 24 Then
        lpFormat.biBitCount = 32
    ElseIf lpFormat.biBitCount > 16 Then
        lpFormat.biBitCount = 24
    ElseIf lpFormat.biBitCount > 8 Then
        lpFormat.biBitCount = 16
    ElseIf lpFormat.biBitCount > 4 Then
        lpFormat.biBitCount = 8
    ElseIf lpFormat.biBitCount > 0 Then
        lpFormat.biBitCount = 4
    End If

    Return hr
    End Function

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

Please add some!

Documentation

Please edit this page!

Do you have...

  • helpful tips or sample code to share for using this API in managed code?
  • corrections to the existing content?
  • variations of the signature you want to share?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).

 
Access PInvoke.net directly from VS:
Terms of Use
Edit This Page
Find References
Show Printable Version
Revisions