GithubHelp home page GithubHelp logo

Comments (6)

amotl avatar amotl commented on July 28, 2024

Unfortunately, on my workstation running macOS, despite having gst-plugins-good==1.18.4 installed, it looks like the wavpackenc element is not available. There is no corresponding file like libgstwavpack.dylib at /usr/local/Cellar/gst-plugins-good/1.18.4/lib/gstreamer-1.0.

$ gst-inspect-1.0 | grep -i wavpack
typefindfunctions: audio/x-wavpack-correction: wvc
typefindfunctions: audio/x-wavpack: wv, wvp
libav:  avenc_wavpack: libav WavPack encoder
audioparsers:  wavpackparse: Wavpack audio stream parser

When using avenc_wavpack instead, GStreamer croaks with:

gst_parse_error: could not link avenc_wavpack0 to muxer (3)

from saraswati.

amotl avatar amotl commented on July 28, 2024

However, on a Linux installment, following [1], wavpackenc seems to be available:

$ docker run -it --rm amd64/debian:buster-slim bash
$ apt-get update
$ apt-get install --yes libgstreamer1.0 gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good
$ gst-inspect-1.0 | grep -i wavpack
wavpack:  wavpackenc: Wavpack audio encoder
wavpack:  wavpackdec: Wavpack audio decoder
audioparsers:  wavpackparse: Wavpack audio stream parser
typefindfunctions: audio/x-wavpack-correction: wvc
typefindfunctions: audio/x-wavpack: wv, wvp

[1] https://github.com/hiveeyes/saraswati#debian-based-systems

from saraswati.

amotl avatar amotl commented on July 28, 2024

In order to approach this, I used a Docker setup.

Observations

First, I verified that I was able to record something successfully with saraswati record --channel="testdrive source=autoaudiosrc". Despite this warning message, it worked when using the FLAC codec.

gst-resource-error-quark: Could not open audio device for recording. (5) (gstalsasrc.c(748): gst_alsasrc_open (): /GstAlsaSrc:autoaudiosrc0-actual-src-als:
Recording open error on device 'default': No such file or directory)

However, when using the WavPack codec, as outlined through #8, GStreamer emits another warning:

gst_parse_error: Delayed linking failed. (7) (./grammar.y(510): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstWavpackEnc:wavpackenc0:
failed delayed linking some pad of GstWavpackEnc named wavpackenc0 to pad  audio_0 of GstSplitMuxSink named muxer)

and it looks like the pipeline doesn't get into "playing" mode.

Outlook

We will have to check the patch #8 on a machine with a real ALSA setup.

With kind regards,
Andreas.

from saraswati.

amotl avatar amotl commented on July 28, 2024

Further observations

We will have to check the patch #8 on a machine with a real ALSA setup.

In order to rule out hardware issues, I quickly checked using audiotestsrc:

saraswati record --channel="testdrive source=audiotestsrc wave=3 freq=200"

The observations were the same: While it works with the FLAC codec, it croaks with WavPack in the same manner as outlined above. So, the origin of the error is probably in the layout of the pipeline, where the wavpackenc element seems to need some special treatment to fit into a pipeline using splitmuxsink. I believe I also observed similar issues with other elements in combination with splitmuxsink.

More details

Those are the full pipeline definitions we are using for this scenario.

Works

audiotestsrc wave=3 freq=200 ! audioconvert ! queue ! flacenc ! flactag ! flacparse ! muxer.audio_0 splitmuxsink name=muxer muxer=matroskamux max-size-time=300000000000 max-files=9999

Failure 1

audiotestsrc wave=3 freq=200 ! audioconvert ! queue ! wavpackenc ! muxer.audio_0 splitmuxsink name=muxer muxer=matroskamux max-size-time=300000000000 max-files=9999

Failure 2

When adding wavpackparse, it croaks earlier, already when assembling the pipeline

gst_parse_error: could not link wavpackparse0 to muxer (3)
audiotestsrc wave=3 freq=200 ! audioconvert ! queue ! wavpackenc ! wavpackparse ! muxer.audio_0 splitmuxsink name=muxer muxer=matroskamux max-size-time=300000000000 max-files=9999

from saraswati.

amotl avatar amotl commented on July 28, 2024

On [1,2], I see there have been a number of fixes to splitmuxsink in recent versions of gstreamer-plugins-good>=1.18. However, on the Linux machine I used for testing (amd64/debian:buster-slim), there is only GStreamer 1.14.4.

We will have to check that again using a more recent GStreamer installment on Linux.

[1] https://build.opensuse.org/package/view_file/openSUSE:Factory/gstreamer-plugins-good/gstreamer-plugins-good.changes?expand=0
[2] https://fossies.org/linux/gst-plugins-good/ChangeLog

from saraswati.

amotl avatar amotl commented on July 28, 2024

We will have to check that again using a more recent GStreamer installment on Linux.

Same error when using amd64/debian:bullseye-slim, bringing in GStreamer 1.18.4.

2021-06-21 17:49:43,993 [saraswati.recorder] WARNING: Pipeline warning: gst_parse_error: Delayed linking failed. (7) (gst/parse/grammar.y(540): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstWavpackEnc:wavpackenc0:
failed delayed linking some pad of GstWavpackEnc named wavpackenc0 to pad  audio_0 of GstSplitMuxSink named muxer)

from saraswati.

Related Issues (6)

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.