MythTV  master
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
AvFormatDecoder Class Reference

A decoder for media files. More...

#include <avformatdecoder.h>

Inheritance diagram for AvFormatDecoder:
Inheritance graph
[legend]
Collaboration diagram for AvFormatDecoder:
Collaboration graph
[legend]

Public Member Functions

 AvFormatDecoder (MythPlayer *parent, const ProgramInfo &pginfo, PlayerFlags flags)
 
 ~AvFormatDecoder () override
 
 AvFormatDecoder (const AvFormatDecoder &)=delete
 
AvFormatDecoderoperator= (const AvFormatDecoder &)=delete
 
void SetEof (bool eof) override
 
MythCodecMapCodecMap (void)
 
void CloseCodecs ()
 
void CloseContext ()
 
void Reset (bool reset_video_data, bool seek_reset, bool reset_file) override
 
int OpenFile (MythMediaBuffer *Buffer, bool novideo, TestBufferVec &testbuf) override
 Open our file and set up or audio and video parameters. More...
 
bool GetFrame (DecodeType Type, bool &Retry) override
 Demux, preprocess and possibly decode a frame of video/audio. More...
 
bool IsLastFrameKey (void) const override
 
void WriteStoredData ([[maybe_unused]] MythMediaBuffer *Buffer, [[maybe_unused]] bool storevid, [[maybe_unused]] std::chrono::milliseconds timecodeOffset) override
 This is a No-op for this class. More...
 
void SetRawAudioState (bool state) override
 This is a No-op for this class. More...
 
bool GetRawAudioState (void) const override
 This is a No-op for this class. More...
 
void SetRawVideoState (bool state) override
 This is a No-op for this class. More...
 
bool GetRawVideoState (void) const override
 This is a No-op for this class. More...
 
long UpdateStoredFrameNum (long frame) override
 This is a No-op for this class. More...
 
QString GetCodecDecoderName (void) const override
 
QString GetRawEncodingType (void) override
 
MythCodecID GetVideoCodecID (void) const override
 
void SetDisablePassThrough (bool disable) override
 Disables AC3/DTS pass through. More...
 
void ForceSetupAudioStream (void) override
 
void AddTextData (unsigned char *buf, int len, int64_t timecode, char type)
 
QString GetTrackDesc (uint Type, uint TrackNo) override
 
int SetTrack (uint Type, int TrackNo) override
 
int ScanStreams (bool novideo)
 
int FindStreamInfo (void)
 
int GetNumChapters () override
 
void GetChapterTimes (QList< std::chrono::seconds > &times) override
 
int GetCurrentChapter (long long framesPlayed) override
 
long long GetChapter (int chapter) override
 
bool DoRewind (long long desiredFrame, bool discardFrames=true) override
 
bool DoFastForward (long long desiredFrame, bool discardFrames=true) override
 Skips ahead or rewinds to desiredFrame. More...
 
void SetIdrOnlyKeyframes (bool value) override
 
std::chrono::milliseconds NormalizeVideoTimecode (std::chrono::milliseconds timecode) override
 
virtual std::chrono::milliseconds NormalizeVideoTimecode (AVStream *st, std::chrono::milliseconds timecode)
 
int GetTeletextDecoderType (void) const override
 
QString GetXDS (const QString &Key) const override
 
QByteArray GetSubHeader (uint TrackNo) override
 
void GetAttachmentData (uint TrackNo, QByteArray &Filename, QByteArray &Data) override
 
bool SetAudioByComponentTag (int Tag) override
 
bool SetVideoByComponentTag (int Tag) override
 
virtual int GetTeletextLanguage (uint Index)
 Returns TeleText language. More...
 
virtual int GetSubtitleLanguage (uint, uint StreamIndex)
 Returns DVD Subtitle language. More...
 
virtual int GetCaptionLanguage (TrackType TrackType, int ServiceNum)
 Return ATSC Closed Caption Language. More...
 
virtual int GetAudioLanguage (uint AudioIndex, uint StreamIndex)
 
virtual AudioTrackType GetAudioTrackType (uint StreamIndex)
 
- Public Member Functions inherited from DecoderBase
 DecoderBase (MythPlayer *parent, const ProgramInfo &pginfo)
 
virtual ~DecoderBase ()
 
void SetRenderFormats (const VideoFrameTypes *RenderFormats)
 
virtual void SetEofState (EofState eof)
 
EofState GetEof (void)
 
void SetSeekSnap (uint64_t snap)
 
uint64_t GetSeekSnap (void) const
 
void SetLiveTVMode (bool live)
 
void SetProgramInfo (const ProgramInfo &pginfo)
 
virtual void SetWatchingRecording (bool mode)
 
MythPlayerGetPlayer ()
 
std::chrono::milliseconds TranslatePositionFrameToMs (long long position, float fallback_framerate, const frm_dir_map_t &cutlist)
 
uint64_t TranslatePositionMsToFrame (std::chrono::milliseconds dur_ms, float fallback_framerate, const frm_dir_map_t &cutlist)
 
float GetVideoAspect (void) const
 
virtual void WriteStoredData (MythMediaBuffer *Buffer, bool storevid, std::chrono::milliseconds timecodeOffset)=0
 
virtual void ClearStoredData (void)
 
virtual double GetFPS (void) const
 
uint GetRawBitrate (void) const
 Returns the estimated bitrate if the video were played at normal speed. More...
 
long long GetFramesRead (void) const
 
long long GetFramesPlayed (void) const
 
void SetFramesPlayed (long long newValue)
 
virtual void ResetPosMap (void)
 
virtual bool SyncPositionMap (void)
 Updates the position map used for skipping frames. More...
 
virtual bool PosMapFromDb (void)
 
virtual bool PosMapFromEnc (void)
 Queries encoder for position map data that has not been committed to the DB yet. More...
 
virtual bool FindPosition (long long desired_value, bool search_adjusted, int &lower_bound, int &upper_bound)
 
uint64_t SavePositionMapDelta (long long first_frame, long long last_frame)
 
void SetTranscoding (bool value)
 
bool IsErrored () const
 
bool HasPositionMap (void) const
 
void SetWaitForChange (void)
 
bool GetWaitForChange (void) const
 
void SetReadAdjust (long long adjust)
 
void SetDecodeAllSubtitles (bool DecodeAll)
 
virtual QStringList GetTracks (uint Type)
 
virtual uint GetTrackCount (uint Type)
 
virtual int GetTrackLanguageIndex (uint Type, uint TrackNo)
 
int GetTrack (uint Type)
 
StreamInfo GetTrackInfo (uint Type, uint TrackNo)
 
int ChangeTrack (uint Type, int Dir)
 
virtual bool InsertTrack (uint Type, const StreamInfo &Info)
 
int NextTrack (uint Type)
 
void SaveTotalDuration (void)
 
void ResetTotalDuration (void)
 
void SaveTotalFrames (void)
 
void TrackTotalDuration (bool track)
 
int GetfpsMultiplier (void) const
 
MythCodecContextGetMythCodecContext (void)
 

Static Public Member Functions

static bool CanHandle (TestBufferVec &testbuf, const QString &filename)
 Perform an av_probe_input_format on the passed data to see if we can decode it with this class. More...
 
static int GetMaxReferenceFrames (AVCodecContext *Context)
 
- Static Public Member Functions inherited from DecoderBase
static uint64_t TranslatePositionAbsToRel (const frm_dir_map_t &deleteMap, uint64_t absPosition, const frm_pos_map_t &map=frm_pos_map_t(), float fallback_ratio=1.0)
 
static uint64_t TranslatePositionRelToAbs (const frm_dir_map_t &deleteMap, uint64_t relPosition, const frm_pos_map_t &map=frm_pos_map_t(), float fallback_ratio=1.0)
 
static uint64_t TranslatePosition (const frm_pos_map_t &map, long long key, float fallback_ratio)
 
static AVPixelFormat GetBestVideoFormat (AVPixelFormat *Formats, const VideoFrameTypes *RenderFormats)
 Find a suitable frame format that is mutually acceptable to the decoder and render device. More...
 

Protected Member Functions

int AutoSelectTrack (uint type) override
 Select best track. More...
 
void ScanATSCCaptionStreams (int av_index)
 
void UpdateATSCCaptionTracks (void)
 
void UpdateCaptionTracksFromStreams (bool check_608, bool check_708)
 
void ScanTeletextCaptions (int av_index)
 
void ScanRawTextCaptions (int av_stream_index)
 
void ScanDSMCCStreams (void)
 Check to see whether there is a Network Boot Ifo sub-descriptor in the PMT which requires the MHEG application to reboot. More...
 
int AutoSelectAudioTrack (void)
 Selects the best audio track. More...
 
int filter_max_ch (const AVFormatContext *ic, const sinfo_vec_t &tracks, const std::vector< int > &fs, enum AVCodecID codecId=AV_CODEC_ID_NONE, int profile=-1)
 
void DecodeDTVCC (const uint8_t *buf, uint buf_size, bool scte)
 
void DecodeCCx08 (const uint8_t *buf, uint buf_size, bool scte)
 
void InitByteContext (bool forceseek=false)
 
void InitVideoCodec (AVStream *stream, AVCodecContext *enc, bool selectedStream=false)
 
void MpegPreProcessPkt (AVStream *stream, AVPacket *pkt)
 Preprocess a packet, setting the video parms if necessary. More...
 
int H264PreProcessPkt (AVStream *stream, AVPacket *pkt)
 
bool PreProcessVideoPacket (AVStream *stream, AVPacket *pkt)
 
virtual bool ProcessVideoPacket (AVStream *stream, AVPacket *pkt, bool &Retry)
 
virtual bool ProcessVideoFrame (AVStream *Stream, AVFrame *AvFrame)
 
bool ProcessAudioPacket (AVStream *stream, AVPacket *pkt, DecodeType decodetype)
 
bool ProcessSubtitlePacket (AVStream *stream, AVPacket *pkt)
 
bool ProcessRawTextPacket (AVPacket *Packet)
 
virtual bool ProcessDataPacket (AVStream *curstream, AVPacket *pkt, DecodeType decodetype)
 
void ProcessVBIDataPacket (const AVStream *stream, const AVPacket *pkt)
 Process ivtv proprietary embedded vertical blanking interval captions. More...
 
void ProcessDVBDataPacket (const AVStream *stream, const AVPacket *pkt)
 Process DVB Teletext. More...
 
void ProcessDSMCCPacket (const AVStream *stream, const AVPacket *pkt)
 Process DSMCC object carousel packet. More...
 
void SeekReset (long long newkey, uint skipFrames, bool doFlush, bool discardFrames) override
 
bool DecoderWillDownmix (const AVCodecContext *ctx)
 
bool DoPassThrough (const AVCodecParameters *par, bool withProfile=true)
 
bool SetupAudioStream (void)
 Reinitializes audio if it needs to be reinitialized. More...
 
void SetupAudioStreamSubIndexes (int streamIndex)
 Reacts to DUAL/STEREO changes on the fly and fix streams. More...
 
void RemoveAudioStreams ()
 remove audio streams from the context used by dvd code during title transitions to remove stale audio streams More...
 
void HandleGopStart (AVPacket *pkt, bool can_reliably_parse_keyframes)
 Update our position map, keyframe distance, and the like. More...
 
bool GenerateDummyVideoFrames (void)
 
bool HasVideo (const AVFormatContext *ic)
 
float GetVideoFrameRate (AVStream *Stream, AVCodecContext *Context, bool Sanitise=false)
 
bool OpenAVCodec (AVCodecContext *avctx, const AVCodec *codec)
 
void UpdateFramesPlayed (void) override
 
bool DoRewindSeek (long long desiredFrame) override
 
void DoFastForwardSeek (long long desiredFrame, bool &needflush) override
 Seeks to the keyframe just before the desiredFrame if exact seeks is enabled, or the frame just after it if exact seeks is not enabled. More...
 
virtual void StreamChangeCheck (void)
 
virtual void PostProcessTracks (void)
 
virtual bool IsValidStream (int)
 
int DecodeAudio (AVCodecContext *ctx, uint8_t *buffer, int &data_size, AVPacket *pkt)
 
virtual int ReadPacket (AVFormatContext *ctx, AVPacket *pkt, bool &storePacket)
 
bool FlagIsSet (PlayerFlags arg)
 
- Protected Member Functions inherited from DecoderBase
int BestTrack (uint Type, bool forcedPreferred, int preferredLanguage=0)
 Determine the best track according to weights. More...
 
void AutoSelectTracks (void)
 
void ResetTracks (void)
 
void FileChanged (void)
 
long long ConditionallyUpdatePosMap (long long desiredFrame)
 
long long GetLastFrameInPosMap (void) const
 
unsigned long GetPositionMapSize (void) const
 
long long GetKey (const PosMapEntry &entry) const
 

Static Protected Member Functions

static void av_update_stream_timings_video (AVFormatContext *ic)
 

Protected Attributes

bool m_isDbIgnored
 
AVCParserm_avcParser {nullptr}
 
AVFormatContext * m_ic {nullptr}
 
MythCodecMap m_codecMap
 
URLContext m_readContext {}
 
int m_frameDecoded {0}
 
MythVideoFramem_decodedVideoFrame {nullptr}
 
MythAVFormatBufferm_avfRingBuffer {nullptr}
 
struct SwsContext * m_swsCtx {nullptr}
 
bool m_directRendering {false}
 
bool m_doRewind {false}
 
bool m_gopSet {false}
 
bool m_seenGop {false}
 A flag to indicate that we've seen a GOP frame. Used in junction with seq_count. More...
 
int m_seqCount {0}
 A counter used to determine if we need to force a call to HandleGopStart. More...
 
QList< AVPacket * > m_storedPackets
 
int m_prevGopPos {0}
 
bool m_gotVideoFrame {false}
 
bool m_hasVideo {false}
 
bool m_needDummyVideoFrames {false}
 
bool m_skipAudio {false}
 
bool m_allowedQuit {false}
 
uint32_t m_startCodeState {0xffffffff}
 
std::chrono::milliseconds m_lastVPts {0ms}
 
std::chrono::milliseconds m_lastAPts {0ms}
 
std::chrono::microseconds m_lastCcPtsu {0ms}
 
std::chrono::milliseconds m_firstVPts {0ms}
 
bool m_firstVPtsInuse {false}
 
int64_t m_faultyPts {0}
 
int64_t m_faultyDts {0}
 
int64_t m_lastPtsForFaultDetection {0}
 
int64_t m_lastDtsForFaultDetection {0}
 
bool m_ptsDetected {false}
 
bool m_reorderedPtsDetected {false}
 
bool m_ptsSelected {true}
 
bool m_useFrameTiming {false}
 
bool m_forceDtsTimestamps {false}
 
PlayerFlags m_playerFlags
 
MythCodecID m_videoCodecId {kCodec_NONE}
 
int m_maxKeyframeDist {-1}
 
int m_averrorCount {0}
 
uint m_ignoreScte {0}
 
uint m_invertScteField {0}
 
uint m_lastScteField {0}
 
CC608Decoderm_ccd608 {nullptr}
 
CC708Decoderm_ccd708 {nullptr}
 
TeletextDecoderm_ttd {nullptr}
 
