Use software decoder by default
This commit is contained in:
@@ -148,6 +148,7 @@ public:
|
||||
// Image quality mode: 0=fast (OpenCV BT.601, ~2ms), 1=quality (sws BT.709+range, ~12ms)
|
||||
virtual void setImageQuality(int mode) { m_nImageQuality = mode; }
|
||||
void setTargetFPS(double intervalMs); // Set minimum interval between processed frames in ms (0 = no limit, 100 = ~10 FPS)
|
||||
double getLastFrameAgeMs(); // Milliseconds since last frame arrived from decoder (0 if no frame yet)
|
||||
virtual void setRtpMulticast(BOOL flag) {}
|
||||
virtual void setRtpOverUdp(BOOL flag) {}
|
||||
|
||||
@@ -223,6 +224,7 @@ protected:
|
||||
|
||||
cv::Mat avframeAnyToCvmat(const AVFrame* frame);
|
||||
cv::Mat avframeNV12ToCvMat(const AVFrame* frame);
|
||||
cv::Mat avframeYUV420PToCvMat(const AVFrame* frame); // YUV420P/YUVJ420P → BGR (OpenCV, no sws_scale)
|
||||
cv::Mat avframeYUVJ420PToCvmat(const AVFrame* frame);
|
||||
cv::Mat avframeToCVMat(const AVFrame* frame);
|
||||
|
||||
@@ -273,6 +275,12 @@ protected:
|
||||
std::chrono::steady_clock::time_point m_lastProcessedTime; // timestamp of last processed frame
|
||||
bool m_targetFPSInitialized = false; // first-frame flag
|
||||
|
||||
// Wall-clock timestamp of last frame received from the decoder (NOT from getImage).
|
||||
// Updated in onVideoFrame() for EVERY decoded frame, even rate-limited ones.
|
||||
// Used by LabVIEW to detect truly stale cameras vs rate-limited ones.
|
||||
std::chrono::steady_clock::time_point m_lastDecoderFrameTime;
|
||||
bool m_lastDecoderFrameTimeSet = false;
|
||||
|
||||
BOOL m_bPlaying;
|
||||
BOOL m_bPaused;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user