MythTV
master
|
A decoder for media files. More...
#include <avformatdecoder.h>
Public Member Functions | |
AvFormatDecoder (MythPlayer *parent, const ProgramInfo &pginfo, PlayerFlags flags) | |
~AvFormatDecoder () override | |
AvFormatDecoder (const AvFormatDecoder &)=delete | |
AvFormatDecoder & | operator= (const AvFormatDecoder &)=delete |
void | SetEof (bool eof) override |
MythCodecMap * | CodecMap (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 (MythMediaBuffer *Buffer, bool storevid, 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 > ×) 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) |
![]() | |
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) |
MythPlayer * | GetPlayer () |
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 | 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 |
MythCodecContext * | GetMythCodecContext (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 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) |
![]() | |
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) |
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) |
A decoder for media files.
Definition at line 82 of file avformatdecoder.h.
AvFormatDecoder::AvFormatDecoder | ( | MythPlayer * | parent, |
const ProgramInfo & | pginfo, | ||
PlayerFlags | flags | ||
) |
Definition at line 370 of file avformatdecoder.cpp.
|
override |
Definition at line 400 of file avformatdecoder.cpp.
|
delete |
|
delete |
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 802 of file avformatdecoder.cpp.
Referenced by GetFrame().
MythCodecMap * AvFormatDecoder::CodecMap | ( | void | ) |
Definition at line 431 of file avformatdecoder.cpp.
Referenced by MythMediaCodecContext::GetBestSupportedCodec(), and MythMMALContext::GetSupportedCodec().
void AvFormatDecoder::CloseCodecs | ( | ) |
Definition at line 436 of file avformatdecoder.cpp.
Referenced by CloseContext(), and MythBDDecoder::StreamChangeCheck().
void AvFormatDecoder::CloseContext | ( | ) |
Definition at line 450 of file avformatdecoder.cpp.
Referenced by OpenFile(), and ~AvFormatDecoder().
|
overridevirtual |
Reimplemented from DecoderBase.
Reimplemented in MythDVDDecoder.
Definition at line 814 of file avformatdecoder.cpp.
Referenced by OpenFile(), MythBDDecoder::Reset(), and MythDVDDecoder::Reset().
|
static |
Perform an av_probe_input_format on the passed data to see if we can decode it with this class.
Definition at line 833 of file avformatdecoder.cpp.
Referenced by MythBDPlayer::CreateDecoder(), MythDVDPlayer::CreateDecoder(), and MythPlayer::CreateDecoder().
|
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.
rbuffer | pointer to a valid ringuffer. |
novideo | if true then no video is sought in ScanSreams. |
testbuf | Temporary buffer for probing the input. |
testbufsize | The size of the test buffer. The minimum of this value or kDecoderProbeBufferSize will be used. |
Implements DecoderBase.
Definition at line 924 of file avformatdecoder.cpp.
|
overridevirtual |
Demux, preprocess and possibly decode a frame of video/audio.
Implements DecoderBase.
Reimplemented in MythDVDDecoder.
Definition at line 4787 of file avformatdecoder.cpp.
Referenced by MythDVDDecoder::GetFrame(), and SeekReset().
|
inlineoverridevirtual |
Implements DecoderBase.
Definition at line 114 of file avformatdecoder.h.
|
inlineoverridevirtual |
This is a No-op for this class.
Implements DecoderBase.
Definition at line 117 of file avformatdecoder.h.
|
inlineoverridevirtual |
This is a No-op for this class.
Reimplemented from DecoderBase.
Definition at line 122 of file avformatdecoder.h.
|
inlineoverridevirtual |
This is a No-op for this class.
Reimplemented from DecoderBase.
Definition at line 125 of file avformatdecoder.h.
|
inlineoverridevirtual |
This is a No-op for this class.
Reimplemented from DecoderBase.
Definition at line 128 of file avformatdecoder.h.
|
inlineoverridevirtual |
This is a No-op for this class.
Reimplemented from DecoderBase.
Definition at line 131 of file avformatdecoder.h.
|
inlineoverridevirtual |
This is a No-op for this class.
Implements DecoderBase.
Definition at line 134 of file avformatdecoder.h.
|
overridevirtual |
Implements DecoderBase.
Definition at line 5154 of file avformatdecoder.cpp.
Referenced by ScanStreams().
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 5159 of file avformatdecoder.cpp.
|
inlineoverridevirtual |
Implements DecoderBase.
Definition at line 138 of file avformatdecoder.h.
Referenced by MythMMALContext::GetBuffer().
|
overridevirtual |
Disables AC3/DTS pass through.
Reimplemented from DecoderBase.
Definition at line 5167 of file avformatdecoder.cpp.
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 5186 of file avformatdecoder.cpp.
Referenced by SetDisablePassThrough().
void AvFormatDecoder::AddTextData | ( | unsigned char * | buf, |
int | len, | ||
int64_t | timecode, | ||
char | type | ||
) |
Reimplemented from DecoderBase.
Definition at line 4070 of file avformatdecoder.cpp.
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 4058 of file avformatdecoder.cpp.
Referenced by MythDVDDecoder::PostProcessTracks(), and SetAudioByComponentTag().
int AvFormatDecoder::ScanStreams | ( | bool | novideo | ) |
Definition at line 1917 of file avformatdecoder.cpp.
Referenced by OpenFile(), MythBDDecoder::StreamChangeCheck(), MythDVDDecoder::StreamChangeCheck(), and StreamChangeCheck().
int AvFormatDecoder::FindStreamInfo | ( | void | ) |
Definition at line 895 of file avformatdecoder.cpp.
Referenced by OpenFile(), and MythBDDecoder::StreamChangeCheck().
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 526 of file avformatdecoder.cpp.
Referenced by GetChapter(), GetChapterTimes(), and GetCurrentChapter().
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 533 of file avformatdecoder.cpp.
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 550 of file avformatdecoder.cpp.
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 574 of file avformatdecoder.cpp.
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 590 of file avformatdecoder.cpp.
|
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 604 of file avformatdecoder.cpp.
Referenced by DoRewind().
|
inlineoverridevirtual |
Reimplemented from DecoderBase.
Definition at line 156 of file avformatdecoder.h.
Referenced by AvFormatDecoder().
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 470 of file avformatdecoder.cpp.
Referenced by ProcessVideoFrame().
|
virtual |
Definition at line 504 of file avformatdecoder.cpp.
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 4149 of file avformatdecoder.cpp.
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 4154 of file avformatdecoder.cpp.
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 4159 of file avformatdecoder.cpp.
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 4171 of file avformatdecoder.cpp.
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 4185 of file avformatdecoder.cpp.
Referenced by OpenFile().
|
overridevirtual |
Reimplemented from DecoderBase.
Definition at line 4198 of file avformatdecoder.cpp.
Referenced by OpenFile().
|
virtual |
Returns TeleText language.
Definition at line 2532 of file avformatdecoder.cpp.
Referenced by MythCCExtractorPlayer::ProcessTeletext().
Returns DVD Subtitle language.
Reimplemented in MythBDDecoder.
Definition at line 2542 of file avformatdecoder.cpp.
Referenced by GetAudioLanguage(), MythCCExtractorPlayer::ProcessDVBSubtitles(), and ScanStreams().
|
virtual |
Return ATSC Closed Caption Language.
Definition at line 2549 of file avformatdecoder.cpp.
Referenced by MythCCExtractorPlayer::Process608Captions(), MythCCExtractorPlayer::Process708Captions(), and UpdateCaptionTracksFromStreams().
Reimplemented in MythDVDDecoder, and MythBDDecoder.
Definition at line 2579 of file avformatdecoder.cpp.
Referenced by ScanStreams().
|
virtual |
Reimplemented in MythDVDDecoder.
Definition at line 2584 of file avformatdecoder.cpp.
Referenced by MythDVDDecoder::GetAudioTrackType(), and ScanStreams().
|
static |
Definition at line 1391 of file avformatdecoder.cpp.
Referenced by MythVAAPIContext::InitialiseContext(), MythVAAPIContext::InitialiseContext2(), and InitVideoCodec().
|
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
Reimplemented from DecoderBase.
Definition at line 4218 of file avformatdecoder.cpp.
|
protected |
Definition at line 1613 of file avformatdecoder.cpp.
Referenced by ScanStreams(), and UpdateCaptionTracksFromStreams().
|
protected |
Definition at line 1697 of file avformatdecoder.cpp.
Referenced by ScanStreams(), and UpdateCaptionTracksFromStreams().
Definition at line 2880 of file avformatdecoder.cpp.
Referenced by DecodeCCx08(), and ProcessVBIDataPacket().
|
protected |
Definition at line 1764 of file avformatdecoder.cpp.
Referenced by ScanStreams().
|
protected |
Definition at line 1826 of file avformatdecoder.cpp.
Referenced by ScanStreams().
|
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 1849 of file avformatdecoder.cpp.
Referenced by ScanStreams().
|
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.
Definition at line 4332 of file avformatdecoder.cpp.
Referenced by AutoSelectTrack(), and ProcessAudioPacket().
|
protected |
Definition at line 4256 of file avformatdecoder.cpp.
Referenced by AutoSelectAudioTrack().
Definition at line 2786 of file avformatdecoder.cpp.
Referenced by ProcessVideoFrame().
Definition at line 2811 of file avformatdecoder.cpp.
Referenced by DecodeDTVCC(), and ProcessVideoFrame().
Definition at line 860 of file avformatdecoder.cpp.
Referenced by OpenFile().
|
protected |
Definition at line 1425 of file avformatdecoder.cpp.
Referenced by ScanStreams().
|
protected |
Preprocess a packet, setting the video parms if necessary.
Definition at line 3069 of file avformatdecoder.cpp.
Referenced by PreProcessVideoPacket().
|
protected |
Definition at line 3169 of file avformatdecoder.cpp.
Referenced by PreProcessVideoPacket().
|
protected |
Definition at line 3277 of file avformatdecoder.cpp.
Referenced by GetFrame().
|
protectedvirtual |
Reimplemented in MythDVDDecoder.
Definition at line 3336 of file avformatdecoder.cpp.
Referenced by GetFrame(), and MythDVDDecoder::ProcessVideoPacket().
Reimplemented in MythDVDDecoder.
Definition at line 3508 of file avformatdecoder.cpp.
Referenced by MythDVDDecoder::ProcessVideoFrame(), and ProcessVideoPacket().
|
protected |
Definition at line 4571 of file avformatdecoder.cpp.
Referenced by GetFrame().
|
protected |
Definition at line 3923 of file avformatdecoder.cpp.
Referenced by GetFrame().
|
protected |
Definition at line 4000 of file avformatdecoder.cpp.
Referenced by GetFrame().
|
protectedvirtual |
Reimplemented in MythDVDDecoder.
Definition at line 4025 of file avformatdecoder.cpp.
Referenced by GetFrame(), and MythDVDDecoder::ProcessDataPacket().
|
protected |
Process ivtv proprietary embedded vertical blanking interval captions.
Definition at line 3742 of file avformatdecoder.cpp.
Referenced by ProcessDataPacket().
|
protected |
Process DVB Teletext.
Definition at line 3828 of file avformatdecoder.cpp.
Referenced by GetFrame(), and ProcessDataPacket().
|
protected |
Process DSMCC object carousel packet.
Definition at line 3885 of file avformatdecoder.cpp.
Referenced by ProcessDataPacket().
|
overrideprotectedvirtual |
Reimplemented from DecoderBase.
Definition at line 670 of file avformatdecoder.cpp.
Referenced by DoFastForward(), MythBDDecoder::Reset(), MythDVDDecoder::Reset(), Reset(), and StreamChangeCheck().
|
inlineprotected |
Definition at line 5192 of file avformatdecoder.cpp.
Referenced by ProcessAudioPacket(), and SetupAudioStream().
|
protected |
Definition at line 5215 of file avformatdecoder.cpp.
Referenced by AutoSelectAudioTrack(), filter_max_ch(), ProcessAudioPacket(), and SetupAudioStream().
|
protected |
Reinitializes audio if it needs to be reinitialized.
Definition at line 5242 of file avformatdecoder.cpp.
Referenced by AutoSelectAudioTrack(), ForceSetupAudioStream(), and SetTrack().
|
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().
streamIndex | av_stream_index of the stream that has changed |
Definition at line 2616 of file avformatdecoder.cpp.
Referenced by ProcessAudioPacket().
|
protected |
remove audio streams from the context used by dvd code during title transitions to remove stale audio streams
Definition at line 2675 of file avformatdecoder.cpp.
Referenced by ScanStreams().
|
protected |
Update our position map, keyframe distance, and the like.
Called for key frame packets.
Definition at line 2949 of file avformatdecoder.cpp.
Referenced by H264PreProcessPkt(), MpegPreProcessPkt(), and PreProcessVideoPacket().
|
protected |
Definition at line 5129 of file avformatdecoder.cpp.
Referenced by GetFrame(), and ProcessDataPacket().
|
protected |
Definition at line 5098 of file avformatdecoder.cpp.
Referenced by GetFrame().
|
protected |
Definition at line 1246 of file avformatdecoder.cpp.
Referenced by H264PreProcessPkt(), InitVideoCodec(), MpegPreProcessPkt(), and ScanStreams().
|
staticprotected |
Definition at line 5390 of file avformatdecoder.cpp.
Referenced by OpenFile().
|
protected |
Definition at line 2487 of file avformatdecoder.cpp.
Referenced by ScanStreams().
|
overrideprotectedvirtual |
Reimplemented from DecoderBase.
Reimplemented in MythDVDDecoder.
Definition at line 2516 of file avformatdecoder.cpp.
|
overrideprotectedvirtual |
Reimplemented from DecoderBase.
Reimplemented in MythDVDDecoder.
Definition at line 2521 of file avformatdecoder.cpp.
|
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.
desiredFrame | frame we are attempting to seek to. |
needflush | set to true if a seek is made. |
Reimplemented from DecoderBase.
Reimplemented in MythDVDDecoder.
Definition at line 2526 of file avformatdecoder.cpp.
|
protectedvirtual |
Reimplemented in MythDVDDecoder, and MythBDDecoder.
Definition at line 5080 of file avformatdecoder.cpp.
Referenced by GetFrame().
|
inlineprotectedvirtual |
Reimplemented in MythDVDDecoder.
Definition at line 249 of file avformatdecoder.h.
Referenced by ScanStreams().
|
inlineprotectedvirtual |
Reimplemented in MythBDDecoder.
Definition at line 250 of file avformatdecoder.h.
Referenced by MythBDDecoder::IsValidStream(), and ScanStreams().
|
protected |
|
protectedvirtual |
Reimplemented in MythDVDDecoder, and MythBDDecoder.
Definition at line 5090 of file avformatdecoder.cpp.
Referenced by GetFrame().
|
inlineprotected |
Definition at line 257 of file avformatdecoder.h.
Referenced by InitVideoCodec(), ProcessVideoFrame(), and ScanStreams().
|
friend |
Definition at line 882 of file avformatdecoder.cpp.
Referenced by OpenFile().
|
friend |
Definition at line 2697 of file avformatdecoder.cpp.
Referenced by InitVideoCodec().
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
protected |
Definition at line 259 of file avformatdecoder.h.
Referenced by OpenFile(), and ScanStreams().
|
protected |
Definition at line 261 of file avformatdecoder.h.
Referenced by CloseContext(), H264PreProcessPkt(), ScanStreams(), SetIdrOnlyKeyframes(), and ~AvFormatDecoder().
|
protected |
Definition at line 263 of file avformatdecoder.h.
Referenced by AutoSelectAudioTrack(), CloseCodecs(), CloseContext(), DoFastForward(), FindStreamInfo(), GetAttachmentData(), MythBDDecoder::GetAudioLanguage(), MythDVDDecoder::GetAudioLanguage(), MythDVDDecoder::GetAudioTrackType(), GetAudioTrackType(), GetChapter(), GetChapterTimes(), GetCurrentChapter(), GetFrame(), GetNumChapters(), GetRawEncodingType(), GetSubHeader(), MythBDDecoder::GetSubtitleLanguage(), GetSubtitleLanguage(), GetTrackDesc(), GetVideoFrameRate(), HandleStreamChange(), HasVideo(), InitByteContext(), NormalizeVideoTimecode(), OpenFile(), MythDVDDecoder::PostProcessTracks(), MythDVDDecoder::ReadPacket(), RemoveAudioStreams(), ScanATSCCaptionStreams(), ScanDSMCCStreams(), ScanRawTextCaptions(), ScanStreams(), ScanTeletextCaptions(), SeekReset(), SetAudioByComponentTag(), SetEof(), SetupAudioStream(), SetVideoByComponentTag(), and MythDVDDecoder::StreamChangeCheck().
|
protected |
Definition at line 264 of file avformatdecoder.h.
Referenced by CloseCodecs(), CodecMap(), GetFrame(), GetSubHeader(), GetTrackDesc(), H264PreProcessPkt(), MpegPreProcessPkt(), OpenFile(), PreProcessVideoPacket(), ProcessAudioPacket(), ProcessSubtitlePacket(), ProcessVideoFrame(), ProcessVideoPacket(), RemoveAudioStreams(), ScanStreams(), SeekReset(), and SetupAudioStream().
|
protected |
Definition at line 268 of file avformatdecoder.h.
Referenced by InitByteContext().
|
protected |
Definition at line 270 of file avformatdecoder.h.
Referenced by GetFrame().
|
protected |
Definition at line 271 of file avformatdecoder.h.
Referenced by GenerateDummyVideoFrames(), GetFrame(), ProcessVideoFrame(), and SeekReset().
|
protected |
Definition at line 272 of file avformatdecoder.h.
Referenced by InitByteContext(), OpenFile(), and ~AvFormatDecoder().
|
protected |
Definition at line 274 of file avformatdecoder.h.
Referenced by ProcessVideoFrame(), and ~AvFormatDecoder().
Definition at line 275 of file avformatdecoder.h.
Referenced by InitVideoCodec(), and ProcessVideoFrame().
Definition at line 277 of file avformatdecoder.h.
Referenced by DoFastForward(), and DoRewind().
Definition at line 279 of file avformatdecoder.h.
Referenced by H264PreProcessPkt(), HandleGopStart(), MpegPreProcessPkt(), OpenFile(), and SeekReset().
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().
|
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().
|
protected |
Definition at line 285 of file avformatdecoder.h.
Referenced by GetFrame(), ProcessVideoPacket(), MythDVDDecoder::ReadPacket(), SeekReset(), and ~AvFormatDecoder().
|
protected |
Definition at line 287 of file avformatdecoder.h.
Referenced by H264PreProcessPkt(), HandleGopStart(), MpegPreProcessPkt(), and SeekReset().
Definition at line 290 of file avformatdecoder.h.
Referenced by GenerateDummyVideoFrames(), GetFrame(), PreProcessVideoPacket(), and ProcessVideoFrame().
Definition at line 291 of file avformatdecoder.h.
Referenced by GetFrame().
Definition at line 292 of file avformatdecoder.h.
Referenced by GenerateDummyVideoFrames(), and GetFrame().
Definition at line 293 of file avformatdecoder.h.
Referenced by GetFrame(), and ProcessAudioPacket().
Definition at line 294 of file avformatdecoder.h.
Referenced by GetFrame(), ProcessAudioPacket(), and ProcessDataPacket().
|
protected |
Definition at line 296 of file avformatdecoder.h.
Referenced by MpegPreProcessPkt().
|
protected |
Definition at line 298 of file avformatdecoder.h.
Referenced by GenerateDummyVideoFrames(), GetFrame(), H264PreProcessPkt(), MpegPreProcessPkt(), ProcessAudioPacket(), ProcessVideoFrame(), and SeekReset().
|
protected |
Definition at line 299 of file avformatdecoder.h.
Referenced by GetFrame(), H264PreProcessPkt(), MpegPreProcessPkt(), ProcessAudioPacket(), and SeekReset().
|
protected |
Definition at line 300 of file avformatdecoder.h.
Referenced by DecodeCCx08(), GetFrame(), H264PreProcessPkt(), MpegPreProcessPkt(), ProcessVBIDataPacket(), and SeekReset().
|
protected |
Definition at line 301 of file avformatdecoder.h.
Referenced by H264PreProcessPkt(), MpegPreProcessPkt(), ProcessAudioPacket(), ProcessVideoFrame(), and SeekReset().
Definition at line 302 of file avformatdecoder.h.
Referenced by H264PreProcessPkt(), MpegPreProcessPkt(), ProcessAudioPacket(), ProcessVideoFrame(), and SeekReset().
|
protected |
Definition at line 304 of file avformatdecoder.h.
Referenced by H264PreProcessPkt(), MpegPreProcessPkt(), ProcessVideoPacket(), and SeekReset().
|
protected |
Definition at line 305 of file avformatdecoder.h.
Referenced by H264PreProcessPkt(), MpegPreProcessPkt(), ProcessVideoPacket(), and SeekReset().
|
protected |
Definition at line 306 of file avformatdecoder.h.
Referenced by H264PreProcessPkt(), MpegPreProcessPkt(), ProcessVideoPacket(), and SeekReset().
|
protected |
Definition at line 307 of file avformatdecoder.h.
Referenced by H264PreProcessPkt(), MpegPreProcessPkt(), ProcessVideoPacket(), and SeekReset().
Definition at line 308 of file avformatdecoder.h.
Referenced by H264PreProcessPkt(), MpegPreProcessPkt(), ProcessVideoPacket(), and SeekReset().
Definition at line 309 of file avformatdecoder.h.
Referenced by H264PreProcessPkt(), MpegPreProcessPkt(), ProcessVideoPacket(), and SeekReset().
Definition at line 310 of file avformatdecoder.h.
Referenced by ProcessVideoPacket().
Definition at line 313 of file avformatdecoder.h.
Referenced by ProcessAudioPacket(), ProcessVideoFrame(), ProcessVideoPacket(), and ScanStreams().
Definition at line 315 of file avformatdecoder.h.
Referenced by OpenFile(), and ProcessVideoPacket().
|
protected |
Definition at line 317 of file avformatdecoder.h.
Referenced by AvFormatDecoder(), and FlagIsSet().
|
protected |
Definition at line 318 of file avformatdecoder.h.
Referenced by GetCodecDecoderName(), GetVideoCodecID(), InitVideoCodec(), ProcessVideoPacket(), and ScanStreams().
|
protected |
Definition at line 320 of file avformatdecoder.h.
Referenced by HandleGopStart().
|
protected |
Definition at line 321 of file avformatdecoder.h.
Referenced by InitVideoCodec(), ProcessVideoPacket(), and ScanStreams().
|
protected |
Definition at line 324 of file avformatdecoder.h.
Referenced by ProcessVideoFrame().
|
protected |
Definition at line 325 of file avformatdecoder.h.
Referenced by DecodeCCx08().
|
protected |
Definition at line 326 of file avformatdecoder.h.
Referenced by DecodeCCx08().
|
protected |
Definition at line 327 of file avformatdecoder.h.
Referenced by AvFormatDecoder(), DecodeCCx08(), GetXDS(), ProcessVBIDataPacket(), UpdateCaptionTracksFromStreams(), and ~AvFormatDecoder().
|
protected |
Definition at line 328 of file avformatdecoder.h.
Referenced by DecodeCCx08(), UpdateCaptionTracksFromStreams(), and ~AvFormatDecoder().
|
protected |
Definition at line 329 of file avformatdecoder.h.
Referenced by GetTeletextDecoderType(), ProcessDVBDataPacket(), ProcessVBIDataPacket(), and ~AvFormatDecoder().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
protected |
MHEG/MHP decoder.
Definition at line 350 of file avformatdecoder.h.
Referenced by AvFormatDecoder(), OpenFile(), ProcessDataPacket(), ProcessDSMCCPacket(), and ScanDSMCCStreams().
|
protected |
Definition at line 353 of file avformatdecoder.h.
Referenced by AvFormatDecoder(), ProcessAudioPacket(), and ~AvFormatDecoder().
Definition at line 354 of file avformatdecoder.h.
Referenced by DoPassThrough(), and SetDisablePassThrough().
|
protected |
Definition at line 356 of file avformatdecoder.h.
Referenced by AvFormatDecoder(), ScanStreams(), and SetupAudioStream().
|
protected |
Definition at line 357 of file avformatdecoder.h.
Referenced by ProcessAudioPacket(), and SetupAudioStream().
Definition at line 359 of file avformatdecoder.h.
Referenced by GetFrame(), and OpenFile().
Definition at line 361 of file avformatdecoder.h.
Referenced by GetFrame(), InitVideoCodec(), ProcessVideoPacket(), ScanStreams(), MythBDDecoder::StreamChangeCheck(), MythDVDDecoder::StreamChangeCheck(), and StreamChangeCheck().
Definition at line 362 of file avformatdecoder.h.
Referenced by ProcessVideoPacket(), and ScanStreams().
|
protected |
Definition at line 365 of file avformatdecoder.h.
Referenced by AvFormatDecoder(), and GetFrame().
|
protected |
Definition at line 370 of file avformatdecoder.h.
Referenced by CloseCodecs(), FindStreamInfo(), OpenAVCodec(), ProcessAudioPacket(), ProcessDSMCCPacket(), ProcessSubtitlePacket(), ProcessVideoPacket(), MythBDDecoder::ReadPacket(), MythDVDDecoder::ReadPacket(), ReadPacket(), RemoveAudioStreams(), ScanStreams(), and SeekReset().