From upstream: fix AAC decoding in GStreamer 0.10. Fixes, e.g., internet

radio playing in Clementine.

See http://cgit.freedesktop.org/gstreamer/gst-ffmpeg/commit/?h=1.0&id=a3b0ae22d76522d0a79f5d946872c0260dd1e3b2
and https://bugzilla.gnome.org/show_bug.cgi?id=679639 for details.

ok ajacoutot@
This commit is contained in:
zhuk 2013-03-25 16:09:41 +00:00
parent 3ff58f929c
commit 742e837e45
2 changed files with 26 additions and 4 deletions

View File

@ -1,11 +1,11 @@
# $OpenBSD: Makefile,v 1.32 2013/03/25 12:31:58 sthen Exp $
# $OpenBSD: Makefile,v 1.33 2013/03/25 16:09:41 zhuk Exp $
COMMENT= ffmpeg element for GStreamer
V= 0.10.13
DISTNAME= gst-ffmpeg-${V}
PKGNAME= gstreamer-ffmpeg-${V}
REVISION= 5
REVISION= 6
# sync with graphics/ffmpeg
PERMIT_PACKAGE_CDROM= patents

View File

@ -1,4 +1,4 @@
$OpenBSD: patch-ext_ffmpeg_gstffmpegdec_c,v 1.4 2012/03/03 10:33:42 ajacoutot Exp $
$OpenBSD: patch-ext_ffmpeg_gstffmpegdec_c,v 1.5 2013/03/25 16:09:41 zhuk Exp $
From upstream:
- Report latency if B-frames are present.
@ -6,6 +6,12 @@ From upstream:
- Only set get_buffer() function for video.
- Only slice-threading.
Also:
From a3b0ae22d76522d0a79f5d946872c0260dd1e3b2 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wim.taymans@collabora.co.uk>
Date: Tue, 10 Jul 2012 14:10:14 +0000
Subject: avdec: ignore AAC errors instead of erroring out
--- ext/ffmpeg/gstffmpegdec.c.orig Wed Nov 2 09:04:05 2011
+++ ext/ffmpeg/gstffmpegdec.c Fri Mar 2 17:23:48 2012
@@ -477,36 +477,44 @@ static gboolean
@ -120,7 +126,23 @@ From upstream:
GST_DEBUG_OBJECT (ffmpegdec,
"Buffer interlacing does not match pad, updating");
buffer = gst_buffer_make_metadata_writable (buffer);
@@ -3043,14 +3058,6 @@ gst_ffmpegdec_register (GstPlugin * plugin)
@@ -2205,15 +2205,6 @@ gst_ffmpegdec_audio_frame (GstFFMpegDec * ffmpegdec,
*outbuf = NULL;
}
- /* If we don't error out after the first failed read with the AAC decoder,
- * we must *not* carry on pushing data, else we'll cause segfaults... */
- if (len == -1 && (in_plugin->id == CODEC_ID_AAC
- || in_plugin->id == CODEC_ID_AAC_LATM)) {
- GST_ELEMENT_ERROR (ffmpegdec, STREAM, DECODE, (NULL),
- ("Decoding of AAC stream by FFMPEG failed."));
- *ret = GST_FLOW_ERROR;
- }
-
beach:
GST_DEBUG_OBJECT (ffmpegdec, "return flow %d, out %p, len %d",
*ret, *outbuf, len);
@@ -3043,14 +3049,6 @@ gst_ffmpegdec_register (GstPlugin * plugin)
rank = GST_RANK_SECONDARY;
break;
case CODEC_ID_MP3: