MythTV  master
Macros | Typedefs | Enumerations | Functions | Variables
programtypes.h File Reference
#include <cstdint>
#include <deque>
#include <QString>
#include <QMap>
#include <QHash>
#include <QtCore>
#include "mythexp.h"
#include "recordingtypes.h"
Include dependency graph for programtypes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define kAudioPropertyBits   6
 
#define kAudioPropertyOffset   0
 
#define kAudioPropertyMask   (0x3f<<kAudioPropertyOffset)
 
#define kVideoPropertyBits   11
 
#define kVideoPropertyOffset   kAudioPropertyBits
 
#define kVideoPropertyMask   (0x7ff<<kVideoPropertyOffset)
 
#define kSubtitlePropertyBits   4
 
#define kSubtitlePropertyOffset   (kAudioPropertyBits+kVideoPropertyBits)
 
#define kSubtitlePropertyMask   (0x0f<<kSubtitlePropertyOffset)
 

Typedefs

using frm_pos_map_t = QMap< long long, long long >
 Frame # -> File offset map. More...
 
using frm_dir_map_t = QMap< uint64_t, MarkTypes >
 Frame # -> Mark map. More...
 

Enumerations

enum  MarkTypes {
  MARK_ALL = -100, MARK_UNSET = -10, MARK_TMP_CUT_END = -5, MARK_TMP_CUT_START = -4,
  MARK_UPDATED_CUT = -3, MARK_PLACEHOLDER = -2, MARK_CUT_END = 0, MARK_CUT_START = 1,
  MARK_BOOKMARK = 2, MARK_BLANK_FRAME = 3, MARK_COMM_START = 4, MARK_COMM_END = 5,
  MARK_GOP_START = 6, MARK_KEYFRAME = 7, MARK_SCENE_CHANGE = 8, MARK_GOP_BYFRAME = 9,
  MARK_ASPECT_1_1 = 10, MARK_ASPECT_4_3 = 11, MARK_ASPECT_16_9 = 12, MARK_ASPECT_2_21_1 = 13,
  MARK_ASPECT_CUSTOM = 14, MARK_SCAN_PROGRESSIVE = 15, MARK_VIDEO_WIDTH = 30, MARK_VIDEO_HEIGHT = 31,
  MARK_VIDEO_RATE = 32, MARK_DURATION_MS = 33, MARK_TOTAL_FRAMES = 34, MARK_UTIL_PROGSTART = 40,
  MARK_UTIL_LASTPLAYPOS = 41
}
 
enum  CommFlagStatus { COMM_FLAG_NOT_FLAGGED = 0, COMM_FLAG_DONE = 1, COMM_FLAG_PROCESSING = 2, COMM_FLAG_COMMFREE = 3 }
 
enum  SkipType {
  COMM_DETECT_COMMFREE = -2, COMM_DETECT_UNINIT = -1, COMM_DETECT_OFF = 0x00000000, COMM_DETECT_BLANK = 0x00000001,
  COMM_DETECT_BLANKS = COMM_DETECT_BLANK, COMM_DETECT_SCENE = 0x00000002, COMM_DETECT_LOGO = 0x00000004, COMM_DETECT_BLANK_SCENE = (COMM_DETECT_BLANKS | COMM_DETECT_SCENE),
  COMM_DETECT_ALL, COMM_DETECT_2 = 0x00000100, COMM_DETECT_2_LOGO = COMM_DETECT_2 | COMM_DETECT_LOGO, COMM_DETECT_2_BLANK = COMM_DETECT_2 | COMM_DETECT_BLANKS,
  COMM_DETECT_2_SCENE = COMM_DETECT_2 | COMM_DETECT_SCENE, COMM_DETECT_2_ALL = (COMM_DETECT_2_LOGO | COMM_DETECT_2_BLANK), COMM_DETECT_PREPOSTROLL = 0x00000200, COMM_DETECT_PREPOSTROLL_ALL
}
 This is used as a bitmask. More...
 
enum  TranscodingStatus { TRANSCODING_NOT_TRANSCODED = 0, TRANSCODING_COMPLETE = 1, TRANSCODING_RUNNING = 2 }
 
enum  ProgramFlag {
  FL_NONE = 0x00000000, FL_COMMFLAG = 0x00000001, FL_CUTLIST = 0x00000002, FL_AUTOEXP = 0x00000004,
  FL_EDITING = 0x00000008, FL_BOOKMARK = 0x00000010, FL_REALLYEDITING = 0x00000020, FL_COMMPROCESSING = 0x00000040,
  FL_DELETEPENDING = 0x00000080, FL_TRANSCODED = 0x00000100, FL_WATCHED = 0x00000200, FL_PRESERVED = 0x00000400,
  FL_CHANCOMMFREE = 0x00000800, FL_REPEAT = 0x00001000, FL_DUPLICATE = 0x00002000, FL_REACTIVATE = 0x00004000,
  FL_IGNOREBOOKMARK = 0x00008000, FL_IGNOREPROGSTART = 0x00010000, FL_ALLOWLASTPLAYPOS = 0x00020000, FL_TYPEMASK = 0x00F00000,
  FL_INUSERECORDING = 0x01000000, FL_INUSEPLAYING = 0x02000000, FL_INUSEOTHER = 0x04000000
}
 If you change these please update: mythplugins/mythweb/modules/tv/classes/Program.php mythtv/bindings/perl/MythTV/Program.pm (search for "Assign the program flags" in both) More...
 
enum  ProgramInfoType {
  kProgramInfoTypeRecording = 0, kProgramInfoTypeVideoFile, kProgramInfoTypeVideoDVD, kProgramInfoTypeVideoStreamingHTML,
  kProgramInfoTypeVideoStreamingRTSP, kProgramInfoTypeVideoBD
}
 
enum  AudioProps {
  AUD_UNKNOWN = 0x00, AUD_STEREO = 0x01, AUD_MONO = 0x02, AUD_SURROUND = 0x04,
  AUD_DOLBY = 0x08, AUD_HARDHEAR = 0x10, AUD_VISUALIMPAIR = 0x20
}
 if AudioProps changes, the audioprop column in program and recordedprogram has to changed accordingly More...
 
enum  VideoProps {
  VID_UNKNOWN = 0x000, VID_WIDESCREEN = 0x001, VID_HDTV = 0x002, VID_MPEG2 = 0x004,
  VID_AVC = 0x008, VID_HEVC = 0x010, VID_720 = 0x020, VID_1080 = 0x040,
  VID_4K = 0x080, VID_3DTV = 0x100, VID_PROGRESSIVE = 0x200, VID_DAMAGED = 0x400
}
 if VideoProps changes, the videoprop column in program and recordedprogram has to changed accordingly More...
 
enum  SubtitleType {
  SUB_UNKNOWN = 0x00, SUB_HARDHEAR = 0x01, SUB_NORMAL = 0x02, SUB_ONSCREEN = 0x04,
  SUB_SIGNED = 0x08
}
 if SubtitleTypes changes, the subtitletypes column in program and recordedprogram has to changed accordingly More...
 
enum  AvailableStatusType {
  asAvailable = 0, asNotYetAvailable, asPendingDelete, asFileNotFound,
  asZeroByte, asDeleted
}
 
enum  WatchListStatus { wlDeleted = -4, wlEarlier = -3, wlWatched = -2, wlExpireOff = -1 }
 
enum  AutoExpireType { kDisableAutoExpire = 0, kNormalAutoExpire = 1, kDeletedAutoExpire = 9999, kLiveTVAutoExpire = 10000 }
 

Functions

MPUBLIC QString toString (MarkTypes type)
 
MPUBLIC QString SkipTypeToString (int flags)
 
MPUBLIC std::deque< int > GetPreferredSkipTypeCombinations (void)
 
MPUBLIC QString toString (AvailableStatusType status)
 

Variables

MPUBLIC const QString kPlayerInUseID
 
MPUBLIC const QString kPIPPlayerInUseID
 
MPUBLIC const QString kPBPPlayerInUseID
 
MPUBLIC const QString kImportRecorderInUseID
 
MPUBLIC const QString kRecorderInUseID
 
MPUBLIC const QString kFileTransferInUseID
 
MPUBLIC const QString kTruncatingDeleteInUseID
 
MPUBLIC const QString kFlaggerInUseID
 
MPUBLIC const QString kTranscoderInUseID
 
MPUBLIC const QString kPreviewGeneratorInUseID
 
MPUBLIC const QString kJobQueueInUseID
 
MPUBLIC const QString kCCExtractorInUseID
 

Macro Definition Documentation

◆ kAudioPropertyBits

#define kAudioPropertyBits   6

Definition at line 178 of file programtypes.h.

◆ kAudioPropertyOffset

#define kAudioPropertyOffset   0

Definition at line 179 of file programtypes.h.

◆ kAudioPropertyMask

#define kAudioPropertyMask   (0x3f<<kAudioPropertyOffset)

Definition at line 180 of file programtypes.h.

◆ kVideoPropertyBits

#define kVideoPropertyBits   11

Definition at line 199 of file programtypes.h.

◆ kVideoPropertyOffset

#define kVideoPropertyOffset   kAudioPropertyBits

Definition at line 200 of file programtypes.h.

