From fd7fd3c1678a63eb22995fef1d1eed09ff57efe6 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 4 Apr 2016 22:52:51 -0400 Subject: [PATCH] gnu: libextractor: Add patch to fix build with ffmpeg-3. * gnu/packages/patches/libextractor-ffmpeg-3.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/gnunet.scm (libextractor)[source]: Add patch. --- gnu-system.am | 1 + gnu/packages/gnunet.scm | 2 + .../patches/libextractor-ffmpeg-3.patch | 147 ++++++++++++++++++ 3 files changed, 150 insertions(+) create mode 100644 gnu/packages/patches/libextractor-ffmpeg-3.patch diff --git a/gnu-system.am b/gnu-system.am index d883cdc207..c8048b7750 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -580,6 +580,7 @@ dist_patch_DATA = \ gnu/packages/patches/libcmis-fix-test-onedrive.patch \ gnu/packages/patches/libdrm-symbol-check.patch \ gnu/packages/patches/libevent-dns-tests.patch \ + gnu/packages/patches/libextractor-ffmpeg-3.patch \ gnu/packages/patches/libmtp-devices.patch \ gnu/packages/patches/liboop-mips64-deplibs-fix.patch \ gnu/packages/patches/libotr-test-auth-fix.patch \ diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index eb0c4cbe83..471f383b85 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2015 Efraim Flashner ;;; Copyright © 2016 Ni* Gillmann ;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2016 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -66,6 +67,7 @@ (sha256 (base32 "0zvv7wd011npcx7yphw9bpgivyxz6mlp87a57n96nv85k96dd2l6")) + (patches (list (search-patch "libextractor-ffmpeg-3.patch"))) (modules '((guix build utils))) (snippet ;; Nowadays libmagic (from 'file') returns 'audio/ogg' and not diff --git a/gnu/packages/patches/libextractor-ffmpeg-3.patch b/gnu/packages/patches/libextractor-ffmpeg-3.patch new file mode 100644 index 0000000000..7688bdc37f --- /dev/null +++ b/gnu/packages/patches/libextractor-ffmpeg-3.patch @@ -0,0 +1,147 @@ +Fix build for ffmpeg-3.0. +Based on a patch by Andreas Cadhalpun +for ffmpeg-2.9, found at +and later modified by Mark H Weaver for ffmpeg-3.0. + +--- libextractor-1.3/src/plugins/thumbnailffmpeg_extractor.c.orig 2013-12-21 11:04:41.000000000 -0500 ++++ libextractor-1.3/src/plugins/thumbnailffmpeg_extractor.c 2016-04-04 22:42:17.859001669 -0400 +@@ -153,7 +153,7 @@ + static size_t + create_thumbnail (int src_width, int src_height, + int src_stride[], +- enum PixelFormat src_pixfmt, ++ enum AVPixelFormat src_pixfmt, + const uint8_t * const src_data[], + int dst_width, int dst_height, + uint8_t **output_data, +@@ -189,7 +189,7 @@ + if (NULL == + (scaler_ctx = + sws_getContext (src_width, src_height, src_pixfmt, +- dst_width, dst_height, PIX_FMT_RGB24, ++ dst_width, dst_height, AV_PIX_FMT_RGB24, + SWS_BILINEAR, NULL, NULL, NULL))) + { + #if DEBUG +@@ -199,7 +199,7 @@ + return 0; + } + +- if (NULL == (dst_frame = avcodec_alloc_frame ())) ++ if (NULL == (dst_frame = av_frame_alloc ())) + { + #if DEBUG + fprintf (stderr, +@@ -209,7 +209,7 @@ + return 0; + } + if (NULL == (dst_buffer = +- av_malloc (avpicture_get_size (PIX_FMT_RGB24, dst_width, dst_height)))) ++ av_malloc (avpicture_get_size (AV_PIX_FMT_RGB24, dst_width, dst_height)))) + { + #if DEBUG + fprintf (stderr, +@@ -220,7 +220,7 @@ + return 0; + } + avpicture_fill ((AVPicture *) dst_frame, dst_buffer, +- PIX_FMT_RGB24, dst_width, dst_height); ++ AV_PIX_FMT_RGB24, dst_width, dst_height); + sws_scale (scaler_ctx, + src_data, + src_stride, +@@ -255,7 +255,7 @@ + } + encoder_codec_ctx->width = dst_width; + encoder_codec_ctx->height = dst_height; +- encoder_codec_ctx->pix_fmt = PIX_FMT_RGB24; ++ encoder_codec_ctx->pix_fmt = AV_PIX_FMT_RGB24; + opts = NULL; + if (avcodec_open2 (encoder_codec_ctx, encoder_codec, &opts) < 0) + { +@@ -410,7 +410,7 @@ + return; + } + av_dict_free (&opts); +- if (NULL == (frame = avcodec_alloc_frame ())) ++ if (NULL == (frame = av_frame_alloc ())) + { + #if DEBUG + fprintf (stderr, +@@ -563,7 +563,7 @@ + return; + } + +- if (NULL == (frame = avcodec_alloc_frame ())) ++ if (NULL == (frame = av_frame_alloc ())) + { + #if DEBUG + fprintf (stderr, +--- libextractor-1.3/src/plugins/previewopus_extractor.c.orig 2013-12-22 17:44:18.000000000 -0500 ++++ libextractor-1.3/src/plugins/previewopus_extractor.c 2016-04-04 22:49:05.168105265 -0400 +@@ -296,7 +296,7 @@ + /** Initialize one audio frame for reading from the input file */ + static int init_input_frame(AVFrame **frame) + { +- if (!(*frame = avcodec_alloc_frame())) { ++ if (!(*frame = av_frame_alloc())) { + #if DEBUG + fprintf(stderr, "Could not allocate input frame\n"); + #endif +@@ -655,7 +655,7 @@ + av_freep(&converted_input_samples[0]); + free(converted_input_samples); + } +- avcodec_free_frame(&input_frame); ++ av_frame_free(&input_frame); + + return ret; + } +@@ -671,7 +671,7 @@ + int error; + + /** Create a new frame to store the audio samples. */ +- if (!(*frame = avcodec_alloc_frame())) { ++ if (!(*frame = av_frame_alloc())) { + #if DEBUG + fprintf(stderr, "Could not allocate output frame\n"); + #endif +@@ -702,7 +702,7 @@ + #if DEBUG + fprintf(stderr, "Could allocate output frame samples (error '%s')\n", get_error_text(error)); + #endif +- avcodec_free_frame(frame); ++ av_frame_free(frame); + return error; + } + +@@ -783,17 +783,17 @@ + #if DEBUG + fprintf(stderr, "Could not read data from FIFO\n"); + #endif +- avcodec_free_frame(&output_frame); ++ av_frame_free(&output_frame); + return AVERROR_EXIT; + } + + /** Encode one frame worth of audio samples. */ + if (encode_audio_frame(output_frame, output_format_context, + output_codec_context, &data_written)) { +- avcodec_free_frame(&output_frame); ++ av_frame_free(&output_frame); + return AVERROR_EXIT; + } +- avcodec_free_frame(&output_frame); ++ av_frame_free(&output_frame); + return 0; + } + /** Write the trailer of the output file container. */ +@@ -907,7 +907,7 @@ + return; + } + +- if (NULL == (frame = avcodec_alloc_frame ())) ++ if (NULL == (frame = av_frame_alloc ())) + { + #if DEBUG + fprintf (stderr,