std::array< bool, 68 > m_ccX08InPmt {}
 Lookup table for whether a stream was seen in the PMT entries 0-3 correspond to CEA-608 CC1 through CC4, while entries 4-67 corresport to CEA-708 streams 0 through 64. More...
 
std::array< bool, 68 > m_ccX08InTracks {}
 Lookup table for whether a stream is represented in the UI entries 0-3 correspond to CEA-608 CC1 through CC4, while entries 4-67 corresport to CEA-708 streams 0 through 64. More...
 
QList< StreamInfom_pmtTracks
 StreamInfo for 608 and 708 Captions seen in the PMT descriptor. More...
 
QList< TrackTypem_pmtTrackTypes
 TrackType (608 or 708) for Captions seen in the PMT descriptor. More...
 
QList< StreamInfom_streamTracks
 StreamInfo for 608 and 708 Captions seen in the caption stream itself but not seen in the PMT. More...
 
QList< TrackTypem_streamTrackTypes
 TrackType (608 or 708) for Captions seen in the caption stream itself but not seen in the PMT. More...
 
InteractiveTVm_itv {nullptr}
 MHEG/MHP decoder. More...
 
uint8_t * m_audioSamples {nullptr}
 
bool m_disablePassthru {false}
 
AudioInfo m_audioIn
 
AudioInfo m_audioOut
 
bool m_processFrames {true}
 
bool m_streamsChanged { false }
 
bool m_resetHardwareDecoders { false }
 
std::chrono::milliseconds m_audioReadAhead {100ms}
 
QRecursiveMutex m_avCodecLock
 
- Protected Attributes inherited from DecoderBase
MythPlayerm_parent {nullptr}
 
ProgramInfom_playbackInfo {nullptr}
 
AudioPlayerm_audio {nullptr}
 
MythMediaBufferm_ringBuffer {nullptr}
 
double m_fps {29.97}
 
int m_fpsMultiplier {1}
 
int m_fpsSkip {0}
 
uint m_bitrate {4000}
 
int m_currentWidth {640}
 
int m_currentHeight {480}
 
float m_currentAspect {1.33333F}
 
long long m_framesPlayed {0}
 
long long m_framesRead {0}
 
uint64_t m_frameCounter {0}
 
AVRational m_totalDuration
 
int m_keyframeDist {-1}
 
long long m_lastKey {0}
 
long long m_indexOffset {0}
 
MythAVCopy m_copyFrame
 
bool m_nextDecodedFrameIsKeyFrame { false }
 
EofState m_atEof {kEofStateNone}
 
bool m_trackTotalDuration {false}
 
bool m_exitAfterDecoded {false}
 
bool m_transcoding {false}
 
bool m_hasFullPositionMap {false}
 
bool m_recordingHasPositionMap {false}
 
bool m_posmapStarted {false}
 
MarkTypes m_positionMapType {MARK_UNSET}
 
QRecursiveMutex m_positionMapLock
 
std::vector< PosMapEntrym_positionMap
 
frm_pos_map_t m_frameToDurMap
 
frm_pos_map_t m_durToFrameMap
 
QDateTime m_lastPositionMapUpdate
 
uint64_t m_seekSnap {UINT64_MAX}
 
bool m_dontSyncPositionMap {false}
 
bool m_livetv {false}
 
bool m_watchingRecording {false}
 
bool m_hasKeyFrameAdjustTable {false}
 
bool m_getRawFrames {false}
 
bool m_getRawVideo {false}
 
bool m_errored {false}
 
bool m_waitingForChange {false}
 
bool m_justAfterChange {false}
 
long long m_readAdjust {0}
 
int m_videoRotation {0}
 
uint m_stereo3D {0}
 
QRecursiveMutex m_trackLock
 
bool m_decodeAllSubtitles { false }
 
std::array< int, kTrackTypeCountm_currentTrack {}
 
std::array< sinfo_vec_t, kTrackTypeCountm_tracks
 
std::array< StreamInfo, kTrackTypeCountm_wantedTrack
 
std::array< StreamInfo, kTrackTypeCountm_selectedTrack
 
std::array< StreamInfo, kTrackTypeCountm_selectedForcedTrack
 
std::vector< int > m_languagePreference
 language preferences for auto-selection of streams More...
 
MythCodecContextm_mythCodecCtx { nullptr }
 
MythVideoProfile m_videoDisplayProfile
 
const VideoFrameTypesm_renderFormats { &MythVideoFrame::kDefaultRenderFormats }
 

Friends

void HandleStreamChange (void *data)
 
int get_avf_buffer (struct AVCodecContext *c, AVFrame *pic, int flags)
 
int open_avf (URLContext *h, const char *filename, int flags)
 
int read_avf (URLContext *h, uint8_t *buf, int buf_size)
 
int write_avf (URLContext *h, uint8_t *buf, int buf_size)
 
int64_t seek_avf (URLContext *h, int64_t offset, int whence)
 
int close_avf (URLContext *h)
 

Detailed Description

A decoder for media files.

Definition at line 82 of file avformatdecoder.h.

Constructor & Destructor Documentation

◆ AvFormatDecoder() [1/2]

AvFormatDecoder::AvFormatDecoder ( MythPlayer parent,
const ProgramInfo pginfo,
PlayerFlags  flags 
)

Definition at line 372 of file avformatdecoder.cpp.

◆ ~AvFormatDecoder()

AvFormatDecoder::~AvFormatDecoder ( )
override

Definition at line 402 of file avformatdecoder.cpp.

◆ AvFormatDecoder() [2/2]

AvFormatDecoder::AvFormatDecoder ( const AvFormatDecoder )
delete

Member Function Documentation

◆ operator=()

AvFormatDecoder& AvFormatDecoder::operator= ( const AvFormatDecoder )
delete

◆ SetEof()

void AvFormatDecoder::SetEof ( bool  eof)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 806 of file avformatdecoder.cpp.

Referenced by GetFrame().

◆ CodecMap()

MythCodecMap * AvFormatDecoder::CodecMap ( void  )

◆ CloseCodecs()

void AvFormatDecoder::CloseCodecs ( )

Definition at line 438 of file avformatdecoder.cpp.

Referenced by CloseContext(), and MythBDDecoder::StreamChangeCheck().

◆ CloseContext()

void AvFormatDecoder::CloseContext ( )

Definition at line 452 of file avformatdecoder.cpp.

Referenced by OpenFile(), and ~AvFormatDecoder().

◆ Reset()

void AvFormatDecoder::Reset ( bool  reset_video_data,
bool  seek_reset,
bool  reset_file 
)
overridevirtual

Reimplemented from DecoderBase.

Reimplemented in MythDVDDecoder.

Definition at line 818 of file avformatdecoder.cpp.

Referenced by OpenFile(), MythBDDecoder::Reset(), and MythDVDDecoder::Reset().

◆ CanHandle()

bool AvFormatDecoder::CanHandle ( TestBufferVec testbuf,
const QString &  filename 
)
static

Perform an av_probe_input_format on the passed data to see if we can decode it with this class.

Definition at line 837 of file avformatdecoder.cpp.

Referenced by MythBDPlayer::CreateDecoder(), MythDVDPlayer::CreateDecoder(), and MythPlayer::CreateDecoder().

◆ OpenFile()

int AvFormatDecoder::OpenFile ( MythMediaBuffer Buffer,
bool  novideo,
TestBufferVec testbuf 
)
overridevirtual

Open our file and set up or audio and video parameters.

OpenFile opens a ringbuffer for playback.

OpenFile deletes any existing context then use testbuf to guess at the stream type. It then calls ScanStreams to find any valid streams to decode. If possible a position map is also built for quick skipping.

