New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scanner doesn't work with Ogg Vorbis files #275

Closed
jodal opened this Issue Dec 12, 2012 · 5 comments

Comments

3 participants
@jodal
Member

jodal commented Dec 12, 2012

Example output from mopidy-scan -v when hitting an Ogg Vorbis file (with some additional line breaks):

WARNING  2012-12-12 14:35:32,622 [10717:MainThread] root
  Failed file:///home/jodal/media/music/_unsorted_compilations/Xs%20To%20The%20Ravezone/05._geronimo_-_the_milky_way.ogg:
  Your GStreamer installation is missing a plug-in.
DEBUG    2012-12-12 14:35:32,622 [10717:MainThread] root
  Debug info for file:///home/jodal/media/music/_unsorted_compilations/Xs%20To%20The%20Ravezone/05._geronimo_-_the_milky_way.ogg:
  gstdecodebin2.c(3576):
  gst_decode_bin_expose ():
  /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin23245:
  no suitable plugins found

The GStreamer installation does have Ogg and Vorbis support:

$ gst-inspect-0.10 | egrep 'ogg|vorbis'
vorbis:  vorbisenc: Vorbis audio encoder
vorbis:  vorbisdec: Vorbis audio decoder
vorbis:  vorbisparse: VorbisParse
vorbis:  vorbistag: VorbisTag
ffmpeg:  ffmux_ogg: FFmpeg Ogg muxer (not recommended, use oggmux instead)
ogg:  oggdemux: Ogg demuxer
ogg:  oggmux: Ogg muxer
ogg:  ogmaudioparse: OGM audio stream parser
ogg:  ogmvideoparse: OGM video stream parser
ogg:  ogmtextparse: OGM text stream parser
ogg:  oggparse: Ogg parser
ogg:  oggaviparse: Ogg AVI parser
rtp:  rtpvorbisdepay: RTP Vorbis depayloader
rtp:  rtpvorbispay: RTP Vorbis depayloader
typefindfunctions: application/x-id3v2: mp3, mp2, mp1, mpga, ogg, flac, tta
typefindfunctions: application/x-id3v1: mp3, mp2, mp1, mpga, ogg, flac, tta
typefindfunctions: application/ogg: anx, ogg, ogm
typefindfunctions: audio/x-vorbis: no extensions
typefindfunctions: application/x-ogg-skeleton: no extensions

gst-launch-0.10 with the -t flag is capable of reading the tags:

$ gst-launch -t playbin2 uri=file:///home/jodal/media/music/_unsorted_compilations/Xs%20To%20The%20Ravezone
/05._geronimo_-_the_milky_way.ogg
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
FOUND TAG      : found by element "oggdemux0".
container format: Ogg
FOUND TAG      : found by element "oggdemux0".
           title: The Milky Way
          artist: Geronimo
           album: XS To The Ravezone
         encoder: Xiphophorus libVorbis I 20010813
 encoder version: 0
 nominal bitrate: 160000
         bitrate: 160000
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
FOUND TAG      : found by element "vorbisdec0".
FOUND TAG      : found by element "vorbisdec0".
           title: The Milky Way
          artist: Geronimo
           album: XS To The Ravezone
         encoder: Xiphophorus libVorbis I 20010813
 encoder version: 0
     audio codec: Vorbis
 nominal bitrate: 160000
         bitrate: 160000
FOUND TAG      : found by element "vorbisdec0".
     audio codec: Vorbis
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
^CCaught interrupt -- handling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 6759868102 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
@boltronics

This comment has been minimized.

boltronics commented Jan 8, 2013

Confirming this behaviour.

@zdobersek

This comment has been minimized.

Contributor

zdobersek commented Mar 24, 2013

Can confirm.

Can bypass the problem if I comment out the audio/x-raw-int caps addition to the uridecodebin element in mopidy/scanner.py. Had only performed minimal and very limited testing with this change applied, but it seems that this still works for MP3 files and (due to the change itself) now for Ogg files as well when constructing the tag cache of local files.

@jodal

This comment has been minimized.

Member

jodal commented Mar 25, 2013

Thanks, that may be it! I've changed the milestone for this from 0.14 to 0.13, and will make sure to take a closer look at it during easter.

@zdobersek

This comment has been minimized.

Contributor

zdobersek commented Mar 25, 2013

I've already performed a pull request (#349) containing a simple fix that only covers this specific problem.

Removing the audio/x-raw-int caps altogether can cause arbitrary image files to be included in the tag cache (as covered by the existing tests). I've avoided that by expanding the caps to include the audio/x-raw-float structure as well which covers the Ogg format.

@jodal

This comment has been minimized.

Member

jodal commented Mar 30, 2013

Fixed by pull request #349 which is now in develop.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment