相关文章推荐
玩篮球的跑步机  ·  Common MIME types - ...·  2 周前    · 
拉风的包子  ·  Clinflash资讯 - 知乎·  8 月前    · 
求醉的小狗  ·  GEE中JS和Python ...·  1 年前    · 
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

I am trying to process audio file in memory with SOX C++ API and I stuck at the very beginning. The goal is to load an audio file from disk, apply few effects (tempo/gain adjustments) in memory. Here is the code I started with, but I receive a strange error when creating out stream:

formats: can't open output file `': No such file or directory

What could be an issue here? I am testing it on Mac. Here is the code:

#include <iostream>
#include <sox.h>
#include <assert.h>
int main() {
    sox_format_t * in, *out;
    sox_effect_t * e;
    sox_init();
    in = sox_open_read("/path/to/file.wav", NULL, NULL, NULL);
    sox_format_t *out_format = (sox_format_t *)malloc(sizeof(sox_format_t));
    memcpy(out_format, in, sizeof(sox_format_t));
    char * buffer;
    size_t buffer_size;
    out = sox_open_memstream_write(&buffer, &buffer_size, &in->signal, NULL, "sox", NULL);
    //chain = sox_create_effects_chain(&in->encoding, &out->encoding);
    //e = sox_create_effect(sox_find_effect("input"));
    return 0;

sox_open_memstream_write() uses either fmemopen() or open_memstream() depending on the parameters you pass.

Some (or all) versions of OSX do not have these functions.

The same is true for Windows.

You can find the relevant code in file src/formats.c, function open_write(), look for the #ifdef HAVE_FMEMOPEN conditionals.

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.