Parameters
rbufferpointer to a valid ringuffer.
novideoif true then no video is sought in ScanSreams.
testbufTemporary buffer for probing the input.
testbufsizeThe size of the test buffer. The minimum of this value or kDecoderProbeBufferSize will be used.

Implements DecoderBase.

Definition at line 928 of file avformatdecoder.cpp.

◆ GetFrame()

bool AvFormatDecoder::GetFrame ( DecodeType  Type,
bool Retry 
)
overridevirtual

Demux, preprocess and possibly decode a frame of video/audio.

Implements DecoderBase.

Reimplemented in MythDVDDecoder.

Definition at line 4773 of file avformatdecoder.cpp.

Referenced by MythDVDDecoder::GetFrame(), and SeekReset().

◆ IsLastFrameKey()

bool AvFormatDecoder::IsLastFrameKey ( void  ) const
inlineoverridevirtual

Implements DecoderBase.

Definition at line 114 of file avformatdecoder.h.

◆ WriteStoredData()

void AvFormatDecoder::WriteStoredData ( [[maybe_unused] ] MythMediaBuffer Buffer,
[[maybe_unused] ] bool  storevid,
[[maybe_unused] ] std::chrono::milliseconds  timecodeOffset 
)
inlineoverride

This is a No-op for this class.

Definition at line 117 of file avformatdecoder.h.

◆ SetRawAudioState()

void AvFormatDecoder::SetRawAudioState ( bool  state)
inlineoverridevirtual

This is a No-op for this class.

Reimplemented from DecoderBase.

Definition at line 122 of file avformatdecoder.h.

◆ GetRawAudioState()

bool AvFormatDecoder::GetRawAudioState ( void  ) const
inlineoverridevirtual

This is a No-op for this class.

Reimplemented from DecoderBase.

Definition at line 125 of file avformatdecoder.h.

◆ SetRawVideoState()

void AvFormatDecoder::SetRawVideoState ( bool  state)
inlineoverridevirtual

This is a No-op for this class.

Reimplemented from DecoderBase.

Definition at line 128 of file avformatdecoder.h.

◆ GetRawVideoState()

bool AvFormatDecoder::GetRawVideoState ( void  ) const
inlineoverridevirtual

This is a No-op for this class.

Reimplemented from DecoderBase.

Definition at line 131 of file avformatdecoder.h.

◆ UpdateStoredFrameNum()

long AvFormatDecoder::UpdateStoredFrameNum ( long  frame)
inlineoverridevirtual

This is a No-op for this class.

Implements DecoderBase.

Definition at line 134 of file avformatdecoder.h.

◆ GetCodecDecoderName()

QString AvFormatDecoder::GetCodecDecoderName ( void  ) const
overridevirtual

Implements DecoderBase.

Definition at line 5143 of file avformatdecoder.cpp.

Referenced by ScanStreams().

◆ GetRawEncodingType()

QString AvFormatDecoder::GetRawEncodingType ( void  )
overridevirtual

Reimplemented from DecoderBase.

Definition at line 5148 of file avformatdecoder.cpp.

◆ GetVideoCodecID()

MythCodecID AvFormatDecoder::GetVideoCodecID ( void  ) const
inlineoverridevirtual

Implements DecoderBase.

Definition at line 138 of file avformatdecoder.h.

Referenced by MythMMALContext::GetBuffer().

◆ SetDisablePassThrough()

void AvFormatDecoder::SetDisablePassThrough ( bool  disable)
overridevirtual

Disables AC3/DTS pass through.

Reimplemented from DecoderBase.

Definition at line 5156 of file avformatdecoder.cpp.

◆ ForceSetupAudioStream()

void AvFormatDecoder::ForceSetupAudioStream ( void  )
overridevirtual

Reimplemented from DecoderBase.

Definition at line 5175 of file avformatdecoder.cpp.

Referenced by SetDisablePassThrough().

◆ AddTextData()

void AvFormatDecoder::AddTextData ( unsigned char *  buf,
int  len,
int64_t  timecode,
char  type 
)

◆ GetTrackDesc()

QString AvFormatDecoder::GetTrackDesc ( uint  Type,
uint  TrackNo 
)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 4056 of file avformatdecoder.cpp.

◆ SetTrack()

int AvFormatDecoder::SetTrack ( uint  Type,
int  TrackNo 
)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 4044 of file avformatdecoder.cpp.

Referenced by MythDVDDecoder::PostProcessTracks(), and SetAudioByComponentTag().

◆ ScanStreams()

int AvFormatDecoder::ScanStreams ( bool  novideo)

◆ FindStreamInfo()

int AvFormatDecoder::FindStreamInfo ( void  )

Definition at line 899 of file avformatdecoder.cpp.

Referenced by OpenFile(), and MythBDDecoder::StreamChangeCheck().

◆ GetNumChapters()

int AvFormatDecoder::GetNumChapters ( )
overridevirtual

Reimplemented from DecoderBase.

Definition at line 528 of file avformatdecoder.cpp.

Referenced by GetChapter(), GetChapterTimes(), and GetCurrentChapter().

◆ GetChapterTimes()

void AvFormatDecoder::GetChapterTimes ( QList< std::chrono::seconds > &  times)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 535 of file avformatdecoder.cpp.

◆ GetCurrentChapter()

int AvFormatDecoder::GetCurrentChapter ( long long  framesPlayed)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 552 of file avformatdecoder.cpp.

◆ GetChapter()

long long AvFormatDecoder::GetChapter ( int  chapter)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 576 of file avformatdecoder.cpp.

◆ DoRewind()

bool AvFormatDecoder::DoRewind ( long long  desiredFrame,
bool  discardFrames = true 
)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 592 of file avformatdecoder.cpp.

◆ DoFastForward()

bool AvFormatDecoder::DoFastForward ( long long  desiredFrame,
bool  discardFrames = true 
)
overridevirtual

Skips ahead or rewinds to desiredFrame.

If discardFrames is true and cached frames are released and playback continues at the desiredFrame, if it is not any interviening frames between the last frame already in the buffer and the desiredFrame are released, but none of the frames decoded at the time this is called are released.

Reimplemented from DecoderBase.

Definition at line 606 of file avformatdecoder.cpp.

Referenced by DoRewind().

◆ SetIdrOnlyKeyframes()

void AvFormatDecoder::SetIdrOnlyKeyframes ( bool  value)
inlineoverridevirtual

Reimplemented from DecoderBase.

Definition at line 156 of file avformatdecoder.h.

Referenced by AvFormatDecoder().

◆ NormalizeVideoTimecode() [1/2]

std::chrono::milliseconds AvFormatDecoder::NormalizeVideoTimecode ( std::chrono::milliseconds  timecode)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 472 of file avformatdecoder.cpp.

Referenced by ProcessVideoFrame().

◆ NormalizeVideoTimecode() [2/2]

std::chrono::milliseconds AvFormatDecoder::NormalizeVideoTimecode ( AVStream *  st,
std::chrono::milliseconds  timecode 
)
virtual

Definition at line 506 of file avformatdecoder.cpp.

◆ GetTeletextDecoderType()

int AvFormatDecoder::GetTeletextDecoderType ( void  ) const
overridevirtual

Reimplemented from DecoderBase.

Definition at line 4135 of file avformatdecoder.cpp.

◆ GetXDS()

QString AvFormatDecoder::GetXDS ( const QString &  Key) const
overridevirtual

Reimplemented from DecoderBase.

Definition at line 4140 of file avformatdecoder.cpp.

◆ GetSubHeader()

QByteArray AvFormatDecoder::GetSubHeader ( uint  TrackNo)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 4145 of file avformatdecoder.cpp.

◆ GetAttachmentData()

