6 #if QT_VERSION < QT_VERSION_CHECK(5,14,0)
9 #include <QRecursiveMutex>
15 #include "libavcodec/avcodec.h"
17 #include "libavutil/buffer.h"
27 struct AVCodecContext;
34 AVCodecContext* GetCodecContext(
const AVStream* Stream,
35 const AVCodec* Codec =
nullptr,
36 bool NullCodec =
false);
37 AVCodecContext* FindCodecContext(
const AVStream* Stream);
38 void FreeCodecContext(
const AVStream* Stream);
39 void FreeAllContexts();
43 #if QT_VERSION < QT_VERSION_CHECK(5,14,0)
44 QMutex m_mapLock { QMutex::Recursive };
56 AVPixelFormat Fmt = AV_PIX_FMT_YUV420P);
57 int Copy(
AVFrame* To, AVPixelFormat ToFmt,
const AVFrame* From, AVPixelFormat FromFmt,
58 int Width,
int Height);
62 int SizeData(
int Width,
int Height, AVPixelFormat Fmt);
64 AVPixelFormat m_format { AV_PIX_FMT_NONE };
65 SwsContext* m_swsctx {
nullptr };
84 char m_codecType {
' '};
86 int64_t m_duration {0};
90 float m_SampleAspectRatio {0.0};
95 QString m_fieldOrder {
"UN"};
96 float m_frameRate {0.0};
97 float m_avgFrameRate {0.0};
130 LOG(VB_GENERAL, LOG_ERR,
"av_buffer_ref() failed to allocate memory.");
137 av_buffer_unref(&m_buffer);
143 const uint8_t*
data() {
return m_buffer->data; }
144 size_t size() {
return m_buffer->size; }
146 AVBufferRef* m_buffer {
nullptr};