[SCM] idjc/master: Upstream patches to fix issues with ffmpeg 3.0

sramacher at users.alioth.debian.org sramacher at users.alioth.debian.org
Sun May 1 21:08:32 UTC 2016


The following commit has been merged in the master branch:
commit 957bd58ddfc78517b388d3f5973b2cf94dc96097
Author: Sebastian Ramacher <sramacher at debian.org>
Date:   Sun May 1 23:06:38 2016 +0200

    Upstream patches to fix issues with ffmpeg 3.0

diff --git a/debian/patches/AAC-support-now-comes-from-ffmpeg-s-libfdk_aac-codec.patch b/debian/patches/AAC-support-now-comes-from-ffmpeg-s-libfdk_aac-codec.patch
new file mode 100644
index 0000000..36473f5
--- /dev/null
+++ b/debian/patches/AAC-support-now-comes-from-ffmpeg-s-libfdk_aac-codec.patch
@@ -0,0 +1,39 @@
+From 452f630fbc39c2d9f6e4362d12adf27c12d4157e Mon Sep 17 00:00:00 2001
+From: Stephen Fairchild <s-fairchild at users.sourceforge.net>
+Date: Sat, 27 Feb 2016 13:36:30 +0000
+Subject: [PATCH] AAC+ support now comes from ffmpeg's libfdk_aac codec.
+
+---
+ ChangeLog           | 2 ++
+ c/avcodec_encoder.c | 7 ++++---
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/c/avcodec_encoder.c b/c/avcodec_encoder.c
+index e80b538..e58f3fd 100644
+--- a/c/avcodec_encoder.c
++++ b/c/avcodec_encoder.c
+@@ -95,9 +95,10 @@ static void live_avcodec_encoder_main(struct encoder *encoder)
+         c->sample_rate = encoder->target_samplerate;
+         c->channels = encoder->n_channels;
+         c->sample_fmt = AV_SAMPLE_FMT_FLT;
+-        if (s->pkt_flags & (PF_AAC | PF_AACP2))
++        if (s->pkt_flags & PF_AAC)
+             c->profile = FF_PROFILE_AAC_LOW;
+-
++        if (s->pkt_flags & PF_AACP2)
++            c->profile = FF_PROFILE_AAC_HE;
+         // start the codec preferably with float inputs else signed 16 bit integer inputs
+         while (pthread_mutex_trylock(&g.avc_mutex))
+             nanosleep(&time_delay, NULL);
+@@ -296,7 +297,7 @@ static AVCodec *aac_codec()
+ 
+ static AVCodec *aacplus_codec()
+ {
+-    return avcodec_find_encoder_by_name("libaacplus");
++    return avcodec_find_encoder_by_name("libfdk_aac");
+ }
+ 
+ int live_avcodec_encoder_init(struct encoder *encoder, struct encoder_vars *ev)
+-- 
+2.8.1
+
diff --git a/debian/patches/Fix-for-older-libav-versions.patch b/debian/patches/Fix-for-older-libav-versions.patch
new file mode 100644
index 0000000..eaa080d
--- /dev/null
+++ b/debian/patches/Fix-for-older-libav-versions.patch
@@ -0,0 +1,68 @@
+From 6b3907dfa04f650a4ff98bde15c3800c97a29ee1 Mon Sep 17 00:00:00 2001
+From: Stephen Fairchild <s-fairchild at users.sourceforge.net>
+Date: Sun, 22 Nov 2015 21:15:07 +0000
+Subject: [PATCH] Fix for older libav versions.
+
+---
+ c/avcodec_encoder.c | 7 +++++++
+ c/avcodecdecode.c   | 7 +++++++
+ configure.ac        | 7 +++++--
+ 3 files changed, 19 insertions(+), 2 deletions(-)
+
+diff --git a/c/avcodec_encoder.c b/c/avcodec_encoder.c
+index 71196a4..e80b538 100644
+--- a/c/avcodec_encoder.c
++++ b/c/avcodec_encoder.c
+@@ -28,6 +28,13 @@
+ 
+ #include "avcodec_encoder.h"
+ 
++#ifndef HAVE_AV_FRAME_ALLOC
++#define av_frame_alloc avcodec_alloc_frame
++#endif
++#ifndef HAVE_AV_FRAME_UNREF
++#define av_frame_unref avcodec_get_frame_defaults
++#endif
++
+ #define BYTE_ALIGNMENT (8)
+ 
+ static const struct timespec time_delay = { .tv_nsec = 10 };
+diff --git a/c/avcodecdecode.c b/c/avcodecdecode.c
+index eecc375..efadfde 100644
+--- a/c/avcodecdecode.c
++++ b/c/avcodecdecode.c
+@@ -42,6 +42,13 @@
+ #define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
+ #endif
+ 
++#ifndef HAVE_AV_FRAME_ALLOC
++#define av_frame_alloc avcodec_alloc_frame
++#endif
++#ifndef HAVE_AV_FRAME_UNREF
++#define av_frame_unref avcodec_get_frame_defaults
++#endif
++
+ extern int dynamic_metadata_form[];
+ 
+ static const struct timespec time_delay = { .tv_nsec = 10 };
+diff --git a/configure.ac b/configure.ac
+index f2b8460..859bfe5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -81,8 +81,11 @@ if test $makelibav != "no" ; then
+                AC_MSG_WARN([IDJC will be built without wma/mp4/ape support])
+             fi)
+ 
+-   PKG_CHECK_MODULES([LIBAVUTIL], [libavutil], AC_DEFINE(HAVE_AVUTIL, 1, [Set if libavutil was found])
+-            AC_SUBST(HAVE_AVUTIL, 1),
++   PKG_CHECK_MODULES([LIBAVUTIL], [libavutil], [AC_DEFINE(HAVE_AVUTIL, 1, [Set if libavutil was found])
++            AC_SUBST(HAVE_AVUTIL, 1)
++            AC_CHECK_LIB([avutil],[av_frame_alloc], AC_DEFINE(HAVE_AV_FRAME_ALLOC, 1, [Set if av_frame_alloc function exists]))
++            AC_CHECK_LIB([avutil],[av_frame_unref], AC_DEFINE(HAVE_AV_FRAME_UNREF, 1, [Set if av_frame_unref function exists]))
++            ],
+             AC_SUBST(HAVE_AVUTIL, 0)
+ 
+             if test $makelibav = "yes" ; then
+-- 
+2.8.1
+
diff --git a/debian/patches/Fixes-for-libavcodec.patch b/debian/patches/Fixes-for-libavcodec.patch
new file mode 100644
index 0000000..12ccb8f
--- /dev/null
+++ b/debian/patches/Fixes-for-libavcodec.patch
@@ -0,0 +1,62 @@
+From 586f3da7770c9a5a83509e075bb5da9eebc91827 Mon Sep 17 00:00:00 2001
+From: Stephen Fairchild <s-fairchild at users.sourceforge.net>
+Date: Tue, 17 Nov 2015 21:23:48 +0000
+Subject: [PATCH] Fixes for libavcodec.
+
+---
+ ChangeLog           | 4 ++++
+ c/avcodec_encoder.c | 4 ++--
+ c/avcodecdecode.c   | 6 +++---
+ 3 files changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/c/avcodec_encoder.c b/c/avcodec_encoder.c
+index 1e3fbb9..71196a4 100644
+--- a/c/avcodec_encoder.c
++++ b/c/avcodec_encoder.c
+@@ -142,12 +142,12 @@ static void live_avcodec_encoder_main(struct encoder *encoder)
+ 
+             // prepare an AVFrame to put that data
+             if (!s->decoded_frame) {
+-                if (!(s->decoded_frame = avcodec_alloc_frame())) {
++                if (!(s->decoded_frame = av_frame_alloc())) {
+                     fprintf(stderr, "avcodec_encoder_main: failed to allocate frame\n");
+                     encoder->encoder_state = ES_STOPPING;
+                 }
+             } else
+-                avcodec_get_frame_defaults(s->decoded_frame);
++                av_frame_unref(s->decoded_frame);
+             s->decoded_frame->nb_samples = in_samples;
+             
+             if (id) {
+diff --git a/c/avcodecdecode.c b/c/avcodecdecode.c
+index 4bc5205..eecc375 100644
+--- a/c/avcodecdecode.c
++++ b/c/avcodecdecode.c
+@@ -173,13 +173,13 @@ static void avcodecdecode_play(struct xlplayer *xlplayer)
+         
+         if (!self->frame)
+             {
+-            if (!(self->frame = avcodec_alloc_frame()))
++            if (!(self->frame = av_frame_alloc()))
+                 {
+                 fprintf(stderr, "avcodecdecode_play: malloc failure\n");
+                 exit(1);
+                 }
+             else
+-                avcodec_get_frame_defaults(self->frame);
++                av_frame_unref(self->frame);
+             }
+ 
+         while (pthread_mutex_trylock(&g.avc_mutex))
+@@ -245,7 +245,7 @@ static void avcodecdecode_play(struct xlplayer *xlplayer)
+         if (self->floatsamples)
+             av_freep(&self->floatsamples);
+ 
+-        if (av_samples_alloc(&self->floatsamples, NULL, 2, self->frame->nb_samples, AV_SAMPLE_FMT_FLT, 0))
++        if (av_samples_alloc(&self->floatsamples, NULL, 2, self->frame->nb_samples, AV_SAMPLE_FMT_FLT, 0) < 0)
+             {
+             fprintf(stderr, "avcodecdecode_play: av_samples_alloc failed\n");
+             xlplayer->playmode = PM_EJECTING;
+-- 
+2.8.1
+
diff --git a/debian/patches/series b/debian/patches/series
index 80a8c6c..489cefb 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,5 @@
 desktop.patch
 man.patch
+Fixes-for-libavcodec.patch
+Fix-for-older-libav-versions.patch
+AAC-support-now-comes-from-ffmpeg-s-libfdk_aac-codec.patch

-- 
idjc packaging



More information about the pkg-multimedia-commits mailing list