After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 766215 - flacenc crashes, GST 1.8.1, Windows 32-bit
flacenc crashes, GST 1.8.1, Windows 32-bit
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: cerbero
1.8.1
Other Windows
: Normal blocker
: 1.8.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-05-10 10:13 UTC by Andy Robinson
Modified: 2016-05-20 06:00 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Fix flacenc segfault by patching libFLAC in Cerbero (3.19 KB, patch)
2016-05-19 22:25 UTC, Nirbheek Chauhan
committed Details | Review

Description Andy Robinson 2016-05-10 10:13:27 UTC
flacenc on 32 bit Windows seems to crash whatever you do with it - Sebastian says:

> I'm mostly testing things with the 64 bit build, and there flacenc
> still works. But I can confirm that it crashes with the 32 bit build.
> It crashes inside FLAC__lpc_compute_lp_coefficients() inside libFLAC-
8.dll btw. It might be a similar problem to
  https://bugzilla.gnome.org/show_bug.cgi?id=763663

Here is a log which I include inline as it's not that long:

C:\Users\Andy>set GST_DEBUG=3,flacenc:6

C:\Users\Andy>C:\gstreamer\1.0\x86\bin\gst-launch-1.0 audiotestsrc ! flacenc ! filesink location=out.flac
0:00:00.091221349  3916   02594160 DEBUG                flacenc gstflacenc.c:1277:gst_flac_enc_sink_query: Received caps query on sinkpad, caps query: 02593060, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
0:00:00.121009514  3916   02594160 DEBUG                flacenc gstflacenc.c:774:gst_flac_enc_getcaps:<flacenc0:sink> Return caps audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)1; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)2, channel-mask=(bitmask)0x0000000000000003; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)3, channel-mask=(bitmask)0x0000000000000007; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)4, channel-mask=(bitmask)0x0000000000000033; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)5, channel-mask=(bitmask)0x0000000000000037; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)6, channel-mask=(bitmask)0x000000000000003f; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)7, channel-mask=(bitmask)0x000000000000013f; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)8, channel-mask=(bitmask)0x0000000000000c3f
0:00:00.326842765  3916   02594160 DEBUG                flacenc gstflacenc.c:1277:gst_flac_enc_sink_query: Received caps query on sinkpad, caps query: 025930F0, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
0:00:00.351173350  3916   02594160 DEBUG                flacenc gstflacenc.c:774:gst_flac_enc_getcaps:<flacenc0:sink> Return caps audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)1; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)2, channel-mask=(bitmask)0x0000000000000003; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)3, channel-mask=(bitmask)0x0000000000000007; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)4, channel-mask=(bitmask)0x0000000000000033; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)5, channel-mask=(bitmask)0x0000000000000037; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)6, channel-mask=(bitmask)0x000000000000003f; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)7, channel-mask=(bitmask)0x000000000000013f; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)8, channel-mask=(bitmask)0x0000000000000c3f
Setting pipeline to PAUSED ...
0:00:00.565477131  3916   02594160 DEBUG                flacenc gstflacenc.c:395:gst_flac_enc_start:<flacenc0> start
Pipeline is PREROLLING ...0:00:00.5791270
53  3916   025584F0 FIXME                default gstutils.c:3764:gst_pad_create_stream_id_internal:<audiotestsrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.608211048  3916   025584F0 DEBUG                flacenc gstflacenc.c:1229:gst_flac_enc_sink_event: Received stream-start event on sinkpad, stream-start event: 018E6338, time 99:99:99.999999999, seq-num 17, GstEventStreamStart, stream-id=(string)b130cbc73cde7e6dc2e25baf013a4c05, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)0;
0:00:00.651319066  3916   025584F0 DEBUG                flacenc gstflacenc.c:1277:gst_flac_enc_sink_query: Received caps query on sinkpad, caps query: 02593390, GstQueryCaps, filter=(GstCaps)"audio/x-raw\,\ format\=\(string\)\{\ S16LE\,\ S16BE\,\ U16LE\,\ U16BE\,\ S24_32LE\,\ S24_32BE\,\ U24_32LE\,\ U24_32BE\,\ S32LE\,\ S32BE\,\ U32LE\,\ U32BE\,\ S24LE\,\ S24BE\,\ U24LE\,\ U24BE\,\ S20LE\,\ S20BE\,\ U20LE\,\ U20BE\,\ S18LE\,\ S18BE\,\ U18LE\,\ U18BE\,\ F32LE\,\ F32BE\,\ F64LE\,\ F64BE\,\ S8\,\ U8\ \}\,\ layout\=\(string\)interleaved\,\ rate\=\(int\)\[\ 1\,\ 2147483647\ \]\,\ channels\=\(int\)\[\ 1\,\ 2147483647\ \]", caps=(GstCaps)"NULL";
0:00:00.734725245  3916   025584F0 DEBUG                flacenc gstflacenc.c:774:gst_flac_enc_getcaps:<flacenc0:sink> Return caps audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)1; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)2, channel-mask=(bitmask)0x0000000000000003; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)3, channel-mask=(bitmask)0x0000000000000007; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)4, channel-mask=(bitmask)0x0000000000000033; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)5, channel-mask=(bitmask)0x0000000000000037; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)6, channel-mask=(bitmask)0x000000000000003f; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)7, channel-mask=(bitmask)0x000000000000013f; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)8, channel-mask=(bitmask)0x0000000000000c3f
0:00:00.907603440  3916   025584F0 DEBUG                flacenc gstflacenc.c:1277:gst_flac_enc_sink_query: Received accept-caps query on sinkpad, accept-caps query: 025933F0, GstQueryAcceptCaps, caps=(GstCaps)"audio/x-raw\,\ rate\=\(int\)44100\,\ channels\=\(int\)1\,\ format\=\(string\)S8\,\ layout\=\(string\)interleaved", result=(boolean)false;
0:00:00.943318177  3916   025584F0 DEBUG                flacenc gstflacenc.c:1229:gst_flac_enc_sink_event: Received caps event on sinkpad, caps event: 018E6380, time 99:99:99.999999999, seq-num 20, GstEventCaps, caps=(GstCaps)"audio/x-raw\,\ rate\=\(int\)44100\,\ channels\=\(int\)1\,\ format\=\(string\)S8\,\ layout\=\(string\)interleaved";
0:00:00.977901393  3916   025584F0 DEBUG                flacenc gstflacenc.c:1277:gst_flac_enc_sink_query: Received allocation query on sinkpad, allocation query: 02593420, GstQueryAllocation, caps=(GstCaps)"audio/x-raw\,\ rate\=\(int\)44100\,\ channels\=\(int\)1\,\ format\=\(string\)S8\,\ layout\=\(string\)interleaved", need-pool=(boolean)true;
0:00:01.013981698  3916   025584F0 DEBUG                flacenc gstflacenc.c:1229:gst_flac_enc_sink_event: Received segment event on sinkpad, segment event: 018E6410, time 99:99:99.999999999, seq-num 13, GstEventSegment, segment=(GstSegment)"GstSegment, flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1, applied-rate=(double)1, format=(GstFormat)GST_FORMAT_TIME, base=(guint64)0, offset=(guint64)0, start=(guint64)0, stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)0, duration=(guint64)18446744073709551615;";
0:00:01.072455180  3916   025584F0 DEBUG                flacenc gstflacenc.c:1229:gst_flac_enc_sink_event: Received tag event on sinkpad, tag event: 018E63C8, time 99:99:99.999999999, seq-num 21, GstTagList-stream, taglist=(taglist)"taglist\,\ description\=\(string\)\"audiotest\\\ wave\"\;";
0:00:01.100397073  3916   025584F0 DEBUG                flacenc gstflacenc.c:789:gst_flac_enc_peer_query_total_samples:<flacenc0> querying peer for DEFAULT format duration
0:00:01.116122985  3916   025584F0 DEBUG                flacenc gstflacenc.c:794:gst_flac_enc_peer_query_total_samples:<flacenc0> querying peer for TIME format duration
0:00:01.131003073  3916   025584F0 DEBUG                flacenc gstflacenc.c:805:gst_flac_enc_peer_query_total_samples:<flacenc0> Upstream reported no total samples
0:00:01.145235993  3916   025584F0 WARN                 flacenc gstflacenc.c:695:gst_flac_enc_set_metadata:<flacenc0> total time unknown; can not add seekpoints
0:00:01.158852464  3916   025584F0 DEBUG                flacenc gstflacenc.c:1143:gst_flac_enc_write_callback:<flacenc0> Got header, queueing (4 bytes)
0:00:01.171467122  3916   025584F0 DEBUG                flacenc gstflacenc.c:1143:gst_flac_enc_write_callback:<flacenc0> Got header, queueing (38 bytes)
0:00:01.184511178  3916   025584F0 DEBUG                flacenc gstflacenc.c:1143:gst_flac_enc_write_callback:<flacenc0> Got header, queueing (74 bytes)
0:00:01.198002039  3916   025584F0 LOG                  flacenc gstflacenc.c:1355:gst_flac_enc_handle_frame:<flacenc0> processing 1024 samples, 1 channels
0:00:01.211310969  3916   025584F0 LOG                  flacenc gstflacenc.c:1355:gst_flac_enc_handle_frame:<flacenc0> processing 1024 samples, 1 channels
0:00:01.224518523  3916   025584F0 LOG                  flacenc gstflacenc.c:1355:gst_flac_enc_handle_frame:<flacenc0> processing 1024 samples, 1 channels
0:00:01.237563262  3916   025584F0 LOG                  flacenc gstflacenc.c:1355:gst_flac_enc_handle_frame:<flacenc0> processing 1024 samples, 1 channels
0:00:01.250702891  3916   025584F0 LOG                  flacenc gstflacenc.c:1355:gst_flac_enc_handle_frame:<flacenc0> processing 1024 samples, 1 channels


