vdr-plugin-softhddevice-drm-gles 1.6.4-d0291bb
codec_audio.h
Go to the documentation of this file.
1// SPDX-License-Identifier: AGPL-3.0-or-later
2
13#ifndef __CODEC_AUDIO_H
14#define __CODEC_AUDIO_H
15
16#include <cstdint>
17#include <mutex>
18
19extern "C" {
20#include <libavcodec/avcodec.h>
21}
22
23class cSoftHdAudio;
24
38 CODEC_AC3 = (1 << 2),
39 CODEC_EAC3 = (1 << 3),
40 CODEC_DTS = (1 << 4),
41};
42
58
70
86
132
133#endif
Audio Decoder.
int DecodePassthrough(const AVPacket *, AVFrame *)
Passthrough audio data.
int UpdateFormat(void)
Handle audio format changes.
AVCodecContext * m_pAudioCtx
ffmpeg audio codec context
int m_currentHwSampleRate
current hw sample rate
void FlushBuffers(void)
Flush the audio decoder buffers.
int m_currentHwNumChannels
current number of hw channels
void Decode(const AVPacket *)
Decode an audio packet.
AVFrame * m_pFrame
decoded ffmpeg audio frame
int m_spdifIndex
index into SPDIF output buffer
int m_currentPassthroughMask
current passthrough mask
int m_passthroughMask
passthrough mask to be set
AVCodecID m_codecId
current codec id
AVCodecID GetCodecId() const
void SetPassthroughMask(int)
Set audio pass-through mask.
int m_spdifRepeatCount
SPDIF repeat counter.
uint16_t m_spdifOutput[(MAX_FRAME_SIZE *4+16)/2]
SPDIF output buffer.
std::mutex m_mutex
decoder mutex
int64_t m_lastPts
last seen PTS
int m_currentSampleRate
current sample rate
void ResetSpdif(void)
Rest the internal SPDIF burst buffer.
cSoftHdAudio * m_pAudio
audio module
int m_currentNumChannels
current number of channels
void Open(AVCodecID, AVCodecParameters *=nullptr, AVRational={ .num=1,.den=90000 })
Open and initiate the audio decoder.
void Close(void)
Close the audio decoder.
Audio Interface.
Definition audio.h:50
CodecFrameSizes
Codec frame sizes for spdif.
Definition codec_audio.h:76
IEC61937Type
IEC Data type.
Definition codec_audio.h:48
IEC61937Preamble
IEC Preambles.
Definition codec_audio.h:64
PassthroughMask
Bits used for the passthrough mask.
Definition codec_audio.h:37
@ EAC3_FRAME_SIZE
Definition codec_audio.h:81
@ TRUEHD_FRAME_SIZE
(not used)
Definition codec_audio.h:84
@ AC3_FRAME_SIZE
Definition codec_audio.h:80
@ DTS3_FRAME_SIZE
Definition codec_audio.h:79
@ DTS2_FRAME_SIZE
Definition codec_audio.h:78
@ DTS1_FRAME_SIZE
Definition codec_audio.h:77
@ MAX_FRAME_SIZE
Definition codec_audio.h:82
@ IEC61937_TRUEHD
TrueHD data (not used)
Definition codec_audio.h:56
@ IEC61937_DTS3
DTS type III (2048 samples)
Definition codec_audio.h:54
@ IEC61937_DTS2
DTS type II (1024 samples)
Definition codec_audio.h:53
@ IEC61937_AC3
AC-3 data.
Definition codec_audio.h:50
@ IEC61937_NULL
no data
Definition codec_audio.h:49
@ IEC61937_DTSHD
DTS HD data (not used)
Definition codec_audio.h:55
@ IEC61937_EAC3
E-AC-3 data.
Definition codec_audio.h:51
@ IEC61937_DTS1
DTS type I (512 samples)
Definition codec_audio.h:52
@ IEC61937_PREAMBLE1
Definition codec_audio.h:65
@ DTS_PREAMBLE_16BE_2
Definition codec_audio.h:68
@ DTS_PREAMBLE_16BE_1
Definition codec_audio.h:67
@ IEC61937_PREAMBLE2
Definition codec_audio.h:66
@ CODEC_EAC3
E-AC-3 bit mask.
Definition codec_audio.h:39
@ CODEC_AC3
AC-3 bit mask.
Definition codec_audio.h:38
@ CODEC_DTS
DTS bit mask.
Definition codec_audio.h:40
#define AV_NOPTS_VALUE
Definition misc.h:74