MythTV  master
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]

Public Member Functions

 NuppelVideoRecorder (TVRec *rec, ChannelBase *channel)
 
 ~NuppelVideoRecorder ()
 
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)
 
virtual ~V4LRecorder ()
 
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)
 
virtual ~DTVRecorder ()
 
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 *) const override
 Returns a report about the current recordings quality. More...
 
void HandlePAT (const ProgramAssociationTable *) override
 
void HandleCAT (const ConditionalAccessTable *) override
 
void HandlePMT (uint progNum, const ProgramMapTable *) 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)
 
virtual ~RecorderBase ()
 
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 *, RingBuffer *)
 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 &) const
 
bool GetKeyframeDurations (long long start, long long end, frm_pos_map_t &) 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 cc)
 
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_request_pause 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 InitFilters (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 *) override
 
void FormatCC (uint code1, uint code2) override
 
void AddTextData (unsigned char *, int, int64_t, char) 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_pip_mode {0}
 
int m_compression {1}
 
bool m_compressaudio {true}
 
AudioInputm_audio_device {nullptr}
 
unsigned long long m_audiobytes {0}
 
int m_audio_channels {2}
 
int m_audio_bits {16}
 
int m_audio_bytes_per_sample {m_audio_channels * m_audio_bits / 8}
 
int m_audio_samplerate {44100}
 
int m_effectivedsp {0}
 
int m_usebttv {1}
 
float m_video_aspect {1.33333F}
 
bool m_transcoding {false}
 
int m_mp3quality {3}
 
char * m_mp3buf {nullptr}
 
int m_mp3buf_size {0}
 
lame_global_flags * m_gf {nullptr}
 
RTjpegm_rtjc {nullptr}
 
lzo_byte m_out [OUT_LEN]
 
vector< struct vidbuffertype * > videobuffer
 
vector< struct audbuffertype * > audiobuffer
 
vector< struct txtbuffertype * > textbuffer
 
int m_act_video_encode {0}
 
int m_act_video_buffer {0}
 
int m_act_audio_encode {0}
 
int m_act_audio_buffer {0}
 
long long m_act_audio_sample {0}
 
int m_act_text_encode {0}
 
int m_act_text_buffer {0}
 
int m_video_buffer_count {0}
 
int m_audio_buffer_count {0}
 
int m_text_buffer_count {0}
 
long m_video_buffer_size {0}
 
long m_audio_buffer_size {0}
 
long m_text_buffer_size {0}
 
struct timeval m_stm
 
struct timezone m_tzone
 
NVRWriteThreadm_write_thread {nullptr}
 
