MythTV  master
Classes | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
NuppelVideoRecorder Class Reference

#include <NuppelVideoRecorder.h>

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

Classes

struct  m_stm
 
struct  m_tzone
 

Public Member Functions

 NuppelVideoRecorder (TVRec *rec, ChannelBase *channel)
 
 ~NuppelVideoRecorder () override
 
void SetOption (const QString &opt, int value) override
 handles the "wait_for_seqstart" option. More...
 
void SetOption (const QString &name, const QString &value) override
 Set an specific option. More...
 
void SetOptionsFromProfile (RecordingProfile *profile, const QString &videodev, const QString &audiodev, const QString &vbidev) override
 Sets basic recorder options. More...
 
void Initialize (void) override
 This is called between SetOptionsFromProfile() and run() to initialize any devices, etc. More...
 
void run (void) override
 run() starts the recording process, and does not exit until the recording is complete. More...
 
void Pause (bool clear=true) override
 Pause tells recorder to pause, it should not block. More...
 
bool IsPaused (bool holding_lock=false) const override
 Returns true iff recorder is paused. More...
 
bool IsRecording (void) override
 Tells whether the StartRecorder() loop is running. More...
 
long long GetFramesWritten (void) override
 Returns number of frames written to disk. More...
 
bool Open (void)
 
int GetVideoFd (void) override
 Returns file descriptor of recorder device. More...
 
void Reset (void) override
 Reset the recorder to the startup state. More...
 
void SetVideoFilters (QString &filters) override
 Tells recorder which filters to use. More...
 
void SetTranscoding (bool value)
 
void ResetForNewFile (void) override
 
void FinishRecording (void) override
 Flushes the ringbuffer, and if this is not a live LiveTV recording saves the position map and filesize. More...
 
void StartNewFile (void) override
 
void StreamAllocate (void)
 
void WriteHeader (void)
 
void WriteSeekTable (void)
 
void WriteKeyFrameAdjustTable (const vector< struct kfatable_entry > &kfa_table)
 
void UpdateSeekTable (int frame_num, long offset=0)
 
bool SetupAVCodecVideo (void)
 
void SetupRTjpeg (void)
 
int AudioInit (bool skipdevice=false)
 
void SetVideoAspect (float newAspect)
 
void WriteVideo (VideoFrame *frame, bool skipsync=false, bool forcekey=false)
 
void WriteAudio (unsigned char *buf, int fnum, int timecode)
 
void WriteText (unsigned char *buf, int len, int timecode, int pagenr)
 
void SetNewVideoParams (double newaspect)
 
- Public Member Functions inherited from V4LRecorder
 V4LRecorder (TVRec *rec)
 
 ~V4LRecorder () override
 
void StopRecording (void) override
 StopRecording() signals to the recorder that it should stop recording and exit cleanly. More...
 
void SetOption (const QString &name, const QString &value) override
 Set an specific option. More...
 
void SetOption (const QString &name, int value) override
 handles the "wait_for_seqstart" option. More...
 
- Public Member Functions inherited from DTVRecorder
 DTVRecorder (TVRec *rec)
 
 ~DTVRecorder () override
 
bool IsErrored (void) override
 Tells us whether an unrecoverable error has been encountered. More...
 
virtual void SetStreamData (MPEGStreamData *data)
 
MPEGStreamDataGetStreamData (void) const
 
void ClearStatistics (void) override
 
RecordingQualityGetRecordingQuality (const RecordingInfo *r) const override
 Returns a report about the current recordings quality. More...
 
void HandlePAT (const ProgramAssociationTable *_pat) override
 
void HandleCAT (const ConditionalAccessTable *) override
 
void HandlePMT (uint progNum, const ProgramMapTable *_pmt) override
 
void HandleEncryptionStatus (uint, bool) override
 
void HandleSingleProgramPAT (ProgramAssociationTable *pat, bool insert) override
 
void HandleSingleProgramPMT (ProgramMapTable *pmt, bool insert) override
 
void HandleSTT (const SystemTimeTable *) override
 
void HandleVCT (uint, const VirtualChannelTable *) override
 
void HandleMGT (const MasterGuideTable *) override
 
void HandleTDT (const TimeDateTable *) override
 
void HandleNIT (const NetworkInformationTable *) override
 
void HandleSDT (uint, const ServiceDescriptionTable *) override
 
bool ProcessTSPacket (const TSPacket &tspacket) override
 
bool ProcessVideoTSPacket (const TSPacket &tspacket) override
 
bool ProcessAudioTSPacket (const TSPacket &tspacket) override
 
bool ProcessAVTSPacket (const TSPacket &tspacket)
 Common code for processing either audio or video packets. More...
 
- Public Member Functions inherited from RecorderBase
 RecorderBase (TVRec *rec)
 
 ~RecorderBase () override
 
void SetFrameRate (double rate)
 Sets the video frame rate. More...
 
void SetRecording (const RecordingInfo *pginfo)
 Changes the Recording from the one set initially with SetOptionsFromProfile(). More...
 
void SetRingBuffer (RingBuffer *rbuf)
 Tells recorder to use an externally created ringbuffer. More...
 
void SetBoolOption (const QString &name, bool value)
 Set an specific boolean option. More...
 
void SetNextRecording (const RecordingInfo *ri, RingBuffer *rb)
 Sets next recording info, to be applied as soon as practical. More...
 
long long GetKeyframePosition (long long desired) const
 Returns closest keyframe position before the desired frame. More...
 
bool GetKeyframePositions (long long start, long long end, frm_pos_map_t &map) const
 
bool GetKeyframeDurations (long long start, long long end, frm_pos_map_t &map) const
 
virtual bool IsRecordingRequested (void)
 Tells us if StopRecording() has been called. More...
 
virtual void Unpause (void)
 Unpause tells recorder to unpause. More...
 
virtual bool WaitForPause (int timeout=1000)
 WaitForPause blocks until recorder is actually paused, or timeout milliseconds elapse. More...
 
double GetFrameRate (void) const
 Returns the latest frame rate. More...
 
virtual bool CheckForRingBufferSwitch (void)
 If requested, switch to new RingBuffer/ProgramInfo objects. More...
 
void SavePositionMap (bool force=false, bool finished=false)
 Save the seektable to the DB. More...
 
- Public Member Functions inherited from MPEGStreamListener
virtual void HandleSplice (const SpliceInformationTable *)
 
- Public Member Functions inherited from CC608Input
virtual ~CC608Input ()=default
 

Protected Member Functions

void doWriteThread (void)
 
void doAudioThread (void)
 
- Protected Member Functions inherited from V4LRecorder
int OpenVBIDevice (void)
 
void CloseVBIDevice (void)
 
void RunVBIDevice (void)
 
virtual bool IsHelperRequested (void) const
 
- Protected Member Functions inherited from DTVRecorder
virtual void InitStreamData (void)
 
void HandleKeyframe (int64_t extra)
 This save the current frame to the position maps and handles ringbuffer switching. More...
 
void HandleTimestamps (int stream_id, int64_t pts, int64_t dts)
 
void UpdateFramesWritten (void)
 
void BufferedWrite (const TSPacket &tspacket, bool insert=false)
 
bool FindAudioKeyframes (const TSPacket *tspacket)
 
bool FindMPEG2Keyframes (const TSPacket *tspacket)
 Locates the keyframes and saves them to the position map. More...
 
bool FindH264Keyframes (const TSPacket *tspacket)
 This searches the TS packet to identify keyframes. More...
 
void HandleH264Keyframe (void)
 This save the current frame to the position maps and handles ringbuffer switching. More...
 
void FindPSKeyFrames (const uint8_t *buffer, uint len) override
 
bool FindOtherKeyframes (const TSPacket *tspacket)
 Non-Audio/Video data. More...
 
bool CheckCC (uint pid, uint new_cnt)
 
virtual QString GetSIStandard (void) const
 
virtual void SetCAMPMT (const ProgramMapTable *)
 
virtual void UpdateCAMTimeOffset (void)
 
- Protected Member Functions inherited from RecorderBase
void SetIntOption (RecordingProfile *profile, const QString &name)
 Convenience function used to set integer options from a profile. More...
 
void SetStrOption (RecordingProfile *profile, const QString &name)
 Convenience function used to set QString options from a profile. More...
 
virtual bool PauseAndWait (int timeout=100)
 If m_requestPause is true, sets pause and blocks up to timeout milliseconds or until unpaused, whichever is sooner. More...
 
virtual void SetRecordingStatus (RecStatus::Type status, const QString &file, int line)
 
void SetPositionMapType (MarkTypes type)
 Set seektable type. More...
 
void AspectChange (uint aspect, long long frame)
 Note a change in aspect ratio in the recordedmark table. More...
 
void ResolutionChange (uint width, uint height, long long frame)
 Note a change in video size in the recordedmark table. More...
 
void FrameRateChange (uint framerate, long long frame)
 Note a change in video frame rate in the recordedmark table. More...
 
void VideoCodecChange (AVCodecID vCodec)
 Note a change in video codec. More...
 
void AudioCodecChange (AVCodecID aCodec)
 Note a change in audio codec. More...
 
void SetDuration (uint64_t duration)
 Note the total duration in the recordedmark table. More...
 
void SetTotalFrames (uint64_t total_frames)
 Note the total frames in the recordedmark table. More...
 
void TryWriteProgStartMark (const frm_pos_map_t &durationDeltaCopy)
 
- Protected Member Functions inherited from MPEGStreamListener
virtual ~MPEGStreamListener ()=default
 
- Protected Member Functions inherited from MPEGSingleProgramStreamListener
virtual ~MPEGSingleProgramStreamListener ()=default
 
- Protected Member Functions inherited from DVBMainStreamListener
virtual ~DVBMainStreamListener ()=default
 
- Protected Member Functions inherited from ATSCMainStreamListener
virtual ~ATSCMainStreamListener ()=default
 
- Protected Member Functions inherited from TSPacketListener
virtual ~TSPacketListener ()=default
 
- Protected Member Functions inherited from TSPacketListenerAV
virtual ~TSPacketListenerAV ()=default
 
- Protected Member Functions inherited from PSStreamListener
virtual ~PSStreamListener ()=default
 

Private Member Functions

void WriteFrameheader (rtframeheader *fh)
 
void WriteFileHeader (void)
 
void InitBuffers (void)
 
void ResizeVideoBuffers (void)
 
bool MJPEGInit (void)
 Determines MJPEG capture resolution. More...
 
void KillChildren (void)
 
void BufferIt (unsigned char *buf, int len=-1, bool forcekey=false)
 
int CreateNuppelFile (void)
 
void ProbeV4L2 (void)
 
bool SetFormatV4L2 (void)
 
void DoV4L1 (void)
 
void DoV4L2 (void)
 
void DoMJPEG (void)
 
void FormatTT (struct VBIData *vbidata) override
 
void FormatCC (uint code1, uint code2) override
 
void AddTextData (unsigned char *buf, int len, int64_t timecode, char type) override
 
void UpdateResolutions (void)
 
 HEAP_ALLOC (wrkmem, LZO1X_1_MEM_COMPRESS)
 

Private Attributes

int m_fd {-1}
 
signed char * m_strm {nullptr}
 
unsigned int m_lf {0}
 
int m_tf {0}
 
int m_m1 {0}
 
int m_m2 {0}
 
int m_q {255}
 
int m_width {352}
 
int m_height {240}
 
int m_pipMode {0}
 
int m_compression {1}
 
bool m_compressAudio {true}
 
AudioInputm_audioDevice {nullptr}
 
unsigned long long m_audioBytes {0}
 
int m_audioChannels {2}
 
int m_audioBits {16}
 
int m_audioBytesPerSample {m_audioChannels * m_audioBits / 8}
 
int m_audioSampleRate {44100}
 
int m_effectiveDsp {0}
 
int m_useBttv {1}
 
float m_videoAspect {1.33333F}
 
bool m_transcoding {false}
 
int m_mp3Quality {3}
 
char * m_mp3Buf {nullptr}
 
int m_mp3BufSize {0}
 
lame_global_flags * m_gf {nullptr}
 
RTjpegm_rtjc {nullptr}
 
lzo_byte m_out [OUT_LEN] {}
 
vector< struct vidbuffertype * > m_videoBuffer
 
vector< struct audbuffertype * > m_audioBuffer
 
vector< struct txtbuffertype * > m_textBuffer
 
int m_actVideoEncode {0}
 
int m_actVideoBuffer {0}
 
int m_actAudioEncode {0}
 
int m_actAudioBuffer {0}
 
long long m_actAudioSample {0}
 
int m_actTextEncode {0}
 
int m_actTextBuffer {0}
 
int m_videoBufferCount {0}
 
int m_audioBufferCount {0}
 
int m_textBufferCount {0}
 
long m_videoBufferSize {0}
 
long m_audioBufferSize {0}
 
long m_textBufferSize {0}
 
NVRWriteThreadm_writeThread {nullptr}
 
NVRAudioThreadm_audioThread {nullptr}
 
bool m_recording {false}
 
int m_keyframeDist {KEYFRAMEDIST}
 
vector< struct seektable_entry > * m_seekTable {nullptr}
 
long long m_lastPositionMapPos {0}
 
long long m_extendedDataOffset {0}
 
long long m_framesWritten {0}
 
bool m_livetv {false}
 
bool m_writePaused {false}
 
bool m_audioPaused {false}
 
bool m_mainPaused {false}
 
double m_frameRateMultiplier {1.0}
 
double m_heightMultiplier {1.0}
 
int m_lastBlock {0}
 
int m_firstTc {0}
 
long int m_oldTc {0}
 
int m_startNum {0}
 
int m_frameOfGop {0}
 
int m_lastTimecode {0}
 
int m_audioBehind {0}
 
bool m_useAvCodec {false}
 
AVCodec * m_mpaVidCodec {nullptr}
 
AVCodecContext * m_mpaVidCtx {nullptr}
 
int m_targetBitRate {2200}
 
int m_scaleBitRate {1}
 
int m_maxQuality {2}
 
int m_minQuality {31}
 
int m_qualDiff {3}
 
int m_mp4Opts {0}
 
int m_mbDecision {FF_MB_DECISION_SIMPLE}
 
int m_encodingThreadCount {1}
 Number of threads to use for MPEG-2 and MPEG-4 encoding. More...
 
VideoFrameType m_inPixFmt {FMT_YV12}
 
AVPixelFormat m_pictureFormat {AV_PIX_FMT_YUV420P}
 
uint32_t m_v4l2PixelFormat {0}
 
int m_wOut {0}
 
int m_hOut {0}
 
bool m_hardwareEncode {false}
 
int m_hmjpgQuality {80}
 
int m_hmjpgHDecimation {2}
 
int m_hmjpgVDecimation {2}
 
int m_hmjpgMaxW {640}
 
bool m_clearTimeOnPause {false}
 
bool m_usingV4l2 {false}
 
int m_channelFd {-1}
 
ChannelBasem_channelObj {nullptr}
 
bool m_skipBtAudio {false}
 
bool m_correctBttv {false}
 
int m_volume {100}
 
CC608Decoderm_ccd {nullptr}
 
bool m_go7007 {false}
 
bool m_resetCapture {false}
 

Friends

class NVRWriteThread
 
class NVRAudioThread
 

Additional Inherited Members

- Public Types inherited from RecorderBase
enum  AspectRatio {
  ASPECT_UNKNOWN = 0x00, ASPECT_1_1 = 0x01, ASPECT_4_3 = 0x02, ASPECT_16_9 = 0x03,
  ASPECT_2_21_1 = 0x04, ASPECT_CUSTOM = 0x05
}
 
- Static Public Member Functions inherited from RecorderBase
static RecorderBaseCreateRecorder (TVRec *tvrec, ChannelBase *channel, RecordingProfile &profile, const GeneralDBOptions &genOpt)
 
- Protected Attributes inherited from V4LRecorder
QString m_audioDeviceName
 
QString m_vbiDeviceName
 
int m_vbiMode {VBIMode::None}
 
struct VBIDatam_palVbiCb {nullptr}
 
struct vbim_palVbiTt {nullptr}
 
uint m_ntscVbiWidth {0}
 
uint m_ntscVbiStartLine {0}
 
uint m_ntscVbiLineCount {0}
 
VBI608Extractorm_vbi608 {nullptr}
 
VBIThreadm_vbiThread {nullptr}
 
QList< struct txtbuffertype * > m_textBuffer
 
int m_vbiFd {-1}
 
volatile bool m_requestHelper {false}
 
- Protected Attributes inherited from DTVRecorder
int m_streamFd {-1}
 
QString m_recordingType {"all"}
 
QElapsedTimer m_audioTimer
 
uint32_t m_startCode {0xffffffff}
 
int m_firstKeyframe {-1}
 
unsigned long long m_lastGopSeen {0}
 
unsigned long long m_lastSeqSeen {0}
 
unsigned long long m_lastKeyframeSeen {0}
 
unsigned int m_audioBytesRemaining {0}
 
unsigned int m_videoBytesRemaining {0}
 
unsigned int m_otherBytesRemaining {0}
 
int m_progressiveSequence {0}
 
int m_repeatPict {0}
 
bool m_pesSynced {false}
 
bool m_seenSps {false}
 
H264Parser m_h264Parser
 
bool m_waitForKeyframeOption {true}
 Wait for the a GOP/SEQ-start before sending data. More...
 
bool m_hasWrittenOtherKeyframe {false}
 
QString m_error
 non-empty iff irrecoverable recording error detected More...
 
MPEGStreamDatam_streamData {nullptr}
 
bool m_bufferPackets {false}
 
vector< unsigned char > m_payloadBuffer
 
QMutex m_pidLock {QMutex::Recursive}
 
ProgramAssociationTablem_inputPat {nullptr}
 PAT on input side. More...
 
ProgramMapTablem_inputPmt {nullptr}
 PMT on input side. More...
 
bool m_hasNoAV {false}
 
bool m_recordMpts {false}
 
bool m_recordMptsOnly {false}
 
unsigned char m_streamId [0x1fff+1] {0}
 
unsigned char m_pidStatus [0x1fff+1] {0}
 
unsigned char m_continuityCounter [0x1fff+1] {0}
 
vector< TSPacketm_scratch
 
int m_minimumRecordingQuality {95}
 
bool m_use_pts {false}
 
uint64_t m_tsCount [256] {0}
 
int64_t m_tsLast [256] {}
 
int64_t m_tsFirst [256] {}
 
QDateTime m_tsFirstDt [256]
 
QAtomicInt m_packetCount {0}
 
QAtomicInt m_continuityErrorCount {0}
 
unsigned long long m_framesSeenCount {0}
 
unsigned long long m_framesWrittenCount {0}
 
double m_totalDuration {0.0}
 
double m_tdBase {0.0}
 
uint64_t m_tdTickCount {0}
 
FrameRate m_tdTickFramerate {0}
 
bool m_musicChoice {false}
 
- Protected Attributes inherited from RecorderBase
TVRecm_tvrec {nullptr}
 
RingBufferm_ringBuffer {nullptr}
 
bool m_weMadeBuffer {true}
 
AVContainer m_containerFormat {formatUnknown}
 
AVCodecID m_primaryVideoCodec {AV_CODEC_ID_NONE}
 
AVCodecID m_primaryAudioCodec {AV_CODEC_ID_NONE}
 
QString m_videocodec {"rtjpeg"}
 
QString m_videodevice
 
bool m_ntsc {true}
 
bool m_ntscFrameRate {true}
 
double m_videoFrameRate {29.97}
 
uint m_videoAspect {0}
 
uint m_videoHeight {0}
 
uint m_videoWidth {0}
 
FrameRate m_frameRate {0}
 
RecordingInfom_curRecording {nullptr}
 
QMutex m_pauseLock
 
bool m_requestPause {false}
 
bool m_paused {false}
 
QWaitCondition m_pauseWait
 
QWaitCondition m_unpauseWait
 
bool m_requestRecording {false}
 True if API call has requested a recording be [re]started. More...
 
bool m_recording {false}
 True while recording is actually being performed. More...
 
QWaitCondition m_recordingWait
 
QMutex m_nextRingBufferLock
 
RingBufferm_nextRingBuffer {nullptr}
 
RecordingInfom_nextRecording {nullptr}
 
MythTimer m_ringBufferCheckTimer
 
MarkTypes m_positionMapType {MARK_GOP_BYFRAME}
 
QMutex m_positionMapLock
 
frm_pos_map_t m_positionMap
 
frm_pos_map_t m_positionMapDelta
 
frm_pos_map_t m_durationMap
 
frm_pos_map_t m_durationMapDelta
 
MythTimer m_positionMapTimer
 
qint64 m_estimatedProgStartMS {0}
 
long long m_lastSavedKeyframe {0}
 
long long m_lastSavedDuration {0}
 
QMutex m_statisticsLock
 
QAtomicInt m_timeOfFirstDataIsSet
 
QDateTime m_timeOfFirstData
 
QAtomicInt m_timeOfLatestDataCount
 
QAtomicInt m_timeOfLatestDataPacketInterval
 
QDateTime m_timeOfLatestData
 
MythTimer m_timeOfLatestDataTimer
 
RecordingGaps m_recordingGaps
 
- Static Protected Attributes inherited from DTVRecorder
static const uint kMaxKeyFrameDistance = 80
 If the number of regular frames detected since the last detected keyframe exceeds this value, then we begin marking random regular frames as keyframes. More...
 
static const unsigned char kPayloadStartSeen = 0x2
 
- Static Protected Attributes inherited from RecorderBase
static const uint kTimeOfLatestDataIntervalTarget = 5000
 timeOfLatest update interval target in milliseconds. More...
 

Detailed Description

Definition at line 72 of file NuppelVideoRecorder.h.

Constructor & Destructor Documentation

◆ NuppelVideoRecorder()

NuppelVideoRecorder::NuppelVideoRecorder ( TVRec rec,
ChannelBase channel 
)

Definition at line 85 of file NuppelVideoRecorder.cpp.

◆ ~NuppelVideoRecorder()

NuppelVideoRecorder::~NuppelVideoRecorder ( void  )
override

Definition at line 97 of file NuppelVideoRecorder.cpp.

Member Function Documentation

◆ SetOption() [1/2]

void NuppelVideoRecorder::SetOption ( const QString &  name,
int  value 
)
overridevirtual

handles the "wait_for_seqstart" option.

Reimplemented from DTVRecorder.

Definition at line 153 of file NuppelVideoRecorder.cpp.

Referenced by SetOptionsFromProfile().

◆ SetOption() [2/2]

void NuppelVideoRecorder::SetOption ( const QString &  name,
const QString &  value 
)
overridevirtual

Set an specific option.

Base options include: codec, videodevice, tvformat (ntsc,ntsc-jp,pal-m), vbiformat ("none","pal teletext","ntsc").

Reimplemented from DTVRecorder.

Definition at line 236 of file NuppelVideoRecorder.cpp.

◆ SetOptionsFromProfile()

void NuppelVideoRecorder::SetOptionsFromProfile ( RecordingProfile profile,
const QString &  videodev,
const QString &  audiodev,
const QString &  vbidev 
)
overridevirtual

Sets basic recorder options.

SetOptionsFromProfile is used to tell the recorder about the recording profile as well as the devices to use.

Reimplemented from DTVRecorder.

Definition at line 241 of file NuppelVideoRecorder.cpp.

◆ Initialize()

void NuppelVideoRecorder::Initialize ( void  )
overridevirtual

This is called between SetOptionsFromProfile() and run() to initialize any devices, etc.

Reimplemented from DTVRecorder.

Definition at line 570 of file NuppelVideoRecorder.cpp.

◆ run()

void NuppelVideoRecorder::run ( void  )
overridevirtual

run() starts the recording process, and does not exit until the recording is complete.

See also
StopRecording()

Implements RecorderBase.

Definition at line 892 of file NuppelVideoRecorder.cpp.

◆ Pause()

void NuppelVideoRecorder::Pause ( bool  clear = true)
overridevirtual

Pause tells recorder to pause, it should not block.

Once paused the recorder calls m_tvrec->RecorderPaused().

Parameters
clearif true any generated timecodes should be reset.
See also
Unpause(), WaitForPause()

Reimplemented from RecorderBase.

Definition at line 342 of file NuppelVideoRecorder.cpp.

◆ IsPaused()

bool NuppelVideoRecorder::IsPaused ( bool  holding_lock = false) const
overridevirtual

Returns true iff recorder is paused.

Reimplemented from RecorderBase.

Definition at line 354 of file NuppelVideoRecorder.cpp.

Referenced by doAudioThread(), DoMJPEG(), DoV4L1(), DoV4L2(), and doWriteThread().

◆ IsRecording()

bool NuppelVideoRecorder::IsRecording ( void  )
overridevirtual

Tells whether the StartRecorder() loop is running.

Reimplemented from RecorderBase.

Definition at line 368 of file NuppelVideoRecorder.cpp.

◆ GetFramesWritten()

long long NuppelVideoRecorder::GetFramesWritten ( void  )
overridevirtual

Returns number of frames written to disk.

It is not always safe to seek up to this frame in a player because frames may not be written in display order.

Reimplemented from DTVRecorder.

Definition at line 373 of file NuppelVideoRecorder.cpp.

◆ Open()

bool NuppelVideoRecorder::Open ( void  )

Definition at line 831 of file NuppelVideoRecorder.cpp.

Referenced by run().

◆ GetVideoFd()

int NuppelVideoRecorder::GetVideoFd ( void  )
overridevirtual

Returns file descriptor of recorder device.

This is used by channel when only one open file descriptor is allowed on a device node. This is the case with video4linux devices and similar devices in BSD. It is not needed by newer drivers, such as those used for DVB.

Reimplemented from DTVRecorder.

Definition at line 378 of file NuppelVideoRecorder.cpp.

◆ Reset()

void NuppelVideoRecorder::Reset ( void  )
overridevirtual

Reset the recorder to the startup state.

This is used after Pause(bool), WaitForPause() and after the RingBuffer's StopReads() method has been called.

Reimplemented from DTVRecorder.

Definition at line 2145 of file NuppelVideoRecorder.cpp.

◆ SetVideoFilters()

void NuppelVideoRecorder::SetVideoFilters ( QString &  filters)
overridevirtual

Tells recorder which filters to use.

These filters are used by frame grabber encoders to lower the bitrate while keeping quality good. They must execute quickly so that frames are not lost by the recorder.

Reimplemented from DTVRecorder.

Definition at line 364 of file NuppelVideoRecorder.cpp.

◆ SetTranscoding()

void NuppelVideoRecorder::SetTranscoding ( bool  value)
inline

Definition at line 103 of file NuppelVideoRecorder.h.

◆ ResetForNewFile()

void NuppelVideoRecorder::ResetForNewFile ( void  )
overridevirtual

Reimplemented from DTVRecorder.

Definition at line 2637 of file NuppelVideoRecorder.cpp.

Referenced by Reset().

◆ FinishRecording()

void NuppelVideoRecorder::FinishRecording ( void  )
overridevirtual

Flushes the ringbuffer, and if this is not a live LiveTV recording saves the position map and filesize.

Reimplemented from DTVRecorder.

Definition at line 2661 of file NuppelVideoRecorder.cpp.

Referenced by DoMJPEG(), DoV4L1(), and DoV4L2().

◆ StartNewFile()

void NuppelVideoRecorder::StartNewFile ( void  )
overridevirtual

