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 732682 - gst-libav not declaring support for mpc sv8
gst-libav not declaring support for mpc sv8
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-libav
1.2.4
Other Linux
: Normal normal
: 1.5.90
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-07-03 12:25 UTC by Alex Domingo
Modified: 2015-08-16 13:40 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Enable Musepack SV8 for gstreamer-libav (1.29 KB, patch)
2015-04-02 03:10 UTC, James
committed Details | Review

Description Alex Domingo 2014-07-03 12:25:35 UTC
Gstreamer-1.2.4 using gst-libav-1.2.4 is not capable of playing Musepack - SV8 MPC audio files.


Steps to Reproduce:

- Install libav version 9.13.
- Check that it is capable of playing an mpc-sv8 audio file on itself.
- Install gstreamer-1.2.4 and gst-libav-1.2.4
- Try to play an mpc-sv8 file using a gstreamer pipe with playbin
- Try to play an mpc-sv8 file using a gstreamer pipe with avdemux_mpc and avdec_mpc8


Actual Results:

- libav is capable of playing the mpc-sv8 files

$ avplay test.mpc

avplay version 9.13, Copyright (c) 2003-2014 the Libav developers
  built on Jun 23 2014 15:59:54 with gcc 4.7.3 (Gentoo 4.7.3-r1 p1.4, pie-0.5.5)
[mpc8 @ 0x7fc66c005d00] max_analyze_duration reached
Input #0, mpc8, from 'test.mpc':
  Metadata:
    Track           : 1/6
    Year            : Some year
    Artist          : Some artist
    Album           : Some album
    Title           : Some title
    Replaygain_Album_Gain: -9.13 dB
    Replaygain_Track_Gain: -9.13 dB
    Replaygain_Track_Peak: 1.17095732284
    Replaygain_Album_Peak: 1.17095732284
  Duration: 00:03:24.28, start: 0.000000, bitrate: 209 kb/s
    Stream #0.0: Audio: mpc8, 48000 Hz, stereo, s16p
   1.93 A-V:  0.000 s:0.0 aq=  326KB vq=    0KB sq=    0B f=0/0 


- However, a gstreamer pipe with playbin fails with that same file. It complains about "missing components", which is not the case as gst-inspect reports avdemux_mpc, avdec_mpc7 and avdec_mpc8 from gst-libav being available:

 $ GST_DEBUG=3  gst-launch-1.0 playbin uri=file:///home/user/test.mpc

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
0:00:00.026272692 20864 0x7fa1740c28a0 WARN            uridecodebin /var/tmp/portage/media-libs/gst-plugins-base-1.2.4-r1/work/gst-plugins-base-1.2.4/gst/playback/gsturidecodebin.c:930:unknown_type_cb:<uridecodebin0> warning: No decoder available for type 'audio/x-musepack, streamversion=(int)8'.
Missing element: Musepack (MPC) decoder

[...]

ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
0:00:00.026548190 20864 0x7fa1740c28a0 WARN                tagdemux /var/tmp/portage/media-libs/gst-plugins-base-1.2.4-r1/work/gst-plugins-base-1.2.4/gst-libs/gst/tag/gsttagdemux.c:1469:gst_tag_demux_element_loop:<apedemux0> error: Stream stopped, reason not-linked
Freeing pipeline ...


- Moreover, specifying the components of the gstreamer pipe does not help either. But in this case the error message says that the file is not a musepack file, which is not correct as libav can play that file without problems:

 $ GST_DEBUG=3 gst-launch-1.0 filesrc location=test.mpc ! avdemux_mpc ! avdec_mpc8 ! pulsesink

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
0:00:00.021242177 21036      0x242d540 ERROR                  libav :0:: Not a Musepack file
0:00:00.021272825 21036      0x242d540 WARN                   libav /var/tmp/portage/media-plugins/gst-plugins-libav-1.2.4/work/gst-libav-1.2.4/ext/libav/gstavdemux.c:1284:gst_ffmpegdemux_open:<avdemux_mpc0> error: Unhandled error code received
0:00:00.021306520 21036      0x242d540 WARN                   libav /var/tmp/portage/media-plugins/gst-plugins-libav-1.2.4/work/gst-libav-1.2.4/ext/libav/gstavdemux.c:1546:gst_ffmpegdemux_loop:<avdemux_mpc0> error: Internal data stream error.
0:00:00.021313429 21036      0x242d540 WARN                   libav /var/tmp/portage/media-plugins/gst-plugins-libav-1.2.4/work/gst-libav-1.2.4/ext/libav/gstavdemux.c:1546:gst_ffmpegdemux_loop:<avdemux_mpc0> error: streaming stopped, reason error
ERROR: from element /GstPipeline:pipeline0/avdemux_mpc:avdemux_mpc0: GStreamer encountered a general supporting library error.
Additional debug info:
/var/tmp/portage/media-plugins/gst-plugins-libav-1.2.4/work/gst-libav-1.2.4/ext/libav/gstavdemux.c(1284): gst_ffmpegdemux_open (): /GstPipeline:pipeline0/avdemux_mpc:avdemux_mpc0:
Unhandled error code received
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...


Expected Results:

- gstreamer should be capable of using the capabilities of libav to demux and decode mpc-sv8 files.


Additional Information:

- A Gentoo dev said that the bug seems to be placed in avdemux_mpc, which does not declare any support for mpc sv8.
Comment 1 Sebastian Dröge (slomo) 2014-07-03 12:41:13 UTC
I can confirm that with the sample files here: http://samples.mplayerhq.hu/A-codecs/musepack/sv8/


Just adding streamversion=8 to avdemux_mpc does not make it work. avdemux_mpc can't read the file, claims it's not a musepack file at all. So not sure how this is supposed to work with libav. Needs some investigation
Comment 2 James 2015-04-02 03:10:47 UTC
Created attachment 300785 [details] [review]
Enable Musepack SV8 for gstreamer-libav

This patch adds sv8 playback. sv7 playback remains unaffected.
Comment 3 Christoph Reiter (lazka) 2015-07-22 06:54:20 UTC
I can confirm that this makes sv8 work on current master.

Can this be pushed?
Comment 4 Tim-Philipp Müller 2015-07-22 08:46:30 UTC
Sure, thanks for the patch:

commit f92bf2618c84eed35204ee0a59bb3c5b6aa05f18
Author: James Smith <smithjd15@gmail.com>
Date:   Wed Jul 22 09:44:27 2015 +0100

    Add support for musepack (mpc) sv8 audio
    
    https://bugzilla.gnome.org/show_bug.cgi?id=732682



Please provide patches in 'git format-patch' format next time, that makes things easier for us, thanks!