20 if (prev && cleanPrevSink)
30 if (!
frame.isValid()) {
43 if (
frame.codec()->hwAccel() && !
frame.avFrame()->hw_frames_ctx) {
45 AVFrame *avframe =
frame.avFrame();
48 { avframe->width, avframe->height });
55 auto buffer = std::make_unique<QFFmpegVideoBuffer>(
frame.takeAVFrame());
73#include "moc_qffmpegvideorenderer_p.cpp"
AVHWFramesContext * hwFramesContext() const
AVBufferRef * hwFramesContextAsBuffer() const
void createFramesContext(AVPixelFormat swFormat, const QSize &size)
void setOutputInternal(QPointer< Output > &actual, Output *desired, ChangeHandler &&changeHandler)
RenderingResult renderInternal(Frame frame) override
VideoRenderer(const TimeController &tc, QVideoSink *sink)
void setOutput(QVideoSink *sink, bool cleanPrevSink=false)
The QVideoFrame class represents a frame of video data.
void setEndTime(qint64 time)
Sets the presentation time (in microseconds) when a frame should stop being displayed.
void setStartTime(qint64 time)
Sets the presentation time (in microseconds) when the frame should initially be displayed.
The QVideoSink class represents a generic sink for video data.
void setVideoFrame(const QVideoFrame &frame)
Sets the current video frame.
Combined button and popup list for selecting options.
GLint GLsizei GLsizei GLenum format
GLsizei GLenum GLboolean sink