SNES music on mopidy


#1

Hello,

I have a question regarding .spc and .rsn file formats. I cannot add them to local using mopidy.

WARNING Failed local:track:SPC/Terranigma/ts-s04.spc: Track shorter than 100ms

WARNING Failed local:track:SPC/spcsets/zzc.rsn: No audio found in file.

Some music players don’t support rsn as it’s in fact a rar file with SPCs inside. However SPC format is supported by Gstreamer Bad Plugins.

Is there any way to reproduce these files with Mopidy?

Thanks!


#2

The latest gstreamer version (v1.0) may support these files but Pimusicbox doesn’t use this version. If you want to try that newer version you need to install mopidy from scratch yourself on the latest version Raspbian. There are step by step instructions at http://docs.mopidy.com. You won’t have any of the other pimusicbox features in that case but they too can be installed manually as you need them. It’s just more work.


#3

Hello,

Thanks for your reply. I’m using Ubuntu 18.04 with gstreamer1.0 already, sorry for not specifiying!

Thanks for your support.


#4

Oh! Apologies, that’s my mistake I thought this was in the pimusicbox subforum.

You should double check you have all the gstreamer plugins installed:

sudo apt-get install gstreamer1.0-plugins-{good,bad,ugly}

Then you can try these gstreamer commands directly:

gst-discoverer-1.0 /path/to/your/file.rsn -v

gst-launch-1.0 playbin uri=file:///path/to/your/file.rsn

I am afraid if streamer 1.0 doesn’t understand these files then there’s nothing we can do other than then looking/reporting on the gstreamer mailing list.


#5

gst-discoverer-1.0 spcsets/temu.rsn -v

Analyzing file:///home/Music/SPC/spcsets/temu.rsn
Done discovering file:///home/Music/SPC/spcsets/temu.rsn
Missing plugins
(gstreamer|1.0|gst-discoverer-1.0|application/x-rar decoder|decoder-application/x-rar)

Nope. It doesn’t support them:

Setting pipeline to PAUSED …
Pipeline is PREROLLING …
Missing element: application/x-rar decoder
WARNING: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: No decoder available for type ‘application/x-rar’.
Additional debug info:
gsturidecodebin.c(921): unknown_type_cb (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0
ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: Your GStreamer installation is missing a plug-in.
Additional debug info:
gsturidecodebin.c(988): no_more_pads_full (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0:
no suitable plugins found:
gstdecodebin2.c(4640): gst_decode_bin_expose (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0:
no suitable plugins found:
Missing decoder: application/x-rar (application/x-rar)

But no problem, it’s just a rar full of SPCs.

As for SPC:

Analyzing file:///home/Music/SPC/Terranigma/ts-01.spc
Done discovering file:///home/Music/SPC/Terranigma/ts-01.spc

Topology:
audio: audio/x-spc
Tags:
title: Origins
artist: Miyoko Kobayashi, Masanori Hikichi
album: Terranigma
comment: Prologue
contact: kazamit
copyright: 1995 Quintet, Enix
encoder: Super Nintendo
duration: 79000000000

Codec:
  audio/x-spc
Additional info:
  None
Stream ID: 2e725b5e801eea1ccfd422bce89086b6f74669fce84a839d7193a5385fc0b580
Language: <unknown>
Channels: 2 (front-left, front-right)
Sample rate: 32000
Depth: 16
Bitrate: 0
Max bitrate: 0

Properties:
Duration: 0:01:19.000000000
Seekable: no
Live: no
Tags:
title: Origins
artist: Miyoko Kobayashi, Masanori Hikichi
album: Terranigma
comment: Prologue
contact: kazamit
copyright: 1995 Quintet, Enix
encoder: Super Nintendo
duration: 79000000000

And playing:>

gst-launch-1.0 playbin uri=file:///home/agutierrez/Music/SPC/Terranigma/ts-01.spc
Setting pipeline to PAUSED …
Pipeline is PREROLLING …
Redistribute latency…
Pipeline is PREROLLED …
Setting pipeline to PLAYING …
New clock: GstPulseSinkClock

This works well. Maybe there is an issue on retrieving the duration of the piece, as local scan claimed that the song was shorter than 100ms. It’s supposed to be tracked music, so it can be “infinite”. Is there any gstream command to get the length?

Thanks for your support :slight_smile:


#6

Hello,

An update: We’re able to play SPCs if we select it from the filesystem. The issue is in mopidy local scan for the library creation.


#7

Sorry I forgot to reply. The way Mopidy gets the duration is quite involved and I think some of that is due to work-arounds that handle gstreamer quirks in some formats. If you could scan just the one file with TRACE level logging (-vvvv) but it’ll probably take a bit of work to figure it out. The command suggested here might also be interesting.
I think it’s reasonable to open an issue on the github bug tracker describing this problem.


#8

Sorry for the delay. The log with -vvvv:

INFO 2018-06-13 18:55:37,972 [8561:MainThread] mopidy.main
Starting Mopidy 2.1.0
DEBUG 2018-06-13 18:55:37,979 [8561:MainThread] mopidy.ext
Loading entry point: spotify = mopidy_spotify:Extension
DEBUG 2018-06-13 18:55:37,979 [8561:MainThread] mopidy.ext
Loaded extension: Mopidy-Spotify 3.1.0
DEBUG 2018-06-13 18:55:37,987 [8561:MainThread] mopidy.ext
Loading entry point: mpd = mopidy.mpd:Extension
DEBUG 2018-06-13 18:55:37,987 [8561:MainThread] mopidy.ext
Loaded extension: Mopidy-MPD 2.1.0
DEBUG 2018-06-13 18:55:37,988 [8561:MainThread] mopidy.ext
Loading entry point: http = mopidy.http:Extension
DEBUG 2018-06-13 18:55:37,988 [8561:MainThread] mopidy.ext
Loaded extension: Mopidy-HTTP 2.1.0
DEBUG 2018-06-13 18:55:37,988 [8561:MainThread] mopidy.ext
Loading entry point: stream = mopidy.stream:Extension
DEBUG 2018-06-13 18:55:37,988 [8561:MainThread] mopidy.ext
Loaded extension: Mopidy-Stream 2.1.0
DEBUG 2018-06-13 18:55:37,988 [8561:MainThread] mopidy.ext
Loading entry point: m3u = mopidy.m3u:Extension
DEBUG 2018-06-13 18:55:37,988 [8561:MainThread] mopidy.ext
Loaded extension: Mopidy-M3U 2.1.0
DEBUG 2018-06-13 18:55:37,988 [8561:MainThread] mopidy.ext
Loading entry point: softwaremixer = mopidy.softwaremixer:Extension
DEBUG 2018-06-13 18:55:37,988 [8561:MainThread] mopidy.ext
Loaded extension: Mopidy-SoftwareMixer 2.1.0
DEBUG 2018-06-13 18:55:37,988 [8561:MainThread] mopidy.ext
Loading entry point: file = mopidy.file:Extension
DEBUG 2018-06-13 18:55:37,988 [8561:MainThread] mopidy.ext
Loaded extension: Mopidy-File 2.1.0
DEBUG 2018-06-13 18:55:37,988 [8561:MainThread] mopidy.ext
Loading entry point: local = mopidy.local:Extension
DEBUG 2018-06-13 18:55:37,990 [8561:MainThread] mopidy.ext
Loaded extension: Mopidy-Local 2.1.0
DEBUG 2018-06-13 18:55:37,990 [8561:MainThread] mopidy.ext
Loading entry point: youtube = mopidy_youtube:Extension
DEBUG 2018-06-13 18:55:37,990 [8561:MainThread] mopidy.ext
Loaded extension: Mopidy-Youtube 2.0.0
DEBUG 2018-06-13 18:55:37,990 [8561:MainThread] mopidy.ext
Loading entry point: mpris = mopidy_mpris:Extension
DEBUG 2018-06-13 18:55:37,991 [8561:MainThread] mopidy.ext
Loaded extension: Mopidy-MPRIS 1.3.1
DEBUG 2018-06-13 18:55:37,991 [8561:MainThread] mopidy.ext
Loading entry point: local-sqlite = mopidy_local_sqlite:Extension
DEBUG 2018-06-13 18:55:37,991 [8561:MainThread] mopidy.ext
Loaded extension: Mopidy-Local-SQLite 1.0.0
DEBUG 2018-06-13 18:55:37,992 [8561:MainThread] mopidy.ext
Discovered extensions: spotify, mpd, http, stream, m3u, softwaremixer, file, local, youtube, mpris, local-sqlite
INFO 2018-06-13 18:55:37,996 [8561:MainThread] mopidy.config
Loading config from builtin defaults
DEBUG 2018-06-13 18:55:37,998 [8561:MainThread] mopidy.config
Loading config from /etc/xdg/xdg-i3/mopidy/mopidy.conf failed; it does not exist
DEBUG 2018-06-13 18:55:37,998 [8561:MainThread] mopidy.config
Loading config from /etc/xdg/mopidy/mopidy.conf failed; it does not exist
INFO 2018-06-13 18:55:37,998 [8561:MainThread] mopidy.config
Loading config from /home/agutierrez/.config/mopidy/mopidy.conf
INFO 2018-06-13 18:55:37,999 [8561:MainThread] mopidy.config
Loading config from command line options
DEBUG 2018-06-13 18:55:38,000 [8561:MainThread] mopidy.config
Ignoring unknown config section: iris
DEBUG 2018-06-13 18:55:38,000 [8561:MainThread] mopidy.config
Ignoring unknown config section: musicbox_webclient
DEBUG 2018-06-13 18:55:38,000 [8561:MainThread] mopidy.config
Ignoring unknown config section: local-images
DEBUG 2018-06-13 18:55:38,000 [8561:MainThread] mopidy.config
Ignoring unknown config section: spotify_web
DEBUG 2018-06-13 18:55:38,001 [8561:MainThread] mopidy.ext
Validating extension: spotify
DEBUG 2018-06-13 18:55:38,026 [8561:MainThread] mopidy.ext
Validating extension: mpd
DEBUG 2018-06-13 18:55:38,026 [8561:MainThread] mopidy.ext
Validating extension: http
DEBUG 2018-06-13 18:55:38,046 [8561:MainThread] mopidy.ext
Validating extension: stream
DEBUG 2018-06-13 18:55:38,046 [8561:MainThread] mopidy.ext
Validating extension: m3u
DEBUG 2018-06-13 18:55:38,046 [8561:MainThread] mopidy.ext
Validating extension: softwaremixer
DEBUG 2018-06-13 18:55:38,046 [8561:MainThread] mopidy.ext
Validating extension: file
DEBUG 2018-06-13 18:55:38,046 [8561:MainThread] mopidy.ext
Validating extension: local
DEBUG 2018-06-13 18:55:38,046 [8561:MainThread] mopidy.ext
Validating extension: youtube
INFO 2018-06-13 18:55:38,102 [8561:MainThread] mopidy.ext
Disabled extension youtube: Dependency The ‘pafy>=0.3.35’ distribution was not found and is required by the application not found
DEBUG 2018-06-13 18:55:38,102 [8561:MainThread] mopidy.ext
Validating extension: mpris
DEBUG 2018-06-13 18:55:38,103 [8561:MainThread] mopidy.ext
Validating extension: local-sqlite
INFO 2018-06-13 18:55:38,106 [8561:MainThread] mopidy.main
Enabled extensions: spotify, mpd, stream, m3u, mpris, softwaremixer, file, local, local-sqlite
INFO 2018-06-13 18:55:38,106 [8561:MainThread] mopidy.main
Disabled extensions: youtube, http
DEBUG 2018-06-13 18:55:38,218 [8561:MainThread] mopidy_mpris.frontend
Startup notification will not be sent
DEBUG 2018-06-13 18:55:38,222 [8561:MainThread] mopidy.local.commands
Using sqlite as the local library
INFO 2018-06-13 18:55:38,225 [8561:MainThread] mopidy.local.commands
Found 2 files in media_dir.
DEBUG 2018-06-13 18:55:38,225 [8561:MainThread] mopidy_local_sqlite.library
Using SQLite database schema v6
INFO 2018-06-13 18:55:38,226 [8561:MainThread] mopidy.local.commands
Checking 0 tracks from library.
INFO 2018-06-13 18:55:38,226 [8561:MainThread] mopidy.local.commands
Removing 0 missing tracks.
DEBUG 2018-06-13 18:55:38,226 [8561:MainThread] mopidy.local.commands
Skipped local:track:scan.txt: File extension excluded.
INFO 2018-06-13 18:55:38,226 [8561:MainThread] mopidy.local.commands
Found 1 tracks which need to be updated.
INFO 2018-06-13 18:55:38,226 [8561:MainThread] mopidy.local.commands
Scanning…
TRACE 2018-06-13 18:55:38,234 [8561:MainThread] mopidy.audio.scan
element decodebin0: have-audio;
TRACE 2018-06-13 18:55:38,235 [8561:MainThread] mopidy.audio.scan
element pipeline0: GstMessageAsyncDone, running-time=(guint64)18446744073709551615;
WARNING 2018-06-13 18:55:38,236 [8561:MainThread] mopidy.local.commands
Failed local:track:102%20Chrono%20Trigger.spc: Track shorter than 100ms
INFO 2018-06-13 18:55:38,236 [8561:MainThread] mopidy.local.commands
Scanned 1 of 1 files in 0s.
INFO 2018-06-13 18:55:38,248 [8561:MainThread] mopidy.local.commands
Done Scanning.

About the command:

Setting pipeline to PAUSED …
Pipeline is PREROLLING …
Got message #7 from element “fakesink0” (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #8 from element “mpegaudioparse0” (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #9 from element “filesrc0” (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #10 from element “pipeline0” (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_PAUSED;
Got message #15 from pad “mpegaudioparse0:sink” (stream-status): GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_CREATE, owner=(GstElement)"(GstMpegAudioParse)\ mpegaudioparse0", object=(GstTask)"(GstTask)\ mpegaudioparse0:sink";
Got message #16 from element “mpegaudioparse0” (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #17 from element “filesrc0” (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #18 from pad “mpegaudioparse0:sink” (stream-status): GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_ENTER, owner=(GstElement)"(GstMpegAudioParse)\ mpegaudioparse0", object=(GstTask)"(GstTask)\ mpegaudioparse0:sink";
Got message #20 from element “fakesink0” (property-notify): GstMessagePropertyNotify, property-name=(string)last-message, property-value=(string)“event\ \ \ *******\ (fakesink0:sink)\ E\ (type:\ stream-start\ (10254),\ GstEventStreamStart,\ stream-id=(string)b10700651f6fbbd69499ab4d18f1246ac292a8d64bb6842a4a61c17ba538773c,\ flags=(GstStreamFlags)GST_STREAM_FLAG_NONE,\ group-id=(uint)1;)\ 0x55cb4bf6adf0”;
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event ******* (fakesink0:sink) E (type: stream-start (10254), GstEventStreamStart, stream-id=(string)b10700651f6fbbd69499ab4d18f1246ac292a8d64bb6842a4a61c17ba538773c, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;) 0x55cb4bf6adf0
Got message #19 from element “pipeline0” (stream-start): GstMessageStreamStart, group-id=(uint)1;
Got message #24 from pad “mpegaudioparse0:src” (property-notify): GstMessagePropertyNotify, property-name=(string)caps, property-value=(GstCaps)“audio/mpeg,\ mpegversion=(int)1,\ mpegaudioversion=(int)1,\ layer=(int)1,\ rate=(int)44100,\ channels=(int)2,\ parsed=(boolean)true”;
/GstPipeline:pipeline0/GstMpegAudioParse:mpegaudioparse0.GstPad:src: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)1, rate=(int)44100, channels=(int)2, parsed=(boolean)true
Got message #25 from element “fakesink0” (property-notify): GstMessagePropertyNotify, property-name=(string)last-message, property-value=(string)“event\ \ \ *******\ (fakesink0:sink)\ E\ (type:\ caps\ (12814),\ GstEventCaps,\ caps=(GstCaps)“audio/mpeg\,\\ mpegversion\=\(int\)1\,\\ mpegaudioversion\=\(int\)1\,\\ layer\=\(int\)1\,\\ rate\=\(int\)44100\,\\ channels\=\(int\)2\,\\ parsed\=\(boolean\)true”;)\ 0x55cb4bf6ae60”;
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event ******* (fakesink0:sink) E (type: caps (12814), GstEventCaps, caps=(GstCaps)“audio/mpeg,\ mpegversion=(int)1,\ mpegaudioversion=(int)1,\ layer=(int)1,\ rate=(int)44100,\ channels=(int)2,\ parsed=(boolean)true”:wink: 0x55cb4bf6ae60
Got message #26 from pad “fakesink0:sink” (property-notify): GstMessagePropertyNotify, property-name=(string)caps, property-value=(GstCaps)“audio/mpeg,\ mpegversion=(int)1,\ mpegaudioversion=(int)1,\ layer=(int)1,\ rate=(int)44100,\ channels=(int)2,\ parsed=(boolean)true”;
/GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)1, rate=(int)44100, channels=(int)2, parsed=(boolean)true
Got message #27 from element “fakesink0” (property-notify): GstMessagePropertyNotify, property-name=(string)last-message, property-value=(string)“event\ \ \ *******\ (fakesink0:sink)\ E\ (type:\ segment\ (17934),\ 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;”;)\ 0x55cb4bf6ad10”;
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event ******* (fakesink0:sink) E (type: segment (17934), 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;”:wink: 0x55cb4bf6ad10
Got message #29 from element “fakesink0” (property-notify): GstMessagePropertyNotify, property-name=(string)last-message, property-value=(string)“event\ \ \ *******\ (fakesink0:sink)\ E\ (type:\ tag\ (20510),\ GstTagList-stream,\ taglist=(taglist)“taglist\,\\ has-crc\=\(boolean\)false\,\\ channel-mode\=\(string\)stereo\,\\ audio-codec\=\(string\)\“MPEG-1\\\\ Layer\\\\ 1\\\\ \\\(MP1\\\)\”\,\\ nominal-bitrate\=\(uint\)84000\;”;)\ 0x55cb4bf6aed0”;
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event ******* (fakesink0:sink) E (type: tag (20510), GstTagList-stream, taglist=(taglist)“taglist,\ has-crc=(boolean)false,\ channel-mode=(string)stereo,\ audio-codec=(string)“MPEG-1\\ Layer\\ 1\\ \(MP1\)”,\ nominal-bitrate=(uint)84000;”:wink: 0x55cb4bf6aed0
Got message #30 from element “fakesink0” (tag): GstMessageTag, taglist=(taglist)“taglist,\ has-crc=(boolean)false,\ channel-mode=(string)stereo,\ audio-codec=(string)“MPEG-1\\ Layer\\ 1\\ \(MP1\)”,\ nominal-bitrate=(uint)84000;”;
Got message #31 from element “fakesink0” (property-notify): GstMessagePropertyNotify, property-name=(string)last-message, property-value=(string)“preroll\ \ \ *******\ “;
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = preroll *******
Got message #32 from element “fakesink0” (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #35 from element “pipeline0” (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Pipeline is PREROLLED …
Got message #34 from element “pipeline0” (async-done): GstMessageAsyncDone, running-time=(guint64)18446744073709551615;
Setting pipeline to PLAYING …
Got message #36 from element “pipeline0” (new-clock): GstMessageNewClock, clock=(GstClock)”(GstSystemClock)\ GstSystemClock”;
New clock: GstSystemClock
Got message #38 from element “fakesink0” (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #39 from element “mpegaudioparse0” (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #40 from element “filesrc0” (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #41 from element “pipeline0” (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #42 from element “fakesink0” (property-notify): GstMessagePropertyNotify, property-name=(string)last-message, property-value=(string)“chain\ \ \ *******\ (fakesink0:sink)\ (88\ bytes,\ dts:\ 0:00:00.000000000,\ pts:\ 0:00:00.000000000,\ duration:\ 0:00:00.008707482,\ offset:\ 614,\ offset_end:\ 66144,\ flags:\ 00000040\ discont\ ,\ meta:\ none)\ 0x7f1e9c0170a0”;
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (88 bytes, dts: 0:00:00.000000000, pts: 0:00:00.000000000, duration: 0:00:00.008707482, offset: 614, offset_end: 66144, flags: 00000040 discont , meta: none) 0x7f1e9c0170a0
Got message #43 from element “fakesink0” (property-notify): GstMessagePropertyNotify, property-name=(string)last-message, property-value=(string)“chain\ \ \ *******\ (fakesink0:sink)\ (88\ bytes,\ dts:\ 0:00:00.008707482,\ pts:\ 0:00:00.008707482,\ duration:\ 0:00:00.008707482,\ offset:\ 702,\ offset_end:\ 66144,\ flags:\ 00000000\ ,\ meta:\ none)\ 0x7f1e9c0174e0”;
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (88 bytes, dts: 0:00:00.008707482, pts: 0:00:00.008707482, duration: 0:00:00.008707482, offset: 702, offset_end: 66144, flags: 00000000 , meta: none) 0x7f1e9c0174e0
Got message #44 from element “mpegaudioparse0” (duration-changed): GstMessageDurationChanged;
Got message #46 from element “fakesink0” (property-notify): GstMessagePropertyNotify, property-name=(string)last-message, property-value=(string)“event\ \ \ *******\ (fakesink0:sink)\ E\ (type:\ eos\ (28174),\ )\ 0x55cb4bf6af40”;
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event ******* (fakesink0:sink) E (type: eos (28174), ) 0x55cb4bf6af40
Got message #45 from element “pipeline0” (eos): no message details
Got EOS from element “pipeline0”.
Execution ended after 0:00:00.000292305
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Freeing pipeline …

Highlight on:

duration=(guint64)18446744073709551615;
duration: 0:00:00.008707482

It seems that the duration is not correctly defined by gstreamer, right?