Visual Studio says:
Unhandled exception at 0x6408FA72 (libFLAC-8.dll) in gst-launch-1.0.exe: 0xC0000005: Access violation reading location 0xFFFFFFFF.

And the call stack:
>	libFLAC-8.dll!6408fa72()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for libFLAC-8.dll]	
 	libFLAC-8.dll!640cee42()	Unknown
 	libFLAC-8.dll!640cfb12()	Unknown
 	libFLAC-8.dll!640d4128()	Unknown
 	libgstflac.dll!667044e2()	Unknown
 	libgstaudio-1.0-0.dll!64ba17c7()	Unknown
 	libgstaudio-1.0-0.dll!64ba283f()	Unknown
 	libgstreamer-1.0-0.dll!614841b1()	Unknown
 	libgstreamer-1.0-0.dll!61487bdd()	Unknown
 	libgstreamer-1.0-0.dll!614865e0()	Unknown
 	libgstreamer-1.0-0.dll!6147b757()	Unknown
 	libgstreamer-1.0-0.dll!614b9f3e()	Unknown
 	libglib-2.0-0.dll!68617338()	Unknown
 	libglib-2.0-0.dll!68616a8d()	Unknown
 	libglib-2.0-0.dll!68633aad()	Unknown
 	[External Code]
Comment 1 Nirbheek Chauhan 2016-05-19 22:25:02 UTC
Created attachment 328236 [details] [review]
Fix flacenc segfault by patching libFLAC in Cerbero

I found a couple of patches upstream that fixed this issue for me. The bug isn't on our end; libFLAC is buggy when you combine SSE, 32-bit MinGW, and (perhaps) our ancient Cerbero toolchain.
Comment 2 Sebastian Dröge (slomo) 2016-05-20 05:59:59 UTC
commit 122578b315c49f8e3fdf6689e2583763b937a77f
Author: Nirbheek Chauhan <nirbheek@centricular.com>
Date:   Fri May 20 03:50:19 2016 +0530

    flac: Fix segfault on 32-bit Windows with flacenc
    
    Patches are taken from upstream. Found by inspecting upstream commit logs.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=766215