5#include <QtCore/qloggingcategory.h>
22 m_packetQueue.push(std::move(packet));
37 qCDebug(qLcFFmpegMuxer) <<
"Muxer::init started thread.";
42 while (!m_packetQueue.empty())
48 return !m_packetQueue.empty();
53 auto packet = takePacket();
58 av_interleaved_write_frame(m_encoder->
avFormatContext(), packet.release());
QMutexLocker< QMutex > lockLoopData() const
Locks the loop data mutex.
void dataReady()
Wake thread from sleep and process data until hasData() returns false.
void cleanup() override
Called on this thread before thread exits.
Muxer(RecordingEngine *encoder)
void init() override
Called on this thread when thread starts.
void processOne() override
Process one work item.
void addPacket(AVPacketUPtr packet)
bool hasData() const override
Must return true when data is available for processing.
AVFormatContext * avFormatContext()
Q_WEAK_OVERLOAD void setObjectName(const QString &name)
Sets the object's name to name.
T dequeueIfPossible(std::queue< T > &queue)
std::unique_ptr< AVPacket, AVDeleter< decltype(&av_packet_free), &av_packet_free > > AVPacketUPtr
Combined button and popup list for selecting options.
#define Q_LOGGING_CATEGORY(name,...)
#define qCDebug(category,...)
QLatin1StringView QLatin1String