-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] AAC/HE-AAC encoder (powered by libfdk-aac) #1387
Changes from 4 commits
c892b75
2d48d5b
3e44f7e
6f0fd94
42fd1a5
99281ac
4ed8cf0
87fab8d
1991353
1f4292e
4e8a638
4a1e497
9cbc025
d80c66f
befa58c
7a37800
4a26349
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -50,7 +50,7 @@ for: | |
|
||
install: | ||
- sudo apt-get update | ||
- sudo apt-get -y install gdb libavformat-dev libchromaprint-dev libfaad-dev libflac-dev libid3tag0-dev libmad0-dev libmodplug-dev libmp3lame-dev libmp4v2-dev libopus-dev libopusfile-dev libportmidi-dev libprotobuf-dev libqt5opengl5-dev libqt5sql5-sqlite libqt5svg5-dev librubberband-dev libshout3-dev libsndfile1-dev libsqlite3-dev libtag1-dev libupower-glib-dev libusb-1.0-0-dev libwavpack-dev portaudio19-dev protobuf-compiler qt5-default qtscript5-dev libqt5x11extras5-dev scons qtkeychain-dev liblilv-dev libsoundtouch-dev | ||
- sudo apt-get -y install gdb libavformat-dev libchromaprint-dev libfaad-dev libflac-dev libid3tag0-dev libmad0-dev libmodplug-dev libmp3lame-dev libmp4v2-dev libopus-dev libopusfile-dev libportmidi-dev libprotobuf-dev libqt5opengl5-dev libqt5sql5-sqlite libqt5svg5-dev librubberband-dev libshout3-dev libsndfile1-dev libsqlite3-dev libtag1-dev libupower-glib-dev libusb-1.0-0-dev libwavpack-dev portaudio19-dev protobuf-compiler qt5-default qtscript5-dev libqt5x11extras5-dev scons qtkeychain-dev liblilv-dev libsoundtouch-dev libfdk-aac-dev | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think we don't need this, because we dynamic load the library. |
||
|
||
build_script: | ||
- scons -j4 test=1 mad=1 faad=1 ffmpeg=1 opus=1 modplug=1 wv=1 hss1394=0 virtualize=0 debug_assertions_fatal=1 verbose=0 localecompare=1 | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -682,6 +682,11 @@ def configure(self, build, conf): | |
if not conf.CheckLib(['libmp3lame', 'libmp3lame-static']): | ||
raise Exception("Could not find libmp3lame.") | ||
|
||
class FdkAac(Dependence): | ||
def configure(self, build, conf): | ||
if not conf.CheckLib(['libfdk-aac']): | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This must be removed. It would be required without our dynamic loading code. |
||
raise Exception("Could not find libfdk-aac.") | ||
|
||
class MixxxCore(Feature): | ||
|
||
def description(self): | ||
|
@@ -1174,6 +1179,8 @@ def sources(self, build): | |
"src/encoder/encoderwave.cpp", | ||
"src/encoder/encoderwavesettings.cpp", | ||
'src/encoder/encoderopussettings.cpp', | ||
"src/encoder/encoderfdkaac.cpp" | ||
"src/encoder/encoderfdkaacsettings.cpp", | ||
|
||
"src/util/sleepableqthread.cpp", | ||
"src/util/statsmanager.cpp", | ||
|
@@ -1507,7 +1514,7 @@ def depends(self, build): | |
FidLib, SndFile, FLAC, OggVorbis, OpenGL, TagLib, ProtoBuf, | ||
Chromaprint, RubberBand, SecurityFramework, CoreServices, IOKit, | ||
QtScriptByteArray, Reverb, FpClassify, PortAudioRingBuffer, LAME, | ||
QueenMaryDsp] | ||
QueenMaryDsp, FdkAac] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. can be removed. |
||
|
||
def post_dependency_check_configure(self, build, conf): | ||
"""Sets up additional things in the Environment that must happen | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -20,11 +20,18 @@ class Encoder { | |
public: | ||
class Format { | ||
public: | ||
Format(QString labelIn, QString nameIn, bool losslessIn) : | ||
label(labelIn), internalName(nameIn), lossless(losslessIn) {} | ||
Format(QString labelIn, QString nameIn, bool losslessIn, | ||
QString fileExtIn = QString::null) : | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It might be simpler to use |
||
label(labelIn), internalName(nameIn), lossless(losslessIn), | ||
fileExtension(fileExtIn){ | ||
if(fileExtension == QString::null) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. please use |
||
fileExtension = label; | ||
} | ||
} | ||
QString label; | ||
QString internalName; | ||
bool lossless; | ||
QString fileExtension; | ||
}; | ||
|
||
Encoder() {} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we don't need this, because we dynamic load the library.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we have tests that exercise AAC encoding? won't those fail w/o the library being installed?