On Mon, Mar 25, 2013 at 07:52:23PM +0400, Vadim Zhukov wrote:
> This fixes playing AAC streams for me. Okay?
Care to share some explanation: you are removing a block that looks legitimate
at first glance.
> --
> WBR,
> Vadim Zhukov
>
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/multimedia/gstreamer-0.10/plugins-ffmpeg/Makefile,v
> retrieving revision 1.32
> diff -u -p -r1.32 Makefile
> --- Makefile 25 Mar 2013 12:31:58 -0000 1.32
> +++ Makefile 25 Mar 2013 15:50:17 -0000
> @@ -5,7 +5,7 @@ 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
> Index: patches/patch-ext_ffmpeg_gstffmpegdec_c
> ===================================================================
> RCS file:
> /cvs/ports/multimedia/gstreamer-0.10/plugins-ffmpeg/patches/patch-ext_ffmpeg_gstffmpegdec_c,v
> retrieving revision 1.4
> diff -u -p -r1.4 patch-ext_ffmpeg_gstffmpegdec_c
> --- patches/patch-ext_ffmpeg_gstffmpegdec_c 3 Mar 2012 10:33:42 -0000
> 1.4
> +++ patches/patch-ext_ffmpeg_gstffmpegdec_c 25 Mar 2013 15:50:17 -0000
> @@ -5,6 +5,7 @@ From upstream:
> - Give the (E)AC3/DTS decoders a rank of marginal.
> - Only set get_buffer() function for video.
> - Only slice-threading.
> +- Ignore AAC errors.
>
> --- ext/ffmpeg/gstffmpegdec.c.orig Wed Nov 2 09:04:05 2011
> +++ ext/ffmpeg/gstffmpegdec.c Fri Mar 2 17:23:48 2012
> @@ -120,7 +121,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:
--
Antoine