35 VideoEncoder(
RecordingEngine &recordingEngine,
const QMediaEncoderSettings &settings,
36 const QVideoFrameFormat &format, std::optional<AVPixelFormat> hwFormat);
39 void addFrame(
const QVideoFrame &frame);
46 void retrievePackets();
48 [[nodiscard]]
bool tryPushToInputQueue(
const QVideoFrame &frame);
49 void saturateEncoderQueue();
58 std::pair<qint64, qint64> frameTimeStamps(
const QVideoFrame &frame)
const;
60 QMediaEncoderSettings m_settings;
61 VideoFrameEncoder::SourceParams m_sourceParams;
66 bool restartTimeBase =
false;
68 std::queue<InputFrame> m_inputQueue;
71 const size_t m_maxQueueSize = 9;
72 std::queue<FrameInfo> m_encoderQueue;
74 VideoFrameEncoderUPtr m_frameEncoder;
75 qint64 m_baseTime = 0;
76 bool m_shouldAdjustTimeBaseForNextFrame =
true;
77 qint64 m_lastFrameTime = 0;
79 std::optional<qreal> m_fixedSourceFrameRate;
80 FrameRateAdapter m_frameRateAdapter;