void AvFormatDecoder::GetAttachmentData ( uint  TrackNo,
QByteArray &  Filename,
QByteArray &  Data 
)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 4157 of file avformatdecoder.cpp.

◆ SetAudioByComponentTag()

bool AvFormatDecoder::SetAudioByComponentTag ( int  Tag)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 4171 of file avformatdecoder.cpp.

Referenced by OpenFile().

◆ SetVideoByComponentTag()

bool AvFormatDecoder::SetVideoByComponentTag ( int  Tag)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 4184 of file avformatdecoder.cpp.

Referenced by OpenFile().

◆ GetTeletextLanguage()

int AvFormatDecoder::GetTeletextLanguage ( uint  Index)
virtual

Returns TeleText language.

Definition at line 2511 of file avformatdecoder.cpp.

Referenced by MythCCExtractorPlayer::ProcessTeletext().

◆ GetSubtitleLanguage()

int AvFormatDecoder::GetSubtitleLanguage ( uint  ,
uint  StreamIndex 
)
virtual

Returns DVD Subtitle language.

Reimplemented in MythBDDecoder.

Definition at line 2521 of file avformatdecoder.cpp.

Referenced by GetAudioLanguage(), MythCCExtractorPlayer::ProcessDVBSubtitles(), and ScanStreams().

◆ GetCaptionLanguage()

int AvFormatDecoder::GetCaptionLanguage ( TrackType  TrackType,
int  ServiceNum 
)
virtual

◆ GetAudioLanguage()

int AvFormatDecoder::GetAudioLanguage ( uint  AudioIndex,
uint  StreamIndex 
)
virtual

Reimplemented in MythDVDDecoder, and MythBDDecoder.

Definition at line 2558 of file avformatdecoder.cpp.

Referenced by ScanStreams().

◆ GetAudioTrackType()

AudioTrackType AvFormatDecoder::GetAudioTrackType ( uint  StreamIndex)
virtual

Reimplemented in MythDVDDecoder.

Definition at line 2563 of file avformatdecoder.cpp.

Referenced by MythDVDDecoder::GetAudioTrackType(), and ScanStreams().

◆ GetMaxReferenceFrames()

int AvFormatDecoder::GetMaxReferenceFrames ( AVCodecContext *  Context)
static

◆ AutoSelectTrack()

int AvFormatDecoder::AutoSelectTrack ( uint  Type)
overrideprotectedvirtual

Select best track.

In case there's only one track available, always choose it.

If there is a user selected track we try to find it.

If we can't find the user selected track we try to picked according to the ISO639Language[0..] settings.

In case there are no ISOLanguage[0..] settings, or no preferred language is found, the first found track stream is chosen

Returns
track if a track was selected, -1 otherwise

Reimplemented from DecoderBase.

Definition at line 4204 of file avformatdecoder.cpp.

◆ ScanATSCCaptionStreams()

void AvFormatDecoder::ScanATSCCaptionStreams ( int  av_index)
protected

Definition at line 1592 of file avformatdecoder.cpp.

Referenced by ScanStreams(), and UpdateCaptionTracksFromStreams().

◆ UpdateATSCCaptionTracks()

void AvFormatDecoder::UpdateATSCCaptionTracks ( void  )
protected

Definition at line 1676 of file avformatdecoder.cpp.

Referenced by ScanStreams(), and UpdateCaptionTracksFromStreams().

◆ UpdateCaptionTracksFromStreams()

void AvFormatDecoder::UpdateCaptionTracksFromStreams ( bool  check_608,
bool  check_708 
)
protected

Definition at line 2867 of file avformatdecoder.cpp.

Referenced by DecodeCCx08(), and ProcessVBIDataPacket().

◆ ScanTeletextCaptions()

void AvFormatDecoder::ScanTeletextCaptions ( int  av_index)
protected

Definition at line 1743 of file avformatdecoder.cpp.

Referenced by ScanStreams().

◆ ScanRawTextCaptions()

void AvFormatDecoder::ScanRawTextCaptions ( int  av_stream_index)
protected

Definition at line 1805 of file avformatdecoder.cpp.

Referenced by ScanStreams().

◆ ScanDSMCCStreams()

void AvFormatDecoder::ScanDSMCCStreams ( void  )
protected

Check to see whether there is a Network Boot Ifo sub-descriptor in the PMT which requires the MHEG application to reboot.

Definition at line 1828 of file avformatdecoder.cpp.

Referenced by ScanStreams().

◆ AutoSelectAudioTrack()

int AvFormatDecoder::AutoSelectAudioTrack ( void  )
protected

Selects the best audio track.

It is primarily needed for DVB recordings

This function will select the best audio track available using the following criteria, in order of decreasing preference:

1) The stream last selected by the user, which is recalled as the Nth stream in the preferred language or the Nth substream when audio is in dual language format (each channel contains a different language track) If it cannot be located we attempt to find a stream in the same language.

2) If we cannot reselect the last user selected stream, then for each preferred language from most preferred to least preferred, we try to find a new stream based on the algorithm below.

3) If we cannot select a stream in a preferred language we try to select a stream irrespective of language based on the algorithm below.

When searching for a new stream (ie. options 2 and 3 above), the following search is carried out in order:

i) If DTS passthrough is enabled then the DTS track with the greatest number of audio channels is selected (the first will be chosen if there are several the same). If DTS passthrough is not enabled this step will be skipped because internal DTS decoding is not currently supported.

ii) If no DTS track is chosen, the AC3 track with the greatest number of audio channels is selected (the first will be chosen if there are several the same). Internal decoding of AC3 is supported, so this will be used irrespective of whether AC3 passthrough is enabled.

iii) Lastly the track with the greatest number of audio channels irrespective of type will be selected.

Returns
track if a track was selected, -1 otherwise

Definition at line 4318 of file avformatdecoder.cpp.

Referenced by AutoSelectTrack(), and ProcessAudioPacket().

◆ filter_max_ch()

int AvFormatDecoder::filter_max_ch ( const AVFormatContext *  ic,
const sinfo_vec_t tracks,
const std::vector< int > &  fs,
enum AVCodecID  codecId = AV_CODEC_ID_NONE,
int  profile = -1 
)
protected

Definition at line 4242 of file avformatdecoder.cpp.

Referenced by AutoSelectAudioTrack().

◆ DecodeDTVCC()

void AvFormatDecoder::DecodeDTVCC ( const uint8_t *  buf,
uint  buf_size,
bool  scte 
)
protected

Definition at line 2773 of file avformatdecoder.cpp.

Referenced by ProcessVideoFrame().

◆ DecodeCCx08()

void AvFormatDecoder::DecodeCCx08 ( const uint8_t *  buf,
uint  buf_size,
bool  scte 
)
protected

Definition at line 2798 of file avformatdecoder.cpp.

Referenced by DecodeDTVCC(), and ProcessVideoFrame().

◆ InitByteContext()

void AvFormatDecoder::InitByteContext ( bool  forceseek = false)
protected

Definition at line 864 of file avformatdecoder.cpp.

Referenced by OpenFile().

◆ InitVideoCodec()

void AvFormatDecoder::InitVideoCodec ( AVStream *  stream,
AVCodecContext *  enc,
bool  selectedStream = false 
)
protected

Definition at line 1404 of file avformatdecoder.cpp.

Referenced by ScanStreams().

◆ MpegPreProcessPkt()

void AvFormatDecoder::MpegPreProcessPkt ( AVStream *  stream,
AVPacket *  pkt 
)
protected

Preprocess a packet, setting the video parms if necessary.

Definition at line 3056 of file avformatdecoder.cpp.

Referenced by PreProcessVideoPacket().

◆ H264PreProcessPkt()

