Code Monkey home page Code Monkey logo

openshot / libopenshot-audio Goto Github PK

View Code? Open in Web Editor NEW
243.0 23.0 90.0 6.39 MB

OpenShot Audio Library (libopenshot-audio) is a free, open-source project that enables high-quality editing and playback of audio, and is based on the amazing JUCE library.

Home Page: http://www.openshot.org

License: GNU General Public License v3.0

CMake 0.23% C 37.76% C++ 60.22% Objective-C++ 1.07% Objective-C 0.18% Java 0.53% Shell 0.01%
audio audio-processing openshot audio-library audio-effects c-plus-plus gplv3 juce juce-framework

libopenshot-audio's People

Contributors

dependabot[bot] avatar ferdnyc avatar jacksonrg avatar jonoomph avatar kant avatar sbraz avatar zturtleman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libopenshot-audio's Issues

Unused embedded dependencies?

libopenshot-audio currently ships a stripped down copy of Juce which itself contains embedded copies of system libraries such as pnglib, jpeglib or zlib.

However, the embedded copies of flac and vorbis do not seem to be used anywhere, do they? I managed to build the library successfully with these dependencies stripped out and without specifying any additional build flags.

Could you confirm?

build problem on FreeBSD amd64

Hello!

When trying to compile, I get:

per@konjak:~/tmp/test/videoeditors/libopenshot-audio/build$ make
Scanning dependencies of target openshot-audio
[ 11%] Building CXX object CMakeFiles/openshot-audio.dir/JuceLibraryCode/include_juce_audio_basics.cpp.o
In file included from /home/per/tmp/test/videoeditors/libopenshot-audio/JuceLibraryCode/include_juce_audio_basics.cpp:9:
In file included from /home/per/tmp/test/videoeditors/libopenshot-audio/JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.cpp:32:
In file included from /home/per/tmp/test/videoeditors/libopenshot-audio/JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.h:52:
In file included from /home/per/tmp/test/videoeditors/libopenshot-audio/JuceLibraryCode/modules/juce_core/juce_core.h:282:
/home/per/tmp/test/videoeditors/libopenshot-audio/JuceLibraryCode/modules/juce_core/containers/juce_HashMap.h:49:109: error: cast from pointer to smaller type 'juce::pointer_sized_uint'
(aka 'unsigned int') loses information
static int generateHash (const void* key, int upperLimit) noexcept { return generateHash ((uint64) (pointer_sized_uint) key, upperLimit); }
^~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
*** Error code 1

Stop.
make[2]: stopped in /home/per/tmp/test/videoeditors/libopenshot-audio/build
*** Error code 1

Stop.
make[1]: stopped in /home/per/tmp/test/videoeditors/libopenshot-audio/build
*** Error code 1

Stop.
make: stopped in /home/per/tmp/test/videoeditors/libopenshot-audio/build

Build failure - macOS 11.0 Deprecations

I'm attempting to add OpenShot to the MacPorts repository. I'm building from the v0.2.0 tarball from github.

libopenshot-audio failed to build on our macOS 11.0 buildbot due to the use of several deprecated functions. Eg:

In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_multimedia_libopenshot-audio/libopenshot-audio/work/libopenshot-audio-0.2.0/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.cpp:189: /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_multimedia_libopenshot-audio/libopenshot-audio/work/libopenshot-audio-0.2.0/JuceLibraryCode/modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp:55:13: warning: 'AudioHardwareServiceHasProperty' is deprecated: first deprecated in macOS 10.11 - no longer supported [-Wdeprecated-declarations] if (AudioHardwareServiceHasProperty (kAudioObjectSystemObject, &addr)) ^
The log file is available online for the next couple of weeks at:
https://build.macports.org/builders/ports-11_arm64-builder/builds/9083

BTW, this happens to be an Apple Silicone based buildbot.

Steps to reproduce the behavior:
See log file attached.

Expected behavior:
Successful build.

System Details:
libopenshot-audio v 0.2.0
macOS 11.0

Log Files:
Attached

Exception / Stacktrace:
n/a

Screenshots: (Optional)
n/a

libopenshot audio build fail macOS 11.0 .log

Why the SOVERSION bump? ...Why the release at all?

This is really more a question than an issue, and probably not even a good place to bring it up, but it's the best option I have and I'm really just trying to understand why libopenshot-audio was not only released as 0.1.6, but the SO version was bumped from 5 to 6 as part of that release.

