# upgrade gstreamer to support OPUS codec

Tracked by Jolla (In release)

please, upgrade gstreamer to version >= 1.0.6 in order to have OPUS audio decoder

update: 1 year later: still no gstreamer update -> no opus support in v1.1.2.16

update: still no opus in v1.1.4.29

update: still no opus in v1.1.9.28 (even though gstreamer has been updated)

update: opus files can now be read. Metadata handling needs Tracker update

edit retag close delete

1

Well, it would be great to have an opus encoder (recording voice, calls, XMPP,...) too. I guess it would be added at the same time, anyway.

( 2014-01-16 02:04:59 +0200 )edit

Opus works just fine with gst-0.10 in Sailfish, you just need to install a missing codec. As this is an official Jolla site I better not link to anything here but you don't need to look that far to find it.

( 2014-01-21 00:57:13 +0200 )edit
2

With my opus testing (ie. not working) I also noticed another small bug. Media Indexer happily indexes .opus files as media, but the media player simply stops when trying to play one. So it doesn't even jump to next file on playlist, it just stops. That of course is annoying because you need to press next on the player to proceed. So it would probably be a good idea to have some kind of error handling in the media player in case file (opus or otherwise) can't be played.

( 2015-05-11 11:25:11 +0200 )edit

everything seems to work on my phone except some OPUS files are not indexed correctly. tracker-extract reports :

Tracker - Could not save '/path/to/file.opus'" into failsafe persistent store: Error making symbolic link: No such file or directory [ogg @ 0x200e00] 725 bytes of comment header remain Tracker - Could not delete '/path/to/file.opus'" from failsafe persistent store

I tried to use tracker-extract myself :

MIME type guessed as 'audio/x-opus+ogg' (from GIO)

Using /usr/lib/tracker-1.0/extract-modules/libextract-libav.so...

[ogg @ 0x1ea9a60] 698 bytes of comment header remain

[ogg @ 0x1ea9a60] max_analyze_duration 5000000 reached

The difference between my files seems to be the picture block in metadata

( 2016-12-18 15:51:25 +0200 )edit

Sort by » oldest newest most voted

Opus can work with GStreamer 0.10 too but old libav prevents us from taking it into use ;-)

But anyway: GStreamer 1.x is indeed in the roadmap.

What needs to be done:

• package GStreamer 1.x, plugins base, good, bad and ugly (ugly if needed) (open)
• get HW decoders and encoders working with gstreamer. Curretly we use a heaavily patched version of gst-omx. We either continue with that or write our own wrapper (gst-omx is open but I cannot tell about any custom element yet)
• droidcamsrc needs porting (closed)
• droideglsink needs to be ported too (closed)
• package an updated libav and port all of its reverse dependencies (Not sure what is closed and what is not)
• package gst-libav (open)
• port xulrunner (open)
• port QtMultimedia (open)

What we have currently is a bit messy and I have been thinking of following an approach similar to gst vaapi but I have no concrete plans yet.

more

3

If it's easy to add only opus, could you consider it for a next update ? Would love to have my music in Opus in Media player !

( 2014-01-22 01:36:40 +0200 )edit
2

I did some more investigations and the short answer is: I am sorry, it has to wait to gstreamer 1.0

Long answer: We use libav for media indexing. opus was added in libav 9.0 while we use libav 0.8.x. We need to either backport opus support which is not easy or upgrade libav which is a major task.

( 2014-01-22 03:21:06 +0200 )edit
2

At present many h.264 encoded videos simply don't play, which I think may be because gstreamer didn't support Hi10p until somewhere in the 0.11.x series. Am I correct to think that with gstreamer 1.x we should thus also gain Hi10p support?

( 2014-02-03 09:35:51 +0200 )edit

As 1.1.9.28 is now based on gstreamer 1.x, is there any ETA on opus support? I used the unofficial gstreamer 0.10.x plugin from OpenRepos to subscribe to some podcasts in opus, now I'm not able to listen to them anymore.

( 2015-09-14 19:28:39 +0200 )edit
1

