Code Monkey home page Code Monkey logo

Comments (4)

jonaski avatar jonaski commented on May 19, 2024 1

I've added support for DSF and DSDIFF now, updated the builtin taglib to support it and added them as accepted filetypes and made the tagreader read them.
I installed gstreamer from git, you need gstreamer, gstreamer-plugins-base and gst-libav, I also installed gst-plugins-good.
I have tested playing some of the files from: https://www.oppodigital.com/hra/dsd-by-davidelias.aspx
It works great, except gstreamer makes the artwork embedded in the file appear in a large outside window (actually maybe it is kinda cool). There is probably a way to disable it.
Reading embedded artwork needs to be implemented too, it does not work
But atleast it works for now.

from strawberry.

jonaski avatar jonaski commented on May 19, 2024

Actually the limitation is both in taglib and the engines. Strawberry only recognize files that taglib can read as audio, and taglib does not support DSD yet. There is a PR for it here: taglib/taglib#740
As for the engine, neither gstreamer or vlc support it, but I'm unsure about xine.
In the long run I plan to have ALSA directly as an option for engine, and support open lossless formats like FLAC/WavPack, then it might also be possible to also add support for DSD. I think deadbeef is doing it.

This is how far I got when trying to play DSD with xine, I modified the code to bypass taglib.

Invalid return value 0 for stream protocol
Invalid return value 0 for stream protocol
[dsf @ 0x3085240] Estimating duration from bitrate, this may be inaccurate
Input #0, dsf, from 'file:///home/jonas/Downloads/2L-139_stereo_DSF_2822k_1b_01.dsf':
  Metadata:
    encoded_by      : Merging Technologies Album Publishing
    comment         : Generated by Merging Technologies Album Publishing
                    : Label Code: 2L
    title           : Chromatic Fantasia and Fugue in D minor, BWV 903: Fantasia
    artist          : Christian Grøvlen
    album_artist    : Christian Grøvlen
    composer        : Johann Sebastian Bach
    album           : BACH - Inside Polyphony
    track           : 1/30
    disc            : 1
    TSRC            : NOMPP1707010
                    : 7041888523024
    publisher       : 2L
    date            : 2017
    genre           : Classical
  Duration: 00:06:55.09, bitrate: 5644 kb/s
    Stream #0:0: Audio: dsd_lsbf_planar, 352800 Hz, stereo, fltp, 5644 kb/s
    Stream #0:1: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 1200x1200, 90k tbr, 90k tbn, 90k tbc
    Metadata:
      comment         : Cover (front)
__logging_message__17:29:08.833 WARN  unknown                          "There is no audio channel!"

from strawberry.

jonaski avatar jonaski commented on May 19, 2024

Looks like DSF is already coming to gstreamer in version 1.15.1
https://bugzilla.gnome.org/show_bug.cgi?id=721186
So this might not be so far off, gstreamer is released pretty frequently.

I already have taglib builtin so I can possible just add the PR to it.

As for xine, I think it might just read the metadata, and not actually have codec to play it, but there is so little info on xine.

from strawberry.

Zanfib avatar Zanfib commented on May 19, 2024

Thanks for the comments, I've see the support is coming soon in gstreamer, a good news !
Soon in Strawberry ! ;)

from strawberry.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.