Not only were there no API changes between v0.1.5 and v0.1.6, but the entire set of changes between v0.1.4 and v0.1.6 (19 commits total) consists of:

  1. One header include being moved to a slightly different place in the same file (7343b07)
  2. One slight modification of the CMakeLists.txt file (f489d3c)
  3. Two commits to bump the version, once to 0.1.5, then again to 0.1.6 (0c5e0dc, c5596c8)
  4. Sixteen commits that made modifications to .gitlab-ci.yml

...Yeah, libopenshot and openshot-qt were releasing, and pushing out a new libopenshot-audio with them probably seemed expected. And, there was that one header-include change. But why in the world would 0.1.6 be bumped to libopenshot-audio.so.6, when there was not only no API change, but no new code in it at all?

live sound recording support to OpenShot

Could there be live sound and live support to OpenShot one day?

OpenShot live sound
I don't know if this is being worked on or not but live sound support would be good to have in Openshot, ie a audio mixer window. The mixer should all so have jack audio support.The Openshot audio tracks could all so use a record button on them.
At the bottom of the Mixer could have a sound input menu on every audio track this way a user can hook up a hardware mixer to a Openshot audio track and record the sound form their hardware mixer without a DAW software. The Openshot mixer's faders and pan knob should be able to read & write volume and pan automation on the track. A the top of the mixer there should be a output menu on every audio track this way a user can hook up a audio output from the Openshot mixer out to a jack audio input. The Jack Audio support is so a user can send the sound from the users DAW software into Openshot an audio tracks or send the sound from Openshot an audio tracks to the users DAW .

Debian patches to uses system libpng, libjpeg and libz

cmake error while compiling

Hello, I ran into this problem while trying to compile libopenshot-audio-0.1.6 under Ubuntu Studio 18.04 (bionic) on an Acer ES1-533 notebook, all dependencies were successfully installed, sorry for the eventual inconvenience, didn't know where to report this and/or ask for help (seems a cmake issue actually), some other people got the exact same error on different OSs and projects, the 2 "not found" lines near the end:

Terminal output after issuing "cmake ../" as instructed here
https://docs.google.com/document/d/1V6nq-IuS9zxqO1-OSt8iTS_cw_HMCpsUNofHLYtUNjM/pub

`--------------------------------------------------------------
---- Generating build files for openshot-audio (0.1.6)

-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.13") found components: doxygen dot
-- Found DOXYFILE_IN: /home/papucho/Descargas/libopenshot-audio-0.1.6/Doxyfile.in
`
Any help would be greatly appreciated, thanks in advance.

Audo Ducking

Just moved to linux from macos and searching for an equivalent to ScreenFlow. OpenShot is closest but misses automated ducking. Which means a background track - music usually - gets its volume reduces when other tracks - VO usually - grow louder.

Screenflow makes trivially easy. Unless I misunderstand, I don't think Openshot has it ... and it's really, really, really useful. As it is I'm going to need to bring the audio into audacity and back again ... not a nice workflow!

Openshot does not build on musl or arm.

ARM: The cmake file that libopenshot-audio (and probably the other openshot projects, though I have not tested them) does not correctly locate freetype ( <ft2build.h> ) when compiling on arm.

