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
|
diff -aur motion-3.2.12/ffmpeg.c motion-3.2.12.new/ffmpeg.c
--- motion-3.2.12/ffmpeg.c 2010-06-01 08:48:23.000000000 +0200
+++ motion-3.2.12.new/ffmpeg.c 2011-10-31 17:25:03.000000000 +0100
@@ -14,7 +14,7 @@
#include "ffmpeg.h"
#include "motion.h"
-
+#include <libavformat/avformat.h>
#if LIBAVCODEC_BUILD > 4680
/* FFmpeg after build 4680 doesn't have support for mpeg1 videos with
* non-standard framerates. Previous builds contained a broken hack
@@ -228,10 +228,12 @@
mpeg1_file_protocol.url_close = file_protocol.url_close;
/* Register the append file protocol. */
-#if LIBAVFORMAT_BUILD >= (52<<16 | 31<<8)
- av_register_protocol(&mpeg1_file_protocol);
+#ifdef have_av_register_protocol2
+ av_register_protocol2(&mpeg1_file_protocol, sizeof(mpeg1_file_protocol));
+#elif defined have_av_register_protocol
+ av_register_protocol(&mpeg1_file_protocol);
#else
- register_protocol(&mpeg1_file_protocol);
+# warning av_register_protocolXXX missing
#endif
}
@@ -244,7 +246,7 @@
const char *ext;
AVOutputFormat *of = NULL;
- /* Here, we use guess_format to automatically setup the codec information.
+ /* Here, we use av_guess_format to automatically setup the codec information.
* If we are using msmpeg4, manually set that codec here.
* We also dynamically add the file extension to the filename here. This was
* done to support both mpeg1 and mpeg4 codecs since they have different extensions.
@@ -258,7 +260,7 @@
/* We use "mpeg1video" for raw mpeg1 format. Using "mpeg" would
* result in a muxed output file, which isn't appropriate here.
*/
- of = guess_format("mpeg1video", NULL, NULL);
+ of = av_guess_format("mpeg1video", NULL, NULL);
if (of) {
/* But we want the trailer to be correctly written. */
of->write_trailer = mpeg1_write_trailer;
@@ -270,24 +272,24 @@
#endif
} else if (strcmp(codec, "mpeg4") == 0) {
ext = ".avi";
- of = guess_format("avi", NULL, NULL);
+ of = av_guess_format("avi", NULL, NULL);
} else if (strcmp(codec, "msmpeg4") == 0) {
ext = ".avi";
- of = guess_format("avi", NULL, NULL);
+ of = av_guess_format("avi", NULL, NULL);
if (of) {
/* Manually override the codec id. */
of->video_codec = CODEC_ID_MSMPEG4V2;
}
} else if (strcmp(codec, "swf") == 0) {
ext = ".swf";
- of = guess_format("swf", NULL, NULL);
+ of = av_guess_format("swf", NULL, NULL);
} else if (strcmp(codec, "flv") == 0) {
ext = ".flv";
- of = guess_format("flv", NULL, NULL);
+ of = av_guess_format("flv", NULL, NULL);
of->video_codec = CODEC_ID_FLV1;
} else if (strcmp(codec, "ffv1") == 0) {
ext = ".avi";
- of = guess_format("avi", NULL, NULL);
+ of = av_guess_format("avi", NULL, NULL);
if (of) {
/* Use the FFMPEG Lossless Video codec (experimental!).
Requires strict_std_compliance to be <= -2 */
@@ -295,7 +297,7 @@
}
} else if (strcmp(codec, "mov") == 0) {
ext = ".mov";
- of = guess_format("mov", NULL, NULL);
+ of = av_guess_format("mov", NULL, NULL);
} else {
motion_log(LOG_ERR, 0, "ffmpeg_video_codec option value %s is not supported", codec);
return NULL;
@@ -377,7 +379,7 @@
ffmpeg->c = c = AVSTREAM_CODEC_PTR(ffmpeg->video_st);
c->codec_id = ffmpeg->oc->oformat->video_codec;
- c->codec_type = CODEC_TYPE_VIDEO;
+ c->codec_type = AVMEDIA_TYPE_VIDEO;
is_mpeg1 = c->codec_id == CODEC_ID_MPEG1VIDEO;
if (strcmp(ffmpeg_video_codec, "ffv1") == 0)
@@ -646,7 +648,7 @@
if (ffmpeg->oc->oformat->flags & AVFMT_RAWPICTURE) {
/* raw video case. The API will change slightly in the near future for that */
#ifdef FFMPEG_AVWRITEFRAME_NEWAPI
- pkt.flags |= PKT_FLAG_KEY;
+ pkt.flags |= AV_PKT_FLAG_KEY;
pkt.data = (uint8_t *)pic;
pkt.size = sizeof(AVPicture);
ret = av_write_frame(ffmpeg->oc, &pkt);
@@ -667,7 +669,7 @@
#ifdef FFMPEG_AVWRITEFRAME_NEWAPI
pkt.pts = AVSTREAM_CODEC_PTR(ffmpeg->video_st)->coded_frame->pts;
if (AVSTREAM_CODEC_PTR(ffmpeg->video_st)->coded_frame->key_frame) {
- pkt.flags |= PKT_FLAG_KEY;
+ pkt.flags |= AV_PKT_FLAG_KEY;
}
pkt.data = ffmpeg->video_outbuf;
pkt.size = out_size;
|