Skip to content

unnecessary and problematic dependency on C++ #140

@andrewrk

Description

@andrewrk

This project depends on C++ but it doesn't need to. In a music player project with otherwise a lot of C dependencies, this is the only C++ dependency and the only thing that makes my music player need to link against libc++, which brings a lot of problems.

FFmpeg for example is a large C project that does not have a libc++ dependency. It also has support for chromaprint integration, but if you enable that integration, it makes FFmpeg depend on libc++.

It also seems like this project implements a lot of FFmpeg internally. Filtering, resampling, normalizing, fft, etc.

Would you consider some of these things?

  1. Convert to plain C to offer a library that avoids requiring users bring an unwanted C++ dependency.
  2. Directly maintain an implementation of the chromaprint algorithm upstream in FFmpeg so that it has chromaprint support without integrating with an external library. It looks like a lot of boilerplate/wrapping code could be deleted.

Such things would make my music player:

  • easier for contributors to build from source
  • build from source faster
  • smaller binary size
  • more portable (libc++ is less portable than libc)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions