summaryrefslogtreecommitdiff
path: root/multimedia/motion/files/patch-ffmpeg.c
diff options
context:
space:
mode:
authorSylvio Cesar Teixeira <sylvio@FreeBSD.org>2012-06-17 20:14:17 +0000
committerSylvio Cesar Teixeira <sylvio@FreeBSD.org>2012-06-17 20:14:17 +0000
commit51eb180072e641c045da963980ab77958fa448bc (patch)
tree7229636e2ad6fac003db0cf396b81a90228ace75 /multimedia/motion/files/patch-ffmpeg.c
parent- Fix build with GTK2 option (diff)
- Updatet to version 3.2.12
New file: files/patch-configure.in files/patch-ffmpeg.c PR: ports/169006 Submitted by: KATO Tsuguru <tkato432@yahoo.com>
Diffstat (limited to 'multimedia/motion/files/patch-ffmpeg.c')
-rw-r--r--multimedia/motion/files/patch-ffmpeg.c157
1 files changed, 157 insertions, 0 deletions
diff --git a/multimedia/motion/files/patch-ffmpeg.c b/multimedia/motion/files/patch-ffmpeg.c
new file mode 100644
index 000000000000..0055667f7e55
--- /dev/null
+++ b/multimedia/motion/files/patch-ffmpeg.c
@@ -0,0 +1,157 @@
+--- ffmpeg.c.orig 2010-06-01 15:48:23.000000000 +0900
++++ ffmpeg.c 2012-06-08 23:21:55.000000000 +0900
+@@ -36,6 +36,11 @@
+ # endif /* __GNUC__ */
+ #endif /* LIBAVCODEC_BUILD > 4680 */
+
++#if defined LIBAVFORMAT_VERSION_MAJOR && defined LIBAVFORMAT_VERSION_MINOR
++#if LIBAVFORMAT_VERSION_MAJOR < 53 && LIBAVFORMAT_VERSION_MINOR < 45
++ #define GUESS_NO_DEPRECATED
++#endif
++#endif
+
+ #if LIBAVFORMAT_BUILD >= 4616
+ /* The API for av_write_frame changed with FFmpeg version 0.4.9pre1.
+@@ -227,11 +232,13 @@
+ mpeg1_file_protocol.url_seek = file_protocol.url_seek;
+ mpeg1_file_protocol.url_close = file_protocol.url_close;
+
+- /* Register the append file protocol. */
+-#if LIBAVFORMAT_BUILD >= (52<<16 | 31<<8)
++/* Register the append 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
+ }
+
+@@ -258,7 +265,11 @@
+ /* 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);
++#ifdef GUESS_NO_DEPRECATED
++ of = guess_format("mpeg1video", NULL, NULL);
++#else
++ of = av_guess_format("mpeg1video", NULL, NULL);
++#endif
+ if (of) {
+ /* But we want the trailer to be correctly written. */
+ of->write_trailer = mpeg1_write_trailer;
+@@ -270,24 +281,44 @@
+ #endif
+ } else if (strcmp(codec, "mpeg4") == 0) {
+ ext = ".avi";
+- of = guess_format("avi", NULL, NULL);
++#ifdef GUESS_NO_DEPRECATED
++ of = guess_format("mpeg1video", NULL, NULL);
++#else
++ of = av_guess_format("avi", NULL, NULL);
++#endif
+ } else if (strcmp(codec, "msmpeg4") == 0) {
+ ext = ".avi";
+- of = guess_format("avi", NULL, NULL);
++#ifdef GUESS_NO_DEPRECATED
++ of = guess_format("mpeg1video", NULL, NULL);
++#else
++ of = av_guess_format("avi", NULL, NULL);
++#endif
+ 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);
++#ifdef GUESS_NO_DEPRECATED
++ of = guess_format("mpeg1video", NULL, NULL);
++#else
++ of = av_guess_format("swf", NULL, NULL);
++#endif
+ } else if (strcmp(codec, "flv") == 0) {
+ ext = ".flv";
+- of = guess_format("flv", NULL, NULL);
++#ifdef GUESS_NO_DEPRECATED
++ of = guess_format("mpeg1video", NULL, NULL);
++#else
++ of = av_guess_format("flv", NULL, NULL);
++#endif
+ of->video_codec = CODEC_ID_FLV1;
+ } else if (strcmp(codec, "ffv1") == 0) {
+ ext = ".avi";
+- of = guess_format("avi", NULL, NULL);
++#ifdef GUESS_NO_DEPRECATED
++ of = guess_format("mpeg1video", NULL, NULL);
++#else
++ of = av_guess_format("avi", NULL, NULL);
++#endif
+ if (of) {
+ /* Use the FFMPEG Lossless Video codec (experimental!).
+ Requires strict_std_compliance to be <= -2 */
+@@ -295,7 +326,11 @@
+ }
+ } else if (strcmp(codec, "mov") == 0) {
+ ext = ".mov";
+- of = guess_format("mov", NULL, NULL);
++#ifdef GUESS_NO_DEPRECATED
++ of = guess_format("mpeg1video", NULL, NULL);
++#else
++ of = av_guess_format("mov", NULL, NULL);
++#endif
+ } else {
+ motion_log(LOG_ERR, 0, "ffmpeg_video_codec option value %s is not supported", codec);
+ return NULL;
+@@ -340,7 +375,13 @@
+ snprintf(ffmpeg->codec, sizeof(ffmpeg->codec), "%s", ffmpeg_video_codec);
+
+ /* allocation the output media context */
++#ifdef have_avformat_alloc_context
++ ffmpeg->oc = avformat_alloc_context();
++#elif defined have_av_avformat_alloc_context
++ ffmpeg->oc = av_alloc_format_context();
++#else
+ ffmpeg->oc = av_mallocz(sizeof(AVFormatContext));
++#endif
+
+ if (!ffmpeg->oc) {
+ motion_log(LOG_ERR, 1, "Memory error while allocating output media context");
+@@ -377,7 +418,11 @@
+
+ ffmpeg->c = c = AVSTREAM_CODEC_PTR(ffmpeg->video_st);
+ c->codec_id = ffmpeg->oc->oformat->video_codec;
++#if LIBAVCODEC_VERSION_MAJOR < 53
+ c->codec_type = CODEC_TYPE_VIDEO;
++#else
++ c->codec_type = AVMEDIA_TYPE_VIDEO;
++#endif
+ is_mpeg1 = c->codec_id == CODEC_ID_MPEG1VIDEO;
+
+ if (strcmp(ffmpeg_video_codec, "ffv1") == 0)
+@@ -646,7 +691,11 @@
+ 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
++#if LIBAVCODEC_VERSION_MAJOR < 53
+ pkt.flags |= PKT_FLAG_KEY;
++#else
++ pkt.flags |= AV_PKT_FLAG_KEY;
++#endif
+ pkt.data = (uint8_t *)pic;
+ pkt.size = sizeof(AVPicture);
+ ret = av_write_frame(ffmpeg->oc, &pkt);
+@@ -667,7 +716,11 @@
+ #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) {
++#if LIBAVCODEC_VERSION_MAJOR < 53
+ pkt.flags |= PKT_FLAG_KEY;
++#else
++ pkt.flags |= AV_PKT_FLAG_KEY;
++#endif
+ }
+ pkt.data = ffmpeg->video_outbuf;
+ pkt.size = out_size; \ No newline at end of file