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 video 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 (RingBuffer *rbuffer, bool novideo, char testbuf[kDecoderProbeBufferSize], int testbufsize=kDecoderProbeBufferSize) 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 (RingBuffer *rb, bool storevid, long 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< long long > &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
 
int64_t NormalizeVideoTimecode (int64_t timecode) override
 
virtual int64_t NormalizeVideoTimecode (AVStream *st, int64_t timecode)
 
int GetTeletextDecoderType (void) const override
 
QString GetXDS (const QString &Key) const override
 
QByteArray GetSubHeader (uint TrackNo) override
 
void GetAttachmentData (uint TrackNo, QByteArray &Dilename, 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)
 
 DecoderBase (const DecoderBase &rhs)
 
virtual ~DecoderBase ()
 
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 ()
 
uint64_t TranslatePositionFrameToMs (long long position, float fallback_framerate, const frm_dir_map_t &cutlist)
 
uint64_t TranslatePositionMsToFrame (uint64_t dur_ms, float fallback_framerate, const frm_dir_map_t &cutlist)
 
float GetVideoAspect (void) const
 
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)
 
MythCodecContextGetMythCodecContext (void)
 
VideoDisplayProfileGetVideoDisplayProfile (void)
 
AVPixelFormat GetBestVideoFormat (AVPixelFormat *Formats)
 Find a suitable frame format that is mutually acceptable to the decoder and render device. More...
 

Static Public Member Functions

static void GetDecoders (RenderOptions &opts)
 
static bool CanHandle (char testbuf[kDecoderProbeBufferSize], const QString &filename, int testbufsize=kDecoderProbeBufferSize)
 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)
 

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 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 *pkt)
 
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)
 
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)
 
- Protected Member Functions inherited from DecoderBase
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)
 
static bool OpenAVCodec (AVCodecContext *avctx, const AVCodec *codec)
 

Protected Attributes

PrivateDecoderm_privateDec {nullptr}
 
bool m_isDbIgnored
 
H264Parserm_h264Parser {nullptr}
 
AVFormatContext * m_ic {nullptr}
 
MythCodecMap m_codecMap { }
 
URLContext m_readContext {}
 
int m_frameDecoded {0}
 
VideoFramem_decodedVideoFrame {nullptr}
 
AVFRingBufferm_avfRingBuffer {nullptr}
 
struct SwsContext * m_swsCtx {nullptr}
 
bool m_directRendering {false}
 
bool m_noDtsHack {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}
 
long long m_lastVPts {0}
 
long long m_lastAPts {0}
 
long long m_lastCcPtsu {0}
 
long long m_firstVPts {0}
 
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}
 
int m_cc608ParityTable [256] {0}
 
bool m_ccX08InPmt [64+4] {}
 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...
 
bool m_ccX08InTracks [64+4] {}
 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
 
float m_fps {0.0F}
 
bool m_processFrames {true}
 
bool m_streamsChanged { false }
 
bool m_resetHardwareDecoders { false }
 
int m_audioReadAhead {100}
 
- Protected Attributes inherited from DecoderBase
MythPlayerm_parent {nullptr}
 
ProgramInfom_playbackInfo {nullptr}
 
AudioPlayerm_audio {nullptr}
 
RingBufferm_ringBuffer {nullptr}
 
int m_currentWidth {640}
 
int m_currentHeight {480}
 
float m_currentAspect {1.33333F}
 
double m_fps {29.97}
 
int m_fpsMultiplier {1}
 
int m_fpsSkip {0}
 
uint m_bitrate {4000}
 
long long m_framesPlayed {0}
 
long long m_framesRead {0}
 
unsigned long long m_frameCounter {0}
 
AVRational m_totalDuration
 
long long m_lastKey {0}
 
bool m_nextDecodedFrameIsKeyFrame { false }
 
int m_keyframeDist {-1}
 
long long m_indexOffset {0}
 
MythAVCopy m_copyFrame
 
bool m_trackTotalDuration {false}
 
EofState m_atEof {kEofStateNone}
 
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}
 
QMutex m_positionMapLock {QMutex::Recursive}
 
vector< PosMapEntrym_positionMap
 
frm_pos_map_t m_frameToDurMap
 
frm_pos_map_t m_durToFrameMap
 
bool m_dontSyncPositionMap {false}
 
QDateTime m_lastPositionMapUpdate
 