NVRAudioThreadm_audio_thread {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_framerate_multiplier {1.0}
 
double m_height_multiplier {1.0}
 
int m_last_block {0}
 
int m_firsttc {0}
 
long int m_oldtc {0}
 
int m_startnum {0}
 
int m_frameofgop {0}
 
int m_lasttimecode {0}
 
int m_audio_behind {0}
 
bool m_useavcodec {false}
 
AVCodec * m_mpa_vidcodec {nullptr}
 
AVCodecContext * m_mpa_vidctx {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_mb_decision {FF_MB_DECISION_SIMPLE}
 
int m_encoding_thread_count {1}
 Number of threads to use for MPEG-2 and MPEG-4 encoding. More...
 
QString m_videoFilterList
 
FilterChainm_videoFilters {nullptr}
 
FilterManagerm_filtMan {nullptr}
 
VideoFrameType m_inpixfmt {FMT_YV12}
 
AVPixelFormat m_picture_format {AV_PIX_FMT_YUV420P}
 
uint32_t m_v4l2_pixelformat {0}
 
int m_w_out {0}
 
int m_h_out {0}
 
bool m_hardware_encode {false}
 
int m_hmjpg_quality {80}
 
int m_hmjpg_hdecimation {2}
 
int m_hmjpg_vdecimation {2}
 
int m_hmjpg_maxw {640}
 
bool m_cleartimeonpause {false}
 
bool m_usingv4l2 {false}
 
int m_channelfd {-1}
 
ChannelBasem_channelObj {nullptr}
 
bool m_skip_btaudio {false}
 
bool m_correct_bttv {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, const RecordingProfile &profile, const GeneralDBOptions &genOpt)
 
- Protected Attributes inherited from V4LRecorder
QString m_audiodevice
 
QString m_vbidevice
 
int m_vbimode {VBIMode::None}
 
struct VBIDatam_pal_vbi_cb {nullptr}
 
struct vbim_pal_vbi_tt {nullptr}
 
uint m_ntsc_vbi_width {0}
 
uint m_ntsc_vbi_start_line {0}
 
uint m_ntsc_vbi_line_count {0}
 
VBI608Extractorm_vbi608 {nullptr}
 
VBIThreadm_vbi_thread {nullptr}
 
QList< struct txtbuffertype * > m_textbuffer
 
int m_vbi_fd {-1}
 
volatile bool m_request_helper {false}
 
- Protected Attributes inherited from DTVRecorder
int m_stream_fd {-1}
 
QString m_recording_type {"all"}
 
QTime m_audio_timer
 
uint32_t m_start_code {0xffffffff}
 
int m_first_keyframe {-1}
 
unsigned long long m_last_gop_seen {0}
 
unsigned long long m_last_seq_seen {0}
 
unsigned long long m_last_keyframe_seen {0}
 
unsigned int m_audio_bytes_remaining {0}
 
unsigned int m_video_bytes_remaining {0}
 
unsigned int m_other_bytes_remaining {0}
 
int m_progressive_sequence {0}
 
int m_repeat_pict {0}
 
bool m_pes_synced {false}
 
bool m_seen_sps {false}
 
H264Parser m_h264_parser
 
bool m_wait_for_keyframe_option {true}
 Wait for the a GOP/SEQ-start before sending data. More...
 
bool m_has_written_other_keyframe {false}
 
QString m_error
 non-empty iff irrecoverable recording error detected More...
 
MPEGStreamDatam_stream_data {nullptr}
 
bool m_buffer_packets {false}
 
vector< unsigned char > m_payload_buffer
 
QMutex m_pid_lock {QMutex::Recursive}
 
ProgramAssociationTablem_input_pat {nullptr}
 PAT on input side. More...
 
ProgramMapTablem_input_pmt {nullptr}
 PMT on input side. More...
 
bool m_has_no_av {false}
 
bool m_record_mpts {false}
 
bool m_record_mpts_only {false}
 
unsigned char m_stream_id [0x1fff+1]
 
unsigned char m_pid_status [0x1fff+1]
 
unsigned char m_continuity_counter [0x1fff+1]
 
vector< TSPacketm_scratch
 
int m_minimum_recording_quality
 
bool m_use_pts {false}
 
uint64_t m_ts_count [256]
 
int64_t m_ts_last [256]
 
int64_t m_ts_first [256]
 
QDateTime m_ts_first_dt [256]
 
QAtomicInt m_packet_count {0}
 
QAtomicInt m_continuity_error_count {0}
 
unsigned long long m_frames_seen_count {0}
 
unsigned long long m_frames_written_count {0}
 
double m_total_duration {0.0}
 
double m_td_base {0.0}
 
uint64_t m_td_tick_count {0}
 
FrameRate m_td_tick_framerate {0}
 
bool m_music_choice {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_ntsc_framerate {true}
 
double m_video_frame_rate {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_request_pause {false}
 
bool m_paused {false}
 
QWaitCondition m_pauseWait
 
QWaitCondition m_unpauseWait
 
bool m_request_recording {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 74 of file NuppelVideoRecorder.h.

Constructor & Destructor Documentation

◆ NuppelVideoRecorder()

NuppelVideoRecorder::NuppelVideoRecorder ( TVRec rec,
ChannelBase channel 
)

Definition at line 86 of file NuppelVideoRecorder.cpp.

◆ ~NuppelVideoRecorder()

NuppelVideoRecorder::~NuppelVideoRecorder ( void  )

Definition at line 102 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 160 of file NuppelVideoRecorder.cpp.

Referenced by SetOptionsFromProfile(), and Transcode::TranscodeFile().

◆ 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 243 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 248 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 580 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 934 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 349 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 361 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 377 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 382 of file NuppelVideoRecorder.cpp.

◆ Open()

bool NuppelVideoRecorder::Open ( void  )

Definition at line 872 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 387 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 2213 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 371 of file NuppelVideoRecorder.cpp.

◆ SetTranscoding()

void NuppelVideoRecorder::SetTranscoding ( bool  value)
inline

Definition at line 105 of file NuppelVideoRecorder.h.

Referenced by Transcode::TranscodeFile().

◆ ResetForNewFile()

void NuppelVideoRecorder::ResetForNewFile ( void  )
overridevirtual

Reimplemented from DTVRecorder.

Definition at line 2708 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 2732 of file NuppelVideoRecorder.cpp.

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

◆ StartNewFile()

void NuppelVideoRecorder::StartNewFile ( void  )
overridevirtual

Reimplemented from RecorderBase.

Definition at line 2727 of file NuppelVideoRecorder.cpp.

◆ StreamAllocate()

void NuppelVideoRecorder::StreamAllocate ( void  )

Definition at line 866 of file NuppelVideoRecorder.cpp.

Referenced by run(), and Transcode::TranscodeFile().

◆ WriteHeader()

void NuppelVideoRecorder::WriteHeader ( void  )

Definition at line 1976 of file NuppelVideoRecorder.cpp.

Referenced by CreateNuppelFile(), and Transcode::TranscodeFile().

◆ WriteSeekTable()

void NuppelVideoRecorder::WriteSeekTable ( void  )

Definition at line 2097 of file NuppelVideoRecorder.cpp.

Referenced by FinishRecording(), and Transcode::TranscodeFile().

◆ WriteKeyFrameAdjustTable()

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

Definition at line 2134 of file NuppelVideoRecorder.cpp.

Referenced by Transcode::TranscodeFile().

◆ UpdateSeekTable()

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

Definition at line 2173 of file NuppelVideoRecorder.cpp.

Referenced by Transcode::TranscodeFile(), and WriteVideo().

◆ SetupAVCodecVideo()

bool NuppelVideoRecorder::SetupAVCodecVideo ( void  )

Definition at line 392 of file NuppelVideoRecorder.cpp.

Referenced by Reset(), run(), and Transcode::TranscodeFile().

◆ SetupRTjpeg()

void NuppelVideoRecorder::SetupRTjpeg ( void  )

Definition at line 502 of file NuppelVideoRecorder.cpp.

Referenced by run(), and Transcode::TranscodeFile().

◆ AudioInit()

int NuppelVideoRecorder::AudioInit ( bool  skipdevice = false)

Definition at line 638 of file NuppelVideoRecorder.cpp.

Referenced by Initialize(), and Transcode::TranscodeFile().

◆ SetVideoAspect()

void NuppelVideoRecorder::SetVideoAspect ( float  newAspect)
inline

Definition at line 122 of file NuppelVideoRecorder.h.

Referenced by Transcode::TranscodeFile().

◆ WriteVideo()

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

Definition at line 2746 of file NuppelVideoRecorder.cpp.

Referenced by doWriteThread(), and Transcode::TranscodeFile().

◆ WriteAudio()

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

Definition at line 2977 of file NuppelVideoRecorder.cpp.

Referenced by doWriteThread(), and Transcode::TranscodeFile().

◆ WriteText()

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

Definition at line 3109 of file NuppelVideoRecorder.cpp.

Referenced by doWriteThread().

◆ SetNewVideoParams()

void NuppelVideoRecorder::SetNewVideoParams ( double  newaspect)

Definition at line 1920 of file NuppelVideoRecorder.cpp.

Referenced by Transcode::TranscodeFile().

◆ doWriteThread()

void NuppelVideoRecorder::doWriteThread ( void  )
protected

Definition at line 2581 of file NuppelVideoRecorder.cpp.

◆ doAudioThread()

void NuppelVideoRecorder::doAudioThread ( void  )
protected

Definition at line 2261 of file NuppelVideoRecorder.cpp.

◆ WriteFrameheader()

void NuppelVideoRecorder::WriteFrameheader ( rtframeheader fh)
inlineprivate

◆ WriteFileHeader()

void NuppelVideoRecorder::WriteFileHeader ( void  )
private

Definition at line 1939 of file NuppelVideoRecorder.cpp.

Referenced by SetNewVideoParams(), and WriteHeader().

◆ InitBuffers()

void NuppelVideoRecorder::InitBuffers ( void  )
private

Definition at line 794 of file NuppelVideoRecorder.cpp.

Referenced by Initialize().

◆ InitFilters()

void NuppelVideoRecorder::InitFilters ( void  )
private

Definition at line 764 of file NuppelVideoRecorder.cpp.

Referenced by DoV4L1(), Initialize(), run(), SetVideoFilters(), and WriteHeader().

◆ ResizeVideoBuffers()

void NuppelVideoRecorder::ResizeVideoBuffers ( void  )
private

Definition at line 857 of file NuppelVideoRecorder.cpp.

Referenced by InitFilters().

◆ 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 714 of file NuppelVideoRecorder.cpp.

Referenced by Initialize().

◆ KillChildren()

void NuppelVideoRecorder::KillChildren ( void  )
private

Definition at line 1815 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 1846 of file NuppelVideoRecorder.cpp.

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

◆ CreateNuppelFile()

int NuppelVideoRecorder::CreateNuppelFile ( void  )
private

Definition at line 2191 of file NuppelVideoRecorder.cpp.

Referenced by run(), and StartNewFile().

◆ ProbeV4L2()

void NuppelVideoRecorder::ProbeV4L2 ( void  )
private

Definition at line 897 of file NuppelVideoRecorder.cpp.

Referenced by run().

◆ SetFormatV4L2()

bool NuppelVideoRecorder::SetFormatV4L2 ( void  )
private

Definition at line 1234 of file NuppelVideoRecorder.cpp.

Referenced by run().

◆ DoV4L1()

void NuppelVideoRecorder::DoV4L1 ( void  )
private

Definition at line 1037 of file NuppelVideoRecorder.cpp.

Referenced by run().

◆ DoV4L2()

void NuppelVideoRecorder::DoV4L2 ( void  )
private

Definition at line 1325 of file NuppelVideoRecorder.cpp.

Referenced by run().

◆ DoMJPEG()

void NuppelVideoRecorder::DoMJPEG ( void  )
private

Definition at line 1668 of file NuppelVideoRecorder.cpp.

Referenced by DoV4L1().

◆ FormatTT()

void NuppelVideoRecorder::FormatTT ( struct VBIData vbidata)
overrideprivatevirtual

Reimplemented from V4LRecorder.

Definition at line 2371 of file NuppelVideoRecorder.cpp.

◆ FormatCC()

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

Reimplemented from V4LRecorder.

Definition at line 2546 of file NuppelVideoRecorder.cpp.

◆ AddTextData()

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

Implements CC608Input.

Definition at line 2559 of file NuppelVideoRecorder.cpp.

◆ UpdateResolutions()

void NuppelVideoRecorder::UpdateResolutions ( void  )
private

Definition at line 518 of file NuppelVideoRecorder.cpp.

Referenced by run().

◆ HEAP_ALLOC()

NuppelVideoRecorder::HEAP_ALLOC ( wrkmem  ,
LZO1X_1_MEM_COMPRESS   
)
private

Friends And Related Function Documentation

◆ NVRWriteThread

friend class NVRWriteThread
friend

Definition at line 76 of file NuppelVideoRecorder.h.

Referenced by run().

◆ NVRAudioThread

friend class NVRAudioThread
friend

Definition at line 77 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 164 of file NuppelVideoRecorder.h.

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

◆ m_lf

unsigned int NuppelVideoRecorder::m_lf {0}
private

Definition at line 165 of file NuppelVideoRecorder.h.

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

◆ m_tf

int NuppelVideoRecorder::m_tf {0}
private

Definition at line 166 of file NuppelVideoRecorder.h.

Referenced by BufferIt().

◆ m_M1

int NuppelVideoRecorder::m_M1 {0}
private

Definition at line 167 of file NuppelVideoRecorder.h.

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

◆ m_M2

int NuppelVideoRecorder::m_M2 {0}
private

Definition at line 168 of file NuppelVideoRecorder.h.

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

◆ m_Q

int NuppelVideoRecorder::m_Q {255}
private

Definition at line 169 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_pip_mode

int NuppelVideoRecorder::m_pip_mode {0}
private

Definition at line 172 of file NuppelVideoRecorder.h.

Referenced by SetOption().

◆ m_compression

int NuppelVideoRecorder::m_compression {1}
private

Definition at line 173 of file NuppelVideoRecorder.h.

Referenced by WriteVideo().

◆ m_compressaudio

bool NuppelVideoRecorder::m_compressaudio {true}
private

Definition at line 174 of file NuppelVideoRecorder.h.

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

◆ m_audio_device

AudioInput* NuppelVideoRecorder::m_audio_device {nullptr}
private

Definition at line 175 of file NuppelVideoRecorder.h.

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

◆ m_audiobytes

unsigned long long NuppelVideoRecorder::m_audiobytes {0}
private

Definition at line 176 of file NuppelVideoRecorder.h.

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

◆ m_audio_channels

int NuppelVideoRecorder::m_audio_channels {2}
private

Definition at line 177 of file NuppelVideoRecorder.h.

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

◆ m_audio_bits

int NuppelVideoRecorder::m_audio_bits {16}
private

Definition at line 178 of file NuppelVideoRecorder.h.

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

◆ m_audio_bytes_per_sample

int NuppelVideoRecorder::m_audio_bytes_per_sample {m_audio_channels * m_audio_bits / 8}
private

Definition at line 179 of file NuppelVideoRecorder.h.

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

◆ m_audio_samplerate

int NuppelVideoRecorder::m_audio_samplerate {44100}
private

Definition at line 180 of file NuppelVideoRecorder.h.

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

◆ m_effectivedsp

int NuppelVideoRecorder::m_effectivedsp {0}
private

Definition at line 181 of file NuppelVideoRecorder.h.

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

◆ m_usebttv

int NuppelVideoRecorder::m_usebttv {1}
private

Definition at line 183 of file NuppelVideoRecorder.h.

Referenced by BufferIt().

◆ m_video_aspect

float NuppelVideoRecorder::m_video_aspect {1.33333F}
private

Definition at line 184 of file NuppelVideoRecorder.h.

Referenced by DoV4L2(), SetNewVideoParams(), and WriteFileHeader().

◆ m_transcoding

bool NuppelVideoRecorder::m_transcoding {false}
private

Definition at line 186 of file NuppelVideoRecorder.h.

Referenced by WriteVideo().

◆ m_mp3quality

int NuppelVideoRecorder::m_mp3quality {3}
private

Definition at line 188 of file NuppelVideoRecorder.h.

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

◆ m_mp3buf

char* NuppelVideoRecorder::m_mp3buf {nullptr}
private

Definition at line 189 of file NuppelVideoRecorder.h.

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

◆ m_mp3buf_size

int NuppelVideoRecorder::m_mp3buf_size {0}
private

Definition at line 190 of file NuppelVideoRecorder.h.

Referenced by AudioInit(), and WriteAudio().

◆ m_gf

lame_global_flags* NuppelVideoRecorder::m_gf {nullptr}
private

Definition at line 191 of file NuppelVideoRecorder.h.

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

◆ m_rtjc

RTjpeg* NuppelVideoRecorder::m_rtjc {nullptr}
private

Definition at line 193 of file NuppelVideoRecorder.h.

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

◆ m_out

lzo_byte NuppelVideoRecorder::m_out[OUT_LEN]
private

Definition at line 196 of file NuppelVideoRecorder.h.

Referenced by WriteVideo().

◆ videobuffer

vector<struct vidbuffertype *> NuppelVideoRecorder::videobuffer
private

◆ audiobuffer

vector<struct audbuffertype *> NuppelVideoRecorder::audiobuffer
private

◆ textbuffer

vector<struct txtbuffertype *> NuppelVideoRecorder::textbuffer
private

◆ m_act_video_encode

int NuppelVideoRecorder::m_act_video_encode {0}
private

Definition at line 205 of file NuppelVideoRecorder.h.

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

◆ m_act_video_buffer

int NuppelVideoRecorder::m_act_video_buffer {0}
private

Definition at line 206 of file NuppelVideoRecorder.h.

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

◆ m_act_audio_encode

int NuppelVideoRecorder::m_act_audio_encode {0}
private

Definition at line 208 of file NuppelVideoRecorder.h.

Referenced by doWriteThread(), and Reset().

◆ m_act_audio_buffer

int NuppelVideoRecorder::m_act_audio_buffer {0}
private

Definition at line 209 of file NuppelVideoRecorder.h.

Referenced by doAudioThread(), and Reset().

◆ m_act_audio_sample

long long NuppelVideoRecorder::m_act_audio_sample {0}
private

Definition at line 210 of file NuppelVideoRecorder.h.

Referenced by doAudioThread(), and Reset().

◆ m_act_text_encode

int NuppelVideoRecorder::m_act_text_encode {0}
private

Definition at line 212 of file NuppelVideoRecorder.h.

Referenced by doWriteThread(), and Reset().

◆ m_act_text_buffer

int NuppelVideoRecorder::m_act_text_buffer {0}
private

Definition at line 213 of file NuppelVideoRecorder.h.

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

◆ m_video_buffer_count

int NuppelVideoRecorder::m_video_buffer_count {0}
private

Definition at line 215 of file NuppelVideoRecorder.h.

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

◆ m_audio_buffer_count

int NuppelVideoRecorder::m_audio_buffer_count {0}
private

Definition at line 216 of file NuppelVideoRecorder.h.

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

◆ m_text_buffer_count

int NuppelVideoRecorder::m_text_buffer_count {0}
private

Definition at line 217 of file NuppelVideoRecorder.h.

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

◆ m_video_buffer_size

long NuppelVideoRecorder::m_video_buffer_size {0}
private

Definition at line 219 of file NuppelVideoRecorder.h.

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

◆ m_audio_buffer_size

long NuppelVideoRecorder::m_audio_buffer_size {0}
private

Definition at line 220 of file NuppelVideoRecorder.h.

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

◆ m_text_buffer_size

long NuppelVideoRecorder::m_text_buffer_size {0}
private

Definition at line 221 of file NuppelVideoRecorder.h.

Referenced by InitBuffers().

◆ m_stm

struct timeval NuppelVideoRecorder::m_stm
private

◆ m_tzone

struct timezone NuppelVideoRecorder::m_tzone
private

◆ m_write_thread

NVRWriteThread* NuppelVideoRecorder::m_write_thread {nullptr}
private

Definition at line 226 of file NuppelVideoRecorder.h.

Referenced by KillChildren(), and run().

◆ m_audio_thread

NVRAudioThread* NuppelVideoRecorder::m_audio_thread {nullptr}
private

Definition at line 227 of file NuppelVideoRecorder.h.

Referenced by KillChildren(), and run().

◆ m_recording

bool NuppelVideoRecorder::m_recording {false}
private

Definition at line 229 of file NuppelVideoRecorder.h.

Referenced by IsRecording(), and run().

◆ m_keyframedist

int NuppelVideoRecorder::m_keyframedist {KEYFRAMEDIST}
private

Definition at line 231 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 233 of file NuppelVideoRecorder.h.

Referenced by UpdateSeekTable().

◆ m_extendeddataOffset

long long NuppelVideoRecorder::m_extendeddataOffset {0}
private

Definition at line 235 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 239 of file NuppelVideoRecorder.h.

Referenced by Initialize().

◆ m_writepaused

bool NuppelVideoRecorder::m_writepaused {false}
private

Definition at line 240 of file NuppelVideoRecorder.h.

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

◆ m_audiopaused

bool NuppelVideoRecorder::m_audiopaused {false}
private

Definition at line 241 of file NuppelVideoRecorder.h.

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

◆ m_mainpaused

bool NuppelVideoRecorder::m_mainpaused {false}
private

Definition at line 242 of file NuppelVideoRecorder.h.

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

◆ m_framerate_multiplier

double NuppelVideoRecorder::m_framerate_multiplier {1.0}
private

Definition at line 244 of file NuppelVideoRecorder.h.

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

◆ m_height_multiplier

double NuppelVideoRecorder::m_height_multiplier {1.0}
private

◆ m_last_block

int NuppelVideoRecorder::m_last_block {0}
private

Definition at line 247 of file NuppelVideoRecorder.h.

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

◆ m_firsttc

int NuppelVideoRecorder::m_firsttc {0}
private

Definition at line 248 of file NuppelVideoRecorder.h.

Referenced by WriteAudio().

◆ m_oldtc

long int NuppelVideoRecorder::m_oldtc {0}
private

Definition at line 249 of file NuppelVideoRecorder.h.

Referenced by BufferIt().

◆ m_startnum

int NuppelVideoRecorder::m_startnum {0}
private

Definition at line 250 of file NuppelVideoRecorder.h.

Referenced by WriteVideo().

◆ m_frameofgop

int NuppelVideoRecorder::m_frameofgop {0}
private

Definition at line 251 of file NuppelVideoRecorder.h.

Referenced by WriteVideo().

◆ m_lasttimecode

int NuppelVideoRecorder::m_lasttimecode {0}
private

Definition at line 252 of file NuppelVideoRecorder.h.

Referenced by WriteVideo().

◆ m_audio_behind

int NuppelVideoRecorder::m_audio_behind {0}
private

Definition at line 253 of file NuppelVideoRecorder.h.

Referenced by WriteAudio().

◆ m_useavcodec

bool NuppelVideoRecorder::m_useavcodec {false}
private

Definition at line 255 of file NuppelVideoRecorder.h.

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

◆ m_mpa_vidcodec

AVCodec* NuppelVideoRecorder::m_mpa_vidcodec {nullptr}
private

◆ m_mpa_vidctx

AVCodecContext* NuppelVideoRecorder::m_mpa_vidctx {nullptr}
private

◆ m_targetbitrate

int NuppelVideoRecorder::m_targetbitrate {2200}
private

Definition at line 260 of file NuppelVideoRecorder.h.

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

◆ m_scalebitrate

int NuppelVideoRecorder::m_scalebitrate {1}
private

Definition at line 261 of file NuppelVideoRecorder.h.

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

◆ m_maxquality

int NuppelVideoRecorder::m_maxquality {2}
private

Definition at line 262 of file NuppelVideoRecorder.h.

Referenced by SetOption(), and SetupAVCodecVideo().

◆ m_minquality

int NuppelVideoRecorder::m_minquality {31}
private

Definition at line 263 of file NuppelVideoRecorder.h.

Referenced by SetOption(), and SetupAVCodecVideo().

◆ m_qualdiff

int NuppelVideoRecorder::m_qualdiff {3}
private

Definition at line 264 of file NuppelVideoRecorder.h.

Referenced by SetOption(), and SetupAVCodecVideo().

◆ m_mp4opts

int NuppelVideoRecorder::m_mp4opts {0}
private

Definition at line 265 of file NuppelVideoRecorder.h.

Referenced by SetOption(), and SetupAVCodecVideo().

◆ m_mb_decision

int NuppelVideoRecorder::m_mb_decision {FF_MB_DECISION_SIMPLE}
private

Definition at line 266 of file NuppelVideoRecorder.h.

Referenced by SetOption(), and SetupAVCodecVideo().

◆ m_encoding_thread_count

int NuppelVideoRecorder::m_encoding_thread_count {1}
private

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

Definition at line 268 of file NuppelVideoRecorder.h.

Referenced by SetOption(), and SetupAVCodecVideo().

◆ m_videoFilterList

QString NuppelVideoRecorder::m_videoFilterList
private

Definition at line 270 of file NuppelVideoRecorder.h.

Referenced by InitFilters(), and SetVideoFilters().

◆ m_videoFilters

FilterChain* NuppelVideoRecorder::m_videoFilters {nullptr}
private

Definition at line 271 of file NuppelVideoRecorder.h.

Referenced by InitFilters(), WriteHeader(), WriteVideo(), and ~NuppelVideoRecorder().

◆ m_filtMan

FilterManager* NuppelVideoRecorder::m_filtMan {nullptr}
private

Definition at line 272 of file NuppelVideoRecorder.h.

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

◆ m_inpixfmt

VideoFrameType NuppelVideoRecorder::m_inpixfmt {FMT_YV12}
private

Definition at line 274 of file NuppelVideoRecorder.h.

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

◆ m_picture_format

AVPixelFormat NuppelVideoRecorder::m_picture_format {AV_PIX_FMT_YUV420P}
private

Definition at line 275 of file NuppelVideoRecorder.h.

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

◆ m_v4l2_pixelformat

uint32_t NuppelVideoRecorder::m_v4l2_pixelformat {0}
private

Definition at line 276 of file NuppelVideoRecorder.h.

Referenced by DoV4L2(), and SetFormatV4L2().

◆ m_w_out

int NuppelVideoRecorder::m_w_out {0}
private

◆ m_h_out

int NuppelVideoRecorder::m_h_out {0}
private

◆ m_hardware_encode

bool NuppelVideoRecorder::m_hardware_encode {false}
private

Definition at line 280 of file NuppelVideoRecorder.h.

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

◆ m_hmjpg_quality

int NuppelVideoRecorder::m_hmjpg_quality {80}
private

Definition at line 281 of file NuppelVideoRecorder.h.

Referenced by DoMJPEG(), and SetOption().

◆ m_hmjpg_hdecimation

int NuppelVideoRecorder::m_hmjpg_hdecimation {2}
private

Definition at line 282 of file NuppelVideoRecorder.h.

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

◆ m_hmjpg_vdecimation

int NuppelVideoRecorder::m_hmjpg_vdecimation {2}
private

Definition at line 283 of file NuppelVideoRecorder.h.

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

◆ m_hmjpg_maxw

int NuppelVideoRecorder::m_hmjpg_maxw {640}
private

Definition at line 284 of file NuppelVideoRecorder.h.

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

◆ m_cleartimeonpause

bool NuppelVideoRecorder::m_cleartimeonpause {false}
private

Definition at line 286 of file NuppelVideoRecorder.h.

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

◆ m_usingv4l2

bool NuppelVideoRecorder::m_usingv4l2 {false}
private

Definition at line 288 of file NuppelVideoRecorder.h.

Referenced by ProbeV4L2(), and run().

◆ m_channelfd

int NuppelVideoRecorder::m_channelfd {-1}
private

Definition at line 289 of file NuppelVideoRecorder.h.

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

◆ m_channelObj

ChannelBase* NuppelVideoRecorder::m_channelObj {nullptr}
private

Definition at line 291 of file NuppelVideoRecorder.h.

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

◆ m_skip_btaudio

bool NuppelVideoRecorder::m_skip_btaudio {false}
private

Definition at line 293 of file NuppelVideoRecorder.h.

Referenced by DoV4L1(), and SetOption().

◆ m_correct_bttv

bool NuppelVideoRecorder::m_correct_bttv {false}
private

Definition at line 295 of file NuppelVideoRecorder.h.

Referenced by InitFilters(), and ProbeV4L2().

◆ m_volume

int NuppelVideoRecorder::m_volume {100}
private

Definition at line 297 of file NuppelVideoRecorder.h.

Referenced by DoV4L1(), and SetOption().

◆ m_ccd

CC608Decoder* NuppelVideoRecorder::m_ccd {nullptr}
private

Definition at line 299 of file NuppelVideoRecorder.h.

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

◆ m_go7007

bool NuppelVideoRecorder::m_go7007 {false}
private

Definition at line 301 of file NuppelVideoRecorder.h.

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

◆ m_resetcapture

bool NuppelVideoRecorder::m_resetcapture {false}
private

Definition at line 302 of file NuppelVideoRecorder.h.

Referenced by DoV4L2(), and ResetForNewFile().


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