The ETA is the update after the next one. That's not a final promise though and I do not know when it will be out.

( 2015-09-14 19:56:08 +0200 )edit

Thanks @kael, upgrading to Gstreamer 1.x has been in our plans, however is not a trivial nor short task to do and, while in our roadmap, it might take up to 6 months to make it functional and stable. Of course we try to make it faster if possible.

more

1

( 2013-12-29 14:54:13 +0200 )edit
2

TBH I have no idea to what extent Gstreamer is tangled with HW drivers. However @MSameer is the guy that can answer you. I will ping him.

( 2013-12-29 15:40:14 +0200 )edit
2

Should you end up needing community testing for that, count me in!

( 2014-01-03 00:23:55 +0200 )edit
2

Four months out.... How is this effort going?

( 2014-04-03 13:35:53 +0200 )edit
6

now 8 month ago... hope it will come in Update 9... but i dont think so

( 2014-08-25 15:06:46 +0200 )edit

This post is a wiki. Anyone with karma >75 is welcome to improve it.

opus has been pushed to mer. Next would be upgrading libav and enabling the GStreamer decoder. Unfortunately this will not be in the next update or the one after it. Maybe the update following it will contain this functionality. I will try to keep this thread updated.

GStreamer opus support has been enabled.

It is possible to obtain preliminary opus support on top of 1.1.9 by building and installing gst-plugins-bad from mer. I cannot do it myself due to lack of time but I am sure someone will do it ;-)

And now libav has been updated. There are still some minor issues but most of the work has been done.

I will stop monitoring and updating this post. There is a JB assigned to the task so monitor its status from now on.

more

(Just a quick user update, if you want to know the current state) I tested last week (after the update) some opus files. They are found and playable by Jolla mediaplayer, but the tags are not retrieved, so they are put to 'Unknow Artist' section and their duration is '0:00'.

( 2015-09-07 21:00:49 +0200 )edit

That does not make sense because opus is not part of 1.1.9 (Not even part of the update after 1.1.9). Not sure where you got the opus decoder from.

( 2015-09-07 21:44:51 +0200 )edit
1

Yeah, I forgot I got it from openrepos. Anyway, with it, it is close to work flawlessly in media player.

( 2015-09-07 21:52:58 +0200 )edit

Which Sailfish OS version are you running?

( 2015-09-07 23:30:41 +0200 )edit

I'm running 1.1.7.28.

( 2015-09-08 00:21:26 +0200 )edit

If someone adds opus to mer then I can enable the gstreamer 1.x opus decoder plugin.

Otherwise I will do it at some point when time permits

more

I think we can mark this as done now that we have everything in 2.0.0.10 (Unless I have forgotten something)

more

It finally plays! metadata does not seem to work though. The song is indexed as unknown artist. I verified the metadata with Quod libet and encoded the file with opusenc 1.flac 1.opus

( 2015-11-06 10:41:19 +0200 )edit

Could you try resetting the tracker database? If it has been indexed previously then I don't think it will be re-indexed again.

If you reset the tracker database either via tracker-control -rs or better via sailfish utilities and reboot then it can be re-indexed.

( 2015-11-06 14:38:25 +0200 )edit

It wasn't indexed before the upgrade. I tried the tracker-control -rs anyway, but it didn't help. This is the file I have been testing with: http://h45h.com/fnjNoEjuVAtFnjCO1k5Xne6y8CovSv6YW-iefUsyQ44=

The corresponding .flac file is still on the phone though if that makes any difference.

( 2015-11-06 14:55:14 +0200 )edit

OK. I am extremely sorry. The indexing fixes for tracker did not make it to this update :(

It will be released with the next update hopefully. It's your choice now to either: 1) unmark this post as correct 2) wait for the next update 3) rebuild tracker with the needed fixes.

I can help you with #3 if you decide to do it.

( 2015-11-06 14:59:32 +0200 )edit

I reopened the question as there is only preliminary support at the moment.

( 2015-11-10 19:02:31 +0200 )edit