Giter Site home page Giter Site logo

sratom's Introduction

LV2

LV2 is a plugin standard for audio systems. It defines an extensible C API for plugins, and a format for self-contained "bundle" directories that contain plugins, metadata, and other resources. See http://lv2plug.in/ for more information.

This package contains specifications (C headers and Turtle data files), documentation generation tools, tests, and example plugins.

Installation

See the installation instructions for details on how to configure, build, and install LV2 with meson.

By default, on UNIX-like systems, everything is installed within the prefix, and LV2 bundles are installed in the "lv2" subdirectory of the libdir. On other systems, bundles are installed by default to the standard location for plugins on the system. The bundle installation directory can be overridden with the lv2dir option.

The specification bundles are run-time dependencies of LV2 applications. Programs expect their data to be available somewhere in LV2_PATH. See http://lv2plug.in/pages/filesystem-hierarchy-standard.html for details on the standard installation paths.

Headers

The lv2/ include namespace is reserved for this LV2 distribution. Other projects may extend LV2, but must place their headers elsewhere.

Headers are installed to includedir with paths like:

#include "lv2/urid/urid.h"

For backwards compatibility, if the old_headers option is set, then headers are also installed to the older URI-based paths:

#include "lv2/lv2plug.in/ns/ext/urid/urid.h"

Projects still using this style are encourated to migrate to the shorter style above.

sratom's People

Contributors

atsushieno avatar drobilla avatar marxin avatar ventosus avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

sratom's Issues

Fails to build with gcc4

WIth latest lv2 headers and gcc4.9 as compiler, build fails with:

[1/3] Compiling src/sratom.c
In file included from /usr/lib/lv2/atom.lv2/forge.h:54:0,
                 from ../src/sratom.c:23:
/usr/include/lv2/atom/util.h: In function ‘lv2_atom_object_query’:
/usr/include/lv2/atom/util.h:336:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
  for (LV2_Atom_Object_Query* q = query; q->key; ++q) {

Needs -std=c99 or similar I guess.

PS: I was going to report under dev.drobilla.net, but I see sratom is not selectable as component. So I guess that is deprecated, perhaps not really to be used anymore?

*** buffer overflow detected ***: terminated with -D_FORTIFY_SOURCE=3 with GCC 12

I see the following failure while testing latest GCC:

[   12s] [==========] 1 tests from sratom ran (12 ms total) 
[   12s] *** buffer overflow detected ***: terminated

It's caused by the following code:

sratom/src/sratom.c

Lines 337 to 343 in c46452c

uint8_t* str = (uint8_t*)calloc(size * 2 + 1, 1);
for (uint32_t i = 0; i < size; ++i) {
snprintf((char*)str + (2 * i),
size * 2 + 1,
"%02X",
(unsigned)*((const uint8_t*)body + i));
}

where the second argument of snprintf should be size * 2 + 1 - 2 * i.
GCC upstream discussion is here:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104969

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.