Private/Get-EbmlElementID.ps1
|
function Get-EbmlElementID { <# .SYNOPSIS Reads an EBML Element ID (1-4 bytes) from a byte stream. .PARAMETER Buffer Byte array to read from .PARAMETER Offset Starting position in buffer .OUTPUTS [hashtable] @{ ElementID = [byte[]], Length = [int] } #> [CmdletBinding()] param( [Parameter(Mandatory=$true)] [byte[]]$Buffer, [Parameter(Mandatory=$true)] [int]$Offset ) $firstByte = $Buffer[$Offset] $elementLength = Get-EbmlUIntLength -LengthDescriptor $firstByte $elementID = New-Object byte[] $elementLength [System.Array]::Copy($Buffer, $Offset, $elementID, 0, $elementLength) return @{ ElementID = $elementID Length = $elementLength } } |