Reimplemented from RecorderBase.

Definition at line 2656 of file NuppelVideoRecorder.cpp.

◆ StreamAllocate()

void NuppelVideoRecorder::StreamAllocate ( void  )

Definition at line 825 of file NuppelVideoRecorder.cpp.

Referenced by run().

◆ WriteHeader()

void NuppelVideoRecorder::WriteHeader ( void  )

Definition at line 1919 of file NuppelVideoRecorder.cpp.

Referenced by CreateNuppelFile().

◆ WriteSeekTable()

void NuppelVideoRecorder::WriteSeekTable ( void  )

Definition at line 2035 of file NuppelVideoRecorder.cpp.

Referenced by FinishRecording().

◆ WriteKeyFrameAdjustTable()

void NuppelVideoRecorder::WriteKeyFrameAdjustTable ( const vector< struct kfatable_entry > &  kfa_table)

Definition at line 2070 of file NuppelVideoRecorder.cpp.

◆ UpdateSeekTable()

void NuppelVideoRecorder::UpdateSeekTable ( int  frame_num,
long  offset = 0 
)

Definition at line 2107 of file NuppelVideoRecorder.cpp.

Referenced by WriteVideo().

◆ SetupAVCodecVideo()

bool NuppelVideoRecorder::SetupAVCodecVideo ( void  )

Definition at line 383 of file NuppelVideoRecorder.cpp.

Referenced by Reset(), and run().

◆ SetupRTjpeg()

void NuppelVideoRecorder::SetupRTjpeg ( void  )

Definition at line 493 of file NuppelVideoRecorder.cpp.

Referenced by run().

◆ AudioInit()

int NuppelVideoRecorder::AudioInit ( bool  skipdevice = false)

Definition at line 627 of file NuppelVideoRecorder.cpp.

Referenced by Initialize().

◆ SetVideoAspect()

void NuppelVideoRecorder::SetVideoAspect ( float  newAspect)
inline

Definition at line 120 of file NuppelVideoRecorder.h.

◆ WriteVideo()

void NuppelVideoRecorder::WriteVideo ( VideoFrame frame,
bool  skipsync = false,
bool  forcekey = false 
)

Definition at line 2675 of file NuppelVideoRecorder.cpp.

Referenced by doWriteThread().

◆ WriteAudio()

void NuppelVideoRecorder::WriteAudio ( unsigned char *  buf,
int  fnum,
int  timecode 
)

Definition at line 2905 of file NuppelVideoRecorder.cpp.

Referenced by doWriteThread().

◆ WriteText()

void NuppelVideoRecorder::WriteText ( unsigned char *  buf,
int  len,
int  timecode,
int  pagenr 
)

Definition at line 3037 of file NuppelVideoRecorder.cpp.

Referenced by doWriteThread().

◆ SetNewVideoParams()

void NuppelVideoRecorder::SetNewVideoParams ( double  newaspect)

Definition at line 1865 of file NuppelVideoRecorder.cpp.

◆ doWriteThread()

void NuppelVideoRecorder::doWriteThread ( void  )
protected

Definition at line 2510 of file NuppelVideoRecorder.cpp.

◆ doAudioThread()

void NuppelVideoRecorder::doAudioThread ( void  )
protected

Definition at line 2193 of file NuppelVideoRecorder.cpp.

◆ WriteFrameheader()

void NuppelVideoRecorder::WriteFrameheader ( rtframeheader fh)
inlineprivate

◆ WriteFileHeader()

void NuppelVideoRecorder::WriteFileHeader ( void  )
private

Definition at line 1883 of file NuppelVideoRecorder.cpp.

Referenced by SetNewVideoParams(), and WriteHeader().

◆ InitBuffers()

void NuppelVideoRecorder::InitBuffers ( void  )
private

Definition at line 753 of file NuppelVideoRecorder.cpp.

Referenced by Initialize().

◆ ResizeVideoBuffers()

void NuppelVideoRecorder::ResizeVideoBuffers ( void  )
private

Definition at line 816 of file NuppelVideoRecorder.cpp.

◆ MJPEGInit()

bool NuppelVideoRecorder::MJPEGInit ( void  )
private

Determines MJPEG capture resolution.

This function requires an file descriptor for the device, which means Channel cannot be open when NVR::Initialize() is called. It is safe for the recorder to be open.

Returns
true on success

Definition at line 703 of file NuppelVideoRecorder.cpp.

Referenced by Initialize().

◆ KillChildren()

void NuppelVideoRecorder::KillChildren ( void  )
private

Definition at line 1762 of file NuppelVideoRecorder.cpp.

Referenced by DoMJPEG(), DoV4L1(), DoV4L2(), and Open().

◆ BufferIt()

void NuppelVideoRecorder::BufferIt ( unsigned char *  buf,
int  len = -1,
bool  forcekey = false 
)
private

Definition at line 1793 of file NuppelVideoRecorder.cpp.

Referenced by DoMJPEG(), DoV4L1(), and DoV4L2().

◆ CreateNuppelFile()

int NuppelVideoRecorder::CreateNuppelFile ( void  )
private

Definition at line 2123 of file NuppelVideoRecorder.cpp.

Referenced by run(), and StartNewFile().

◆ ProbeV4L2()

void NuppelVideoRecorder::ProbeV4L2 ( void  )
private

Definition at line 856 of file NuppelVideoRecorder.cpp.

Referenced by run().

◆ SetFormatV4L2()

bool NuppelVideoRecorder::SetFormatV4L2 ( void  )
private

Definition at line 1187 of file NuppelVideoRecorder.cpp.

Referenced by run().

◆ DoV4L1()

void NuppelVideoRecorder::DoV4L1 ( void  )
private

Definition at line 990 of file NuppelVideoRecorder.cpp.

Referenced by run().

◆ DoV4L2()

void NuppelVideoRecorder::DoV4L2 ( void  )
private

Definition at line 1277 of file NuppelVideoRecorder.cpp.

Referenced by run().

◆ DoMJPEG()

void NuppelVideoRecorder::DoMJPEG ( void  )
private

Definition at line 1615 of file NuppelVideoRecorder.cpp.

Referenced by DoV4L1().

◆ FormatTT()

void NuppelVideoRecorder::FormatTT ( struct VBIData vbidata)
overrideprivatevirtual

Reimplemented from V4LRecorder.

Definition at line 2302 of file NuppelVideoRecorder.cpp.

◆ FormatCC()

void NuppelVideoRecorder::FormatCC ( uint  code1,
uint  code2 
)
overrideprivatevirtual

Reimplemented from V4LRecorder.

Definition at line 2475 of file NuppelVideoRecorder.cpp.

◆ AddTextData()

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

Implements CC608Input.

Definition at line 2488 of file NuppelVideoRecorder.cpp.

◆ UpdateResolutions()

void NuppelVideoRecorder::UpdateResolutions ( void  )
private

Definition at line 508 of file NuppelVideoRecorder.cpp.

Referenced by run().

