Yeah Phonon didn't expose audio data at all in 4.6 but there were noises that in 4.7 things would be moving in the right direction. It's a shame things haven't quite gone where we want them...
It would be really great if Phonon did what we wanted because it's built into Qt and would only require 1 lot of code rather than a per-platform backend. Which is not to talk down what Albert is doing. But I'm sure he remembers as well as me why we ditched our native ALSA, Jack, ASIO etc code for PortAudio after the 1.5.x releases. It's worth bearing in mind that Phonon is fairly immature and if we complain about the bits we don't like it may well have an impact. Ultimately getting Phonon to do what we want may be the best long-term strategy for better format support in Mixxx. Maybe it's always going to be too heavyweight to provide realtime speeds. But if we say we want it they may be able to expose some of the lower-level decoding stuff in a future version. If you have insight into what exactly we need here, I would recommend trying to make sure someone relevant knows that we're probably one of the biggest audio applications using Qt (in users if not money :)) and that this is what we would need out of them. Adam On 14 December 2010 14:29, RJ Ryan <[email protected]> wrote: > I think the main problem we have with Phonon is that it is an abstraction > level higher than what we need. It's more oriented around playing files for > you. > It does seem to support a raw-data output via AudioDataOutput, but the > description itself says it's not for realtime use: > "Although it is not designed for realtime performance, the latencies > associated with accessing the data should be low enough for applications > that provide visualizations of the data. This class can also be used to save > the audio data for further processing." > Beyond this, another deal-breaker is that the most precise way to refer to > time offered by Phonon is milliseconds. You seek by saying the millisecond > you would like to seek to. > RJ > On Tue, Dec 14, 2010 at 9:04 AM, Adam Davison <[email protected]> wrote: >> >> I think from a user point of view DirectX/CoreAudio would be a >> preferable choice to Quicktime. For Windows users (i.e. most of our >> users) Quicktime is a large additional download (O(100MB)). Quicktime >> is fairly intrusive on windows too, generally slow, takes over all >> your file types, installs stuff that sits in the system tray the whole >> time and other unsavoury things like that (at least the last time I >> tried it). I think we'll make a lot of people angry if we force them >> to install Quicktime. >> >> Of course there is the pragmatic problem of the fact that most of our >> developers are linux/osx and know nothing about DirectX... >> >> I would suggest that someone takes a more serious look at the current >> state of Qt's Phonon stuff on Windows before implementing a Quicktime >> layer. >> >> For linux we can use the distribution provided copy of libmp4v2 (or >> ffmpeg if someone is feeling particularly enthusiastic/masochistic). >> >> Adam >> >> On 14 December 2010 13:13, Tobias Rafreider <[email protected]> >> wrote: >> > Hey all, >> > >> > Quicktime is my preference for portability. It solves AAC playback and >> > licensing issues on both OS X and Windows (I guess). The drawback is >> > that Linux users won't be able to use M4A out of the box. Maybe we >> > hazard the consequence. >> > >> > If we decide to use Quicktime and Albert can provide an initial >> > implementation for OS X I am willing to "port" it to Win. Ideally, I >> > will refactor the code such that we load Quicktime dynamically by using >> > the QLibrary interface. If quicktime.dll on Windows is not available, no >> > AAC playback is possible. We do same for MP3 recording and streaming via >> > lame. >> > >> > Alternatively, since we have stable AAC code via libmp4v2 it might be >> > possible to refactor the plugin code. If [libmp4v2.dll |libmp4v2.so] is >> > available M4A playback is possible. I do not know if the plugin code >> > works that way. But, there are a lot of libmp4v2.dll files available via >> > google. It would be rather simple for our community users to activate >> > AAC. Recall that AAC is a heavily requested feature in our forums. >> > >> > >> > Thanks, >> > >> > Tobias >> > >> > Am 13.12.2010 19:32, schrieb Albert Santoni: >> >> Hey Tobias, >> >> >> >> Yes, we could also use Quicktime or a native API like DirectShow. >> >> Unfortunately, I'm going to be stuck with only my Macbook for the next >> >> month, but I can still try playing with the Quicktime Audio Extraction >> >> API: >> >> http://developer.apple.com/quicktime/audioextraction.html >> >> >> >> http://developer.apple.com/library/mac/#samplecode/SimpleAudioExtraction/Introduction/Intro.html >> >> >> >> The ExtAudioFile API itself wasn't bad - once you have stuff >> >> initialized, the basic decoding functions (read/seek) were >> >> straightforward to use. This API also supposedly exists on iOS, which >> >> is a bonus. :) >> >> >> >> I think making Quicktime a requirement on Windows for AAC playback is >> >> not outlandish, so I can try to play around with that. >> >> >> >> Also, if we do manage to get a couple of these native or near-native >> >> backends working, I'd be willing to convert them into pure C++ (no Qt) >> >> and roll them into a library. We can't be the only people who need >> >> cross-platform, low-level audio decoding using native APIs that don't >> >> carry any legal baggage. (Distributing an MP3 decoder with your >> >> application made more sense in the Windows 98 days.) >> >> >> >> Thanks guys, >> >> Albert >> >> >> >> >> >> On Mon, Dec 13, 2010 at 4:31 AM, Tobias Rafreider >> >> <[email protected]> wrote: >> >>> Hey, >> >>> >> >>> great job. Could we also use Quicktime API to decode AAC/M4A on >> >>> Windows? >> >>> >> >>> Tobias >> >>> >> >>> Am 13.12.2010 11:36, schrieb Adam Davison: >> >>>> Hi, >> >>>> >> >>>> Just to say this is excellent and exactly how we should be doing >> >>>> it... >> >>>> >> >>>> What happened to phonon in qt 4.7 in the end, have they managed to >> >>>> expose audio data yet? >> >>>> >> >>>> Adam >> >>>> >> >>>> On 13 December 2010 06:55, Albert Santoni<[email protected]> >> >>>> wrote: >> >>>>> Hi guys, >> >>>>> >> >>>>> Tonight I wrote a SoundSourceCoreAudio class that plays M4As using >> >>>>> the >> >>>>> system provided decoder on OS X. It uses the "Audio File Services" >> >>>>> API >> >>>>> (ExtAudioFile), which is part of AudioToolbox, which is part of Core >> >>>>> Audio. We can freely distribute this as part of our main Mixxx >> >>>>> builds >> >>>>> without worrying about M4A patent issues because we're using Apple's >> >>>>> decoder, which OS X users have already paid for. >> >>>>> >> >>>>> Special thanks to Apple's super crappy documentation and endless >> >>>>> layers of redundant APIs. I spent more time trying to figure out >> >>>>> which >> >>>>> API to use than actually writing code. >> >>>>> >> >>>>> Seeking and metadata decoding (using TagLib) work fine. I've only >> >>>>> tested with 44100 Hz / 16-bit files, but if it doesn't work with >> >>>>> other >> >>>>> formats, it shouldn't be difficult to fix. >> >>>>> >> >>>>> Code is pushed to: >> >>>>> lp:~mixxxdevelopers/mixxx/features_coreaudio >> >>>>> >> >>>>> Enjoy, >> >>>>> Albert >> >>>>> >> >>>>> >> >>>>> ------------------------------------------------------------------------------ >> >>>>> Oracle to DB2 Conversion Guide: Learn learn about native support for >> >>>>> PL/SQL, >> >>>>> new data types, scalar functions, improved concurrency, built-in >> >>>>> packages, >> >>>>> OCI, SQL*Plus, data movement tools, best practices and more. >> >>>>> http://p.sf.net/sfu/oracle-sfdev2dev >> >>>>> _______________________________________________ >> >>>>> Mixxx-devel mailing list >> >>>>> [email protected] >> >>>>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel >> >>>>> >> >>>> >> >>>> ------------------------------------------------------------------------------ >> >>>> Oracle to DB2 Conversion Guide: Learn learn about native support for >> >>>> PL/SQL, >> >>>> new data types, scalar functions, improved concurrency, built-in >> >>>> packages, >> >>>> OCI, SQL*Plus, data movement tools, best practices and more. >> >>>> http://p.sf.net/sfu/oracle-sfdev2dev >> >>>> _______________________________________________ >> >>>> Mixxx-devel mailing list >> >>>> [email protected] >> >>>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel >> >>> >> >>> >> >>> ------------------------------------------------------------------------------ >> >>> Oracle to DB2 Conversion Guide: Learn learn about native support for >> >>> PL/SQL, >> >>> new data types, scalar functions, improved concurrency, built-in >> >>> packages, >> >>> OCI, SQL*Plus, data movement tools, best practices and more. >> >>> http://p.sf.net/sfu/oracle-sfdev2dev >> >>> _______________________________________________ >> >>> Mixxx-devel mailing list >> >>> [email protected] >> >>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel >> >>> >> > >> > >> > >> > ------------------------------------------------------------------------------ >> > Lotusphere 2011 >> > Register now for Lotusphere 2011 and learn how >> > to connect the dots, take your collaborative environment >> > to the next level, and enter the era of Social Business. >> > http://p.sf.net/sfu/lotusphere-d2d >> > _______________________________________________ >> > Mixxx-devel mailing list >> > [email protected] >> > https://lists.sourceforge.net/lists/listinfo/mixxx-devel >> > >> >> >> ------------------------------------------------------------------------------ >> Lotusphere 2011 >> Register now for Lotusphere 2011 and learn how >> to connect the dots, take your collaborative environment >> to the next level, and enter the era of Social Business. >> http://p.sf.net/sfu/lotusphere-d2d >> _______________________________________________ >> Mixxx-devel mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/mixxx-devel > > ------------------------------------------------------------------------------ Lotusphere 2011 Register now for Lotusphere 2011 and learn how to connect the dots, take your collaborative environment to the next level, and enter the era of Social Business. http://p.sf.net/sfu/lotusphere-d2d _______________________________________________ Mixxx-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mixxx-devel
