Harlinn.Windows 0.1
Loading...
Searching...
No Matches
Harlinn::Windows::Media::MediaBuffer Class Reference

Wrapper for the IMediaBuffer interface which provides methods for manipulating a data buffer. Buffers passed to the IMediaObject::ProcessInput and ProcessOutput methods must implement this interface. More...

#include <HWMediaObj.h>

Inheritance diagram for Harlinn::Windows::Media::MediaBuffer:
[legend]
Collaboration diagram for Harlinn::Windows::Media::MediaBuffer:
[legend]

Public Member Functions

void SetLength (DWORD length) const
 Specifies the length of the data currently in the buffer.
 
void GetMaxLength (DWORD *maxLength) const
 Retrieves the maximum number of bytes this buffer can hold.
 
DWORD GetMaxLength () const
 
void GetBufferAndLength (BYTE **buffer, DWORD *length) const
 Retrieves the buffer and the size of the valid data in the buffer.
 
std::span< BYTE > GetBufferAndLength () const
 
- Public Member Functions inherited from Harlinn::Common::Core::Unknown
constexpr Unknown () noexcept
 
 Unknown (IUnknown *unknown, bool addref=false) noexcept
 
 Unknown (REFIID iid, const Unknown &unknown, bool throwIfNoInterface=true)
 
 Unknown (const Unknown &other) noexcept
 
 Unknown (Unknown &&other) noexcept
 
 ~Unknown () noexcept
 
constexpr operator bool () const noexcept
 
Unknownoperator= (const Unknown &other) noexcept
 
Unknownoperator= (Unknown &&other) noexcept
 
void swap (Unknown &other) noexcept
 
void ResetPtr (IUnknown *other=nullptr, bool addRef=false) noexcept
 
Unknownoperator= (nullptr_t)
 
IUnknown * Detach ()
 
template<typename T >
requires std::is_base_of_v<Unknown, T >
T As () const
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
bool Is () const noexcept
 
template<typename T >
requires std::is_base_of_v<IUnknown, T>
ComPtr< TAs () const
 
template<typename T >
requires std::is_base_of_v<IUnknown, T>
bool Is () const noexcept
 This function can be used to detect if an object supports a particular COM interface derived from IUnknown.
 
template<typename T = IUnknown>
TGetInterfacePointer () const noexcept
 
bool QueryInterface (REFIID riid, void **itf) const
 Queries a COM object for a pointer to one of its interface; identifying the interface by a reference to its interface identifier (IID). If the COM object implements the interface, then it returns a pointer to that interface after calling IUnknown::AddRef on it.
 
template<typename T >
requires std::is_base_of_v<IUnknown, T>
bool QueryInterface (T **itf) const
 
constexpr bool operator== (const Unknown &other) const noexcept
 
constexpr bool operator!= (const Unknown &other) const noexcept
 
constexpr bool operator== (const IUnknown *other) const noexcept
 
constexpr bool operator!= (const IUnknown *other) const noexcept
 

Additional Inherited Members

- Public Types inherited from Harlinn::Common::Core::Unknown
typedef IUnknown InterfaceType
 
- Static Public Member Functions inherited from Harlinn::Common::Core::Unknown
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromClassId (const CLSID &clsid, DWORD classContext=CLSCTX_INPROC_SERVER)
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromClassId (const wchar_t *clsid, DWORD classContext=CLSCTX_INPROC_SERVER)
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromClassId (const WideString &clsid, DWORD classContext=CLSCTX_INPROC_SERVER)
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromProgId (const wchar_t *progId, DWORD classContext=CLSCTX_INPROC_SERVER)
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromProgId (const WideString &progId, DWORD classContext=CLSCTX_INPROC_SERVER)
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromDll (const ModuleHandle &dll, const CLSID &clsid)
 
- Protected Attributes inherited from Harlinn::Common::Core::Unknown
IUnknown * unknown_
 

Detailed Description

Wrapper for the IMediaBuffer interface which provides methods for manipulating a data buffer. Buffers passed to the IMediaObject::ProcessInput and ProcessOutput methods must implement this interface.

Member Function Documentation

◆ GetBufferAndLength() [1/2]

std::span< BYTE > Harlinn::Windows::Media::MediaBuffer::GetBufferAndLength ( ) const
inline

◆ GetBufferAndLength() [2/2]

void Harlinn::Windows::Media::MediaBuffer::GetBufferAndLength ( BYTE ** buffer,
DWORD * length ) const
inline

Retrieves the buffer and the size of the valid data in the buffer.

Parameters
bufferAddress of a pointer that receives the buffer array. Can be nullptr if length is not nullptr.
lengthPointer to a variable that receives the size of the valid data, in bytes. Can be nullptr if buffer is not nullptr.

◆ GetMaxLength() [1/2]

DWORD Harlinn::Windows::Media::MediaBuffer::GetMaxLength ( ) const
inline

◆ GetMaxLength() [2/2]

void Harlinn::Windows::Media::MediaBuffer::GetMaxLength ( DWORD * maxLength) const
inline

Retrieves the maximum number of bytes this buffer can hold.

Parameters
maxLengthPointer to a variable that receives the buffer's maximum size, in bytes.

◆ SetLength()

void Harlinn::Windows::Media::MediaBuffer::SetLength ( DWORD length) const
inline

Specifies the length of the data currently in the buffer.

Parameters
lengthSize of the data, in bytes. The value must not exceed the buffer's maximum size. Call the MediaBuffer::GetMaxLength function to obtain the maximum size.

The documentation for this class was generated from the following file: