1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
diff --git a/libAvKys/Plugins/MultiSink/src/ffmpeg/src/abstractstream.cpp b/libAvKys/Plugins/MultiSink/src/ffmpeg/src/abstractstream.cpp
index f550fb6..d6f4b98 100644
--- a/libAvKys/Plugins/MultiSink/src/ffmpeg/src/abstractstream.cpp
+++ b/libAvKys/Plugins/MultiSink/src/ffmpeg/src/abstractstream.cpp
@@ -62,7 +62,7 @@ AbstractStream::AbstractStream(const AVFormatContext *formatContext,
// Some formats want stream headers to be separate.
if (formatContext->oformat->flags & AVFMT_GLOBALHEADER)
- this->m_codecContext->flags |= CODEC_FLAG_GLOBAL_HEADER;
+ this->m_codecContext->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
this->m_codecContext->strict_std_compliance = CODEC_COMPLIANCE;
diff --git a/libAvKys/Plugins/MultiSink/src/ffmpeg/src/audiostream.cpp b/libAvKys/Plugins/MultiSink/src/ffmpeg/src/audiostream.cpp
index f4d10ba..3fba003 100644
--- a/libAvKys/Plugins/MultiSink/src/ffmpeg/src/audiostream.cpp
+++ b/libAvKys/Plugins/MultiSink/src/ffmpeg/src/audiostream.cpp
@@ -267,7 +267,7 @@ void AudioStream::convertPacket(const AkPacket &packet)
this->deleteFrame(&this->m_frame);
this->m_frame = oFrame;
- if (codecContext->codec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE
+ if (codecContext->codec->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE
|| oFrame->nb_samples >= codecContext->frame_size) {
this->m_frameReady.wakeAll();
}
@@ -280,7 +280,7 @@ int AudioStream::encodeData(AVFrame *frame)
auto codecContext = this->codecContext();
if (!frame
- && codecContext->codec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE)
+ && codecContext->codec->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE)
return AVERROR_EOF;
if (frame) {
@@ -366,7 +366,7 @@ AVFrame *AudioStream::dequeueFrame()
this->m_frameMutex.lock();
if (!this->m_frame
- || (!(codecContext->codec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE)
+ || (!(codecContext->codec->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE)
&& this->m_frame->nb_samples < codecContext->frame_size)) {
if (!this->m_frameReady.wait(&this->m_frameMutex, THREAD_WAIT_LIMIT)) {
this->m_frameMutex.unlock();
@@ -377,7 +377,7 @@ AVFrame *AudioStream::dequeueFrame()
AVFrame *oFrame = nullptr;
- if (codecContext->codec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE
+ if (codecContext->codec->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE
|| this->m_frame->nb_samples == codecContext->frame_size) {
oFrame = this->m_frame;
this->m_frame = nullptr;
diff --git a/libAvKys/Plugins/MultiSink/src/ffmpeg/src/mediawriterffmpeg.cpp b/libAvKys/Plugins/MultiSink/src/ffmpeg/src/mediawriterffmpeg.cpp
index 224ff5c..db09b8c 100644
--- a/libAvKys/Plugins/MultiSink/src/ffmpeg/src/mediawriterffmpeg.cpp
+++ b/libAvKys/Plugins/MultiSink/src/ffmpeg/src/mediawriterffmpeg.cpp
@@ -251,7 +251,7 @@ class MediaWriterFFmpegGlobal
AVCodec *codec = nullptr;
while ((codec = av_codec_next(codec))) {
- if (codec->capabilities & CODEC_CAP_EXPERIMENTAL
+ if (codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL
&& CODEC_COMPLIANCE > FF_COMPLIANCE_EXPERIMENTAL)
continue;
diff --git a/libAvKys/Plugins/MultiSink/src/ffmpeg/src/videostream.cpp b/libAvKys/Plugins/MultiSink/src/ffmpeg/src/videostream.cpp
index b0187fd..83fffc2 100644
--- a/libAvKys/Plugins/MultiSink/src/ffmpeg/src/videostream.cpp
+++ b/libAvKys/Plugins/MultiSink/src/ffmpeg/src/videostream.cpp
@@ -273,8 +273,10 @@ int VideoStream::encodeData(AVFrame *frame)
{
auto formatContext = this->formatContext();
+#ifdef AVFMT_RAWPICTURE
if (!frame && formatContext->oformat->flags & AVFMT_RAWPICTURE)
return AVERROR_EOF;
+#endif
auto codecContext = this->codecContext();
@@ -300,6 +302,7 @@ int VideoStream::encodeData(AVFrame *frame)
auto stream = this->stream();
+#ifdef AVFMT_RAWPICTURE
if (formatContext->oformat->flags & AVFMT_RAWPICTURE) {
// Raw video case - directly store the picture in the packet
AVPacket pkt;
@@ -315,6 +318,7 @@ int VideoStream::encodeData(AVFrame *frame)
return 0;
}
+#endif
// encode the image
#ifdef HAVE_SENDRECV
diff --git a/libAvKys/Plugins/MultiSrc/src/ffmpeg/src/abstractstream.cpp b/libAvKys/Plugins/MultiSrc/src/ffmpeg/src/abstractstream.cpp
index d67a060..76f2989 100644
--- a/libAvKys/Plugins/MultiSrc/src/ffmpeg/src/abstractstream.cpp
+++ b/libAvKys/Plugins/MultiSrc/src/ffmpeg/src/abstractstream.cpp
@@ -96,8 +96,10 @@ AbstractStream::AbstractStream(const AVFormatContext *formatContext,
this->m_codecContext->idct_algo = FF_IDCT_AUTO;
this->m_codecContext->error_concealment = FF_EC_GUESS_MVS | FF_EC_DEBLOCK;
+#ifdef CODEC_FLAG_EMU_EDGE
if (this->m_codec->capabilities & CODEC_CAP_DR1)
this->m_codecContext->flags |= CODEC_FLAG_EMU_EDGE;
+#endif
av_dict_set(&this->m_codecOptions, "refcounted_frames", "0", 0);
}
diff --git a/libAvKys/Plugins/VideoCapture/src/ffmpeg/src/convertvideoffmpeg.cpp b/libAvKys/Plugins/VideoCapture/src/ffmpeg/src/convertvideoffmpeg.cpp
index 30bab74..c129a6e 100644
--- a/libAvKys/Plugins/VideoCapture/src/ffmpeg/src/convertvideoffmpeg.cpp
+++ b/libAvKys/Plugins/VideoCapture/src/ffmpeg/src/convertvideoffmpeg.cpp
@@ -219,11 +219,13 @@ bool ConvertVideoFFmpeg::init(const AkCaps &caps)
if (!this->m_codecContext)
return false;
- if (codec->capabilities & CODEC_CAP_TRUNCATED)
- this->m_codecContext->flags |= CODEC_FLAG_TRUNCATED;
+ if (codec->capabilities & AV_CODEC_CAP_TRUNCATED)
+ this->m_codecContext->flags |= AV_CODEC_FLAG_TRUNCATED;
+#ifdef CODEC_FLAG_EMU_EDGE
if (codec->capabilities & CODEC_CAP_DR1)
this->m_codecContext->flags |= CODEC_FLAG_EMU_EDGE;
+#endif
this->m_codecContext->pix_fmt = rawToFF->value(fourcc, AV_PIX_FMT_NONE);
this->m_codecContext->width = caps.property("width").toInt();
|