On musl: The build fails because of the usage of <execinfo.h> after a little research I discovered that libunwind seems to provide the same functionality without the use of glibc, and with minimal pain of transitioning. (There are other errors as well so I'll include this: http://pastebin.com/sUV6zciA )

I don't hear five test tones

I added .exe to upload-artifacts directly from your repo, added zlib1, libwinpthread, libstdc++, etc. from OpenShot lib directory and I don't hear anything. I don't see app in mixer, too.

Compiling libopenshot-audio using vs2017

I have attempt to compile libopenshot audio library following instructions at 👎

https://docs.google.com/document/d/1V6nq-IuS9zxqO1-OSt8iTS_cw_HMCpsUNofHLYtUNjM/pub#h.ghqtfouqkkkd

it seems all ok but compiling the test program openashot-audio-test-sound, compiler reports
that is unable to find library libopenshot-audio.lib. I've attempt to create it starting from the
dll (libopenshot-audio.dll) but it seems that this dll haven't any exported function. Using implib
result is:

Digital Mars Import Library Manager Version 7.6B1n
Copyright (C) Digital Mars 2000. All Rights Reserved.
Error(3): No exported functions. Library not created

And if I use the classic dumpbin result is:

Microsoft (R) COFF/PE Dumper Version 14.13.26131.1
Copyright (C) Microsoft Corporation. All rights reserved.

Dump of file openshot-audio.dll

File Type: DLL

Summary

    1000 .00cfg
    D000 .data
    5000 .idata
   A6000 .rdata
   32000 .reloc
    1000 .rsrc
  53B000 .text
    1000 .tls

Can you help please ?
Regards

[Windows 10 Pro ]

libopenshot-audio fails to build under GCC 9.0.1, errors in Juce code

Attempting to build libopenshot-audio for Fedora 30 (which is using gcc 9.0.1), the compilation process is hitting errors in the Juce modules, with an inline function to translate pixel values for the graphics code.

...Code which shouldn't be needed at all, but it's there and attempts to manually patch it out have so far proved unsuccessful.

A full build log is in rpmfusion's koji, but the errors that cause the compilation to fail are:

BUILDSTDERR: In file included from /builddir/build/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_processors/../juce_gui_basics/../juce_graphics/juce_graphics.h:82,
BUILDSTDERR:                  from /builddir/build/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_processors/../juce_gui_basics/juce_gui_basics.h:28,
BUILDSTDERR:                  from /builddir/build/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h:28,
BUILDSTDERR:                  from /builddir/build/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.cpp:39:
BUILDSTDERR: /builddir/build/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_processors/../juce_gui_basics/../juce_graphics/colour/juce_PixelFormats.h: In member function 'juce::uint8& juce::PixelARGB::getAlpha()':
BUILDSTDERR: /builddir/build/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_processors/../juce_gui_basics/../juce_graphics/colour/juce_PixelFormats.h:113:77: error: cannot bind packed field '((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[3]' to 'juce::uint8&' {aka 'unsigned char&'}
BUILDSTDERR:   113 |     forcedinline uint8& getAlpha() noexcept           { return comps [indexA]; }
BUILDSTDERR:       |                                                                ~~~~~~~~~~~~~^
BUILDSTDERR: /builddir/build/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_processors/../juce_gui_basics/../juce_graphics/colour/juce_PixelFormats.h: In member function 'juce::uint8& juce::PixelARGB::getRed()':
BUILDSTDERR: /builddir/build/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_processors/../juce_gui_basics/../juce_graphics/colour/juce_PixelFormats.h:114:77: error: cannot bind packed field '((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[2]' to 'juce::uint8&' {aka 'unsigned char&'}
BUILDSTDERR:   114 |     forcedinline uint8& getRed() noexcept             { return comps [indexR]; }
BUILDSTDERR:       |                                                                ~~~~~~~~~~~~~^
BUILDSTDERR: /builddir/build/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_processors/../juce_gui_basics/../juce_graphics/colour/juce_PixelFormats.h: In member function 'juce::uint8& juce::PixelARGB::getGreen()':
BUILDSTDERR: /builddir/build/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_processors/../juce_gui_basics/../juce_graphics/colour/juce_PixelFormats.h:115:77: error: cannot bind packed field '((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[1]' to 'juce::uint8&' {aka 'unsigned char&'}
BUILDSTDERR:   115 |     forcedinline uint8& getGreen() noexcept           { return comps [indexG]; }
BUILDSTDERR:       |                                                                ~~~~~~~~~~~~~^
BUILDSTDERR: /builddir/build/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_processors/../juce_gui_basics/../juce_graphics/colour/juce_PixelFormats.h: In member function 'juce::uint8& juce::PixelARGB::getBlue()':
BUILDSTDERR: /builddir/build/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_processors/../juce_gui_basics/../juce_graphics/colour/juce_PixelFormats.h:116:77: error: cannot bind packed field '((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[0]' to 'juce::uint8&' {aka 'unsigned char&'}
BUILDSTDERR:   116 |     forcedinline uint8& getBlue() noexcept            { return comps [indexB]; }
BUILDSTDERR:       |                                                                ~~~~~~~~~~~~~^

(Or, without the insanely wide formatting)

juce_PixelFormats.h: In member function 'juce::uint8& juce::PixelARGB::getAlpha()':
juce_PixelFormats.h:113:77: error: cannot bind packed field 
'((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[3]'
to 'juce::uint8&' {aka 'unsigned char&'}
   113 |     forcedinline uint8& getAlpha() noexcept           { return comps [indexA]; }
       |                                                                ~~~~~~~~~~~~~^

JUCE compilation error under Windows (Continuous Integration)

How to get rid of this?

C:/projects/libopenshot-audio/JuceLibraryCode/modules/juce_core/text/juce_CharPointer_UTF8.h:477:27: error: 'atoll' was not declared in this scope
         return atoll (data);

What do mingw needs to find the std lib and the function?


Additional info
I'm trying to build libopenshot-audio using appveyor with the next scripts:

libopenshot-audio/CI/install-win-av.cmd

REM For appveyor.com
REM mute output
@echo off

cd %APPVEYOR_BUILD_FOLDER%

REM leave some space
echo.
echo Platform: %PLATFORM%
echo Default build folder: %APPVEYOR_BUILD_FOLDER%
echo.

REM we need to update PATH with MSYS2 dirs, also it resolves ZLIB dependency
set PATH=C:\msys64\mingw64\bin;C:\msys64\usr\bin;%PATH%

REM let us see what is installed within MSYS2
bash -lc "pacman -Q"

REM Add doxygen dependencies
REM bash -lc "pacman -S --needed --noconfirm mingw64/mingw-w64-x86_64-doxygen"
REM
REM let us see what is installed now within MSYS2
REM bash -lc "pacman -Q"

REM unmute output
@echo on

libopenshot-audio/CI/build-win-av.cmd


REM Building script

REM status
echo
REM Some space
echo.

REM Let us see what we have as environment here
echo %PATH%
echo.
cd 

REM cmake will unable to compile without "MinGW\bin" path to PATH
set PATH=C:\MinGW\bin;%PATH%
echo.
echo PATH environment variable was updated.
echo %PATH%
echo.

REM Make new building dir
mkdir %APPVEYOR_BUILD_FOLDER%\build
cd %APPVEYOR_BUILD_FOLDER%\build

cmake --version
cmake -G "MinGW Makefiles" -DCMAKE_SH="CMAKE_SH-NOTFOUND" ..
mingw32-make
mingw32-make install

libopenshot-audio/appveyor.yml

#---------------------------------#
#      general configuration      #
#---------------------------------#

# version format
version: "{build}"

# branches to build 
branches:
  # whitelist
  only:
    - patch-1
  # blacklisted
  except:
    - /.*/    # exclude all branches but whitelisted
    
#---------------------------------#
#    environment configuration    #
#---------------------------------#

# Build worker image (VM template)
image:
  - Visual Studio 2015

# environment variables
environment:
  matrix:
    - platform: x86
      configuration: Release

# scripts that run after cloning repository
install:
  # running under CI
  - set CI_TESTING=1
  - cmd: '%APPVEYOR_BUILD_FOLDER%\CI\install-win-av.cmd'
  - 'echo End install at: & time /t'

# Build settings
build: off # disable MSBuild

# to run custom scripts instead of automatic MSBuild
build_script:
  - 'echo We are building...'
  - cmd: '%APPVEYOR_BUILD_FOLDER%\CI\build-win-av.cmd'
  - 'echo End building at: & time /t'


test: off

build log itself: https://ci.appveyor.com/project/SuslikV/libopenshot-audio/builds/24124334

Copious warnings building Juce classes...

Compiling libopenshot-audio-0.1.7 with g++ from gcc 8.1.1 results in a stream of warnings when building the Juce components. The warnings are primarily of the -Wclass-memaccess type, and relate to potentially unsafe memory operations. The code appears to be flinging C-style memcpy(), memmove(), around copiously, even on C++ classes that may require deepcopy-style operations.

This may explain a lot of the audio-related crashing OpenShot has been plagued with.

Here's a couple of samples:

In file included from /home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_core/juce_core.h:212,
                 from /home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_core/juce_core.cpp:44:
/home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_core/containers/juce_Array.h: In instantiation of 'void juce::Array<ElementType, TypeOfCriticalSectionToUse, minimumAllocatedSize>::removeRange(int, int) [with ElementType = juce::var; TypeOfCriticalSectionToUse = juce::DummyCriticalSection; int minimumAllocatedSize = 0]':
/home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_core/containers/juce_Array.h:706:13:   required from 'void juce::Array<ElementType, TypeOfCriticalSectionToUse, minimumAllocatedSize>::resize(int) [with ElementType = juce::var; TypeOfCriticalSectionToUse = juce::DummyCriticalSection; int minimumAllocatedSize = 0]'
/home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_core/containers/juce_Variant.cpp:709:53:   required from here
/home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_core/containers/juce_Array.h:878:25: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'class juce::var' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
                 memmove (e, e + numberToRemove, ((size_t) numToShift) * sizeof (ElementType));
                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_core/juce_core.h:228,
                 from /home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_core/juce_core.cpp:44:
/home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_core/containers/juce_Variant.h:46:17: note: 'class juce::var' declared here
 class JUCE_API  var
                 ^~~
In file included from /home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_devices/../juce_events/../juce_core/juce_core.h:199,
                 from /home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_devices/../juce_events/juce_events.h:29,
                 from /home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.h:28,
                 from /home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.cpp:39:
/home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_devices/../juce_events/../juce_core/memory/juce_HeapBlock.h: In instantiation of 'void juce::HeapBlock<ElementType, throwOnFailure>::realloc(size_t, size_t) [with ElementType = juce::AudioDeviceManager::MidiCallbackInfo; bool throwOnFailure = false; size_t = long unsigned int]':
/home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_devices/../juce_events/../juce_core/containers/juce_ArrayAllocationBase.h:89:17:   required from 'void juce::ArrayAllocationBase<ElementType, TypeOfCriticalSectionToUse>::setAllocatedSize(int) [with ElementType = juce::AudioDeviceManager::MidiCallbackInfo; TypeOfCriticalSectionToUse = juce::DummyCriticalSection]'
/home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_devices/../juce_events/../juce_core/containers/juce_ArrayAllocationBase.h:108:13:   required from 'void juce::ArrayAllocationBase<ElementType, TypeOfCriticalSectionToUse>::ensureAllocatedSize(int) [with ElementType = juce::AudioDeviceManager::MidiCallbackInfo; TypeOfCriticalSectionToUse = juce::DummyCriticalSection]'
/home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_devices/../juce_events/../juce_core/containers/juce_Array.h:395:9:   required from 'void juce::Array<ElementType, TypeOfCriticalSectionToUse, minimumAllocatedSize>::add(const ElementType&) [with ElementType = juce::AudioDeviceManager::MidiCallbackInfo; TypeOfCriticalSectionToUse = juce::DummyCriticalSection; int minimumAllocatedSize = 0]'
/home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp:876:30:   required from here
/home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_devices/../juce_events/../juce_core/memory/juce_HeapBlock.h:258:74: warning: 'void* realloc(void*, size_t)' moving an object of non-trivially copyable type 'struct juce::AudioDeviceManager::MidiCallbackInfo'; use 'new' and 'delete' instead [-Wclass-memaccess]
                                                           : std::realloc (data, newNumElements * elementSize));
                                                             ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.h:122,
                 from /home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.cpp:39:
