6 #include <QRecursiveMutex>
11 #include "libavcodec/avcodec.h"
13 #include "libavutil/buffer.h"
23 struct AVCodecContext;
30 AVCodecContext* GetCodecContext(
const AVStream* Stream,
31 const AVCodec* Codec =
nullptr,
32 bool NullCodec =
false);
33 AVCodecContext* FindCodecContext(
const AVStream* Stream);
34 void FreeCodecContext(
const AVStream* Stream);
35 void FreeAllContexts();
48 AVPixelFormat Fmt = AV_PIX_FMT_YUV420P);
49 int Copy(
AVFrame* To, AVPixelFormat ToFmt,
const AVFrame* From, AVPixelFormat FromFmt,
50 int Width,
int Height);
54 int SizeData(
int Width,
int Height, AVPixelFormat Fmt);
56 AVPixelFormat m_format { AV_PIX_FMT_NONE };
57 SwsContext* m_swsctx {
nullptr };
76 char m_codecType {
' '};
78 int64_t m_duration {0};
82 float m_SampleAspectRatio {0.0};
87 QString m_fieldOrder {
"UN"};
88 float m_frameRate {0.0};
89 float m_avgFrameRate {0.0};
122 LOG(VB_GENERAL, LOG_ERR,
"av_buffer_ref() failed to allocate memory.");
129 av_buffer_unref(&m_buffer);
135 const uint8_t*
data() {
return m_buffer->data; }
136 size_t size() {
return m_buffer->size; }
138 AVBufferRef* m_buffer {
nullptr};