uint64_t m_seekSnap {UINT64_MAX}
 
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}
 
long long m_readAdjust {0}
 
bool m_justAfterChange {false}
 
int m_videoRotation {0}
 
QMutex m_trackLock { QMutex::Recursive }
 
bool m_decodeAllSubtitles { false }
 
int m_currentTrack [kTrackTypeCount] { -1 }
 
vector< StreamInfom_tracks [kTrackTypeCount]
 
StreamInfo m_wantedTrack [kTrackTypeCount]
 
StreamInfo m_selectedTrack [kTrackTypeCount]
 
vector< int > m_languagePreference
 language preferences for auto-selection of streams More...
 
MythCodecContextm_mythCodecCtx { nullptr }
 
VideoDisplayProfile m_videoDisplayProfile
 

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 video files.

The AvFormatDecoder is used to decode non-NuppleVideo files. It's used as a decoder of last resort after trying the NuppelDecoder

Definition at line 88 of file avformatdecoder.h.

Constructor & Destructor Documentation

◆ AvFormatDecoder() [1/2]

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

Definition at line 332 of file avformatdecoder.cpp.

◆ ~AvFormatDecoder()

AvFormatDecoder::~AvFormatDecoder ( )
override

Definition at line 364 of file avformatdecoder.cpp.

◆ AvFormatDecoder() [2/2]

AvFormatDecoder::AvFormatDecoder ( const AvFormatDecoder )
delete

Member Function Documentation

◆ GetDecoders()

void AvFormatDecoder::GetDecoders ( RenderOptions opts)
static

Definition at line 322 of file avformatdecoder.cpp.

Referenced by VideoDisplayProfile::InitStatics().

◆ operator=()

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

◆ SetEof()

void AvFormatDecoder::SetEof ( bool  eof)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 838 of file avformatdecoder.cpp.

Referenced by GetFrame().

◆ CodecMap()

MythCodecMap * AvFormatDecoder::CodecMap ( void  )

◆ CloseCodecs()

void AvFormatDecoder::CloseCodecs ( )

Definition at line 402 of file avformatdecoder.cpp.

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

◆ CloseContext()

void AvFormatDecoder::CloseContext ( )

Definition at line 414 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 AvFormatDecoderDVD.

Definition at line 850 of file avformatdecoder.cpp.

Referenced by OpenFile(), AvFormatDecoderBD::Reset(), and AvFormatDecoderDVD::Reset().

◆ CanHandle()

bool AvFormatDecoder::CanHandle ( char  testbuf[kDecoderProbeBufferSize],
const QString &  filename,
int  testbufsize = kDecoderProbeBufferSize 
)
static

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

Definition at line 869 of file avformatdecoder.cpp.

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

◆ OpenFile()

int AvFormatDecoder::OpenFile ( RingBuffer rbuffer,
bool  novideo,
char  testbuf[kDecoderProbeBufferSize],
int  testbufsize = kDecoderProbeBufferSize 
)
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 959 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 AvFormatDecoderDVD.

Definition at line 4801 of file avformatdecoder.cpp.

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

◆ IsLastFrameKey()

bool AvFormatDecoder::IsLastFrameKey ( void  ) const
inlineoverridevirtual

Implements DecoderBase.

Definition at line 122 of file avformatdecoder.h.

◆ WriteStoredData()

void AvFormatDecoder::WriteStoredData ( RingBuffer rb,
bool  storevid,
long  timecodeOffset 
)
inlineoverridevirtual

This is a No-op for this class.

Implements DecoderBase.

Definition at line 125 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 130 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 133 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 136 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 139 of file avformatdecoder.h.

◆ UpdateStoredFrameNum()

long AvFormatDecoder::UpdateStoredFrameNum ( long  frame)
inlineoverridevirtual

This is a No-op for this class.

Implements DecoderBase.

Definition at line 142 of file avformatdecoder.h.

◆ GetCodecDecoderName()

QString AvFormatDecoder::GetCodecDecoderName ( void  ) const
overridevirtual

Implements DecoderBase.

Definition at line 5198 of file avformatdecoder.cpp.

Referenced by ScanStreams().

◆ GetRawEncodingType()

QString AvFormatDecoder::GetRawEncodingType ( void  )
overridevirtual

Reimplemented from DecoderBase.

Definition at line 5205 of file avformatdecoder.cpp.