◆ HEAP_ALLOC()

NuppelVideoRecorder::HEAP_ALLOC ( wrkmem  ,
LZO1X_1_MEM_COMPRESS   
)
inlineprivate

Definition at line 196 of file NuppelVideoRecorder.h.

Friends And Related Function Documentation

◆ NVRWriteThread

friend class NVRWriteThread
friend

Definition at line 74 of file NuppelVideoRecorder.h.

Referenced by run().

◆ NVRAudioThread

friend class NVRAudioThread
friend

Definition at line 75 of file NuppelVideoRecorder.h.

Referenced by run().

Member Data Documentation

◆ m_fd

int NuppelVideoRecorder::m_fd {-1}
private

◆ m_strm

signed char* NuppelVideoRecorder::m_strm {nullptr}
private

Definition at line 161 of file NuppelVideoRecorder.h.

Referenced by StreamAllocate(), WriteVideo(), and ~NuppelVideoRecorder().

◆ m_lf

unsigned int NuppelVideoRecorder::m_lf {0}
private

Definition at line 162 of file NuppelVideoRecorder.h.

Referenced by ResetForNewFile(), WriteHeader(), and WriteVideo().

◆ m_tf

int NuppelVideoRecorder::m_tf {0}
private

Definition at line 163 of file NuppelVideoRecorder.h.

Referenced by BufferIt().

◆ m_m1

int NuppelVideoRecorder::m_m1 {0}
private

Definition at line 164 of file NuppelVideoRecorder.h.

Referenced by SetOption(), SetupRTjpeg(), and WriteHeader().

◆ m_m2

int NuppelVideoRecorder::m_m2 {0}
private

Definition at line 165 of file NuppelVideoRecorder.h.

Referenced by SetOption(), SetupRTjpeg(), and WriteHeader().

◆ m_q

int NuppelVideoRecorder::m_q {255}
private

Definition at line 166 of file NuppelVideoRecorder.h.

Referenced by SetOption(), SetupRTjpeg(), and WriteHeader().

◆ m_width

int NuppelVideoRecorder::m_width {352}
private

◆ m_height

int NuppelVideoRecorder::m_height {240}
private

◆ m_pipMode

int NuppelVideoRecorder::m_pipMode {0}
private

Definition at line 169 of file NuppelVideoRecorder.h.

Referenced by SetOption().

◆ m_compression

int NuppelVideoRecorder::m_compression {1}
private

Definition at line 170 of file NuppelVideoRecorder.h.

Referenced by WriteVideo().

◆ m_compressAudio

bool NuppelVideoRecorder::m_compressAudio {true}
private

Definition at line 171 of file NuppelVideoRecorder.h.

Referenced by AudioInit(), SetOption(), WriteAudio(), and WriteHeader().

◆ m_audioDevice

AudioInput* NuppelVideoRecorder::m_audioDevice {nullptr}
private

Definition at line 172 of file NuppelVideoRecorder.h.

Referenced by AudioInit(), doAudioThread(), and ~NuppelVideoRecorder().

◆ m_audioBytes

unsigned long long NuppelVideoRecorder::m_audioBytes {0}
private

Definition at line 173 of file NuppelVideoRecorder.h.

Referenced by Initialize(), Reset(), and WriteAudio().

◆ m_audioChannels

int NuppelVideoRecorder::m_audioChannels {2}
private

Definition at line 174 of file NuppelVideoRecorder.h.

Referenced by AudioInit(), doAudioThread(), WriteAudio(), and WriteHeader().

◆ m_audioBits

int NuppelVideoRecorder::m_audioBits {16}
private

Definition at line 175 of file NuppelVideoRecorder.h.

Referenced by AudioInit(), doAudioThread(), and WriteHeader().

◆ m_audioBytesPerSample

int NuppelVideoRecorder::m_audioBytesPerSample {m_audioChannels * m_audioBits / 8}
private

Definition at line 176 of file NuppelVideoRecorder.h.

Referenced by AudioInit(), doAudioThread(), and WriteAudio().

◆ m_audioSampleRate

int NuppelVideoRecorder::m_audioSampleRate {44100}
private

Definition at line 177 of file NuppelVideoRecorder.h.

Referenced by AudioInit(), doAudioThread(), SetOption(), and WriteHeader().

◆ m_effectiveDsp

int NuppelVideoRecorder::m_effectiveDsp {0}
private

Definition at line 178 of file NuppelVideoRecorder.h.

Referenced by Reset(), WriteAudio(), and WriteVideo().

◆ m_useBttv

int NuppelVideoRecorder::m_useBttv {1}
private

Definition at line 180 of file NuppelVideoRecorder.h.

Referenced by BufferIt().

◆ m_videoAspect

float NuppelVideoRecorder::m_videoAspect {1.33333F}
private

◆ m_transcoding

bool NuppelVideoRecorder::m_transcoding {false}
private

Definition at line 183 of file NuppelVideoRecorder.h.

Referenced by WriteVideo().

◆ m_mp3Quality

int NuppelVideoRecorder::m_mp3Quality {3}
private

Definition at line 185 of file NuppelVideoRecorder.h.

Referenced by AudioInit(), SetOption(), and WriteHeader().

◆ m_mp3Buf

char* NuppelVideoRecorder::m_mp3Buf {nullptr}
private

Definition at line 186 of file NuppelVideoRecorder.h.

Referenced by AudioInit(), WriteAudio(), and ~NuppelVideoRecorder().

◆ m_mp3BufSize

int NuppelVideoRecorder::m_mp3BufSize {0}
private

Definition at line 187 of file NuppelVideoRecorder.h.

Referenced by AudioInit(), and WriteAudio().

◆ m_gf

lame_global_flags* NuppelVideoRecorder::m_gf {nullptr}
private

Definition at line 188 of file NuppelVideoRecorder.h.

Referenced by AudioInit(), WriteAudio(), and ~NuppelVideoRecorder().

◆ m_rtjc

RTjpeg* NuppelVideoRecorder::m_rtjc {nullptr}
private

Definition at line 190 of file NuppelVideoRecorder.h.

Referenced by SetupRTjpeg(), WriteVideo(), and ~NuppelVideoRecorder().

◆ m_out

lzo_byte NuppelVideoRecorder::m_out[OUT_LEN] {}
private

Definition at line 193 of file NuppelVideoRecorder.h.

Referenced by WriteVideo().

◆ m_videoBuffer

vector<struct vidbuffertype *> NuppelVideoRecorder::m_videoBuffer
private

◆ m_audioBuffer

vector<struct audbuffertype *> NuppelVideoRecorder::m_audioBuffer
private

◆ m_textBuffer

vector<struct txtbuffertype *> NuppelVideoRecorder::m_textBuffer
private

◆ m_actVideoEncode

int NuppelVideoRecorder::m_actVideoEncode {0}
private

Definition at line 202 of file NuppelVideoRecorder.h.

Referenced by doWriteThread(), Reset(), and WriteVideo().

◆ m_actVideoBuffer