int AvFormatDecoder::H264PreProcessPkt ( AVStream *  stream,
AVPacket *  pkt 
)
protected

Definition at line 3156 of file avformatdecoder.cpp.

Referenced by PreProcessVideoPacket().

◆ PreProcessVideoPacket()

bool AvFormatDecoder::PreProcessVideoPacket ( AVStream *  stream,
AVPacket *  pkt 
)
protected

Definition at line 3264 of file avformatdecoder.cpp.

Referenced by GetFrame().

◆ ProcessVideoPacket()

bool AvFormatDecoder::ProcessVideoPacket ( AVStream *  stream,
AVPacket *  pkt,
bool Retry 
)
protectedvirtual

Reimplemented in MythDVDDecoder.

Definition at line 3323 of file avformatdecoder.cpp.

Referenced by GetFrame(), and MythDVDDecoder::ProcessVideoPacket().

◆ ProcessVideoFrame()

bool AvFormatDecoder::ProcessVideoFrame ( AVStream *  Stream,
AVFrame AvFrame 
)
protectedvirtual

Reimplemented in MythDVDDecoder.

Definition at line 3495 of file avformatdecoder.cpp.

Referenced by MythDVDDecoder::ProcessVideoFrame(), and ProcessVideoPacket().

◆ ProcessAudioPacket()

bool AvFormatDecoder::ProcessAudioPacket ( AVStream *  stream,
AVPacket *  pkt,
DecodeType  decodetype 
)
protected

Definition at line 4557 of file avformatdecoder.cpp.

Referenced by GetFrame().

◆ ProcessSubtitlePacket()

bool AvFormatDecoder::ProcessSubtitlePacket ( AVStream *  stream,
AVPacket *  pkt 
)
protected

Definition at line 3908 of file avformatdecoder.cpp.

Referenced by GetFrame().

◆ ProcessRawTextPacket()

bool AvFormatDecoder::ProcessRawTextPacket ( AVPacket *  Packet)
protected

Definition at line 3992 of file avformatdecoder.cpp.

Referenced by GetFrame().

◆ ProcessDataPacket()

bool AvFormatDecoder::ProcessDataPacket ( AVStream *  curstream,
AVPacket *  pkt,
DecodeType  decodetype 
)
protectedvirtual

Reimplemented in MythDVDDecoder.

Definition at line 4013 of file avformatdecoder.cpp.

Referenced by GetFrame(), and MythDVDDecoder::ProcessDataPacket().

◆ ProcessVBIDataPacket()

void AvFormatDecoder::ProcessVBIDataPacket ( const AVStream *  stream,
const AVPacket *  pkt 
)
protected

Process ivtv proprietary embedded vertical blanking interval captions.

See also
CC608Decoder, TeletextDecoder

Definition at line 3729 of file avformatdecoder.cpp.

Referenced by ProcessDataPacket().

◆ ProcessDVBDataPacket()

void AvFormatDecoder::ProcessDVBDataPacket ( const AVStream *  stream,
const AVPacket *  pkt 
)
protected

Process DVB Teletext.

See also
TeletextDecoder

Definition at line 3813 of file avformatdecoder.cpp.

Referenced by GetFrame(), and ProcessDataPacket().

◆ ProcessDSMCCPacket()

void AvFormatDecoder::ProcessDSMCCPacket ( const AVStream *  stream,
const AVPacket *  pkt 
)
protected

Process DSMCC object carousel packet.

Definition at line 3870 of file avformatdecoder.cpp.

Referenced by ProcessDataPacket().

◆ SeekReset()

void AvFormatDecoder::SeekReset ( long long  newkey,
uint  skipFrames,
bool  doFlush,
bool  discardFrames 
)
overrideprotectedvirtual

Reimplemented from DecoderBase.

Definition at line 674 of file avformatdecoder.cpp.

Referenced by DoFastForward(), MythBDDecoder::Reset(), MythDVDDecoder::Reset(), and Reset().

◆ DecoderWillDownmix()

bool AvFormatDecoder::DecoderWillDownmix ( const AVCodecContext *  ctx)
inlineprotected

Definition at line 5181 of file avformatdecoder.cpp.

Referenced by ProcessAudioPacket(), and SetupAudioStream().

◆ DoPassThrough()

bool AvFormatDecoder::DoPassThrough ( const AVCodecParameters *  par,
bool  withProfile = true 
)
protected

◆ SetupAudioStream()

bool AvFormatDecoder::SetupAudioStream ( void  )
protected

Reinitializes audio if it needs to be reinitialized.

Returns
true if audio changed, false otherwise

Definition at line 5231 of file avformatdecoder.cpp.

Referenced by AutoSelectAudioTrack(), ForceSetupAudioStream(), and SetTrack().

◆ SetupAudioStreamSubIndexes()

void AvFormatDecoder::SetupAudioStreamSubIndexes ( int  streamIndex)
protected

Reacts to DUAL/STEREO changes on the fly and fix streams.

This function should be called when a switch between dual and stereo mpeg audio is detected. Such changes can and will happen at any time.

After this method returns, a new audio stream should be selected using AvFormatDecoder::autoSelectSubtitleTrack().

Parameters
streamIndexav_stream_index of the stream that has changed

Definition at line 2595 of file avformatdecoder.cpp.

Referenced by ProcessAudioPacket().

◆ RemoveAudioStreams()

void AvFormatDecoder::RemoveAudioStreams ( )
protected

remove audio streams from the context used by dvd code during title transitions to remove stale audio streams

Definition at line 2654 of file avformatdecoder.cpp.

Referenced by ScanStreams().

◆ HandleGopStart()

void AvFormatDecoder::HandleGopStart ( AVPacket *  pkt,
bool  can_reliably_parse_keyframes 
)
protected

Update our position map, keyframe distance, and the like.

Called for key frame packets.

Definition at line 2936 of file avformatdecoder.cpp.

Referenced by H264PreProcessPkt(), MpegPreProcessPkt(), and PreProcessVideoPacket().

◆ GenerateDummyVideoFrames()

bool AvFormatDecoder::GenerateDummyVideoFrames ( void  )
protected

Definition at line 5118 of file avformatdecoder.cpp.

Referenced by GetFrame(), and ProcessDataPacket().

◆ HasVideo()

bool AvFormatDecoder::HasVideo ( const AVFormatContext *  ic)
protected

Definition at line 5087 of file avformatdecoder.cpp.

Referenced by GetFrame().

◆ GetVideoFrameRate()

float AvFormatDecoder::GetVideoFrameRate ( AVStream *  Stream,
AVCodecContext *  Context,
bool  Sanitise = false 
)
protected

◆ av_update_stream_timings_video()

void AvFormatDecoder::av_update_stream_timings_video ( AVFormatContext *  ic)
staticprotected

Definition at line 5380 of file avformatdecoder.cpp.

Referenced by OpenFile().

◆ OpenAVCodec()

bool AvFormatDecoder::OpenAVCodec ( AVCodecContext *  avctx,
const AVCodec *  codec 
)
protected

Definition at line 2466 of file avformatdecoder.cpp.

Referenced by ScanStreams().

◆ UpdateFramesPlayed()

void AvFormatDecoder::UpdateFramesPlayed ( void  )
overrideprotectedvirtual

Reimplemented from DecoderBase.

Reimplemented in MythDVDDecoder.

Definition at line 2495 of file avformatdecoder.cpp.

◆ DoRewindSeek()

bool AvFormatDecoder::DoRewindSeek ( long long  desiredFrame)
overrideprotectedvirtual

Reimplemented from DecoderBase.

Reimplemented in MythDVDDecoder.

Definition at line 2500 of file avformatdecoder.cpp.

◆ DoFastForwardSeek()