◆ GetVideoCodecID()

MythCodecID AvFormatDecoder::GetVideoCodecID ( void  ) const
inlineoverridevirtual

Implements DecoderBase.

Definition at line 146 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 5213 of file avformatdecoder.cpp.

◆ ForceSetupAudioStream()

void AvFormatDecoder::ForceSetupAudioStream ( void  )
overridevirtual

Reimplemented from DecoderBase.

Definition at line 5232 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 4102 of file avformatdecoder.cpp.

◆ SetTrack()

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

Reimplemented from DecoderBase.

Definition at line 4090 of file avformatdecoder.cpp.

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

◆ ScanStreams()

int AvFormatDecoder::ScanStreams ( bool  novideo)

◆ FindStreamInfo()

int AvFormatDecoder::FindStreamInfo ( void  )

Definition at line 932 of file avformatdecoder.cpp.

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

◆ GetNumChapters()

int AvFormatDecoder::GetNumChapters ( void  )
overridevirtual

Reimplemented from DecoderBase.

Definition at line 497 of file avformatdecoder.cpp.

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

◆ GetChapterTimes()

void AvFormatDecoder::GetChapterTimes ( QList< long long > &  times)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 504 of file avformatdecoder.cpp.

◆ GetCurrentChapter()

int AvFormatDecoder::GetCurrentChapter ( long long  framesPlayed)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 521 of file avformatdecoder.cpp.

◆ GetChapter()

long long AvFormatDecoder::GetChapter ( int  chapter)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 545 of file avformatdecoder.cpp.

◆ DoRewind()

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

Reimplemented from DecoderBase.

Definition at line 561 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 575 of file avformatdecoder.cpp.

Referenced by DoRewind().

◆ SetIdrOnlyKeyframes()

void AvFormatDecoder::SetIdrOnlyKeyframes ( bool  value)
inlineoverridevirtual

Reimplemented from DecoderBase.

Definition at line 164 of file avformatdecoder.h.

Referenced by AvFormatDecoder().

◆ NormalizeVideoTimecode() [1/2]

int64_t AvFormatDecoder::NormalizeVideoTimecode ( int64_t  timecode)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 441 of file avformatdecoder.cpp.

Referenced by ProcessVideoFrame().

◆ NormalizeVideoTimecode() [2/2]

int64_t AvFormatDecoder::NormalizeVideoTimecode ( AVStream *  st,
int64_t  timecode 
)
virtual

Definition at line 475 of file avformatdecoder.cpp.

◆ GetTeletextDecoderType()

int AvFormatDecoder::GetTeletextDecoderType ( void  ) const
overridevirtual

Reimplemented from DecoderBase.

Definition at line 4167 of file avformatdecoder.cpp.

◆ GetXDS()

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

Reimplemented from DecoderBase.

Definition at line 4172 of file avformatdecoder.cpp.

◆ GetSubHeader()

QByteArray AvFormatDecoder::GetSubHeader ( uint  TrackNo)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 4177 of file avformatdecoder.cpp.

◆ GetAttachmentData()

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

Reimplemented from DecoderBase.

Definition at line 4189 of file avformatdecoder.cpp.

◆ SetAudioByComponentTag()

bool AvFormatDecoder::SetAudioByComponentTag ( int  Tag)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 4203 of file avformatdecoder.cpp.

Referenced by OpenFile().

◆ SetVideoByComponentTag()

bool AvFormatDecoder::SetVideoByComponentTag ( int  Tag)
overridevirtual

Reimplemented from DecoderBase.

Definition at line 4216 of file avformatdecoder.cpp.

Referenced by OpenFile().

◆ GetTeletextLanguage()

int AvFormatDecoder::GetTeletextLanguage ( uint  Index)
virtual

Returns TeleText language.

Definition at line 2560 of file avformatdecoder.cpp.

◆ GetSubtitleLanguage()

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

Returns DVD Subtitle language.

Reimplemented in AvFormatDecoderBD.

Definition at line 2570 of file avformatdecoder.cpp.

Referenced by GetAudioLanguage(), and ScanStreams().

◆ GetCaptionLanguage()

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

Return ATSC Closed Caption Language.

Definition at line 2577 of file avformatdecoder.cpp.

Referenced by UpdateCaptionTracksFromStreams().

◆ GetAudioLanguage()

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

