rpms/gstreamer1-libav/devel gst-libav-fix-h264-decoding.patch, NONE, 1.1 libav-dsputil-fix-segfault-in-dsputil_init-with-gcc4.8.patch, NONE, 1.1 gstreamer1-libav.spec, 1.2, 1.3
Hans de Goede
jwrdegoede at rpmfusion.org
Sun Mar 10 13:13:35 CET 2013
- Previous message: rpms/a52dec/devel liba52-silence.patch,NONE,1.1 a52dec.spec,1.7,1.8
- Next message: rpms/gstreamer1-libav/F-18 gst-libav-fix-h264-decoding.patch, NONE, 1.1 libav-dsputil-fix-segfault-in-dsputil_init-with-gcc4.8.patch, NONE, 1.1 gstreamer1-libav.spec, 1.2, 1.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: jwrdegoede
Update of /cvs/free/rpms/gstreamer1-libav/devel
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv22733
Modified Files:
gstreamer1-libav.spec
Added Files:
gst-libav-fix-h264-decoding.patch
libav-dsputil-fix-segfault-in-dsputil_init-with-gcc4.8.patch
Log Message:
* Sun Mar 10 2013 Hans de Goede <j.w.r.degoede at gmail.com> - 1.0.5-2
- Add a patch from upstream git to fix h264 decoding artifacts (rf#2710)
- Add a patch from upstream libav to fix miscompilation with gcc-4.8
(rf#2710, gnome#695166, libav#388)
gst-libav-fix-h264-decoding.patch:
gstavutils.c | 1 +
gstavviddec.c | 33 ++++++++++++++++++++++++---------
2 files changed, 25 insertions(+), 9 deletions(-)
--- NEW FILE gst-libav-fix-h264-decoding.patch ---
>From 879052472841d584e0aad21ac220131b586c1de5 Mon Sep 17 00:00:00 2001
From: Tim-Philipp Müller <tim at centricular.net>
Date: Mon, 25 Feb 2013 10:38:09 +0000
Subject: avviddec: fix H.264 decoding errors by disabling multi-threaded decoding
Multi-threaded decoding does not work properly with the older libav 0.8
version included in this gst-libav series, so just disable multi-threaded
decoding again entirely for now. (We could also switch from FF_THREAD_SLICE
to FF_THREAD_FRAME, but that may have other side-effects and just disabling
it seems safest for now).
This works properly in git master with more recent libav 0.9.x versions.
Adventurous users may still re-enable this functionality by setting
the GST_AVVIDDEC_MAX_THREADS environment variable to 'auto' or the
max. number of threads desired.
https://bugzilla.gnome.org/show_bug.cgi?id=694230
---
diff --git a/ext/libav/gstavutils.c b/ext/libav/gstavutils.c
index 8555d8d..f7a80f6 100644
--- a/ext/libav/gstavutils.c
+++ b/ext/libav/gstavutils.c
@@ -476,6 +476,7 @@ gst_ffmpeg_auto_max_threads (void)
if (n < 1)
n = 1;
+ GST_INFO ("threads: %d", n);
g_once_init_leave (&n_threads, n);
}
diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c
index 669a75d..caf3e2e 100644
--- a/ext/libav/gstavviddec.c
+++ b/ext/libav/gstavviddec.c
@@ -106,7 +106,7 @@ struct _GstFFMpegVidDecClass
#define DEFAULT_SKIPFRAME 0
#define DEFAULT_DIRECT_RENDERING TRUE
#define DEFAULT_DEBUG_MV FALSE
-#define DEFAULT_MAX_THREADS 0
+#define DEFAULT_MAX_THREADS 1
enum
{
@@ -470,14 +470,30 @@ gst_ffmpegviddec_set_format (GstVideoDecoder * decoder,
* supports it) */
ffmpegdec->context->debug_mv = ffmpegdec->debug_mv;
- if (ffmpegdec->max_threads == 0) {
- if (!(oclass->in_plugin->capabilities & CODEC_CAP_AUTO_THREADS))
- ffmpegdec->context->thread_count = gst_ffmpeg_auto_max_threads ();
- else
- ffmpegdec->context->thread_count = 0;
- } else
- ffmpegdec->context->thread_count = ffmpegdec->max_threads;
+ {
+ const gchar *env = g_getenv ("GST_AVVIDDEC_MAX_THREADS");
+ int max_threads = ffmpegdec->max_threads;
+
+ if (env != NULL) {
+ if (g_str_equal (env, "auto"))
+ max_threads = 0;
+ else
+ max_threads = MAX (atoi (env), 0);
+
+ if (max_threads != 1) {
+ GST_WARNING_OBJECT (ffmpegdec, "max threads forced to %d, this might "
+ "lead to decoding errors or artefacts", max_threads);
+ }
+ }
+ if (max_threads == 0) {
+ if (!(oclass->in_plugin->capabilities & CODEC_CAP_AUTO_THREADS))
+ ffmpegdec->context->thread_count = gst_ffmpeg_auto_max_threads ();
+ else
+ ffmpegdec->context->thread_count = 0;
+ } else
+ ffmpegdec->context->thread_count = max_threads;
+ }
ffmpegdec->context->thread_type = FF_THREAD_SLICE;
/* open codec - we don't select an output pix_fmt yet,
--
cgit v0.9.0.2-2-gbebe
libav-dsputil-fix-segfault-in-dsputil_init-with-gcc4.8.patch:
dsputil.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
--- NEW FILE libav-dsputil-fix-segfault-in-dsputil_init-with-gcc4.8.patch ---
>From ae8f132ace291534ed64023029023c2338f8d3bb Mon Sep 17 00:00:00 2001
From: Sebastian Keller <sebastian-keller at gmx.de>
Date: Sat, 9 Mar 2013 23:57:14 +0100
Subject: [PATCH] dsputil: fix segfault in dsputil_init with gcc 4.8
---
libavcodec/dsputil.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c
index 66f1f93..621b00c 100644
--- a/libavcodec/dsputil.c
+++ b/libavcodec/dsputil.c
@@ -2788,7 +2788,7 @@ int ff_check_alignment(void){
av_cold void dsputil_init(DSPContext* c, AVCodecContext *avctx)
{
- int i;
+ int i, j;
ff_check_alignment();
@@ -3154,11 +3154,13 @@ av_cold void dsputil_init(DSPContext* c, AVCodecContext *avctx)
if (ARCH_SH4) dsputil_init_sh4 (c, avctx);
if (ARCH_BFIN) dsputil_init_bfin (c, avctx);
- for(i=0; i<64; i++){
- if(!c->put_2tap_qpel_pixels_tab[0][i])
- c->put_2tap_qpel_pixels_tab[0][i]= c->put_h264_qpel_pixels_tab[0][i];
- if(!c->avg_2tap_qpel_pixels_tab[0][i])
- c->avg_2tap_qpel_pixels_tab[0][i]= c->avg_h264_qpel_pixels_tab[0][i];
+ for(i=0; i<4; i++){
+ for(j=0; j<16; j++) {
+ if(!c->put_2tap_qpel_pixels_tab[i][j])
+ c->put_2tap_qpel_pixels_tab[i][j]= c->put_h264_qpel_pixels_tab[i][j];
+ if(!c->avg_2tap_qpel_pixels_tab[i][j])
+ c->avg_2tap_qpel_pixels_tab[i][j]= c->avg_h264_qpel_pixels_tab[i][j];
+ }
}
ff_init_scantable_permutation(c->idct_permutation,
--
1.8.1.4
Index: gstreamer1-libav.spec
===================================================================
RCS file: /cvs/free/rpms/gstreamer1-libav/devel/gstreamer1-libav.spec,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gstreamer1-libav.spec 2 Mar 2013 12:20:51 -0000 1.2
+++ gstreamer1-libav.spec 10 Mar 2013 12:13:35 -0000 1.3
@@ -1,6 +1,6 @@
Name: gstreamer1-libav
Version: 1.0.5
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: GStreamer 1.0 libav-based plug-ins
Group: Applications/Multimedia
License: LGPLv2+
@@ -9,6 +9,8 @@
# We drop in a newer libav to get all the security bugfixes from there!
Source1: http://libav.org/releases/libav-0.8.5.tar.xz
Patch0: gst-ffmpeg-0.10.12-ChangeLog-UTF-8.patch
+Patch1: gst-libav-fix-h264-decoding.patch
+Patch2: libav-dsputil-fix-segfault-in-dsputil_init-with-gcc4.8.patch
BuildRequires: gstreamer1-devel >= 1.0.0
BuildRequires: gstreamer1-plugins-base-devel >= 1.0.0
BuildRequires: orc-devel bzip2-devel zlib-devel
@@ -29,9 +31,13 @@
%prep
%setup -q -n gst-libav-%{version} -a 1
+%patch0 -p1
+%patch1 -p1
+pushd libav-0.8.5
+%patch2 -p1
+popd
rm -r gst-libs/ext/libav
mv libav-0.8.5 gst-libs/ext/libav
-%patch0 -p1
%build
@@ -56,6 +62,11 @@
%changelog
+* Sun Mar 10 2013 Hans de Goede <j.w.r.degoede at gmail.com> - 1.0.5-2
+- Add a patch from upstream git to fix h264 decoding artifacts (rf#2710)
+- Add a patch from upstream libav to fix miscompilation with gcc-4.8
+ (rf#2710, gnome#695166, libav#388)
+
* Sat Mar 2 2013 Hans de Goede <j.w.r.degoede at gmail.com> - 1.0.5-1
- Rebase to 1.0.5 (rf#2688)
- Upgrade the buildin libav to 0.8.5 to get all the security fixes from
- Previous message: rpms/a52dec/devel liba52-silence.patch,NONE,1.1 a52dec.spec,1.7,1.8
- Next message: rpms/gstreamer1-libav/F-18 gst-libav-fix-h264-decoding.patch, NONE, 1.1 libav-dsputil-fix-segfault-in-dsputil_init-with-gcc4.8.patch, NONE, 1.1 gstreamer1-libav.spec, 1.2, 1.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the rpmfusion-commits
mailing list