mirror of
https://github.com/iluvcapra/wavinfo.git
synced 2025-12-31 17:00:41 +00:00
More documentation
This commit is contained in:
@@ -10,5 +10,8 @@ Class Reference
|
|||||||
|
|
||||||
.. automodule:: wavinfo.wave_dbmd_reader
|
.. automodule:: wavinfo.wave_dbmd_reader
|
||||||
|
|
||||||
|
.. autoclass:: wavinfo.wave_dbmd_reader.WavDolbyChunkReader
|
||||||
|
:members:
|
||||||
|
|
||||||
.. autoclass:: wavinfo.wave_dbmd_reader.DolbyDigitalPlusMetadata
|
.. autoclass:: wavinfo.wave_dbmd_reader.DolbyDigitalPlusMetadata
|
||||||
:members:
|
:members:
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
"""
|
"""
|
||||||
Wave `dbmd` Dolby Metadata
|
Reading Dolby Bitstream Metadata
|
||||||
|
|
||||||
Unless otherwise stated, all § references here are to
|
Unless otherwise stated, all § references here are to
|
||||||
`EBU Tech 3285 Supplement 6`_.
|
`EBU Tech 3285 Supplement 6`_.
|
||||||
@@ -10,21 +10,29 @@ Unless otherwise stated, all § references here are to
|
|||||||
from enum import IntEnum, Enum
|
from enum import IntEnum, Enum
|
||||||
from struct import unpack
|
from struct import unpack
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import Optional, Tuple
|
from typing import Optional, Tuple, Any
|
||||||
|
|
||||||
|
|
||||||
class SegmentTypes(IntEnum):
|
class SegmentType(IntEnum):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
"""
|
"""
|
||||||
EndMarker = 0x0
|
EndMarker = 0x0
|
||||||
DolbyE = 0x1
|
DolbyE = 0x1
|
||||||
|
Reserved2 = 0x2
|
||||||
DolbyDigital = 0x3
|
DolbyDigital = 0x3
|
||||||
|
Reserved4 = 0x4
|
||||||
|
Reserved5 = 0x5
|
||||||
|
Reserved6 = 0x6
|
||||||
DolbyDigitalPlus = 0x7
|
DolbyDigitalPlus = 0x7
|
||||||
AudioInfo = 0x8
|
AudioInfo = 0x8
|
||||||
DolbyAtmos = 0x9
|
DolbyAtmos = 0x9
|
||||||
DolbyAtmosSupplemental = 0xa
|
DolbyAtmosSupplemental = 0xa
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def _missing_(cls,val):
|
||||||
|
return val
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class DolbyDigitalPlusMetadata:
|
class DolbyDigitalPlusMetadata:
|
||||||
@@ -43,6 +51,7 @@ class DolbyDigitalPlusMetadata:
|
|||||||
A gain coefficient used in several metadata fields for downmix
|
A gain coefficient used in several metadata fields for downmix
|
||||||
scenarios.
|
scenarios.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
PLUS_3DB = 0b000
|
PLUS_3DB = 0b000
|
||||||
"+3 dB"
|
"+3 dB"
|
||||||
|
|
||||||
@@ -263,7 +272,7 @@ class DolbyDigitalPlusMetadata:
|
|||||||
lfe_on: bool
|
lfe_on: bool
|
||||||
|
|
||||||
#: The kind of service of this stream. `bsmod` § 4.3.2.2
|
#: The kind of service of this stream. `bsmod` § 4.3.2.2
|
||||||
bitstream_mode: 'DolbyDigitalPlusMetadata.BitStreamMode'
|
bitstream_mode: BitStreamMode
|
||||||
|
|
||||||
#: Indicates which channels are in use. `acmod` § 4.3.2.3
|
#: Indicates which channels are in use. `acmod` § 4.3.2.3
|
||||||
audio_coding_mode: AudioCodingMode
|
audio_coding_mode: AudioCodingMode
|
||||||
@@ -290,15 +299,38 @@ class DolbyDigitalPlusMetadata:
|
|||||||
original_bitstream: bool
|
original_bitstream: bool
|
||||||
|
|
||||||
dialnorm: DialnormLevel
|
dialnorm: DialnormLevel
|
||||||
langcode: Optional[int]
|
|
||||||
mixlevel: Optional[MixLevel]
|
#: Language code
|
||||||
roomtype: Optional[RoomType]
|
langcode: int
|
||||||
|
|
||||||
|
#: `True` if `mixlevel` and `roomtype` are valid
|
||||||
|
prod_info_exists: bool
|
||||||
|
|
||||||
|
#: Mix level
|
||||||
|
mixlevel: MixLevel
|
||||||
|
|
||||||
|
#: Room Type
|
||||||
|
roomtype: RoomType
|
||||||
|
|
||||||
|
#: LoRo preferred center downmix level
|
||||||
loro_center_downmix_level: DownMixLevelToken
|
loro_center_downmix_level: DownMixLevelToken
|
||||||
|
|
||||||
|
#: LoRo preferred surround downmix level
|
||||||
loro_surround_downmix_level: DownMixLevelToken
|
loro_surround_downmix_level: DownMixLevelToken
|
||||||
|
|
||||||
|
#: Preferred downmix mode
|
||||||
downmix_mode: PreferredDownMixMode
|
downmix_mode: PreferredDownMixMode
|
||||||
|
|
||||||
|
#: LtRt preferred center downmix level
|
||||||
ltrt_center_downmix_level: DownMixLevelToken
|
ltrt_center_downmix_level: DownMixLevelToken
|
||||||
|
|
||||||
|
#: LtRt preferred surround downmix level
|
||||||
ltrt_surround_downmix_level: DownMixLevelToken
|
ltrt_surround_downmix_level: DownMixLevelToken
|
||||||
|
|
||||||
|
#: Surround-EX mode
|
||||||
surround_ex_mode: SurroundEXMode
|
surround_ex_mode: SurroundEXMode
|
||||||
|
|
||||||
|
#: Dolby Headphone mode
|
||||||
dolby_headphone_encoded: HeadphoneMode
|
dolby_headphone_encoded: HeadphoneMode
|
||||||
ad_converter_type: ADConverterType
|
ad_converter_type: ADConverterType
|
||||||
compression_profile: RFCompressionProfile
|
compression_profile: RFCompressionProfile
|
||||||
@@ -430,3 +462,23 @@ class DolbyDigitalPlusMetadata:
|
|||||||
dynamic_range=dynamic_range,
|
dynamic_range=dynamic_range,
|
||||||
stream_type=stream_info,
|
stream_type=stream_info,
|
||||||
datarate_kbps=data_rate)
|
datarate_kbps=data_rate)
|
||||||
|
|
||||||
|
|
||||||
|
class WavDolbyChunkReader:
|
||||||
|
"""
|
||||||
|
Reads Dolby bitstream metadata.
|
||||||
|
"""
|
||||||
|
|
||||||
|
#: List of the Dolby Metadata Segments.
|
||||||
|
#:
|
||||||
|
#: Each list entry is a tuple of `SegmentType`, a `bool`
|
||||||
|
#: indicating if the segment's checksum was valid, and the
|
||||||
|
#: segment's parsed dataclass (or a `bytes` array if it was
|
||||||
|
#: not recognized).
|
||||||
|
segment_list: Tuple[SegmentType | int, bool, Any]
|
||||||
|
|
||||||
|
def __init__(self, dbmd_data) -> None:
|
||||||
|
self.segment_list = []
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user