Reimplemented in AvFormatDecoderDVD, and AvFormatDecoderBD.

Definition at line 2607 of file avformatdecoder.cpp.

Referenced by ScanStreams().

◆ GetAudioTrackType()

AudioTrackType AvFormatDecoder::GetAudioTrackType ( uint  StreamIndex)
virtual

Reimplemented in AvFormatDecoderDVD.

Definition at line 2612 of file avformatdecoder.cpp.

Referenced by AvFormatDecoderDVD::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 4236 of file avformatdecoder.cpp.

◆ ScanATSCCaptionStreams()

void AvFormatDecoder::ScanATSCCaptionStreams ( int  av_index)
protected

Definition at line 1666 of file avformatdecoder.cpp.

Referenced by ScanStreams(), and UpdateCaptionTracksFromStreams().

◆ UpdateATSCCaptionTracks()

void AvFormatDecoder::UpdateATSCCaptionTracks ( void  )
protected

Definition at line 1739 of file avformatdecoder.cpp.

Referenced by ScanStreams(), and UpdateCaptionTracksFromStreams().

◆ UpdateCaptionTracksFromStreams()

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

Definition at line 2930 of file avformatdecoder.cpp.

Referenced by DecodeCCx08(), and ProcessVBIDataPacket().

◆ ScanTeletextCaptions()

void AvFormatDecoder::ScanTeletextCaptions ( int  av_index)
protected

Definition at line 1806 of file avformatdecoder.cpp.

Referenced by ScanStreams().

◆ ScanRawTextCaptions()

void AvFormatDecoder::ScanRawTextCaptions ( int  av_stream_index)
protected

Definition at line 1861 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 1884 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 4350 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 vector< int > &  fs,
enum AVCodecID  codecId = AV_CODEC_ID_NONE,
int  profile = -1 
)
protected

Definition at line 4274 of file avformatdecoder.cpp.

Referenced by AutoSelectAudioTrack().

◆ DecodeDTVCC()

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

Definition at line 2836 of file avformatdecoder.cpp.

Referenced by ProcessVideoFrame().

◆ DecodeCCx08()

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

Definition at line 2861 of file avformatdecoder.cpp.

Referenced by DecodeDTVCC(), and ProcessVideoFrame().

◆ InitByteContext()

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

Definition at line 897 of file avformatdecoder.cpp.

Referenced by OpenFile().

◆ InitVideoCodec()

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

Definition at line 1482 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 3119 of file avformatdecoder.cpp.

Referenced by PreProcessVideoPacket().

◆ H264PreProcessPkt()

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

Definition at line 3225 of file avformatdecoder.cpp.

Referenced by PreProcessVideoPacket().

◆ PreProcessVideoPacket()

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

Definition at line 3335 of file avformatdecoder.cpp.

Referenced by GetFrame().

◆ ProcessVideoPacket()

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

Reimplemented in AvFormatDecoderDVD.

Definition at line 3394 of file avformatdecoder.cpp.

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

◆ ProcessVideoFrame()

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

Reimplemented in AvFormatDecoderDVD.

Definition at line 3582 of file avformatdecoder.cpp.

Referenced by GetFrame(), AvFormatDecoderDVD::ProcessVideoFrame(), and ProcessVideoPacket().

◆ ProcessAudioPacket()

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

Definition at line 4589 of file avformatdecoder.cpp.

Referenced by GetFrame().

◆ ProcessSubtitlePacket()

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

Definition at line 3975 of file avformatdecoder.cpp.

Referenced by GetFrame().

◆ ProcessRawTextPacket()

bool AvFormatDecoder::ProcessRawTextPacket ( AVPacket *  pkt)
protected

Definition at line 4039 of file avformatdecoder.cpp.

Referenced by GetFrame().

◆ ProcessDataPacket()

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

Reimplemented in AvFormatDecoderDVD.

Definition at line 4057 of file avformatdecoder.cpp.

Referenced by GetFrame(), and AvFormatDecoderDVD::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 3808 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 3894 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 3937 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 694 of file avformatdecoder.cpp.

Referenced by DoFastForward(), Reset(), and StreamChangeCheck().

◆ DecoderWillDownmix()

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

Definition at line 5238 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 5285 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 2657 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 2716 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 2999 of file avformatdecoder.cpp.

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

◆ GenerateDummyVideoFrames()

