[Bug 794280] New: wavpasrse: failed to parse an S24_LE wav file

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Mar 13 09:53:16 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=794280

            Bug ID: 794280
           Summary: wavpasrse: failed to parse an S24_LE wav file
    Classification: Platform
           Product: GStreamer
           Version: 1.12.x
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: lyon.wang at nxp.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Hi, 

When I was trying to playback and S24_LE wav file, wavparse return the
blockAlign is invalid and failed to play.

The log info as below:   (GST_DEBUG=wavparse:6)

# gst-launch-1.0 filesrc location=audio_l44k24b2c.wav  ! wavparse ! filesink
location=/tmp/tmp.pcm
Setting pipeline to PAUSED ...
0:00:00.112387035 30150     0x3679df30 DEBUG               wavparse
gstwavparse.c:2801:gst_wavparse_sink_activate:<wavparse0:sink> activating pull
Pipeline is PREROLLING ...
0:00:00.114615325 30150     0x36716370 LOG                 wavparse
gstwavparse.c:2164:gst_wavparse_loop:<wavparse0> process data
0:00:00.114734612 30150     0x36716370 INFO                wavparse
gstwavparse.c:2168:gst_wavparse_loop:<wavparse0> GST_WAVPARSE_START
0:00:00.114950385 30150     0x36716370 INFO                wavparse
gstwavparse.c:2183:gst_wavparse_loop:<wavparse0> GST_WAVPARSE_HEADER
0:00:00.115002708 30150     0x36716370 DEBUG               wavparse
gstwavparse.c:1138:gst_wavparse_stream_headers:<wavparse0> creating the caps
0:00:00.115099073 30150     0x36716370 WARN                wavparse
gstwavparse.c:1741:gst_wavparse_stream_headers:<wavparse0> error: Stream claims
blockalign = 8, which is more than 6 - invalid data
0:00:00.115211880 30150     0x36716370 DEBUG               wavparse
gstwavparse.c:2205:gst_wavparse_loop:<wavparse0> pausing task, reason error
0:00:00.115246322 30150     0x36716370 WARN                wavparse
gstwavparse.c:2249:gst_wavparse_loop:<wavparse0> error: Internal data stream
error.
0:00:00.115319046 30150     0x36716370 WARN                wavparse
gstwavparse.c:2249:gst_wavparse_loop:<wavparse0> error: streaming stopped,
reason error (-5)
ERROR: from element /GstPipeline:pipeline0/GstWavParse:wavparse0: GStreamer
encountered a general stream error.
Additional debug info:
../../../git/gst/wavparse/gstwavparse.c(1741): gst_wavparse_stream_headers ():
/GstPipeline:pipeline0/GstWavParse:wavparse0:
Stream claims blockalign = 8, which is more than 6 - invalid data
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
0:00:00.116234339 30150     0x3679df30 DEBUG               wavparse
gstwavparse.c:251:gst_wavparse_dispose:<wavparse0> WAV: Dispose


And I checked the wavparse:
        if (wav->blockalign > wav->channels * ((wav->depth + 7) / 8))
          goto invalid_blockalign;
however, for S24_LE format wav
suppose the depth is 24, and the width=32, and the blockAlign is 8 (for
2channels), so it is > 2*(24+7)/8, considered as invalid value.

I'm not sure whether the BlockAlign here is right or not,  or maybe my
understanding is not right, the blockAlign value is incorrectly encoded.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list