/home/ferd/rpmbuild/BUILD/libopenshot-audio-0.1.7/JuceLibraryCode/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h:459:12: note: 'struct juce::AudioDeviceManager::MidiCallbackInfo' declared here
     struct MidiCallbackInfo
            ^~~~~~~~~~~~~~~~

The full build output, compiled with make -j1 to keep the messages from interleaving, is attached. It uses extremely long lines, so the wider you can make the viewer/editor, the more readable it is, ideally at least 200 columns.

libopenshot-audio.out.txt (see below)

Exporting video (Web, YouTube HD), getting an error 'audio codec not found'

Exporting video (Web, YouTube HD), getting an error 'audio codec not found' - this worked in previous versions.

Works fine when exporting to FHD (MP4 h.264)

Ubuntu 22.04, all codecs installed via 'apt install ubuntu-restricted-extras', OpenShot v3.1.1, libopenshot 0.3.2, installed via flatpak on 1-Aug-2023

Possible overlinkage

As reported by the Debian toolchain:

dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/libopenshot-audio3/usr/lib/x86_64-linux-gnu/libopenshot-audio.so.0.1.2 was not linked against libXinerama.so.1 (it uses none of the library's symbols)

Could you confirm whether this is accurate or a false positive.

libopenshot-audio hangs Ubuntu 20.04 apt package manager

sudo apt autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
libopenshot20 : Depends: libopenshot-audio8 but it is not installed
python3-openshot : Depends: libopenshot-audio8 but it is not installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

I can't update my system. I can't remove the package. apt won't fix the broken install. Have searched the web and tried every supposed solution.

Undeclared function error when building on Apple Silicon

The compiler will come across the error which indicating objc_msgSend_fpret is undeclared when compling following lines

#if ! JUCE_IOS
typedef double (*MsgSendFPRetFn) (id, SEL op, ...);
static inline MsgSendFPRetFn getMsgSendFPRetFn() noexcept   { return (MsgSendFPRetFn) (void*) objc_msgSend_fpret; }
#endif

I simply change the macro to #if ! JUCE_IOS && ! JUCE_ARM and the rest of building is successful. What I am not sure is can I just change it to #if ! JUCE_ARM because iOS is AArch64 architecture?

Generate a version include, for library consumers?

So, I'm thinking that... eventually, at some point down the road — and with no real urgency — we'll want to start generating a version header from CMake, the same way we do for libopenshot.

I know, I know: I'm the one who removed the version header, on the grounds that it wasn't being used for anything. And, it wasn't, which is why this isn't urgent at all.

But, there's one place we could be using a version header, if we had one: FindOpenShotAudio.cmake.

Currently, the FindOpenShotAudio.cmake we have in libopenshot doesn't support version detection, reporting, or requirements. But if we wanted to add any of that, basically every FindXXX.cmake script handles version detection for library dependencies the same way:

  1. Detect the library's availability by finding its include directory in the usual fashion
  2. Load the library's public header file from that include path
  3. Read the version information from that header

It makes sense for libopenshot-audio to handle "publishing" its version information the same way. So eventually we should do that.

We can just copy-paste what libopenshot does to generate its version header, so it's really a simple fix. But there's also no point in rushing to do it, since it won't be useful until we also enhance FindOpenShotAudio.cmake to use that version information.

Playback Audio Devices missing in develop (no sound on Windows)

When I compare OpenShot 2.5.1 and OpenShot 2.6.0 (release candidate) on Windows, I have noticed what appears to be a regression in libopenshot-audio, with regards to missing audio devices. I am currently getting no audio playback on Windows, and this is a release blocking issue for 2.6.0. I'm going to do some testing today, and see if I can figure out when this issue was introduced, but my guess is this was due to either an upgrade of our Windows build server, or one of our JUCE upgrades... and perhaps some dependency missing, or packaging issue/missed file. Not really sure yet.

OpenShot 2.5.1 Audio Devices: Sound plays perfectly on Windows 10
Windows-Audio-Devices-2-5-1-preferences

OpenShot 2.6.0 Error: No sound works on this version
Windows-Audio-Devices-2-6-0-launch-error

OpenShot 2.6.0 Audio Devices: Notice there are a few missing when compared to 2.5.1
Windows-Audio-Devices-2-6-0-preferences

openshot-audio-test-sound fails to link with gold because of missing libraries

cmake . -DCMAKE_EXE_LINKER_FLAGS='-Wl,-O1 -Wl,--as-needed -fuse-ld=gold' && make VERBOSE=1 results in:

[100%] Linking CXX executable openshot-audio-test-sound
cd /home/user/libopenshot-audio/src && /usr/bin/cmake -E cmake_link_script CMakeFiles/openshot-audio-test-sound.dir/link.txt --verbose=1
/usr/bin/c++     -Wl,-O1 -Wl,--as-needed -fuse-ld=gold CMakeFiles/openshot-audio-test-sound.dir/Main.cpp.o  -o openshot-audio-test-sound -rdynamic ../libopenshot-audio.so.0.0.6 -lSM -lICE -lX11 -lXext -lasound -lfreetype -lXinerama -Wl,-rpath,/home/user/libopenshot-audio: 
../libopenshot-audio.so.0.0.6: error: undefined reference to 'pthread_mutexattr_init'
../libopenshot-audio.so.0.0.6: error: undefined reference to 'pthread_mutexattr_settype'
../libopenshot-audio.so.0.0.6: error: undefined reference to 'pthread_mutexattr_setprotocol'
../libopenshot-audio.so.0.0.6: error: undefined reference to 'pthread_mutexattr_destroy'
../libopenshot-audio.so.0.0.6: error: undefined reference to 'pthread_mutex_trylock'
../libopenshot-audio.so.0.0.6: error: undefined reference to 'dladdr'
../libopenshot-audio.so.0.0.6: error: undefined reference to 'pthread_create'
../libopenshot-audio.so.0.0.6: error: undefined reference to 'pthread_detach'
../libopenshot-audio.so.0.0.6: error: undefined reference to 'pthread_cancel'
../libopenshot-audio.so.0.0.6: error: undefined reference to 'pthread_setname_np'
../libopenshot-audio.so.0.0.6: error: undefined reference to 'pthread_setaffinity_np'
../libopenshot-audio.so.0.0.6: error: undefined reference to 'dlopen'
../libopenshot-audio.so.0.0.6: error: undefined reference to 'dlclose'
../libopenshot-audio.so.0.0.6: error: undefined reference to 'dlsym'
collect2: error: ld returned 1 exit status
src/CMakeFiles/openshot-audio-test-sound.dir/build.make:99: recipe for target 'src/openshot-audio-test-sound' failed

Adding dl pthread to target_link_libraries in src/CMakeLists.txt fixes the problem.

error: cast from pointer to smaller type 'pointer_sized_int' (aka 'int') loses information

Hi,
i have problem with bad cast in JUCE library because your version JUCE is old. Are you going to upgrade for better version JUCE ?

libopenshot-audio/JuceLibraryCode/modules/juce_core/containers/juce_Variant.cpp:276:140: error: cast from pointer to smaller type 'pointer_sized_int' (aka 'int') loses information

libopenshot-audio/JuceLibraryCode/modules/juce_core/maths/juce_Random.cpp:56:39: error: cast from pointer to smaller type 'pointer_sized_int' (aka 'int') loses information
    combineSeed (globalSeed ^ (int64) (pointer_sized_int) this);

Update JUCE to 5.x and trim modules down

Howdy!

The version of JUCE being used here is pretty old and has a lot of perf & stability improvements waiting post upgrade. I also reviewed the EULA for Juce 5, and if you trimmed down the modules to the ones libopenshot (appears to be) actually using, this repository could be relicensed as ISC and libopenshot (and it's consumers) would no longer be violating the GPL.

JUCE License

Five JUCE modules (juce_core, juce_audio_devices, juce_audio_basics, juce_event, juce_blocks) are licensed under the permissive ISC License as described in this Agreement.

I'd be willing to undertake this work if you'd like :)

Subject: 'Clear audio for people with hard of hearing’

Dear OpenShot development team

I greatly appreciate your open-source software and am grateful for its many years of existence.

However, I miss one important function: the option to clean up audio track specifically for people with hard of hearing. This should be labelled and understood as ‘Clear audio for the hard of hearing’. In the audio tracks of many pre-recorded video files have disturbing background noises can often be heard. For example, spoken dialogue is often accompanied by background music and background noises such as hissing, humming, scratching, rumbling or traffic noise. Despite modern hearing devices such as hearing aids, it is often difficult for people with hard of hearing to understand spoken dialogue. It is therefore very important for many people with hard of hearing that the audio is clear and distinct. For cleaning, all available tools such as noise cancellation, removal of music and traffic noise, etc. should be compiled offline at the beginning. If possible, these tools should be downloaded as an ‘extension’ and applied automatically at the click of a mouse. The tools concentrate exclusively on the spoken voice and eliminate the rest as superfluous, distracting background.

About the implementation: You should not expect too much for the first step, as there is no perfect solution, but it is a good start. It is important to reduce or eliminate all unnecessary background noise as much as possible. Later, further developments can be made, and the newer version of the ‘extension’ can be optimised. In the case of an “extension” with a version number, it should be noted which version is current. Older versions should also be kept so that everyone can be accessed if necessary.

Figures: According to the WHO (World Health Organisation), a rough estimate of 430 million people worldwide live with hard of hearing. The WHO estimates that around 700 million people will be affected by hard of hearing by 2050 - this means around 1 in 10 people. In Europe, the Hard of Hearing Association estimates that 52 million people are affected by hard of hearing. According to a study, there are around 9 million people with hard of hearing in Germany. The number of unreported cases is probably even higher. More and more people are becoming hard of hearing due to hearing damage or age-related hearing loss.

A quick note: Please do not confuse hard of hearing people with Deaf people. With a good hearing aid, people who are hard of hearing can talk on the phone to certain people around them or have normal conversations in a quiet room. People who are Deaf are dependent on written communication as they cannot hear. They can, for example, communicate via text chat on the Internet or converse in sign language, in which case a qualified sign language interpreter is required if the person they are talking to cannot sign. The “Clear audio” option is aimed at people with hard of hearing.

I would be very grateful for the implementation of a fully automatic cleansing of audio for people with hard of hearing, also known as ‘Clear audio for people with hard of hearing’, at once click of a mouse. Many thanks in advance for the implementation if this is carried out.

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.