bool AvFormatDecoder::GenerateDummyVideoFrames ( void  )
protected

Definition at line 5158 of file avformatdecoder.cpp.

Referenced by GetFrame(), and ProcessDataPacket().

◆ HasVideo()

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

Definition at line 5132 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 5437 of file avformatdecoder.cpp.

Referenced by OpenFile().

◆ OpenAVCodec()

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

Definition at line 2515 of file avformatdecoder.cpp.

Referenced by ScanStreams().

◆ UpdateFramesPlayed()

void AvFormatDecoder::UpdateFramesPlayed ( void  )
overrideprotectedvirtual

Reimplemented from DecoderBase.

Reimplemented in AvFormatDecoderDVD.

Definition at line 2544 of file avformatdecoder.cpp.

◆ DoRewindSeek()

bool AvFormatDecoder::DoRewindSeek ( long long  desiredFrame)
overrideprotectedvirtual

Reimplemented from DecoderBase.

Reimplemented in AvFormatDecoderDVD.

Definition at line 2549 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 AvFormatDecoderDVD.

Definition at line 2554 of file avformatdecoder.cpp.

◆ StreamChangeCheck()

void AvFormatDecoder::StreamChangeCheck ( void  )
protectedvirtual

Reimplemented in AvFormatDecoderDVD, and AvFormatDecoderBD.

Definition at line 5117 of file avformatdecoder.cpp.

Referenced by GetFrame().

◆ PostProcessTracks()

virtual void AvFormatDecoder::PostProcessTracks ( void  )
inlineprotectedvirtual

Reimplemented in AvFormatDecoderDVD.

Definition at line 257 of file avformatdecoder.h.

Referenced by ScanStreams().

◆ IsValidStream()

virtual bool AvFormatDecoder::IsValidStream ( int  )
inlineprotectedvirtual

Reimplemented in AvFormatDecoderBD.

Definition at line 258 of file avformatdecoder.h.

Referenced by AvFormatDecoderBD::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 AvFormatDecoderDVD, and AvFormatDecoderBD.

Definition at line 5127 of file avformatdecoder.cpp.

Referenced by GetFrame().

Friends And Related Function Documentation

◆ HandleStreamChange

void HandleStreamChange ( void *  data)
friend

Definition at line 919 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 2736 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_privateDec

PrivateDecoder* AvFormatDecoder::m_privateDec {nullptr}
protected

◆ m_isDbIgnored

bool AvFormatDecoder::m_isDbIgnored
protected

Definition at line 267 of file avformatdecoder.h.

Referenced by OpenFile(), and ScanStreams().

◆ m_h264Parser

