summarylogtreecommitdiffstats
path: root/0001-Adapt-to-FFmpeg-4.0-API.patch
blob: 62dc9a7c2bd4bc0a913eb05237d0de88687b8b46 (plain)
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();