◆ kVideoPropertyMask

#define kVideoPropertyMask   (0x7ff<<kVideoPropertyOffset)

Definition at line 201 of file programtypes.h.

◆ kSubtitlePropertyBits

#define kSubtitlePropertyBits   4

Definition at line 213 of file programtypes.h.

◆ kSubtitlePropertyOffset

#define kSubtitlePropertyOffset   (kAudioPropertyBits+kVideoPropertyBits)

Definition at line 214 of file programtypes.h.

◆ kSubtitlePropertyMask

#define kSubtitlePropertyMask   (0x0f<<kSubtitlePropertyOffset)

Definition at line 215 of file programtypes.h.

Typedef Documentation

◆ frm_pos_map_t

using frm_pos_map_t = QMap<long long, long long>

Frame # -> File offset map.

Definition at line 46 of file programtypes.h.

◆ frm_dir_map_t

using frm_dir_map_t = QMap<uint64_t, MarkTypes>

Frame # -> Mark map.

Definition at line 82 of file programtypes.h.

Enumeration Type Documentation

◆ MarkTypes

enum MarkTypes
Enumerator
MARK_ALL 
MARK_UNSET 
MARK_TMP_CUT_END 
MARK_TMP_CUT_START 
MARK_UPDATED_CUT 
MARK_PLACEHOLDER 
MARK_CUT_END 
MARK_CUT_START 
MARK_BOOKMARK 
MARK_BLANK_FRAME 
MARK_COMM_START 
MARK_COMM_END 
MARK_GOP_START 
MARK_KEYFRAME 
MARK_SCENE_CHANGE 
MARK_GOP_BYFRAME 
MARK_ASPECT_1_1 

deprecated, it is only 1:1 sample aspect ratio

MARK_ASPECT_4_3 
MARK_ASPECT_16_9 
MARK_ASPECT_2_21_1 
MARK_ASPECT_CUSTOM 
MARK_SCAN_PROGRESSIVE 
MARK_VIDEO_WIDTH 
MARK_VIDEO_HEIGHT 
MARK_VIDEO_RATE 
MARK_DURATION_MS 
MARK_TOTAL_FRAMES 
MARK_UTIL_PROGSTART 
MARK_UTIL_LASTPLAYPOS 

Definition at line 48 of file programtypes.h.

◆ CommFlagStatus

Enumerator
COMM_FLAG_NOT_FLAGGED 
COMM_FLAG_DONE 
COMM_FLAG_PROCESSING 
COMM_FLAG_COMMFREE 

Definition at line 84 of file programtypes.h.

◆ SkipType

enum SkipType

This is used as a bitmask.

Enumerator
COMM_DETECT_COMMFREE 
COMM_DETECT_UNINIT 
COMM_DETECT_OFF 
COMM_DETECT_BLANK 
COMM_DETECT_BLANKS 
COMM_DETECT_SCENE 
COMM_DETECT_LOGO 
COMM_DETECT_BLANK_SCENE 
COMM_DETECT_ALL 
COMM_DETECT_2 
COMM_DETECT_2_LOGO 
COMM_DETECT_2_BLANK 
COMM_DETECT_2_SCENE 
COMM_DETECT_2_ALL 
COMM_DETECT_PREPOSTROLL 
COMM_DETECT_PREPOSTROLL_ALL 

Definition at line 92 of file programtypes.h.

◆ TranscodingStatus

Enumerator
TRANSCODING_NOT_TRANSCODED 
TRANSCODING_COMPLETE 
TRANSCODING_RUNNING 

Definition at line 121 of file programtypes.h.

◆ ProgramFlag

If you change these please update: mythplugins/mythweb/modules/tv/classes/Program.php mythtv/bindings/perl/MythTV/Program.pm (search for "Assign the program flags" in both)

Enumerator
FL_NONE 
FL_COMMFLAG 
FL_CUTLIST 
FL_AUTOEXP 
FL_EDITING 
FL_BOOKMARK 
FL_REALLYEDITING 
FL_COMMPROCESSING 
FL_DELETEPENDING 
FL_TRANSCODED 
FL_WATCHED 
FL_PRESERVED 
FL_CHANCOMMFREE 
FL_REPEAT 
FL_DUPLICATE 
FL_REACTIVATE 
FL_IGNOREBOOKMARK 
FL_IGNOREPROGSTART 
FL_ALLOWLASTPLAYPOS 
FL_TYPEMASK 
FL_INUSERECORDING 
FL_INUSEPLAYING 
FL_INUSEOTHER 

Definition at line 131 of file programtypes.h.

◆ ProgramInfoType

