Giter VIP home page Giter VIP logo

chromaprint's People

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chromaprint's Issues

Linking error, compilation fails.

I am trying to compile chromaprint and I am getting this error.

Scanning dependencies of target chromaprint_objs
[ 86%] Building CXX object src/CMakeFiles/chromaprint_objs.dir/fft_lib_avfft.cpp.o
[ 86%] Building CXX object src/CMakeFiles/chromaprint_objs.dir/fft.cpp.o
[ 86%] Built target chromaprint_objs
[ 86%] Linking CXX shared library libchromaprint.so
/usr/bin/ld: /usr/local/lib/libavcodec.a(fft.o): relocation R_X86_64_PC32 against symbol `ff_cos_32' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
src/CMakeFiles/chromaprint.dir/build.make:132: recipe for target 'src/libchromaprint.so.1.4.4' failed
make[2]: *** [src/libchromaprint.so.1.4.4] Error 1
CMakeFiles/Makefile2:153: recipe for target 'src/CMakeFiles/chromaprint.dir/all' failed
make[1]: *** [src/CMakeFiles/chromaprint.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

I tried using an older version of FFmpeg still the problem persists.
Any help would be appreciated.

Cannot build with mingw-w64 toolchains

It appears the cross-compilation instructions for Windows are outdated: the toolchain i586-mingw32msvc is not available on newer platforms, at least on Ubuntu 19.04.

It should be possible to build using the current toolchains available in mingw-w64 package, which is what is available on Ubuntu.

Trying to build with i686-w64-mingw32-gcc / i686-w64-mingw32-g++ fails with compilation errors. I haven't found any other appropriate alternative in that package... Or am I doing something wrong?

Test failures on big endian architectures

Some tests have been failing on Debian's big endian architectures:

[==========] 90 tests from 25 test cases ran. (85 ms total)
[  PASSED  ] 84 tests.
[  FAILED  ] 6 tests, listed below:
[  FAILED  ] API.TestFp
[  FAILED  ] AudioProcessor.StereoToMono
[  FAILED  ] AudioProcessor.ResampleMono
[  FAILED  ] AudioProcessor.ResampleMonoNonInteger
[  FAILED  ] AudioProcessor.StereoToMonoAndResample
[  FAILED  ] Chromaprint.BasicImage

For a full log, see for example
https://buildd.debian.org/status/fetch.php?pkg=chromaprint&arch=s390x&ver=1.4.2-2&stamp=1517997275&raw=0.

API key not working

Accessing the API using the key shown on http://acoustid.org/api-key returns an error {"status": "error", "error": {"message": "invalid API key", "code": 4}}
Using the example API key shown in the documentation works fine.

I've tried generating a new key, but that didn't work either.

Seg fault when using CHROMAPRINT_ALGORITHM_TEST4 with ffmpeg

As of commit 21b2442 (chromaprint lib) calling chromaprint from ffmpeg with CHROMAPRINT_ALGORITHM_TEST3
causes a seg fault. To reproduce:

$ ffmpeg -f lavfi -i sine=d=20,asetnsamples=n=1000 -f chromaprint -algorithm 2 -
...
[1] 3691 segmentation fault (core dumped) ./ffmpeg -f lavfi -i sine=d=20,asetnsamples=n=1000 -f chromaprint -algorithm

AFAICT this is because FFT frame is set to zero in the configuration of the algorithm. Setting frame size to a reasonable value will probably solve the issue. Let me know if you agree and I can submit a pull request.

Mac OS X Mavericks compilation error

$ cmake .
$ make
[ 2%] Building CXX object src/CMakeFiles/chromaprint.dir/fft_lib_vdsp.cpp.o
In file included from /Users/phil/Downloads/chromaprint-1.0/chromaprint-1.0/src/fft_lib_vdsp.cpp:21:
/Users/phil/Downloads/chromaprint-1.0/chromaprint-1.0/src/utils.h:101:9: error: no member named 'fill' in namespace
'std'
std::fill(first, last, 0.0);

Update copyright notices

Hi,

While reviewing my packaging, someone noticed that your copyright notices are not up to date.

Would you be so kind as to update them, since you are still actively developing libchromaprint ?

Regards,

Simon

PS: How do one mark one's issues "minor" or "nitpick" on this tracker ?

fix deprecated API in fpcalc.c for building against ffmpeg-0.11

In ffmpeg-0.11, several API calls which were previously deprecated have been entirely removed; to get fpcalc.c to build against it, one needs to replace calls to avformat_open_input by avformat_open_input, to av_get_bits_per_sample_format by av_get_bytes_per_sample, and SAMPLE_FMT_S16 by AV_SAMPLE_FMT_S16.

Support 24-bit formats in fpcollect

The tools included in chromaprint currently reject anything that's not in the 16-bit signed format. It should try to convert other formats, such as 24-bit which is used for some FLAC files. There is some commented out code that uses av_audio_convert, but doesn't seem to be a public API, so we need to use something else.

Cannot find FFMpeg installation

As the title says, I get configuration error while try to cmake.

filippo@filippo-VirtualBox:~/Scrivania/chromaprint$ cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TOOLS=ON .
FFTW3 lib not found. Set FFTW3_DIR to find it.
-- Using kissfft for FFT calculations
-- Building without audio conversion support, please install FFmpeg with libswresample
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
FFMPEG_LIBAVCODEC_INCLUDE_DIRS
used as include directory in directory /home/filippo/Scrivania/chromaprint/src/cmd
used as include directory in directory /home/filippo/Scrivania/chromaprint/src/cmd
FFMPEG_LIBAVFORMAT_INCLUDE_DIRS
used as include directory in directory /home/filippo/Scrivania/chromaprint/src/cmd
used as include directory in directory /home/filippo/Scrivania/chromaprint/src/cmd
FFMPEG_LIBAVUTIL_INCLUDE_DIRS
used as include directory in directory /home/filippo/Scrivania/chromaprint/src/cmd
used as include directory in directory /home/filippo/Scrivania/chromaprint/src/cmd

-- Configuring incomplete, errors occurred!

However I installed ffmpeg 0.8.17 (in its default location) on my machine and it's working correctly.
I'm running Ubuntu 12.04.

fpcalc segfaults following unknown codec

If "goto done" is called in decode_audio_file after codec_ctx is initialised (line 31) but before avcodec_open() is called (line 52), then avcodec_close() gets called on the unopened codec_ctx (line 140) causing a segmentation fault.

fpcalc ignore errors

I found that fpcalc exits in an error status if there's problems in the stream. In my case with live streams, it seemed like discontinuity errors or etc could cause the problem.

I suggest adding an option to ignore these errors and output whatever fingerprint data is available. I implemented it where it's needed, but this bool could be tested throughout:
ignore_errors.txt

Does Chromaprint detect "similar sounding" music recordings?

Please resolve a question about Chromaprint.

A developer has suggested that Chromaprint is capable of comparing a set of song recordings and determining:

(1) That two different recordings are different renditions of the same song, and

(2) That two different recordings of different songs "sound similar" due to acoustic similarities - presumably properties like similar tempo, similar pitch, shared musical features, similar voice / lyrics / instruments, playing technique, etc.

The developer believes that Chromaprint has these capabilities because it incorporates "perceptual hashing," and that Chromaprint "makes some assumptions about content of the audio - that it will be a song, or some tune, etc." The developer wishes to use it to analyze the developer's own recordings over a span of several years to detect "similarities" among the recordings.

Another developer believes that Chromaprint is limited to detecting similar (but non-identical) binary representations of identical content, such as would be useful for de-duplication - but that recordings of different songs, or of different renditions of the same song, would generate completely dissimilar fingerprints even though they "sound similar" or are perceived similarly by humans.

Can you please comment?

Support multi-channel audio

It would be nice if fpcalc could fingerprint multi-channel audio (e.g. wav). Currently it’s necessary to downmix to stereo and work from there, but it would be better if fpcalc would do this for itself (it’s ultimately downmixing to mono anyway, right?)

Cross-compilation issue for ppc architecture with gcc 4.7

I am building Chromaprint 1.4.2 as Synology package for SynoCommunity but compilation fails with DSM 5.2 qoriq toolchain (qoriq-gcc4374_eglibc2874_qoriq-GPL.txz):

make -f src/CMakeFiles/chromaprint_objs.dir/build.make src/CMakeFiles/chromaprint_objs.dir/build
make[5]: Entering directory '/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2'
/usr/bin/cmake -E cmake_progress_report /spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/CMakeFiles 2
[  5%] Building CXX object src/CMakeFiles/chromaprint_objs.dir/fft_lib_avfft.cpp.o
cd /spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src && /spksrc/toolchains/syno-qoriq-5.2/work/powerpc-none-linux-gnuspe/bin/powerpc-none-linux-gnuspe-g++   -DCHROMAPRINT_NODLL -DHAVE_CONFIG_H -D_SCL_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I/spksrc/toolchains/syno-qoriq-5.2/work/powerpc-none-linux-gnuspe/powerpc-none-linux-gnuspe/include -mcpu=8548 -mhard-float -mfloat-gprs=double -I/spksrc/spk/chromaprint/work-qoriq-5.2/install//usr/local/chromaprint/include   -Wall -O3 -DNDEBUG -I/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2 -I/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src -I/spksrc/spk/chromaprint/work-qoriq-5.2/install/usr/local/chromaprint/include    -o CMakeFiles/chromaprint_objs.dir/fft_lib_avfft.cpp.o -c /spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp
In file included from /spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.h:14,
                 from /spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:4:
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/utils.h: In function 'void chromaprint::PrepareHammingWindow(RandomAccessIterator, RandomAccessIterator, double)':
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/utils.h:40: error: ISO C++ forbids declaration of 'size' with no type
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/utils.h: In function 'void chromaprint::ApplyWindow(InputIt, InputIt, WindowIt&, OutputIt&)':
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/utils.h:49: error: ISO C++ forbids declaration of 'input' with no type
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/utils.h:51: error: invalid type argument of 'unary *'
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp: In member function 'void chromaprint::FFTLib::Load(const int16_t*, const int16_t*, const int16_t*, const int16_t*)':
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:27: error: ISO C++ forbids declaration of 'window' with no type
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:27: error: invalid conversion from 'FFTSample*' to 'int'
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:28: error: ISO C++ forbids declaration of 'output' with no type
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:28: error: invalid conversion from 'FFTSample*' to 'int'
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp: In member function 'void chromaprint::FFTLib::Compute(chromaprint::FFTFrame&)':
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:35: error: ISO C++ forbids declaration of 'input' with no type
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:35: error: invalid conversion from 'FFTSample*' to 'int'
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:36: error: ISO C++ forbids declaration of 'output' with no type
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:36: error: cannot convert '__gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >' to 'int' in initialization
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:37: error: invalid types 'int[int]' for array subscript
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:37: error: invalid types 'int[int]' for array subscript
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:37: error: invalid types 'int[int]' for array subscript
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:38: error: invalid types 'int[unsigned int]' for array subscript
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:38: error: invalid types 'int[int]' for array subscript
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:38: error: invalid types 'int[int]' for array subscript
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:42: error: invalid type argument of 'unary *'
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:42: error: invalid types 'int[int]' for array subscript
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:42: error: invalid types 'int[int]' for array subscript
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:42: error: invalid types 'int[int]' for array subscript
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:42: error: invalid types 'int[int]' for array subscript
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/utils.h: In function 'void chromaprint::ApplyWindow(InputIt, InputIt, WindowIt&, OutputIt&) [with InputIt = const int16_t*, WindowIt = int, OutputIt = int]':
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/fft_lib_avfft.cpp:29:   instantiated from here
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/utils.h:49: error: invalid conversion from 'const int16_t*' to 'int'
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/utils.h:50: error: ISO C++ forbids comparison between pointer and integer
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/utils.h:51: error: invalid type argument of 'unary *'
/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2/src/utils.h:51: error: invalid type argument of 'unary *'
src/CMakeFiles/chromaprint_objs.dir/build.make:54: recipe for target 'src/CMakeFiles/chromaprint_objs.dir/fft_lib_avfft.cpp.o' failed
make[5]: *** [src/CMakeFiles/chromaprint_objs.dir/fft_lib_avfft.cpp.o] Error 1
make[5]: Leaving directory '/spksrc/spk/chromaprint/work-qoriq-5.2/chromaprint-1.4.2'

Do you have any suggestion how to get chromaprint built with GCC 4.7 for ppc ?

lookup acoustID automatically

It would be great if there were a convenient way to get an acoustID (or acoustID scores) from a fingerprinted file. Taking the output of fpcalc and plugging it into the web API is doable but annoying, and it would be nice if fpcalc (optionally) did that.

Building chromaprint-1.4.2 fails

Building chromaprint-1.4.2 fails with the following message:

-- Using swresample for audio conversion
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/SBo/chromaprint-1.4.2/build
Scanning dependencies of target chromaprint_objs
[  4%] Building CXX object src/CMakeFiles/chromaprint_objs.dir/fft_lib_avfft.cpp.o
In file included from /tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.h:14:0,
                 from /tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.cpp:4:
/tmp/SBo/chromaprint-1.4.2/src/utils.h: In function ‘void chromaprint::PrepareHammingWindow(RandomAccessIterator, RandomAccessIterator, double)’:
/tmp/SBo/chromaprint-1.4.2/src/utils.h:40:8: warning: ‘auto’ will change meaning in C++0x; please remove it
/tmp/SBo/chromaprint-1.4.2/src/utils.h:40:13: error: ‘size’ does not name a type
/tmp/SBo/chromaprint-1.4.2/src/utils.h:42:61: error: ‘size’ was not declared in this scope
/tmp/SBo/chromaprint-1.4.2/src/utils.h: In function ‘void chromaprint::ApplyWindow(InputIt, InputIt, WindowIt&, OutputIt&)’:
/tmp/SBo/chromaprint-1.4.2/src/utils.h:49:2: warning: ‘auto’ will change meaning in C++0x; please remove it
/tmp/SBo/chromaprint-1.4.2/src/utils.h:49:7: error: ‘input’ does not name a type
/tmp/SBo/chromaprint-1.4.2/src/utils.h:50:9: error: ‘input’ was not declared in this scope
/tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.cpp: In member function ‘void chromaprint::FFTLib::Load(const int16_t*, const int16_t*, const int16_t*, const int16_t*)’:
/tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.cpp:27:2: warning: ‘auto’ will change meaning in C++0x; please remove it
/tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.cpp:27:7: error: ‘window’ does not name a type
/tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.cpp:28:2: warning: ‘auto’ will change meaning in C++0x; please remove it
/tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.cpp:28:7: error: ‘output’ does not name a type
/tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.cpp:29:22: error: ‘window’ was not declared in this scope
/tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.cpp:29:30: error: ‘output’ was not declared in this scope
/tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.cpp: In member function ‘void chromaprint::FFTLib::Compute(chromaprint::FFTFrame&)’:
/tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.cpp:35:2: warning: ‘auto’ will change meaning in C++0x; please remove it
/tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.cpp:35:7: error: ‘input’ does not name a type
/tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.cpp:36:2: warning: ‘auto’ will change meaning in C++0x; please remove it
/tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.cpp:36:7: error: ‘output’ does not name a type
/tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.cpp:37:2: error: ‘output’ was not declared in this scope
/tmp/SBo/chromaprint-1.4.2/src/fft_lib_avfft.cpp:37:14: error: ‘input’ was not declared in this scope
make[2]: *** [src/CMakeFiles/chromaprint_objs.dir/fft_lib_avfft.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/chromaprint_objs.dir/all] Error 2
make: *** [all] Error 2
root@stinkpad:/home/ftp/MIX/chromaprint# 

I'm building in my custom Slackware 13.37 x86_64 with GCC 4.5.2 against ffmpeg 3.0.7, FFTW 3.3.4 and cmake 3.5.2. I'm not a programmer but I can build my own packages, let me know what I may try to help debug this issue. Cheers, t0mg

"string iterator not incrementable" issue with the chromaprint_decode_fingerprint() function

Hi Lukas,

I'm trying to use the chromaprint_decode_fingerprint function but I get the following error message at runtime:

Debug Assertion Failed!
Program: MSVCP140D.DLL
File: VC\include\xstring
Line: 106
Expression: string iterator not incrementable

Do you know why?

Thanks.

You will find below a sample repro:

uint32_t *fp;
int length, algorithm;

char *encoded = "AQABz9GSJEkkKYmS4Tp6xvjx-tBpXMfRpUP1w3yGHmUPcWTwhnhgiYNeeBcu5HhbxA2PZuEFnSd-9FECq-gJPbtQ_fiLfkf3wvnRl9AO__jxCj7-QjzyoFek4xcmPnA2-qjUDz9yTsR56PFRJp4GP8ePLj2qY-NRfkL2oXEx6cFThPCh7_iRVnzQbX9wHc0UT0I_5Duao1KVGOsPlpdQLcqFHxf5oqfRFVpySvjR_Ch7_NCO87h05ChL7Do65vDIFC2H8zhyKnhqXJ6GdsuLw4c276h-TGEcfAfjmWgeYzy6HT6u5UhvhCceZSp0PD5iZzka9Zh05NOEZmsgxZTx50ifa8hxpRv0E1vHKciFHk0cFY0moRKzabgbDb3gH_2RH8k3lGuEKc_x3_hRPehX5ODRfDX6JCtOIVyOMFyP-4XyHWkaF9fRt0VzD7sOJlUkHX2Q9Ed-9PnR8EpwijfCJJFi9PmhLySPhmOC-sIZiI8m_ML3INJ3pI6UknCNnkHzyNDEpchz400d9IN99PiSo9kyDf0xXTrS_HCC79D64Tx4o1YSIReeCKH84Q0ORT7CNMKPmQma62inD7xoodlEJNOJXEHzo3qCMEn4omWg_UPKqBN69EYz5kPyDrkeCb2OKd2i4RJ6PB3CQ5Wo5shTMUH7Hf6IHsd5NNcQnjFGo8oP__DJQz8OJk9s5BROotERSmSOjyaUv0LqsziV4zmaK5jIFLXAxEk0xIfeIcyFqiEVXL_hGLnQUOXRJ8SHSLnRr_jx5IU35CH0N0gfHtdQ_Wj0ZniT7ENZXPDRrijZIMxn7Dkqo0nIoG_QVDsO_mi6yOibDJqyHf6DSiX2fdAyVEyCXDyqhD2aRyf2H09EMJkchE-g60GYK3grNHHwHE9I9DrSMoJ2ZMd7_Ch7WEftI24DqTrCEteio9ePLxIVIj-uW1CjK6goVoYnhYZuuElwNDfyIT4e4lGWKWhEyUF5XKic47xQ0ZygO0XXhAgTMzP-FN_x4_lQiynCxBlxPgivIEyNL0e64zu-hCR-fMzBieLxIzy0MEZ-MNcc-Bqc53gYUfCPh0c6MmFI6DWaijk-K8g_PNXRhKjTD72UBSXzgT_-YIx27EsUJ6iThkJTZUd-aM_R03iaCk-CUwITPUcPVVfwLA8m0UbTrLgSHR3-Y8-DUsKVB6EkJWh-_HgPTv3AZs_R23CcBfWRM1B1hB1K63iipLg9XETcZ0I3jynO8PiF64YtH1klhDvxhThXzFex3kG1HPZu9Dmu47mh5UGtHKp1POjyUMWfDJo6of8Gtgvy5EDfo1bgnWiX6wCGhEEAKADJIUAbILJzTAgDBDBCAgQQMEQQJABBwgJgBBMAAGaEAMwAh5wAikDkhQBGCIGkAgQASghihAmlEBDEMCOUAYYJ4pRVwhAEAiXEYWAUMchQBpQVhkwhgDUMAQAoMkgxJRUwjgFBBRBCEGM0BgBAAIhQRBJkkALCCAUMQIAIIQBQRDGDBAECAAGY4MYQIhSgBCEkKAHEggG8cAIYJIgUwJAHpCHAMAaEQEYo6IgAADgEAUIIBAQcMEIgYBkECEABCEYKAYYcA4oowBBABAAvBJJKMGIAEAYwA5QADAAGCINMaAKQJcQYjCCzxBBACAcGMM4II8IQKIghgFgABTOEUAegMQQ4wYCBSjgAiAFCEGCAYwZIIAA0QChAhBROUAQAEo4YR4AQhhhliAAMEAQUBtooAg5xjCADgCGAOCQIQgQghigwQAikBBAEAA";

chromaprint_decode_fingerprint(encoded, strlen(encoded), &fp, &length, &algorithm, 1); // string iterator not incrementable       

Issue with fingerprinting MP3

Hi Lukas,

I try to compute fingerprint the following MP3 file with fpcalc but without success (rename ZIP to MP3):
chromaprint_issue.mp3.zip

fpcalc returns nothing in the console. And the chromaprint library fails after calling the avcodec_decode_audio4 function.

However, the file seems to be perfectly playable and ffprobe doesn't report any issue.

Do you know why the file cannot be fingerprinted by chromaprint?

Thanks.

How to create release builds?

Hi Lukáš,

I've been experimenting with compiling fpcalc for different platforms myself. Which scripts or compiler options are you using to create the release packages?

The official (release binaries)[https://acoustid.org/chromaprint] are all a few MB large. But when I compile myself with the instructions on the README.md it's barely 100 KB so I'm probably missing some static dependencies but I'm not sure which compiler options I need to include all of those in the binary.

Cheers, Reinhard

Wrong fingerprint

Hi,

The file Disc_6_-3-_First_Date.flac is Blink's "First Date", but it's being recognized as Queen's "Somebody to Love".

The generated fingerprint is:

DURATION=171
FINGERPRINT=AQADtImiZMkkJYmEQ2uIhzHiLSmaPULX486B5kyRJ8IbOYK-wyPRZj808oErom9YnNKP_ENI8oT5Q3um4z9iGs-HS8fHdIgvD030Q3vz4JlRi0Fz4Tx6ZRAPL8dMWiny1kHz4_pxXAd3_PiOfHkxSeMhMi92HSfe4_jR4-EIPuSBY3qOxlkufLtQPSma449y3PiC6YPWY0fI-3AcwkevC5M45WiOI-8j45cD_TY0tnBHhKOO7kfz4xuI-0IbRZmDzyouabDEIRZ58CiPP8Z1PTjxG1O-5KhkHc1yaD_eoAmPDuWPhsQZHQ26480RVkauo9Qh2w3yDz-6M3B_VE1RK0d66EhPCpMevJGL--CzI38F6S_CbAlqGj8eHf9xdXiUzGjeIvzxSYccMkX-4JISHdWqDM1z5L2Cfmj4QzGl4Eeq5YilMdh96NahB__BiyPUmhHKP0QzGT-G5oGfHJULfdnxJpiZWcajPiiR6UF_9MePHjfCEz88HT8ehUePL3iQIzx-lBqk32jkKAiN68G5H0eWVNKFqtnRdNFKoTP4C3kO5viSHA51Dj_SI2H-oheJ49KSB0_yoVWCKQpx4QjfBk2H9Tk8KSH2D_oOXWHRLB-mHTcePId1KH_Q5SvC8Pjh3TiXB6eQL4d65PjxksL_EFPccMgV44d6_GB0vNCBdw_ovDKeQaOUo7khHxcaMeHQI7wPPzEo80JY6PLxXLDmB_-iIR9LNEt4hM-hI1-U4BSDJzp-UI915A-ebcWNPh9ST1FxCuEy7B_66RCfowhPHY8UHU8SRHoOPcaH8KlxJdIOuz9c4ZnxOPnhF1VK41eYDnkiHrqCvPAf4RWupbgiWGOO2JmO5JPwg809fDEaH_3Bv8iT8KgsBeuPv_hxXAyeFH1MqH9QizkaJZJGXMqHvkPz4dCTPMFJDoXjieiTZ5gffD8OqReYXKVR6R0O5sF94oZ2euisET6DLJr6odcNTz8uNcR3MM9Bx0GDnpqR45BCOM-RPfgGfw_eLNVwHk-S48rRHD924cuT4BdCJsejxEjOE81z_PjwRdnRnNGwH_miQC-qo9ZkiMnxnMiJHz8-XBvco5VRkYJv9EuOvMSL6w56aInD4xTxJ9AWMscTBb-hWdmGM_hxnrhMIc8xpRT6HPmPB9clHM354oTIjEf147qQ9zhu_MlxnUIO7T_8HCdcSUGvHBf6w9Ft6LmH8Q9-_AiPm7iP87iCsrrwPvgy5IfDpfjFQ6GJnsehS8V_tM-QHq7j40ef4oh3PIKsKDveVMM_1PAkBp8fWCzOw1eOYvo8-DrKXoaU5EKLpxXC9Db64zucHzlxHpeOqkoeXBfxw-vi4ujyBZkfHpcuRMdxHVrX4ol24YLO4SNyHteNMlxCxOLxYzvkSccVoUmnoD-0HD0z4TGTII9Q-EfV8LhyIZ-xNoZeHnd0_MZk0vD-YGqEd4em17C2_XhDG_WRU2h-1F_xffjiweeDh8XzIycPPaiO7aSIVOGD1vgPy7h8jDW-SOtxNUaeHvqNfEUfCu6DOmGK6dmHH-Et6AN5nMSPF9TTDXp0BU-y4ymHKcp39MlT9PAZ1ArK6MOUPngi5GoSnDny4zzeLB2aHdpzvDdifPhRijsuBTXxH_klSOxT5BGDpi6Y18cVHi8L5kiP52hk7MoDxWSOJwr043vA5OiO4z6RJzu-CPURRj92c1B1HT8m5sdXVMeOaZ6PJ7iRfuj04z-O9wg5RdB05GeC90EeCdNN4MoCUUuOa9CEPMSNizbWW0H4Hm6ga3DkoVJGQ1eOvjbCHN9wwSUe8UYsXVAd-AeXKUyR5xGe9EkRkkkhJUe-4AvT4MlwLWhOhHPS4ZOh-IH22kjvwX6F7_Bx_cidQz_iR0b_CFcQMtHRPIdCnMWVJY6Rj3lQP3iQ7uh15P3wMjy-LDnyRdCFME-JPrjKE3PyBl9-YkoeInwCPQvy7Dg_XCmaEz1RHQ8jlGPyImoufMKnodtd_PhOXLixD0_y4v2gyw9qBx-ePHif4EEzZtAsHX-KGzsqy4J4fNuww4e_iNBj3DrSxEefCT1h8sNZmA_yF5eO9IEnSTr6ZMefIVePS0f9gknELNB5PB24c7j04UmE7j7Eh0ODixaeXLh4oeGOM4vRYw909cLPIc889DCPPbhz5DdeQszRRyyRoz1-3BP84ywuPIevI3yHF_ldnAfzoDlT_MyEZ1bwMniSkwgXKQ_0I0d_PLNwJk-CC-2y4Ep2pJeDPsePF_TQ5TryoyeCBy-k46GQk8bHozkq4zl6HWHa45oIt3iO0ZIV_IGlZceJ2niP0J-C_EGDycaVBz-h_kejH1UlFceV6QJr-dCMf0VxZXiOU8ehHT2OC1cmgYyqCVry4dkLH_mRC-_hJkF__IXiK3h5ob0hR7B148ePRsfV4xkRd3nw46QxnYaP_MJ_oT_-FPxxHccVHEIjNhr6o97Q5NCPayXig5_S4xPCRA_6PHiCy9HQwJdyMM-F-Ecz5jHaF5dyoTHC5_hx4jyO50RJJR5MRcJzjDz8LDV2HoAYBQYoZAwBBgADIBCCKAGEocIAYwQAigHnBFBAECQIU8Aj4ZwRxChhBLJcCCMQWUIhQDAACBnGuBBAMEicEIIIQYwREBFBiHLMAKAAUgwIxRRQVgjDFAIOSCWoMAoY6AEQxBBCBGCWMcCEQIQhYIQygAAIhAXCEQUcMBAAAAhwBAGBgDAACAQMUgIKCZhihmEnRTaCASAMAMQIgiSQQgJGlAFCEKAAV4IAwAwhTFLKIDRGCEcIgMoI44UUCADDjGdECkYEUIYYpAQDgAAGAABCCcUlEJIYQaAQTBAwiCDACCAUEQBCAYQAjAAAAREEMCIsAZJIxACBBACgEAGIAE8RQwgAAixhhCAhGBBCKECQAsYKIAwAgDgCFJHQIMIIEMQQhAiyyiGhkGLAIEAsCAAYRqQiDkkElEJcCAGIBUIhRgEgSjGggVICCaMMkYKQABwzgAmFHACGAMEWAIAwApkgBgBgkFLWCQCZUsAYx5gwQAlkqQAGAA0UBFQpgxwAgDgBEDECAIQAMowpZAgxgjABCDAoAgkMWMwIhIQglDhhkGAcEoOAQwAIZoQgDgEAkAIYKYEAYEQAQZQghhBHFBAUKCSkIsIIZBAgRjAgjGKGGCEEEIoBggBkQFCBhDGUMQUAYQRIABATFDhlCCCGImEhRwIwooQwAEABALQKgCIEA0JAJJQxAkmFqJWAEYEIMUAhUIwCBhFCEHYEMCUIEgRTBAAQSBKhiDCAIQGQIxYAQQggggALABEEAIOEIQhBIolwhgABGIBaEEQAA0whBCgxAHmLnAAQCKmwcoABwhAAAhAghFJIUUMQIQAgZYgwxDoAAFNMQkCIEJKgxpBCxECKBAHWAGIIAIwJgggCkiEGDGGEKIUsEAopZxUiQhDEjHFCMUScIgABRZWRBBBBADEIMAEEBEYuRhVQjiDlDAbCAOaEEQYp5gxCjEBDiBIKASQIMJQQS45cRgCBlCBYAMIIAMIYIRgRgmjjGBIMMaSAAQA

Not sure if this is the correct place to report this issue, I apologize if not.

Thanks!

Support AC-3 audio

It would be nice if fpcalc could generate fingerprints for raw AC-3 audio. Currently it is necessary to convert them to wav and scan that.

NDEBUG is not a macro defined in Release mode by MSVC

Hi Lukas,

It seems that MSVC doesn't define the NDEBUG macro under Release mode, so the preprocessor condition in the src/debug.h and src/image.h is always false:

#ifdef(NDEBUG)

#endif

Perhaps we could use #ifndef(_DEBUG) instead of #ifdef(NDEBUG), at least when the compiler is MSVC?

Regards,

Cyber Sinh

fpcalc outputs different fingerprints based on operating system version

I've found an issue where fpcalc will output different fingerprints for the SAME file and the SAME algorithm on DIFFERENT operating systems.

The operating systems I've tested are two computers with Windows 10 and two different versions of Ubuntu (14.04.5 LTS and 16.04.1 LTS.)

  • The two computers running Windows 10 output the same acoustid using the latest version of chromaprint/fpcalc for Windows.
  • The two Ubuntu systems output different prints from both eachother and from the Windows 10 computers using the latest version of the program.

I've tested this with both the default algorithm and the "test1" algo (could not find any documentation on any other algorithms to try.)

This is a problem for me because I have files that I want to compare on my Ubuntu servers but can't because I can't match them with the IDs I've verified on my Windows computers.

When the matcher API will be back?

Hi Lukas,

The matcher API has been removed 12 days ago because it has needed a better design.
The release of chromaprint v1.4 seems to be imminent.

When can we expect a return of the matcher API? In the 1.4? 2.0?

Thank you very much.

Making a 1.4.4 release

Hi,

There was no release pinned for 1.4.4, can you do it please?

Probably because of that, it looks like various vendors are not aware that this version exists (FreeBSD, Debian and others).

Thanks in advance!

Allow fully streamed fingerprinting

The audio processing code is currently fully streamable, but in order to generate the fingerprint we buffer the results and process them at the end. This is not necessary, it was just easier to do it that way. It would be nice to change this, so that the library can start providing fingerprint data as soon as possible.

Compile chromaprint 1.4 with Visual C++ 2015

Hi Lukas,

I tried to compile chromaprint 1.4 with MSVC 2015 and the compilation failed because __builtin_popcount, a GCC specific function, is missing.

I had to add this code to allow MSVC to compile the library:

#ifdef _MSC_VER
#include <intrin.h>
#define __builtin_popcount __popcnt
#define __builtin_popcountll __popcnt64
#endif

I don't know if adding that is sufficient to get robust code. According to the MSDN documentation, the hardware support should be checked before using _popcount.

To determine hardware support for the popcnt instruction, call the __cpuid intrinsic with InfoType=0x00000001 and check bit 23 of CPUInfo[2] (ECX). This bit is 1 if the instruction is supported, and 0 otherwise.
If you run code that uses this intrinsic on hardware that does not support the popcnt instruction,
the results are unpredictable.
To determine hardware support for the popcnt instruction, call the __cpuid intrinsic with InfoType=0x00000001 and check bit 23 of CPUInfo[2] (ECX).
This bit is 1 if the instruction is supported, and 0 otherwise.
If you run code that uses this intrinsic on hardware that does not support the popcnt instruction,
the results are unpredictable.

It seems GCC use a fallback implementation if __builtin_popcount is called on a system without popcount CPU support.

Cannot find source file INTERFACE in src/cmd/CMakeLists.txt:27

Hi!
I'm trying to build under CentOS 7 x86_64 cmake version 2.8.12.2 and following error is accured:

cmake -DFFTW3_DIR=xxxxxxxxxx -DCMAKE_BUILD_TYPE=Release -DBUILD_TOOLS=ON

-- Using avfft for FFT calculations
-- Using swresample for audio conversion
-- Configuring done
**CMake Error at src/cmd/CMakeLists.txt:27 (add_library):**
  Cannot find source file:

    **INTERFACE**

  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
  .hxx .in .txx

What am I doing wrong?

FFmpeg not found when cross-compiling for Synology

When upgrading SynoCommunity Chromaprint from 1.3.1 to 1.4.2, I faced troubles because of find_package(FFmpeg) failing to find stdint.h with enlisted path. I wonder if this issue may be generic in any cross-compilation context.

As a work-around, I have commented last condition AND FFMPEG_STDINT_INCLUDE_DIR at https://github.com/acoustid/chromaprint/blob/master/cmake/modules/FindFFmpeg.cmake#L111

Original makefile for Chromaprint 1.3.1: https://github.com/SynoCommunity/spksrc/blob/master/cross/chromaprint/Makefile

Patch I applied to get Chromaprint 1.4.2 configured properly: cross/chromaprint/patches/002-cmake-find-ffmpeg.patch

--- cmake/modules/FindFFmpeg.cmake.orig	2017-07-30 09:38:01.979775537 +0200
+++ cmake/modules/FindFFmpeg.cmake	2017-07-30 09:51:43.141003104 +0200
@@ -108,7 +108,7 @@
 
 SET(FFMPEG_FOUND "NO")
 # Note we don't check FFMPEG_LIBSWSCALE_FOUND here, it's optional.
-IF   (FFMPEG_LIBAVFORMAT_FOUND AND FFMPEG_LIBAVCODEC_FOUND AND FFMPEG_LIBAVUTIL_FOUND AND FFMPEG_STDINT_INCLUDE_DIR)
+IF   (FFMPEG_LIBAVFORMAT_FOUND AND FFMPEG_LIBAVCODEC_FOUND AND FFMPEG_LIBAVUTIL_FOUND)
 
     SET(FFMPEG_FOUND "YES")

Is there better option to support cross-compiling toolchains which provides their own stdint.h and so not found in usual system locations ?
Thank you in advance for your help

chroma features

I would like to leverage the chroma feature functionality described at https://oxygene.sk/2011/01/how-does-chromaprint-work/ but am not sure where to look in the repository.

Specifically, I would like to access the array/pointer or whatever structure this is being held in when chromaprint runs. Any guidance as to where to find this would be appreciated.

Questions regarding Chromaprint

  1. Is it possible to match music that are not perfect octaves higher, but instead 1~11 half-steps higher? In that case the matching will have to be done 12 times.
  2. Is it possible to match music that has been slowed down or sped up (e.g. digital music vs slow record player), in that case beats-per-minutes should be factored in.
  3. Is it possible to match music like soundhound or shazam, where a recording in a mall or other slightly noisy location can have matches (e.g. Python or JavaScript)

Can't install, FFmpeg not found

Hi,
I'm trying to install chromaprint on Ubuntu 16.04 but CMake keeps telling me that FFmpeg can't be found.
I'm certain ffmpeg is installed andwhich ffmpeg returns /usr/local/bin/ffmpeg

Any solution ?
Thanks.

Min fingerprint size for one second of audio data?

Hi Lukas,

I understand that the maximum size in bytes of a one-second footprint of audio data is 32 (8 * sizeof(uint)). So, I can easily calculate the size in bytes for a buffer that may contain the whole fingerprint.

But, when I request a fingerprint for the first 120 seconds of an audio file, its size is 3792 bytes (uint[948]) and not 3840 (120x8x4). If I request a fingerprint for the first 60 seconds, its size is 1852 bytes (uint[462]) and not 1920 (60x8x4).

How can I calculate the minimum size in bytes that the fingerprint should have based on a given duration?

Thank you.

Building on OS X

Hi, Trying to build on OS X 10.13.6 fails on linking the fpcalc lib

cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TOOLS=ON -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/ -DFFT_LIB=vdsp . make

Output:
[ 81%] Built target chromaprint_objs [ 90%] Built target chromaprint [ 95%] Linking CXX executable fpcalc Undefined symbols for architecture x86_64: "_AudioConverterDispose", referenced from: _ffat_close_decoder in libavcodec.a(audiotoolboxdec.o) _ffat_close_encoder in libavcodec.a(audiotoolboxenc.o) "_AudioConverterFillComplexBuffer", referenced from: _ffat_decode in libavcodec.a(audiotoolboxdec.o) _ffat_encode in libavcodec.a(audiotoolboxenc.o) "_AudioConverterGetProperty", referenced from: _ffat_create_decoder in libavcodec.a(audiotoolboxdec.o) _ffat_init_encoder in libavcodec.a(audiotoolboxenc.o) "_AudioConverterGetPropertyInfo", referenced from: _ffat_create_decoder in libavcodec.a(audiotoolboxdec.o) _ffat_init_encoder in libavcodec.a(audiotoolboxenc.o) "_AudioConverterNew", referenced from: _ffat_create_decoder in libavcodec.a(audiotoolboxdec.o) _ffat_init_encoder in libavcodec.a(audiotoolboxenc.o) "_AudioConverterReset", referenced from: _ffat_decode_flush in libavcodec.a(audiotoolboxdec.o) _ffat_encode_flush in libavcodec.a(audiotoolboxenc.o) "_AudioConverterSetProperty", referenced from: _ffat_create_decoder in libavcodec.a(audiotoolboxdec.o) _ffat_init_encoder in libavcodec.a(audiotoolboxenc.o) "_AudioFormatGetProperty", referenced from: _ffat_create_decoder in libavcodec.a(audiotoolboxdec.o) "_AudioFormatGetPropertyInfo", referenced from: _ffat_create_decoder in libavcodec.a(audiotoolboxdec.o) "_BZ2_bzDecompress", referenced from: _matroska_decode_buffer in libavformat.a(matroskadec.o) "_BZ2_bzDecompressEnd", referenced from: _matroska_decode_buffer in libavformat.a(matroskadec.o) "_BZ2_bzDecompressInit", referenced from: _matroska_decode_buffer in libavformat.a(matroskadec.o) "_CFArrayCreate", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_CFArrayCreateMutableCopy", referenced from: _tls_open in libavformat.a(tls_securetransport.o) "_CFArrayGetCount", referenced from: _vtenc_frame in libavcodec.a(videotoolboxenc.o) _import_pem in libavformat.a(tls_securetransport.o) "_CFArrayGetValueAtIndex", referenced from: _vtenc_frame in libavcodec.a(videotoolboxenc.o) _tls_open in libavformat.a(tls_securetransport.o) "_CFArraySetValueAtIndex", referenced from: _tls_open in libavformat.a(tls_securetransport.o) "_CFBooleanGetValue", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _vtenc_frame in libavcodec.a(videotoolboxenc.o) "_CFDataCreate", referenced from: _ff_videotoolbox_avcc_extradata_create in libavcodec.a(videotoolbox.o) _ff_videotoolbox_hvcc_extradata_create in libavcodec.a(videotoolbox.o) _videotoolbox_start in libavcodec.a(videotoolbox.o) _import_pem in libavformat.a(tls_securetransport.o) "_CFDictionaryCreate", referenced from: _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) "_CFDictionaryCreateMutable", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) _videotoolbox_start in libavcodec.a(videotoolbox.o) "_CFDictionaryGetValueIfPresent", referenced from: _vtenc_frame in libavcodec.a(videotoolboxenc.o) "_CFDictionarySetValue", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) _videotoolbox_start in libavcodec.a(videotoolbox.o) "_CFNumberCreate", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) _videotoolbox_start in libavcodec.a(videotoolbox.o) "_CFRelease", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _vtenc_frame in libavcodec.a(videotoolboxenc.o) _vtenc_close in libavcodec.a(videotoolboxenc.o) _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) _vtenc_output_callback in libavcodec.a(videotoolboxenc.o) _videotoolbox_uninit in libavcodec.a(videotoolbox.o) ... "_CFRetain", referenced from: _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) _vtenc_output_callback in libavcodec.a(videotoolboxenc.o) _tls_open in libavformat.a(tls_securetransport.o) "_CFStringCreateWithCString", referenced from: _import_pem in libavformat.a(tls_securetransport.o) "_CMBlockBufferCopyDataBytes", referenced from: _vtenc_frame in libavcodec.a(videotoolboxenc.o) "_CMBlockBufferCreateWithMemoryBlock", referenced from: _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o) "_CMSampleBufferCreate", referenced from: _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o) "_CMSampleBufferGetDataBuffer", referenced from: _vtenc_frame in libavcodec.a(videotoolboxenc.o) "_CMSampleBufferGetDecodeTimeStamp", referenced from: _vtenc_frame in libavcodec.a(videotoolboxenc.o) "_CMSampleBufferGetFormatDescription", referenced from: _vtenc_frame in libavcodec.a(videotoolboxenc.o) _vtenc_output_callback in libavcodec.a(videotoolboxenc.o) "_CMSampleBufferGetPresentationTimeStamp", referenced from: _vtenc_frame in libavcodec.a(videotoolboxenc.o) "_CMSampleBufferGetSampleAttachmentsArray", referenced from: _vtenc_frame in libavcodec.a(videotoolboxenc.o) "_CMSampleBufferGetTotalSampleSize", referenced from: _vtenc_frame in libavcodec.a(videotoolboxenc.o) "_CMTimeMake", referenced from: _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) "_CMVideoFormatDescriptionCreate", referenced from: _videotoolbox_start in libavcodec.a(videotoolbox.o) "_CMVideoFormatDescriptionGetH264ParameterSetAtIndex", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_CVBufferSetAttachments", referenced from: _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) "_CVPixelBufferCreateWithPlanarBytes", referenced from: _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) "_CVPixelBufferGetBaseAddress", referenced from: _vt_map_frame in libavutil.a(hwcontext_videotoolbox.o) "_CVPixelBufferGetBaseAddressOfPlane", referenced from: _vt_map_frame in libavutil.a(hwcontext_videotoolbox.o) "_CVPixelBufferGetBytesPerRow", referenced from: _vt_map_frame in libavutil.a(hwcontext_videotoolbox.o) "_CVPixelBufferGetBytesPerRowOfPlane", referenced from: _vt_map_frame in libavutil.a(hwcontext_videotoolbox.o) "_CVPixelBufferGetHeight", referenced from: _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o) _vt_map_frame in libavutil.a(hwcontext_videotoolbox.o) "_CVPixelBufferGetPixelFormatType", referenced from: _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o) _vt_map_frame in libavutil.a(hwcontext_videotoolbox.o) "_CVPixelBufferGetPlaneCount", referenced from: _vt_map_frame in libavutil.a(hwcontext_videotoolbox.o) "_CVPixelBufferGetWidth", referenced from: _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o) _vt_map_frame in libavutil.a(hwcontext_videotoolbox.o) "_CVPixelBufferIsPlanar", referenced from: _vt_map_frame in libavutil.a(hwcontext_videotoolbox.o) "_CVPixelBufferLockBaseAddress", referenced from: _vt_map_frame in libavutil.a(hwcontext_videotoolbox.o) "_CVPixelBufferRelease", referenced from: _videotoolbox_buffer_release in libavcodec.a(videotoolbox.o) _ff_videotoolbox_uninit in libavcodec.a(videotoolbox.o) _videotoolbox_uninit in libavcodec.a(videotoolbox.o) _videotoolbox_decoder_callback in libavcodec.a(videotoolbox.o) _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o) "_CVPixelBufferRetain", referenced from: _videotoolbox_decoder_callback in libavcodec.a(videotoolbox.o) "_CVPixelBufferUnlockBaseAddress", referenced from: _vt_map_frame in libavutil.a(hwcontext_videotoolbox.o) _vt_unmap in libavutil.a(hwcontext_videotoolbox.o) "_SSLClose", referenced from: _tls_open in libavformat.a(tls_securetransport.o) _tls_close in libavformat.a(tls_securetransport.o) "_SSLCopyPeerTrust", referenced from: _tls_open in libavformat.a(tls_securetransport.o) "_SSLCreateContext", referenced from: _tls_open in libavformat.a(tls_securetransport.o) "_SSLGetBufferedReadSize", referenced from: _tls_read in libavformat.a(tls_securetransport.o) "_SSLHandshake", referenced from: _tls_open in libavformat.a(tls_securetransport.o) "_SSLRead", referenced from: _tls_read in libavformat.a(tls_securetransport.o) "_SSLSetCertificate", referenced from: _tls_open in libavformat.a(tls_securetransport.o) "_SSLSetConnection", referenced from: _tls_open in libavformat.a(tls_securetransport.o) "_SSLSetIOFuncs", referenced from: _tls_open in libavformat.a(tls_securetransport.o) "_SSLSetPeerDomainName", referenced from: _tls_open in libavformat.a(tls_securetransport.o) "_SSLSetSessionOption", referenced from: _tls_open in libavformat.a(tls_securetransport.o) "_SSLWrite", referenced from: _tls_write in libavformat.a(tls_securetransport.o) "_SecIdentityCreate", referenced from: _tls_open in libavformat.a(tls_securetransport.o) "_SecItemImport", referenced from: _import_pem in libavformat.a(tls_securetransport.o) "_SecTrustEvaluate", referenced from: _tls_open in libavformat.a(tls_securetransport.o) "_SecTrustSetAnchorCertificates", referenced from: _tls_open in libavformat.a(tls_securetransport.o) "_VTCompressionSessionCompleteFrames", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _vtenc_frame in libavcodec.a(videotoolboxenc.o) _vtenc_close in libavcodec.a(videotoolboxenc.o) "_VTCompressionSessionCreate", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_VTCompressionSessionEncodeFrame", referenced from: _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) "_VTCompressionSessionPrepareToEncodeFrames", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_VTDecompressionSessionCreate", referenced from: _videotoolbox_start in libavcodec.a(videotoolbox.o) "_VTDecompressionSessionDecodeFrame", referenced from: _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o) "_VTDecompressionSessionInvalidate", referenced from: _videotoolbox_uninit in libavcodec.a(videotoolbox.o) _av_videotoolbox_default_free in libavcodec.a(videotoolbox.o) _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o) "_VTDecompressionSessionWaitForAsynchronousFrames", referenced from: _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o) "_VTSessionCopyProperty", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_VTSessionSetProperty", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "___CFConstantStringClassReference", referenced from: CFString in libavcodec.a(videotoolboxenc.o) CFString in libavcodec.a(videotoolboxenc.o) CFString in libavcodec.a(videotoolboxenc.o) CFString in libavcodec.a(videotoolboxenc.o) CFString in libavcodec.a(videotoolboxenc.o) CFString in libavcodec.a(videotoolboxenc.o) CFString in libavcodec.a(videotoolboxenc.o) ... "_iconv", referenced from: _avcodec_decode_subtitle2 in libavcodec.a(decode.o) "_iconv_close", referenced from: _avcodec_open2 in libavcodec.a(utils.o) _avcodec_decode_subtitle2 in libavcodec.a(decode.o) "_iconv_open", referenced from: _avcodec_open2 in libavcodec.a(utils.o) _avcodec_decode_subtitle2 in libavcodec.a(decode.o) "_kCFAllocatorDefault", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) _ff_videotoolbox_avcc_extradata_create in libavcodec.a(videotoolbox.o) _ff_videotoolbox_hvcc_extradata_create in libavcodec.a(videotoolbox.o) _videotoolbox_start in libavcodec.a(videotoolbox.o) _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o) ... "_kCFAllocatorNull", referenced from: _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o) "_kCFBooleanFalse", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kCFBooleanTrue", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) _videotoolbox_start in libavcodec.a(videotoolbox.o) "_kCFCopyStringDictionaryKeyCallBacks", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) "_kCFTypeArrayCallBacks", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kCFTypeDictionaryKeyCallBacks", referenced from: _videotoolbox_start in libavcodec.a(videotoolbox.o) "_kCFTypeDictionaryValueCallBacks", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) _videotoolbox_start in libavcodec.a(videotoolbox.o) "_kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms", referenced from: _videotoolbox_start in libavcodec.a(videotoolbox.o) "_kCMSampleAttachmentKey_NotSync", referenced from: _vtenc_frame in libavcodec.a(videotoolboxenc.o) "_kCMTimeIndefinite", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _vtenc_frame in libavcodec.a(videotoolboxenc.o) _vtenc_close in libavcodec.a(videotoolboxenc.o) "_kCMTimeInvalid", referenced from: _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) "_kCVImageBufferColorPrimariesKey", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) "_kCVImageBufferColorPrimaries_ITU_R_709_2", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kCVImageBufferGammaLevelKey", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kCVImageBufferPixelAspectRatioHorizontalSpacingKey", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kCVImageBufferPixelAspectRatioVerticalSpacingKey", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kCVImageBufferTransferFunctionKey", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) "_kCVImageBufferTransferFunction_ITU_R_709_2", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kCVImageBufferTransferFunction_SMPTE_240M_1995", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kCVImageBufferTransferFunction_UseGamma", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kCVImageBufferYCbCrMatrixKey", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) "_kCVImageBufferYCbCrMatrix_ITU_R_601_4", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kCVImageBufferYCbCrMatrix_ITU_R_709_2", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kCVImageBufferYCbCrMatrix_SMPTE_240M_1995", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kCVPixelBufferHeightKey", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _videotoolbox_start in libavcodec.a(videotoolbox.o) "_kCVPixelBufferIOSurfaceOpenGLTextureCompatibilityKey", referenced from: _videotoolbox_start in libavcodec.a(videotoolbox.o) "_kCVPixelBufferIOSurfacePropertiesKey", referenced from: _videotoolbox_start in libavcodec.a(videotoolbox.o) "_kCVPixelBufferPixelFormatTypeKey", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _videotoolbox_start in libavcodec.a(videotoolbox.o) "_kCVPixelBufferWidthKey", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _videotoolbox_start in libavcodec.a(videotoolbox.o) "_kVTCompressionPropertyKey_AllowFrameReordering", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kVTCompressionPropertyKey_AverageBitRate", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kVTCompressionPropertyKey_ColorPrimaries", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kVTCompressionPropertyKey_DataRateLimits", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kVTCompressionPropertyKey_MaxKeyFrameInterval", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kVTCompressionPropertyKey_MoreFramesAfterEnd", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kVTCompressionPropertyKey_MoreFramesBeforeStart", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kVTCompressionPropertyKey_PixelAspectRatio", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kVTCompressionPropertyKey_ProfileLevel", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kVTCompressionPropertyKey_TransferFunction", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kVTCompressionPropertyKey_YCbCrMatrix", referenced from: _vtenc_create_encoder in libavcodec.a(videotoolboxenc.o) "_kVTEncodeFrameOptionKey_ForceKeyFrame", referenced from: _vtenc_send_frame in libavcodec.a(videotoolboxenc.o) "_kVTProfileLevel_H264_Baseline_1_3", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kVTProfileLevel_H264_Baseline_3_0", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kVTProfileLevel_H264_Baseline_3_1", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kVTProfileLevel_H264_Baseline_3_2", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kVTProfileLevel_H264_Baseline_4_1", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kVTProfileLevel_H264_High_5_0", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kVTProfileLevel_H264_Main_3_0", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kVTProfileLevel_H264_Main_3_1", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kVTProfileLevel_H264_Main_3_2", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kVTProfileLevel_H264_Main_4_0", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kVTProfileLevel_H264_Main_4_1", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_kVTProfileLevel_H264_Main_5_0", referenced from: _vtenc_init in libavcodec.a(videotoolboxenc.o) "_lzma_code", referenced from: _decode_frame in libavcodec.a(tiff.o) "_lzma_end", referenced from: _decode_frame in libavcodec.a(tiff.o) "_lzma_stream_decoder", referenced from: _decode_frame in libavcodec.a(tiff.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [src/cmd/fpcalc] Error 1 make[1]: *** [src/cmd/CMakeFiles/fpcalc.dir/all] Error 2 make: *** [all] Error 2

Does it require the CoreAudio framework to be passed as a library/framework to ld? If so can you provide example how to do that.?

Thanks,

Duration printed as double in fpcalc breaks picard

In https://github.com/metabrainz/picard/blob/master/picard/acoustid.py#L204-L205, DURATION=xxx is parsed as an integer by casting with Pythons int constructor. This doesn't support any kind of decimal specifiers and doesn't automatically floor or ceil the value. https://github.com/acoustid/chromaprint/blob/master/src/cmd/fpcalc.cpp#L195 however now prints the duration with a minimum of 2 digits after the decimal point.

You can probably guess the error message by now, but here it is for search engines :):

Traceback (most recent call last):
  File "./picard/acoustid.py", line 205, in _on_fpcalc_finished
    duration = int(parts[1])
ValueError: invalid literal for int() with base 10: '280.49'

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.