void AvFormatDecoder::DoFastForwardSeek ( long long  desiredFrame,
bool needflush 
)
overrideprotectedvirtual

Seeks to the keyframe just before the desiredFrame if exact seeks is enabled, or the frame just after it if exact seeks is not enabled.

The seek is not made if framesPlayed is greater than the keyframe this would jump too. This means that frame-by-frame seeking after a keyframe must be done elsewhere.

If the seek is made the needflush parameter is set.

Parameters
desiredFrameframe we are attempting to seek to.
needflushset to true if a seek is made.

Reimplemented from DecoderBase.

Reimplemented in MythDVDDecoder.

Definition at line 2505 of file avformatdecoder.cpp.

◆ StreamChangeCheck()

void AvFormatDecoder::StreamChangeCheck ( void  )
protectedvirtual

Reimplemented in MythDVDDecoder, and MythBDDecoder.

Definition at line 5068 of file avformatdecoder.cpp.

Referenced by GetFrame().

◆ PostProcessTracks()

virtual void AvFormatDecoder::PostProcessTracks ( void  )
inlineprotectedvirtual

Reimplemented in MythDVDDecoder.

Definition at line 249 of file avformatdecoder.h.

Referenced by ScanStreams().

◆ IsValidStream()

virtual bool AvFormatDecoder::IsValidStream ( int  )
inlineprotectedvirtual

Reimplemented in MythBDDecoder.

Definition at line 250 of file avformatdecoder.h.

Referenced by MythBDDecoder::IsValidStream(), and ScanStreams().

◆ DecodeAudio()

int AvFormatDecoder::DecodeAudio ( AVCodecContext *  ctx,
uint8_t *  buffer,
int &  data_size,
AVPacket *  pkt 
)
protected

◆ ReadPacket()

int AvFormatDecoder::ReadPacket ( AVFormatContext *  ctx,
AVPacket *  pkt,
bool storePacket 
)
protectedvirtual

Reimplemented in MythDVDDecoder, and MythBDDecoder.

Definition at line 5079 of file avformatdecoder.cpp.

Referenced by GetFrame().

◆ FlagIsSet()

bool AvFormatDecoder::FlagIsSet ( PlayerFlags  arg)
inlineprotected

Definition at line 257 of file avformatdecoder.h.

Referenced by InitVideoCodec(), ProcessVideoFrame(), and ScanStreams().

Friends And Related Function Documentation

◆ HandleStreamChange

void HandleStreamChange ( void *  data)
friend

Definition at line 886 of file avformatdecoder.cpp.

Referenced by OpenFile().

◆ get_avf_buffer

int get_avf_buffer ( struct AVCodecContext *  c,
AVFrame pic,
int  flags 
)
friend

Definition at line 2676 of file avformatdecoder.cpp.

Referenced by InitVideoCodec().

◆ open_avf

int open_avf ( URLContext *  h,
const char *  filename,
int  flags 
)
friend

◆ read_avf

int read_avf ( URLContext *  h,
uint8_t *  buf,
int  buf_size 
)
friend

◆ write_avf

int write_avf ( URLContext *  h,
uint8_t *  buf,
int  buf_size 
)
friend

◆ seek_avf

int64_t seek_avf ( URLContext *  h,
int64_t  offset,
int  whence 
)
friend

◆ close_avf

int close_avf ( URLContext *  h)
friend

Member Data Documentation

◆ m_isDbIgnored

bool AvFormatDecoder::m_isDbIgnored
protected

Definition at line 259 of file avformatdecoder.h.

Referenced by OpenFile(), and ScanStreams().

◆ m_avcParser

AVCParser* AvFormatDecoder::m_avcParser {nullptr}
protected

◆ m_ic

AVFormatContext* AvFormatDecoder::m_ic {nullptr}
protected

◆ m_codecMap

MythCodecMap AvFormatDecoder::m_codecMap
protected

◆ m_readContext

URLContext AvFormatDecoder::m_readContext {}
protected

Definition at line 268 of file avformatdecoder.h.

Referenced by InitByteContext().

◆ m_frameDecoded

int AvFormatDecoder::m_frameDecoded {0}
protected

Definition at line 270 of file avformatdecoder.h.

Referenced by GetFrame().

◆ m_decodedVideoFrame

MythVideoFrame* AvFormatDecoder::m_decodedVideoFrame {nullptr}
protected

◆ m_avfRingBuffer

MythAVFormatBuffer* AvFormatDecoder::m_avfRingBuffer {nullptr}
protected

Definition at line 272 of file avformatdecoder.h.

Referenced by InitByteContext(), OpenFile(), and ~AvFormatDecoder().

◆ m_swsCtx

struct SwsContext* AvFormatDecoder::m_swsCtx {nullptr}
protected

Definition at line 274 of file avformatdecoder.h.

Referenced by ProcessVideoFrame(), and ~AvFormatDecoder().

◆ m_directRendering

bool AvFormatDecoder::m_directRendering {false}
protected

Definition at line 275 of file avformatdecoder.h.

Referenced by InitVideoCodec(), and ProcessVideoFrame().

◆ m_doRewind

bool AvFormatDecoder::m_doRewind {false}
protected

Definition at line 277 of file avformatdecoder.h.

Referenced by DoFastForward(), and DoRewind().

◆ m_gopSet

bool AvFormatDecoder::m_gopSet {false}
protected

◆ m_seenGop

bool AvFormatDecoder::m_seenGop {false}
protected

A flag to indicate that we've seen a GOP frame. Used in junction with seq_count.

Definition at line 281 of file avformatdecoder.h.

Referenced by MpegPreProcessPkt(), PreProcessVideoPacket(), and Reset().

◆ m_seqCount

int AvFormatDecoder::m_seqCount {0}
protected

A counter used to determine if we need to force a call to HandleGopStart.

Definition at line 283 of file avformatdecoder.h.

Referenced by MpegPreProcessPkt(), PreProcessVideoPacket(), and Reset().

◆ m_storedPackets

QList<AVPacket*> AvFormatDecoder::m_storedPackets
protected

◆ m_prevGopPos

int AvFormatDecoder::m_prevGopPos {0}
protected

Definition at line 287 of file avformatdecoder.h.

Referenced by H264PreProcessPkt(), HandleGopStart(), MpegPreProcessPkt(), and SeekReset().

◆ m_gotVideoFrame

bool AvFormatDecoder::m_gotVideoFrame {false}
protected

◆ m_hasVideo

bool AvFormatDecoder::m_hasVideo {false}
protected

Definition at line 291 of file avformatdecoder.h.

Referenced by GetFrame().

◆ m_needDummyVideoFrames

bool AvFormatDecoder::m_needDummyVideoFrames {false}
protected

Definition at line 292 of file avformatdecoder.h.

Referenced by GenerateDummyVideoFrames(), and GetFrame().

◆ m_skipAudio

bool AvFormatDecoder::m_skipAudio {false}
protected

Definition at line 293 of file avformatdecoder.h.

Referenced by GetFrame(), and ProcessAudioPacket().

◆ m_allowedQuit

bool AvFormatDecoder::m_allowedQuit {false}
protected

Definition at line 294 of file avformatdecoder.h.

Referenced by GetFrame(), ProcessAudioPacket(), and ProcessDataPacket().

◆ m_startCodeState

uint32_t AvFormatDecoder::m_startCodeState {0xffffffff}
protected

Definition at line 296 of file avformatdecoder.h.

Referenced by MpegPreProcessPkt().

◆ m_lastVPts

std::chrono::milliseconds AvFormatDecoder::m_lastVPts {0ms}
protected

◆ m_lastAPts

std::chrono::milliseconds AvFormatDecoder::m_lastAPts {0ms}
protected

◆ m_lastCcPtsu