int NuppelVideoRecorder::m_actVideoBuffer {0}
private

Definition at line 203 of file NuppelVideoRecorder.h.

Referenced by BufferIt(), Reset(), and WriteVideo().

◆ m_actAudioEncode

int NuppelVideoRecorder::m_actAudioEncode {0}
private

Definition at line 205 of file NuppelVideoRecorder.h.

Referenced by doWriteThread(), and Reset().

◆ m_actAudioBuffer

int NuppelVideoRecorder::m_actAudioBuffer {0}
private

Definition at line 206 of file NuppelVideoRecorder.h.

Referenced by doAudioThread(), and Reset().

◆ m_actAudioSample

long long NuppelVideoRecorder::m_actAudioSample {0}
private

Definition at line 207 of file NuppelVideoRecorder.h.

Referenced by doAudioThread(), and Reset().

◆ m_actTextEncode

int NuppelVideoRecorder::m_actTextEncode {0}
private

Definition at line 209 of file NuppelVideoRecorder.h.

Referenced by doWriteThread(), and Reset().

◆ m_actTextBuffer

int NuppelVideoRecorder::m_actTextBuffer {0}
private

Definition at line 210 of file NuppelVideoRecorder.h.

Referenced by AddTextData(), FormatTT(), and Reset().

◆ m_videoBufferCount

int NuppelVideoRecorder::m_videoBufferCount {0}
private

Definition at line 212 of file NuppelVideoRecorder.h.

Referenced by BufferIt(), doWriteThread(), InitBuffers(), Reset(), and WriteVideo().

◆ m_audioBufferCount

int NuppelVideoRecorder::m_audioBufferCount {0}
private

Definition at line 213 of file NuppelVideoRecorder.h.

Referenced by doAudioThread(), doWriteThread(), InitBuffers(), and Reset().

◆ m_textBufferCount

int NuppelVideoRecorder::m_textBufferCount {0}
private

Definition at line 214 of file NuppelVideoRecorder.h.

Referenced by AddTextData(), doWriteThread(), FormatTT(), InitBuffers(), and Reset().

◆ m_videoBufferSize

long NuppelVideoRecorder::m_videoBufferSize {0}
private

Definition at line 216 of file NuppelVideoRecorder.h.

Referenced by DoV4L1(), DoV4L2(), InitBuffers(), and ResizeVideoBuffers().

◆ m_audioBufferSize

long NuppelVideoRecorder::m_audioBufferSize {0}
private

Definition at line 217 of file NuppelVideoRecorder.h.

Referenced by AudioInit(), doAudioThread(), InitBuffers(), SetOption(), and WriteAudio().

◆ m_textBufferSize

long NuppelVideoRecorder::m_textBufferSize {0}
private

Definition at line 218 of file NuppelVideoRecorder.h.

Referenced by InitBuffers().

◆ m_writeThread

NVRWriteThread* NuppelVideoRecorder::m_writeThread {nullptr}
private

Definition at line 223 of file NuppelVideoRecorder.h.

Referenced by KillChildren(), and run().

◆ m_audioThread

NVRAudioThread* NuppelVideoRecorder::m_audioThread {nullptr}
private

Definition at line 224 of file NuppelVideoRecorder.h.

Referenced by KillChildren(), and run().

◆ m_recording

bool NuppelVideoRecorder::m_recording {false}
private

Definition at line 226 of file NuppelVideoRecorder.h.

Referenced by IsRecording(), and run().

◆ m_keyframeDist

int NuppelVideoRecorder::m_keyframeDist {KEYFRAMEDIST}
private

Definition at line 228 of file NuppelVideoRecorder.h.

Referenced by DoV4L2(), and WriteVideo().

◆ m_seekTable

vector<struct seektable_entry>* NuppelVideoRecorder::m_seekTable {nullptr}
private

◆ m_lastPositionMapPos

long long NuppelVideoRecorder::m_lastPositionMapPos {0}
private

Definition at line 230 of file NuppelVideoRecorder.h.

Referenced by UpdateSeekTable().

◆ m_extendedDataOffset

long long NuppelVideoRecorder::m_extendedDataOffset {0}
private

Definition at line 232 of file NuppelVideoRecorder.h.

Referenced by WriteHeader(), WriteKeyFrameAdjustTable(), and WriteSeekTable().

◆ m_framesWritten

long long NuppelVideoRecorder::m_framesWritten {0}
private

◆ m_livetv

bool NuppelVideoRecorder::m_livetv {false}
private

Definition at line 236 of file NuppelVideoRecorder.h.

Referenced by Initialize().

◆ m_writePaused

bool NuppelVideoRecorder::m_writePaused {false}
private

Definition at line 237 of file NuppelVideoRecorder.h.

Referenced by doWriteThread(), IsPaused(), and Pause().

◆ m_audioPaused

bool NuppelVideoRecorder::m_audioPaused {false}
private

Definition at line 238 of file NuppelVideoRecorder.h.

Referenced by doAudioThread(), IsPaused(), and Pause().

◆ m_mainPaused

bool NuppelVideoRecorder::m_mainPaused {false}
private

Definition at line 239 of file NuppelVideoRecorder.h.

Referenced by DoMJPEG(), DoV4L1(), DoV4L2(), IsPaused(), and Pause().

◆ m_frameRateMultiplier

double NuppelVideoRecorder::m_frameRateMultiplier {1.0}
private

Definition at line 241 of file NuppelVideoRecorder.h.

Referenced by SetupAVCodecVideo(), UpdateResolutions(), and WriteFileHeader().

◆ m_heightMultiplier

double NuppelVideoRecorder::m_heightMultiplier {1.0}
private

◆ m_lastBlock

int NuppelVideoRecorder::m_lastBlock {0}
private

Definition at line 244 of file NuppelVideoRecorder.h.

Referenced by ResetForNewFile(), WriteAudio(), and WriteHeader().

◆ m_firstTc

int NuppelVideoRecorder::m_firstTc {0}
private

Definition at line 245 of file NuppelVideoRecorder.h.

Referenced by WriteAudio().

◆ m_oldTc

long int NuppelVideoRecorder::m_oldTc {0}
private

Definition at line 246 of file NuppelVideoRecorder.h.

Referenced by BufferIt().

◆ m_startNum

int NuppelVideoRecorder::m_startNum {0}
private

Definition at line 247 of file NuppelVideoRecorder.h.

Referenced by WriteVideo().

◆ m_frameOfGop

int NuppelVideoRecorder::m_frameOfGop {0}
private

Definition at line 248 of file NuppelVideoRecorder.h.

Referenced by WriteVideo().

◆ m_lastTimecode

int NuppelVideoRecorder::m_lastTimecode {0}
private

Definition at line 249 of file NuppelVideoRecorder.h.

Referenced by WriteVideo().

◆ m_audioBehind

int NuppelVideoRecorder::m_audioBehind {0}
private

Definition at line 250 of file NuppelVideoRecorder.h.

Referenced by WriteAudio().

◆ m_useAvCodec

