summaryrefslogtreecommitdiff
path: root/community-staging/motion/ffmpeg-0.8.patch
blob: 5dcc6e686ff5e17c66433995ebdffe4bb6d862c9 (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
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;