Lines 1-343
Link Here
|
1 |
https://sourceforge.net/p/lives/code/2742/ |
|
|
2 |
https://sourceforge.net/p/lives/code/2745/ |
3 |
|
4 |
--- configure.orig 2017-06-29 01:44:43 UTC |
5 |
+++ configure |
6 |
@@ -787,6 +787,8 @@ HAVE_AVFORMAT_NEW_STREAM_FALSE |
7 |
HAVE_AVFORMAT_NEW_STREAM_TRUE |
8 |
HAVE_AV_CODEC_SET_PKT_TIMEBASE_FALSE |
9 |
HAVE_AV_CODEC_SET_PKT_TIMEBASE_TRUE |
10 |
+HAVE_AVCODEC_GET_NAME_FALSE |
11 |
+HAVE_AVCODEC_GET_NAME_TRUE |
12 |
HAVE_AVCODEC_ALLOC_CONTEXT3_FALSE |
13 |
HAVE_AVCODEC_ALLOC_CONTEXT3_TRUE |
14 |
HAVE_AVCODEC_OPEN2_FALSE |
15 |
@@ -26007,6 +26009,7 @@ fi |
16 |
|
17 |
HAVE_AVCODEC_OPEN2=false |
18 |
HAVE_AVCODEC_ALLOC_CONTEXT3=false |
19 |
+HAVE_AVCODEC_GET_NAME=false |
20 |
HAVE_AV_CODEC_SET_PKT_TIMEBASE=false |
21 |
HAVE_AVFORMAT_NEW_STREAM=false |
22 |
HAVE_AVFORMAT_FIND_STREAM_INFO=false |
23 |
@@ -26103,6 +26106,48 @@ else |
24 |
HAVE_AVCODEC_ALLOC_COBTEXT3=false |
25 |
fi |
26 |
|
27 |
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for avcodec_get_name in -lavcodec" >&5 |
28 |
+$as_echo_n "checking for avcodec_get_name in -lavcodec... " >&6; } |
29 |
+if ${ac_cv_lib_avcodec_avcodec_get_name+:} false; then : |
30 |
+ $as_echo_n "(cached) " >&6 |
31 |
+else |
32 |
+ ac_check_lib_save_LIBS=$LIBS |
33 |
+LIBS="-lavcodec $LIBS" |
34 |
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
35 |
+/* end confdefs.h. */ |
36 |
+ |
37 |
+/* Override any GCC internal prototype to avoid an error. |
38 |
+ Use char because int might match the return type of a GCC |
39 |
+ builtin and then its argument prototype would still apply. */ |
40 |
+#ifdef __cplusplus |
41 |
+extern "C" |
42 |
+#endif |
43 |
+char avcodec_get_name (); |
44 |
+int |
45 |
+main () |
46 |
+{ |
47 |
+return avcodec_get_name (); |
48 |
+ ; |
49 |
+ return 0; |
50 |
+} |
51 |
+_ACEOF |
52 |
+if ac_fn_c_try_link "$LINENO"; then : |
53 |
+ ac_cv_lib_avcodec_avcodec_get_name=yes |
54 |
+else |
55 |
+ ac_cv_lib_avcodec_avcodec_get_name=no |
56 |
+fi |
57 |
+rm -f core conftest.err conftest.$ac_objext \ |
58 |
+ conftest$ac_exeext conftest.$ac_ext |
59 |
+LIBS=$ac_check_lib_save_LIBS |
60 |
+fi |
61 |
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_avcodec_avcodec_get_name" >&5 |
62 |
+$as_echo "$ac_cv_lib_avcodec_avcodec_get_name" >&6; } |
63 |
+if test "x$ac_cv_lib_avcodec_avcodec_get_name" = xyes; then : |
64 |
+ HAVE_AVCODEC_GET_NAME=true |
65 |
+else |
66 |
+ HAVE_AVCODEC_GET_NAME=false |
67 |
+fi |
68 |
+ |
69 |
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for av_codec_set_pkt_timebase in -lavcodec" >&5 |
70 |
$as_echo_n "checking for av_codec_set_pkt_timebase in -lavcodec... " >&6; } |
71 |
if ${ac_cv_lib_avcodec_av_codec_set_pkt_timebase+:} false; then : |
72 |
@@ -26525,6 +26570,14 @@ else |
73 |
HAVE_AVCODEC_ALLOC_CONTEXT3_FALSE= |
74 |
fi |
75 |
|
76 |
+ if $HAVE_AVCODEC_GET_NAME; then |
77 |
+ HAVE_AVCODEC_GET_NAME_TRUE= |
78 |
+ HAVE_AVCODEC_GET_NAME_FALSE='#' |
79 |
+else |
80 |
+ HAVE_AVCODEC_GET_NAME_TRUE='#' |
81 |
+ HAVE_AVCODEC_GET_NAME_FALSE= |
82 |
+fi |
83 |
+ |
84 |
if $HAVE_AV_CODEC_SET_PKT_TIMEBASE; then |
85 |
HAVE_AV_CODEC_SET_PKT_TIMEBASE_TRUE= |
86 |
HAVE_AV_CODEC_SET_PKT_TIMEBASE_FALSE='#' |
87 |
@@ -29545,6 +29598,10 @@ Usually this means the macro was only invoked conditio |
88 |
fi |
89 |
if test -z "${HAVE_AVCODEC_ALLOC_CONTEXT3_TRUE}" && test -z "${HAVE_AVCODEC_ALLOC_CONTEXT3_FALSE}"; then |
90 |
as_fn_error $? "conditional \"HAVE_AVCODEC_ALLOC_CONTEXT3\" was never defined. |
91 |
+Usually this means the macro was only invoked conditionally." "$LINENO" 5 |
92 |
+fi |
93 |
+if test -z "${HAVE_AVCODEC_GET_NAME_TRUE}" && test -z "${HAVE_AVCODEC_GET_NAME_FALSE}"; then |
94 |
+ as_fn_error $? "conditional \"HAVE_AVCODEC_GET_NAME\" was never defined. |
95 |
Usually this means the macro was only invoked conditionally." "$LINENO" 5 |
96 |
fi |
97 |
if test -z "${HAVE_AV_CODEC_SET_PKT_TIMEBASE_TRUE}" && test -z "${HAVE_AV_CODEC_SET_PKT_TIMEBASE_FALSE}"; then |
98 |
--- lives-plugins/plugins/decoders/asf_decoder.c.orig 2017-05-24 02:07:10 UTC |
99 |
+++ lives-plugins/plugins/decoders/asf_decoder.c |
100 |
@@ -439,7 +439,7 @@ static int get_next_video_packet(const lives_clip_data |
101 |
|
102 |
|
103 |
if (tdts == -1) { |
104 |
- priv->avpkt.size = priv->def_packet_size + FF_INPUT_BUFFER_PADDING_SIZE; |
105 |
+ priv->avpkt.size = priv->def_packet_size + AV_INPUT_BUFFER_PADDING_SIZE; |
106 |
priv->avpkt.data = malloc(priv->avpkt.size); |
107 |
memset(priv->avpkt.data, 0, priv->avpkt.size); |
108 |
} |
109 |
@@ -714,10 +714,10 @@ static int get_next_video_packet(const lives_clip_data |
110 |
fprintf(stderr, "asf_decoder: buffer overflow reading vid packet (%d + %d > %d),\n increasing buffer size\n", |
111 |
asf->packet_frag_offset, asf->packet_frag_size, priv->avpkt.size); |
112 |
|
113 |
- priv->avpkt.data = realloc(priv->avpkt.data, priv->def_packet_size * 2 + FF_INPUT_BUFFER_PADDING_SIZE); |
114 |
+ priv->avpkt.data = realloc(priv->avpkt.data, priv->def_packet_size * 2 + AV_INPUT_BUFFER_PADDING_SIZE); |
115 |
memset(priv->avpkt.data + priv->avpkt.size, 0, priv->def_packet_size); |
116 |
priv->def_packet_size *= 2; |
117 |
- priv->avpkt.size = priv->def_packet_size + FF_INPUT_BUFFER_PADDING_SIZE; |
118 |
+ priv->avpkt.size = priv->def_packet_size + AV_INPUT_BUFFER_PADDING_SIZE; |
119 |
} |
120 |
|
121 |
if (read(priv->fd, priv->avpkt.data + asf->packet_frag_offset, asf->packet_frag_size) |
122 |
@@ -1436,8 +1436,8 @@ seek_skip: |
123 |
if (!got_vidst) { |
124 |
priv->st->codec->extradata_size = size - 40; |
125 |
|
126 |
- priv->st->codec->extradata = malloc(priv->st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); |
127 |
- memset(priv->st->codec->extradata, 0, priv->st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); |
128 |
+ priv->st->codec->extradata = malloc(priv->st->codec->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE); |
129 |
+ memset(priv->st->codec->extradata, 0, priv->st->codec->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE); |
130 |
|
131 |
if (read(priv->fd, priv->st->codec->extradata, |
132 |
priv->st->codec->extradata_size) < priv->st->codec->extradata_size) { |
133 |
--- lives-plugins/plugins/decoders/avformat_decoder.c.orig 2017-05-12 12:35:30 UTC |
134 |
+++ lives-plugins/plugins/decoders/avformat_decoder.c |
135 |
@@ -368,8 +368,12 @@ skip_init: |
136 |
|
137 |
get_samps_and_signed(cc->sample_fmt, &cdata->asamps, &cdata->asigned); |
138 |
|
139 |
- sprintf(cdata->audio_name, "%s", cc->codec_name); |
140 |
- |
141 |
+#ifdef HAVE_AVCODEC_GET_NAME |
142 |
+ sprintf(cdata->audio_name, "%s", avcodec_get_name(cc->codec_id)); |
143 |
+#else |
144 |
+ sprintf(cdata->audio_name, "%s", cc->codec->name); |
145 |
+#endif |
146 |
+ |
147 |
priv->astream = i; |
148 |
break; |
149 |
|
150 |
@@ -408,7 +412,11 @@ skip_init: |
151 |
return FALSE; |
152 |
} |
153 |
|
154 |
- sprintf(cdata->video_name, "%s", cc->codec_name); |
155 |
+#ifdef HAVE_AVCODEC_GET_NAME |
156 |
+ sprintf(cdata->video_name, "%s", avcodec_get_name(cc->codec_id)); |
157 |
+#else |
158 |
+ sprintf(cdata->video_name, "%s", cc->codec->name); |
159 |
+#endif |
160 |
|
161 |
cdata->par = cc->sample_aspect_ratio.num / cc->sample_aspect_ratio.den; |
162 |
if (cdata->par == 0) cdata->par = 1; |
163 |
--- lives-plugins/plugins/decoders/flv_decoder.c.orig 2017-05-11 22:46:57 UTC |
164 |
+++ lives-plugins/plugins/decoders/flv_decoder.c |
165 |
@@ -465,7 +465,7 @@ static int flv_get_extradata(lives_clip_data_t *cdata, |
166 |
lives_flv_priv_t *priv = cdata->priv; |
167 |
|
168 |
av_free(priv->ctx->extradata); |
169 |
- priv->ctx->extradata = av_mallocz(size + FF_INPUT_BUFFER_PADDING_SIZE); |
170 |
+ priv->ctx->extradata = av_mallocz(size + AV_INPUT_BUFFER_PADDING_SIZE); |
171 |
if (priv->ctx->extradata == NULL) return AVERROR(ENOMEM); |
172 |
priv->ctx->extradata_size = size; |
173 |
dummy = read(priv->fd, priv->ctx->extradata, priv->ctx->extradata_size); |
174 |
@@ -1143,12 +1143,12 @@ static boolean attach_stream(lives_clip_data_t *cdata, |
175 |
|
176 |
if (isclone) return TRUE; |
177 |
|
178 |
- pack.data = malloc(pack.size - priv->pack_offset + FF_INPUT_BUFFER_PADDING_SIZE); |
179 |
+ pack.data = malloc(pack.size - priv->pack_offset + AV_INPUT_BUFFER_PADDING_SIZE); |
180 |
|
181 |
av_init_packet(&priv->avpkt); |
182 |
|
183 |
priv->avpkt.size = read(priv->fd, pack.data, pack.size - priv->pack_offset); |
184 |
- memset(pack.data + priv->avpkt.size, 0, FF_INPUT_BUFFER_PADDING_SIZE); |
185 |
+ memset(pack.data + priv->avpkt.size, 0, AV_INPUT_BUFFER_PADDING_SIZE); |
186 |
priv->input_position += pack.size + 4; |
187 |
priv->avpkt.data = pack.data; |
188 |
priv->avpkt.dts = priv->avpkt.pts = pack.dts; |
189 |
@@ -1206,10 +1206,10 @@ static boolean attach_stream(lives_clip_data_t *cdata, |
190 |
continue; |
191 |
} |
192 |
|
193 |
- pack.data = malloc(pack.size - priv->pack_offset + FF_INPUT_BUFFER_PADDING_SIZE); |
194 |
+ pack.data = malloc(pack.size - priv->pack_offset + AV_INPUT_BUFFER_PADDING_SIZE); |
195 |
if (priv->pack_offset != 5) lseek(priv->fd, priv->pack_offset - 5, SEEK_CUR); |
196 |
priv->avpkt.size = read(priv->fd, pack.data, pack.size - priv->pack_offset); |
197 |
- memset(pack.data + priv->avpkt.size, 0, FF_INPUT_BUFFER_PADDING_SIZE); |
198 |
+ memset(pack.data + priv->avpkt.size, 0, AV_INPUT_BUFFER_PADDING_SIZE); |
199 |
priv->avpkt.data = pack.data; |
200 |
break; |
201 |
} |
202 |
@@ -1709,12 +1709,12 @@ boolean get_frame(const lives_clip_data_t *cdata, int6 |
203 |
continue; |
204 |
} |
205 |
|
206 |
- pack.data = malloc(pack.size - priv->pack_offset + FF_INPUT_BUFFER_PADDING_SIZE); |
207 |
+ pack.data = malloc(pack.size - priv->pack_offset + AV_INPUT_BUFFER_PADDING_SIZE); |
208 |
|
209 |
if (priv->pack_offset != 1) lseek(priv->fd, priv->pack_offset - 1, SEEK_CUR); |
210 |
|
211 |
priv->avpkt.size = read(priv->fd, pack.data, pack.size - priv->pack_offset); |
212 |
- memset(pack.data + priv->avpkt.size, 0, FF_INPUT_BUFFER_PADDING_SIZE); |
213 |
+ memset(pack.data + priv->avpkt.size, 0, AV_INPUT_BUFFER_PADDING_SIZE); |
214 |
priv->avpkt.data = pack.data; |
215 |
priv->avpkt.dts = priv->avpkt.pts = pack.dts; |
216 |
|
217 |
--- lives-plugins/plugins/decoders/libav_helper.h.orig 2017-05-12 05:48:30 UTC |
218 |
+++ lives-plugins/plugins/decoders/libav_helper.h |
219 |
@@ -117,6 +117,21 @@ static UNUSED void av_set_pts_info(AVStream *s, int pt |
220 |
#define av_get_bits_per_sample(a) (av_get_bytes_per_sample(a) * 8) |
221 |
#endif |
222 |
|
223 |
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(56, 56, 0) |
224 |
+#ifndef FF_INPUT_BUFFER_PADDING_SIZE |
225 |
+#define AV_INPUT_BUFFER_PADDING_SIZE FF_INPUT_BUFFER_MIN_SIZE |
226 |
+#else |
227 |
+#define AV_INPUT_BUFFER_PADDING_SIZE FF_INPUT_BUFFER_PADDING_SIZE |
228 |
+#endif |
229 |
+#else |
230 |
+#ifndef AV_INPUT_BUFFER_PADDING_SIZE |
231 |
+#define AV_INPUT_BUFFER_PADDING_SIZE AV_INPUT_BUFFER_MIN_SIZE |
232 |
+#endif |
233 |
+#endif |
234 |
+ |
235 |
+#ifndef AV_CODEC_FLAG_GLOBAL_HEADER |
236 |
+#define AV_CODEC_FLAG_GLOBAL_HEADER CODEC_FLAG_GLOBAL_HEADER |
237 |
+#endif |
238 |
|
239 |
|
240 |
#endif // HAVE_LIBAV_LIBS |
241 |
--- lives-plugins/plugins/decoders/mkv_decoder.c.orig 2017-05-12 08:39:45 UTC |
242 |
+++ lives-plugins/plugins/decoders/mkv_decoder.c |
243 |
@@ -883,7 +883,7 @@ static void matroska_fix_ass_packet(MatroskaDemuxConte |
244 |
es = ec / 100; |
245 |
ec -= 100 * es; |
246 |
*ptr++ = '\0'; |
247 |
- len = 50 + end - ptr + FF_INPUT_BUFFER_PADDING_SIZE; |
248 |
+ len = 50 + end - ptr + AV_INPUT_BUFFER_PADDING_SIZE; |
249 |
if (!(line = malloc(len))) |
250 |
return; |
251 |
snprintf(line, len, "Dialogue: %s,%d:%02d:%02d.%02d,%d:%02d:%02d.%02d,%s\r\n", |
252 |
@@ -1544,7 +1544,7 @@ static int lives_mkv_read_header(lives_clip_data_t *cd |
253 |
st->codec->extradata_size = extradata_size; |
254 |
} else if (track->codec_priv.data && track->codec_priv.size > 0) { |
255 |
st->codec->extradata = calloc(track->codec_priv.size + |
256 |
- FF_INPUT_BUFFER_PADDING_SIZE, 1); |
257 |
+ AV_INPUT_BUFFER_PADDING_SIZE, 1); |
258 |
if (st->codec->extradata == NULL) { |
259 |
fprintf(stderr, |
260 |
"mkv_decoder: Out of memory\n"); |
261 |
--- lives-plugins/plugins/decoders/mpegts_decoder.c.orig 2017-05-12 12:37:42 UTC |
262 |
+++ lives-plugins/plugins/decoders/mpegts_decoder.c |
263 |
@@ -125,7 +125,7 @@ static inline void skip_bits(GetBitContext *s, int n) |
264 |
|
265 |
/** |
266 |
* init GetBitContext. |
267 |
- * @param buffer bitstream buffer, must be FF_INPUT_BUFFER_PADDING_SIZE bytes larger than the actual read bits |
268 |
+ * @param buffer bitstream buffer, must be AV_INPUT_BUFFER_PADDING_SIZE bytes larger than the actual read bits |
269 |
* because some optimized bitstream readers read 32 or 64 bit at once and could read over the end |
270 |
* @param bit_size the size of the buffer in bits |
271 |
* |
272 |
@@ -337,6 +337,7 @@ struct MpegTSContext { |
273 |
MpegTSFilter *pids[NB_PID_MAX]; |
274 |
}; |
275 |
|
276 |
+/* |
277 |
static const AVOption options[] = { |
278 |
{ |
279 |
"compute_pcr", "Compute exact PCR for each transport stream packet.", offsetof(MpegTSContext, mpeg2ts_compute_pcr), AV_OPT_TYPE_INT, |
280 |
@@ -344,6 +345,7 @@ static const AVOption options[] = { |
281 |
}, |
282 |
{ NULL }, |
283 |
}; |
284 |
+*/ |
285 |
|
286 |
/* TS stream handling */ |
287 |
|
288 |
@@ -1035,7 +1037,7 @@ static void new_pes_packet(PESContext *pes, AVPacket * |
289 |
fprintf(stderr, "mpegts_decoder: PES packet size mismatch\n"); |
290 |
//pes->flags |= AV_PKT_FLAG_CORRUPT; |
291 |
} |
292 |
- memset(pkt->data + pkt->size, 0, FF_INPUT_BUFFER_PADDING_SIZE); |
293 |
+ memset(pkt->data + pkt->size, 0, AV_INPUT_BUFFER_PADDING_SIZE); |
294 |
|
295 |
// Separate out the AC3 substream from an HDMV combined TrueHD/AC3 PID |
296 |
if (pes->sub_st && pes->stream_type == 0x83 && pes->extended_stream_id == 0x76) |
297 |
@@ -1192,7 +1194,7 @@ static int mpegts_push_data(lives_clip_data_t *cdata, |
298 |
pes->total_size = MAX_PES_PAYLOAD; |
299 |
|
300 |
/* allocate pes buffer */ |
301 |
- pes->buffer = av_malloc(pes->total_size + FF_INPUT_BUFFER_PADDING_SIZE); |
302 |
+ pes->buffer = av_malloc(pes->total_size + AV_INPUT_BUFFER_PADDING_SIZE); |
303 |
if (!pes->buffer) |
304 |
return AVERROR(ENOMEM); |
305 |
|
306 |
@@ -1289,7 +1291,7 @@ skip: |
307 |
if (pes->data_index > 0 && pes->data_index + buf_size > pes->total_size) { |
308 |
new_pes_packet(pes, ts->pkt); |
309 |
pes->total_size = MAX_PES_PAYLOAD; |
310 |
- pes->buffer = av_malloc(pes->total_size + FF_INPUT_BUFFER_PADDING_SIZE); |
311 |
+ pes->buffer = av_malloc(pes->total_size + AV_INPUT_BUFFER_PADDING_SIZE); |
312 |
if (!pes->buffer) |
313 |
return AVERROR(ENOMEM); |
314 |
ts->stop_parse = 1; |
315 |
@@ -1454,7 +1456,7 @@ int ff_mp4_read_dec_config_descr(lives_clip_data_t *cd |
316 |
if (!len || (uint64_t)len > (1 << 30)) |
317 |
return -1; |
318 |
av_free(st->codec->extradata); |
319 |
- st->codec->extradata = av_mallocz(len + FF_INPUT_BUFFER_PADDING_SIZE); |
320 |
+ st->codec->extradata = av_mallocz(len + AV_INPUT_BUFFER_PADDING_SIZE); |
321 |
if (!st->codec->extradata) |
322 |
return AVERROR(ENOMEM); |
323 |
memcpy(st->codec->extradata, p, len); |
324 |
@@ -1802,7 +1804,7 @@ int ff_parse_mpeg2_descriptor(lives_clip_data_t *cdata |
325 |
//if (st->codec->extradata_size == 4 && memcmp(st->codec->extradata, *pp, 4)) |
326 |
//av_log_ask_for_sample(fc, "DVB sub with multiple IDs\n"); |
327 |
//} else { |
328 |
- st->codec->extradata = av_malloc(4 + FF_INPUT_BUFFER_PADDING_SIZE); |
329 |
+ st->codec->extradata = av_malloc(4 + AV_INPUT_BUFFER_PADDING_SIZE); |
330 |
if (st->codec->extradata) { |
331 |
st->codec->extradata_size = 4; |
332 |
memcpy(st->codec->extradata, *pp, 4); |
333 |
@@ -3141,8 +3143,8 @@ skip_det: |
334 |
|
335 |
priv->codec = codec; |
336 |
|
337 |
- if (codec->capabilities & CODEC_CAP_TRUNCATED) |
338 |
- ctx->flags |= CODEC_FLAG_TRUNCATED; |
339 |
+ if (codec->capabilities & AV_CODEC_CAP_TRUNCATED) |
340 |
+ ctx->flags |= AV_CODEC_FLAG_TRUNCATED; |
341 |
|
342 |
// re-scan with avcodec; priv->data_start holds video data start position |
343 |
|