bool NuppelVideoRecorder::m_useAvCodec {false}
private

Definition at line 252 of file NuppelVideoRecorder.h.

Referenced by Reset(), run(), SetupAVCodecVideo(), WriteHeader(), and WriteVideo().

◆ m_mpaVidCodec

AVCodec* NuppelVideoRecorder::m_mpaVidCodec {nullptr}
private

◆ m_mpaVidCtx

AVCodecContext* NuppelVideoRecorder::m_mpaVidCtx {nullptr}
private

◆ m_targetBitRate

int NuppelVideoRecorder::m_targetBitRate {2200}
private

Definition at line 257 of file NuppelVideoRecorder.h.

Referenced by DoV4L2(), SetOption(), and SetupAVCodecVideo().

◆ m_scaleBitRate

int NuppelVideoRecorder::m_scaleBitRate {1}
private

Definition at line 258 of file NuppelVideoRecorder.h.

Referenced by DoV4L2(), SetOption(), and SetupAVCodecVideo().

◆ m_maxQuality

int NuppelVideoRecorder::m_maxQuality {2}
private

Definition at line 259 of file NuppelVideoRecorder.h.

Referenced by SetOption(), and SetupAVCodecVideo().

◆ m_minQuality

int NuppelVideoRecorder::m_minQuality {31}
private

Definition at line 260 of file NuppelVideoRecorder.h.

Referenced by SetOption(), and SetupAVCodecVideo().

◆ m_qualDiff

int NuppelVideoRecorder::m_qualDiff {3}
private

Definition at line 261 of file NuppelVideoRecorder.h.

Referenced by SetOption(), and SetupAVCodecVideo().

◆ m_mp4Opts

int NuppelVideoRecorder::m_mp4Opts {0}
private

Definition at line 262 of file NuppelVideoRecorder.h.

Referenced by SetOption(), and SetupAVCodecVideo().

◆ m_mbDecision

int NuppelVideoRecorder::m_mbDecision {FF_MB_DECISION_SIMPLE}
private

Definition at line 263 of file NuppelVideoRecorder.h.

Referenced by SetOption(), and SetupAVCodecVideo().

◆ m_encodingThreadCount

int NuppelVideoRecorder::m_encodingThreadCount {1}
private

Number of threads to use for MPEG-2 and MPEG-4 encoding.

Definition at line 265 of file NuppelVideoRecorder.h.

Referenced by SetOption(), and SetupAVCodecVideo().

◆ m_inPixFmt

VideoFrameType NuppelVideoRecorder::m_inPixFmt {FMT_YV12}
private

Definition at line 267 of file NuppelVideoRecorder.h.

Referenced by DoV4L1(), run(), SetFormatV4L2(), and SetOption().

◆ m_pictureFormat

AVPixelFormat NuppelVideoRecorder::m_pictureFormat {AV_PIX_FMT_YUV420P}
private

Definition at line 268 of file NuppelVideoRecorder.h.

Referenced by InitBuffers(), SetupAVCodecVideo(), and SetupRTjpeg().

◆ m_v4l2PixelFormat

uint32_t NuppelVideoRecorder::m_v4l2PixelFormat {0}
private

Definition at line 270 of file NuppelVideoRecorder.h.

Referenced by DoV4L2(), and SetFormatV4L2().

◆ m_wOut

int NuppelVideoRecorder::m_wOut {0}
private

◆ m_hOut

int NuppelVideoRecorder::m_hOut {0}
private

◆ m_hardwareEncode

bool NuppelVideoRecorder::m_hardwareEncode {false}
private

Definition at line 275 of file NuppelVideoRecorder.h.

Referenced by DoV4L1(), DoV4L2(), Initialize(), and WriteVideo().

◆ m_hmjpgQuality

int NuppelVideoRecorder::m_hmjpgQuality {80}
private

Definition at line 276 of file NuppelVideoRecorder.h.

Referenced by DoMJPEG(), and SetOption().

◆ m_hmjpgHDecimation

int NuppelVideoRecorder::m_hmjpgHDecimation {2}
private

Definition at line 277 of file NuppelVideoRecorder.h.

Referenced by DoMJPEG(), Initialize(), and SetOption().

◆ m_hmjpgVDecimation

int NuppelVideoRecorder::m_hmjpgVDecimation {2}
private

Definition at line 278 of file NuppelVideoRecorder.h.

Referenced by DoMJPEG(), Initialize(), and SetOption().

◆ m_hmjpgMaxW

int NuppelVideoRecorder::m_hmjpgMaxW {640}
private

Definition at line 279 of file NuppelVideoRecorder.h.

Referenced by DoMJPEG(), Initialize(), and MJPEGInit().

◆ m_clearTimeOnPause

bool NuppelVideoRecorder::m_clearTimeOnPause {false}
private

Definition at line 281 of file NuppelVideoRecorder.h.

Referenced by DoMJPEG(), DoV4L1(), DoV4L2(), and Pause().

◆ m_usingV4l2

bool NuppelVideoRecorder::m_usingV4l2 {false}
private

Definition at line 283 of file NuppelVideoRecorder.h.

Referenced by ProbeV4L2(), and run().

◆ m_channelFd

int NuppelVideoRecorder::m_channelFd {-1}
private

Definition at line 284 of file NuppelVideoRecorder.h.

Referenced by DoV4L2(), GetVideoFd(), Open(), and ProbeV4L2().

◆ m_channelObj

ChannelBase* NuppelVideoRecorder::m_channelObj {nullptr}
private

Definition at line 286 of file NuppelVideoRecorder.h.

Referenced by DoV4L1(), DoV4L2(), and NuppelVideoRecorder().

◆ m_skipBtAudio

bool NuppelVideoRecorder::m_skipBtAudio {false}
private

Definition at line 288 of file NuppelVideoRecorder.h.

Referenced by DoV4L1(), and SetOption().

◆ m_correctBttv

bool NuppelVideoRecorder::m_correctBttv {false}
private

Definition at line 290 of file NuppelVideoRecorder.h.

Referenced by ProbeV4L2().

◆ m_volume

int NuppelVideoRecorder::m_volume {100}
private

Definition at line 292 of file NuppelVideoRecorder.h.

Referenced by DoV4L1(), and SetOption().

◆ m_ccd

CC608Decoder* NuppelVideoRecorder::m_ccd {nullptr}
private

Definition at line 294 of file NuppelVideoRecorder.h.

Referenced by FormatCC(), NuppelVideoRecorder(), and ~NuppelVideoRecorder().

◆ m_go7007

bool NuppelVideoRecorder::m_go7007 {false}
private

Definition at line 296 of file NuppelVideoRecorder.h.

Referenced by DoV4L2(), ProbeV4L2(), ResetForNewFile(), SetFormatV4L2(), and WriteVideo().

◆ m_resetCapture

bool NuppelVideoRecorder::m_resetCapture {false}
private

Definition at line 297 of file NuppelVideoRecorder.h.

Referenced by DoV4L2(), and ResetForNewFile().


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