Enumerator
kProgramInfoTypeRecording 
kProgramInfoTypeVideoFile 
kProgramInfoTypeVideoDVD 
kProgramInfoTypeVideoStreamingHTML 
kProgramInfoTypeVideoStreamingRTSP 
kProgramInfoTypeVideoBD 

Definition at line 158 of file programtypes.h.

◆ AudioProps

enum AudioProps

if AudioProps changes, the audioprop column in program and recordedprogram has to changed accordingly

Enumerator
AUD_UNKNOWN 
AUD_STEREO 
AUD_MONO 
AUD_SURROUND 
AUD_DOLBY 
AUD_HARDHEAR 
AUD_VISUALIMPAIR 

Definition at line 169 of file programtypes.h.

◆ VideoProps

enum VideoProps

if VideoProps changes, the videoprop column in program and recordedprogram has to changed accordingly

Enumerator
VID_UNKNOWN 
VID_WIDESCREEN 
VID_HDTV 
VID_MPEG2 
VID_AVC 
VID_HEVC 
VID_720 
VID_1080 
VID_4K 
VID_3DTV 
VID_PROGRESSIVE 
VID_DAMAGED 

Definition at line 184 of file programtypes.h.

◆ SubtitleType

if SubtitleTypes changes, the subtitletypes column in program and recordedprogram has to changed accordingly

Enumerator
SUB_UNKNOWN 
SUB_HARDHEAR 
SUB_NORMAL 
SUB_ONSCREEN 
SUB_SIGNED 

Definition at line 205 of file programtypes.h.

◆ AvailableStatusType

Enumerator
asAvailable 
asNotYetAvailable 
asPendingDelete 
asFileNotFound 
asZeroByte 
asDeleted 

Definition at line 218 of file programtypes.h.

◆ WatchListStatus

Enumerator
wlDeleted 
wlEarlier 
wlWatched 
wlExpireOff 

Definition at line 228 of file programtypes.h.

◆ AutoExpireType

Enumerator
kDisableAutoExpire 
kNormalAutoExpire 
kDeletedAutoExpire 
kLiveTVAutoExpire 

Definition at line 235 of file programtypes.h.

Function Documentation

◆ toString() [1/2]

MPUBLIC QString toString ( MarkTypes  type)

◆ SkipTypeToString()

MPUBLIC QString SkipTypeToString ( int  flags)

Definition at line 79 of file programtypes.cpp.

Referenced by CommercialSkipMethod(), and CommMethod::CommMethod().

◆ GetPreferredSkipTypeCombinations()

MPUBLIC std::deque<int> GetPreferredSkipTypeCombinations ( void  )

Definition at line 117 of file programtypes.cpp.

Referenced by CommercialSkipMethod(), and CommMethod::CommMethod().

◆ toString() [2/2]

MPUBLIC QString toString ( AvailableStatusType  status)

Definition at line 64 of file programtypes.cpp.

Variable Documentation

◆ kPlayerInUseID

MPUBLIC const QString kPlayerInUseID
extern

◆ kPIPPlayerInUseID

MPUBLIC const QString kPIPPlayerInUseID
extern

Definition at line 14 of file programtypes.cpp.

Referenced by ProgramInfo::QueryIsInUse().

◆ kPBPPlayerInUseID

MPUBLIC const QString kPBPPlayerInUseID
extern

Definition at line 15 of file programtypes.cpp.

Referenced by ProgramInfo::QueryIsInUse().

◆ kImportRecorderInUseID

MPUBLIC const QString kImportRecorderInUseID
extern

Definition at line 16 of file programtypes.cpp.

Referenced by ProgramInfo::QueryIsInUse(), and ImportRecorder::run().

◆ kRecorderInUseID

MPUBLIC const QString kRecorderInUseID
extern

◆ kFileTransferInUseID

MPUBLIC const QString kFileTransferInUseID
extern

◆ kTruncatingDeleteInUseID

MPUBLIC const QString kTruncatingDeleteInUseID
extern

Definition at line 19 of file programtypes.cpp.

Referenced by ProgramInfo::QueryIsInUse(), and MainServer::TruncateAndClose().

◆ kFlaggerInUseID

MPUBLIC const QString kFlaggerInUseID
extern

◆ kTranscoderInUseID

MPUBLIC const QString kTranscoderInUseID
extern

◆ kPreviewGeneratorInUseID

MPUBLIC const QString kPreviewGeneratorInUseID
extern

◆ kJobQueueInUseID

MPUBLIC const QString kJobQueueInUseID
extern

◆ kCCExtractorInUseID

MPUBLIC const QString kCCExtractorInUseID
extern

Definition at line 24 of file programtypes.cpp.

Referenced by RunCCExtract().