H264Parser* AvFormatDecoder::m_h264Parser {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 276 of file avformatdecoder.h.

Referenced by InitByteContext().

◆ m_frameDecoded

int AvFormatDecoder::m_frameDecoded {0}
protected

Definition at line 278 of file avformatdecoder.h.

Referenced by GetFrame().

◆ m_decodedVideoFrame

VideoFrame* AvFormatDecoder::m_decodedVideoFrame {nullptr}
protected

◆ m_avfRingBuffer

AVFRingBuffer* AvFormatDecoder::m_avfRingBuffer {nullptr}
protected

Definition at line 280 of file avformatdecoder.h.

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

◆ m_swsCtx

struct SwsContext* AvFormatDecoder::m_swsCtx {nullptr}
protected

Definition at line 282 of file avformatdecoder.h.

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

◆ m_directRendering

bool AvFormatDecoder::m_directRendering {false}
protected

Definition at line 283 of file avformatdecoder.h.

Referenced by InitVideoCodec(), and ProcessVideoFrame().

◆ m_noDtsHack

bool AvFormatDecoder::m_noDtsHack {false}
protected

Definition at line 285 of file avformatdecoder.h.

Referenced by DoFastForward(), and SeekReset().

◆ m_doRewind

bool AvFormatDecoder::m_doRewind {false}
protected

Definition at line 286 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 290 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 292 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 296 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 300 of file avformatdecoder.h.

Referenced by GetFrame().

◆ m_needDummyVideoFrames

bool AvFormatDecoder::m_needDummyVideoFrames {false}
protected

Definition at line 301 of file avformatdecoder.h.

Referenced by GenerateDummyVideoFrames(), and GetFrame().

◆ m_skipAudio

bool AvFormatDecoder::m_skipAudio {false}
protected

Definition at line 302 of file avformatdecoder.h.

Referenced by GetFrame(), and ProcessAudioPacket().

◆ m_allowedQuit

bool AvFormatDecoder::m_allowedQuit {false}
protected

Definition at line 303 of file avformatdecoder.h.

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

◆ m_startCodeState

uint32_t AvFormatDecoder::m_startCodeState {0xffffffff}
protected

Definition at line 305 of file avformatdecoder.h.

Referenced by MpegPreProcessPkt().

◆ m_lastVPts

long long AvFormatDecoder::m_lastVPts {0}
protected

◆ m_lastAPts

long long AvFormatDecoder::m_lastAPts {0}
protected

◆ m_lastCcPtsu

long long AvFormatDecoder::m_lastCcPtsu {0}
protected

◆ m_firstVPts

long long AvFormatDecoder::m_firstVPts {0}
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 319 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 324 of file avformatdecoder.h.

Referenced by OpenFile(), and ProcessVideoPacket().

◆ m_playerFlags

PlayerFlags AvFormatDecoder::m_playerFlags
protected

Definition at line 326 of file avformatdecoder.h.

Referenced by AvFormatDecoder().

◆ m_videoCodecId

MythCodecID AvFormatDecoder::m_videoCodecId {kCodec_NONE}
protected

◆ m_maxKeyframeDist

int AvFormatDecoder::m_maxKeyframeDist {-1}
protected

Definition at line 329 of file avformatdecoder.h.

Referenced by HandleGopStart().

◆ m_averrorCount

int AvFormatDecoder::m_averrorCount {0}
protected

Definition at line 330 of file avformatdecoder.h.

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

◆ m_ignoreScte

uint AvFormatDecoder::m_ignoreScte {0}
protected

Definition at line 333 of file avformatdecoder.h.

Referenced by ProcessVideoFrame().

◆ m_invertScteField

uint AvFormatDecoder::m_invertScteField {0}
protected

Definition at line 334 of file avformatdecoder.h.

Referenced by DecodeCCx08().

◆ m_lastScteField

uint AvFormatDecoder::m_lastScteField {0}
protected

Definition at line 335 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_cc608ParityTable

int AvFormatDecoder::m_cc608ParityTable[256] {0}
protected

Definition at line 339 of file avformatdecoder.h.

Referenced by AvFormatDecoder(), DecodeCCx08(), and ProcessVBIDataPacket().

◆ m_ccX08InPmt

bool AvFormatDecoder::m_ccX08InPmt[64+4] {}
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 343 of file avformatdecoder.h.

Referenced by ScanATSCCaptionStreams(), and UpdateCaptionTracksFromStreams().

◆ m_ccX08InTracks

bool AvFormatDecoder::m_ccX08InTracks[64+4] {}
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 347 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 349 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 351 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 354 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 357 of file avformatdecoder.h.

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

◆ m_itv

InteractiveTV* AvFormatDecoder::m_itv {nullptr}
protected

MHEG/MHP decoder.

Definition at line 360 of file avformatdecoder.h.

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

◆ m_audioSamples

uint8_t* AvFormatDecoder::m_audioSamples {nullptr}
protected

Definition at line 363 of file avformatdecoder.h.

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

◆ m_disablePassthru

bool AvFormatDecoder::m_disablePassthru {false}
protected

Definition at line 364 of file avformatdecoder.h.

Referenced by DoPassThrough(), and SetDisablePassThrough().

◆ m_audioIn

AudioInfo AvFormatDecoder::m_audioIn
protected

Definition at line 366 of file avformatdecoder.h.

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

◆ m_audioOut

AudioInfo AvFormatDecoder::m_audioOut
protected

Definition at line 367 of file avformatdecoder.h.

Referenced by ProcessAudioPacket(), and SetupAudioStream().

◆ m_fps

float AvFormatDecoder::m_fps {0.0F}
protected

◆ m_processFrames

bool AvFormatDecoder::m_processFrames {true}
protected

Definition at line 370 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 373 of file avformatdecoder.h.

Referenced by ProcessVideoPacket(), and ScanStreams().

◆ m_audioReadAhead

int AvFormatDecoder::m_audioReadAhead {100}
protected

Definition at line 376 of file avformatdecoder.h.

Referenced by AvFormatDecoder(), and GetFrame().


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