std::chrono::microseconds AvFormatDecoder::m_lastCcPtsu {0ms}
protected

◆ m_firstVPts

std::chrono::milliseconds AvFormatDecoder::m_firstVPts {0ms}
protected

◆ m_firstVPtsInuse

bool AvFormatDecoder::m_firstVPtsInuse {false}
protected

◆ m_faultyPts

int64_t AvFormatDecoder::m_faultyPts {0}
protected

◆ m_faultyDts

int64_t AvFormatDecoder::m_faultyDts {0}
protected

◆ m_lastPtsForFaultDetection

int64_t AvFormatDecoder::m_lastPtsForFaultDetection {0}
protected

◆ m_lastDtsForFaultDetection

int64_t AvFormatDecoder::m_lastDtsForFaultDetection {0}
protected

◆ m_ptsDetected

bool AvFormatDecoder::m_ptsDetected {false}
protected

◆ m_reorderedPtsDetected

bool AvFormatDecoder::m_reorderedPtsDetected {false}
protected

◆ m_ptsSelected

bool AvFormatDecoder::m_ptsSelected {true}
protected

Definition at line 310 of file avformatdecoder.h.

Referenced by ProcessVideoPacket().

◆ m_useFrameTiming

bool AvFormatDecoder::m_useFrameTiming {false}
protected

◆ m_forceDtsTimestamps

bool AvFormatDecoder::m_forceDtsTimestamps {false}
protected

Definition at line 315 of file avformatdecoder.h.

Referenced by OpenFile(), and ProcessVideoPacket().

◆ m_playerFlags

PlayerFlags AvFormatDecoder::m_playerFlags
protected

Definition at line 317 of file avformatdecoder.h.

Referenced by AvFormatDecoder(), and FlagIsSet().

◆ m_videoCodecId

MythCodecID AvFormatDecoder::m_videoCodecId {kCodec_NONE}
protected

◆ m_maxKeyframeDist

int AvFormatDecoder::m_maxKeyframeDist {-1}
protected

Definition at line 320 of file avformatdecoder.h.

Referenced by HandleGopStart().

◆ m_averrorCount

int AvFormatDecoder::m_averrorCount {0}
protected

Definition at line 321 of file avformatdecoder.h.

Referenced by InitVideoCodec(), ProcessVideoPacket(), and ScanStreams().

◆ m_ignoreScte

uint AvFormatDecoder::m_ignoreScte {0}
protected

Definition at line 324 of file avformatdecoder.h.

Referenced by ProcessVideoFrame().

◆ m_invertScteField

uint AvFormatDecoder::m_invertScteField {0}
protected

Definition at line 325 of file avformatdecoder.h.

Referenced by DecodeCCx08().

◆ m_lastScteField

uint AvFormatDecoder::m_lastScteField {0}
protected

Definition at line 326 of file avformatdecoder.h.

Referenced by DecodeCCx08().

◆ m_ccd608

CC608Decoder* AvFormatDecoder::m_ccd608 {nullptr}
protected

◆ m_ccd708

CC708Decoder* AvFormatDecoder::m_ccd708 {nullptr}
protected

◆ m_ttd

TeletextDecoder* AvFormatDecoder::m_ttd {nullptr}
protected

◆ m_ccX08InPmt

std::array<bool,68> AvFormatDecoder::m_ccX08InPmt {}
protected

Lookup table for whether a stream was seen in the PMT entries 0-3 correspond to CEA-608 CC1 through CC4, while entries 4-67 corresport to CEA-708 streams 0 through 64.

Definition at line 333 of file avformatdecoder.h.

Referenced by ScanATSCCaptionStreams(), and UpdateCaptionTracksFromStreams().

◆ m_ccX08InTracks

std::array<bool,68> AvFormatDecoder::m_ccX08InTracks {}
protected

Lookup table for whether a stream is represented in the UI entries 0-3 correspond to CEA-608 CC1 through CC4, while entries 4-67 corresport to CEA-708 streams 0 through 64.

Definition at line 337 of file avformatdecoder.h.

Referenced by UpdateATSCCaptionTracks(), and UpdateCaptionTracksFromStreams().

◆ m_pmtTracks

QList<StreamInfo> AvFormatDecoder::m_pmtTracks
protected

StreamInfo for 608 and 708 Captions seen in the PMT descriptor.

Definition at line 339 of file avformatdecoder.h.

Referenced by GetCaptionLanguage(), ScanATSCCaptionStreams(), and UpdateATSCCaptionTracks().

◆ m_pmtTrackTypes

QList<TrackType> AvFormatDecoder::m_pmtTrackTypes
protected

TrackType (608 or 708) for Captions seen in the PMT descriptor.

Definition at line 341 of file avformatdecoder.h.

Referenced by GetCaptionLanguage(), ScanATSCCaptionStreams(), and UpdateATSCCaptionTracks().

◆ m_streamTracks

QList<StreamInfo> AvFormatDecoder::m_streamTracks
protected

StreamInfo for 608 and 708 Captions seen in the caption stream itself but not seen in the PMT.

Definition at line 344 of file avformatdecoder.h.

Referenced by GetCaptionLanguage(), UpdateATSCCaptionTracks(), and UpdateCaptionTracksFromStreams().

◆ m_streamTrackTypes

QList<TrackType> AvFormatDecoder::m_streamTrackTypes
protected

TrackType (608 or 708) for Captions seen in the caption stream itself but not seen in the PMT.

Definition at line 347 of file avformatdecoder.h.

Referenced by GetCaptionLanguage(), UpdateATSCCaptionTracks(), and UpdateCaptionTracksFromStreams().

◆ m_itv

InteractiveTV* AvFormatDecoder::m_itv {nullptr}
protected

MHEG/MHP decoder.

Definition at line 350 of file avformatdecoder.h.

Referenced by AvFormatDecoder(), OpenFile(), ProcessDataPacket(), ProcessDSMCCPacket(), and ScanDSMCCStreams().

◆ m_audioSamples

uint8_t* AvFormatDecoder::m_audioSamples {nullptr}
protected

Definition at line 353 of file avformatdecoder.h.

Referenced by AvFormatDecoder(), ProcessAudioPacket(), and ~AvFormatDecoder().

◆ m_disablePassthru

bool AvFormatDecoder::m_disablePassthru {false}
protected

Definition at line 354 of file avformatdecoder.h.

Referenced by DoPassThrough(), and SetDisablePassThrough().

◆ m_audioIn

AudioInfo AvFormatDecoder::m_audioIn
protected

Definition at line 356 of file avformatdecoder.h.

Referenced by AvFormatDecoder(), ScanStreams(), and SetupAudioStream().

◆ m_audioOut

AudioInfo AvFormatDecoder::m_audioOut
protected

Definition at line 357 of file avformatdecoder.h.

Referenced by ProcessAudioPacket(), and SetupAudioStream().

◆ m_processFrames

bool AvFormatDecoder::m_processFrames {true}
protected

Definition at line 359 of file avformatdecoder.h.

Referenced by GetFrame(), and OpenFile().

◆ m_streamsChanged

bool AvFormatDecoder::m_streamsChanged { false }
protected

◆ m_resetHardwareDecoders

bool AvFormatDecoder::m_resetHardwareDecoders { false }
protected

Definition at line 362 of file avformatdecoder.h.

Referenced by ProcessVideoPacket(), and ScanStreams().

◆ m_audioReadAhead

std::chrono::milliseconds AvFormatDecoder::m_audioReadAhead {100ms}
protected

Definition at line 365 of file avformatdecoder.h.

Referenced by AvFormatDecoder(), and GetFrame().

◆ m_avCodecLock

QRecursiveMutex AvFormatDecoder::m_avCodecLock
protected

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