1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-01 00:19:27 +02:00

Rework of the gstreamer importer.

To test on Windows:

1)  Install gstreamer 1.0 devel and runtime
2)  Add an GSTREAMER_SDK environment variable which points to the
    gstreamer base directory
3)  Uncomment USE_GSTREAMER in configwin.h
This commit is contained in:
lllucius 2014-05-16 17:13:01 +00:00
parent 57510415e6
commit 4c771843c2
9 changed files with 1321 additions and 1243 deletions

View File

@ -71,7 +71,6 @@ It handles initialization and termination by subclassing wxApp.
#include "effects/VST/VSTEffect.h"
#include "widgets/ASlider.h"
#include "FFmpeg.h"
#include "GStreamerLoader.h"
#include "Internat.h"
#include "LangChoice.h"
#include "Languages.h"
@ -1264,10 +1263,6 @@ bool AudacityApp::OnInit()
FFmpegStartup();
#endif
#ifdef USE_GSTREAMER
GStreamerStartup();
#endif
mImporter = new Importer;
//

View File

@ -1,244 +0,0 @@
/**********************************************************************
Audacity: A Digital Audio Editor
GStreamerLoader.cpp
Audacity(R) is copyright (c) 1999-2009 Audacity Team.
License: GPL v2. See License.txt.
******************************************************************//**
\class GStreamerLoader
\brief Class used to dynamically load and initialize GStreamer
*//*******************************************************************/
#include "Audacity.h" // for config*.h
#include "GStreamerLoader.h"
#include "import/ImportGStreamer.h"
#include "AudacityApp.h"
#ifdef _DEBUG
#ifdef _MSC_VER
#undef THIS_FILE
static char*THIS_FILE= __FILE__;
#define new new(_NORMAL_BLOCK, THIS_FILE, __LINE__)
#endif
#endif
#if !defined(USE_GSTREAMER)
/// GStreamer support may or may not be compiled in,
/// but Preferences dialog requires this function nevertheless
wxString GetGStreamerVersion(wxWindow *parent)
{
return wxString(wxT("GStreamer support is not compiled in"));
}
void GStreamerStartup()
{
}
#else
void GLogHandlerFunction(const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data);
GStreamerLoader *GStreamerInst = NULL;
// This function should dump stream information to debug log.
gboolean LogStructure(GQuark field_id, const GValue *value, gpointer user_data)
{
GString *strinfo = (GString*)user_data;
// Get a name of a field
const gchar *field_name = g_quark_to_string(field_id);
gchar *value_str_value = gst_value_serialize(value);
// TODO: push this into future over and over until wxLogMessage becomes threadsafe (code already in trunk)
#if wxCHECK_VERSION(2, 9, 0)
wxLogMessage(wxT("Field %s = %s"), wxString::FromUTF8(field_name).c_str(), wxString::FromUTF8(value_str_value).c_str());
#endif
if (strinfo)
g_string_append_printf(strinfo, " %s[%s]",field_name, value_str_value);
g_free(value_str_value);
return TRUE;
}
void GstGLogHandlerFunction(const gchar *string)
{
#if 0
static bool runtimedebugvar = false;
if (runtimedebugvar)
{
FILE *f;
errno_t err = 1;
while (err != 0)
err = fopen_s(&f,"gstreamer.debug.log","ab");
fprintf(f,"%s",string);
fclose(f);
}
#else
g_printerr("%s",string);
#endif
}
bool GStreamerLoader::LoadGStreamer(bool showerror)
{
// First, we need to intialize GLib threading system
if (!g_thread_supported())
g_thread_init(NULL);
else
return false;
// This will be used in future to give GStreamer additional arguments
wxString arguments = wxEmptyString;
if (gPrefs) {
arguments = gPrefs->Read(wxT("/GStreamer/Arguments"), wxEmptyString);
}
// TODO: convert argument string into argc/argv pair.
// TODO: Also, convert prefs control states into arguments and append to argument string
int argc = 0;
char **argv = NULL;
wxLogMessage(wxT("Audacity is built against GStreamer version %d.%d.%d-%d"),GST_VERSION_MAJOR,GST_VERSION_MINOR,GST_VERSION_MICRO,GST_VERSION_NANO);
wxLogMessage(wxT("Initializing GStreamer with arguments: \"%s\""),arguments.c_str());
GError *errorptr = NULL;
if (!gst_init_check(&argc, &argv,&errorptr))
{
wxLogMessage(wxT("Failed to initialize GStreamer. Error %d: %s"),errorptr->code, wxString::FromUTF8(errorptr->message).c_str());
g_error_free(errorptr);
return false;
}
gst_version(&major, &minor, &micro, &nano);
wxLogMessage(wxT("Linked to GStreamer version %d.%d.%d-%d"),major,minor,micro,nano);
g_set_printerr_handler(GstGLogHandlerFunction);
// Debugging makes GStreamer roughly 4-5 times slower when it is not writing anything and 10 times slower with it writes info into a file
#if 0
gst_debug_set_active(TRUE);
gst_debug_set_default_threshold(GST_LEVEL_LOG);
#endif
mGStreamerLoaded = true;
return true;
}
// Obtains a list of supported extensions from typefind factories
// TODO: improve the list. It is obviously incomplete and also contains unuseful extensions (such as .jpg)
wxArrayString GStreamerLoader::GetExtensions()
{
wxArrayString result;
if (!mGStreamerLoaded) return result;
GList *factories, *list;
factories = list = gst_type_find_factory_get_list();
while (list)
{
GstTypeFindFactory *factory = GST_TYPE_FIND_FACTORY(list->data);
list = g_list_next(list);
gchar **extensions = gst_type_find_factory_get_extensions(factory);
if (!extensions)
continue;
for (gint i = 0; extensions[i]; i++)
{
wxString extension = wxString::FromUTF8(extensions[i]);
if (result.Index(extension.c_str(), false) == wxNOT_FOUND)
{
result.Add(extension);
}
}
}
gst_plugin_feature_list_free(factories);
result.Sort();
wxString extensions = wxT("Extensions:");
for (size_t i = 0; i < result.GetCount(); i++)
extensions = extensions + wxT(" ") + result[i];
wxLogMessage(wxT("%s"),extensions.c_str());
return result;
}
// This one is for Glib.
void GLogHandlerFunction(const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data)
{
wxString level;
switch (log_level)
{
case G_LOG_LEVEL_CRITICAL:
level = wxT("Critical");
break;
case G_LOG_LEVEL_DEBUG:
level = wxT("Debug");
break;
case G_LOG_LEVEL_ERROR:
level = wxT("Error");
break;
case G_LOG_LEVEL_INFO:
level = wxT("Info");
break;
case G_LOG_LEVEL_WARNING:
level = wxT("Warning");
break;
case G_LOG_LEVEL_MESSAGE:
level = wxT("Message");
break;
default:
level = wxT("Unknown");
}
#if wxCHECK_VERSION(2, 9, 0)
wxLogMessage(_("GStreamer %s: %s"),level.c_str(),wxString::FromUTF8(message).c_str());
#endif
}
void GStreamerStartup()
{
GStreamerInst = new GStreamerLoader;
guint handler_id = g_log_set_handler(NULL,GLogLevelFlags(G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION),GLogHandlerFunction,(gpointer)GStreamerInst);
bool enabled = false;
gPrefs->Read(wxT("/GStreamer/Enabled"),&enabled);
#if _DEBUG //experimental debugging
enabled = true;
#endif
// 'false' means that no errors should be shown whatsoever
if (enabled && !GStreamerInst->LoadGStreamer(false))
{
wxMessageBox(_("GStreamer was configured in preferences and successfully loaded before,\n\
but this time Audacity failed to load it at startup.\n\
You may want to go back to Preferences > Libraries and re-configure it."),
_("GStreamer startup failed"));
delete GStreamerInst;
}
}
wxString GetGStreamerVersion(wxWindow *parent)
{
wxString versionString = wxT("GStreamer is not found");
if (GStreamerInst && GStreamerInst->Loaded()) {
versionString = GStreamerInst->GetVersion();
}
return versionString;
}
//----------------------------------------------------------------------------
// GStreamerLoader
//----------------------------------------------------------------------------
GStreamerLoader::GStreamerLoader()
{
mGStreamerLoaded = false;
major = minor = micro = nano = 0;
}
GStreamerLoader::~GStreamerLoader()
{
};
#endif //USE_GSTREAMER

View File

@ -1,103 +0,0 @@
/**********************************************************************
Audacity: A Digital Audio Editor
GStreamerLoader.h
Audacity(R) is copyright (c) 1999-2008 Audacity Team.
License: GPL v2. See License.txt.
******************************************************************//**
Describes shared object that is used to access GStreamer
*//*******************************************************************/
#if !defined(__AUDACITY_GSTREAMER__)
#define __AUDACITY_GSTREAMER__
#include "Audacity.h"
/* rather earlier than normal, but pulls in config*.h and other program stuff
* we need for the next bit */
#include <wx/string.h>
#include <wx/dynlib.h>
#include <wx/log.h> // for wxLogNull
#include <wx/msgdlg.h> // for wxMessageBox
#include <wx/utils.h>
#include "widgets/LinkingHtmlWindow.h"
#include "FileDialog.h"
#include "ShuttleGui.h"
#include "Prefs.h"
#include <wx/checkbox.h>
#include <wx/textctrl.h>
#include <wx/thread.h>
class GStreamerLoader;
extern GStreamerLoader *GStreamerInst;
//----------------------------------------------------------------------------
// Get GStreamer version
//----------------------------------------------------------------------------
wxString GetGStreamerVersion(wxWindow *parent);
//----------------------------------------------------------------------------
// Attempt to load and enable/disable GStreamer at startup
//----------------------------------------------------------------------------
void GStreamerStartup();
/* From here on in, this stuff only applies when gstreamer is available */
#if defined(USE_GSTREAMER)
// On Windows we don't have configure script to turn this on or off,
// so let's use msw-specific pragma to add required libraries.
// Of course, library search path still has to be updated manually
# if defined(__WXMSW__)
# pragma comment(lib,"libgstreamer-0.10.lib")
# pragma comment(lib,"libgstapp-0.10.lib")
# pragma comment(lib,"libgstbase-0.10.lib")
# pragma comment(lib,"glib-2.0.lib")
# pragma comment(lib,"gobject-2.0.lib")
# pragma comment(lib,"gthread-2.0.lib")
# pragma comment(lib,"libxml2.lib")
# endif
extern "C" {
# include <gst/gst.h>
# include <glib.h>
# include <glib/gstdio.h>
}
bool LoadGStreamer(bool showerror);
gboolean LogStructure(GQuark field_id, const GValue *value, gpointer user_data);
class GStreamerLoader
{
public:
GStreamerLoader();
~GStreamerLoader();
bool Loaded()
{
return mGStreamerLoaded;
}
wxString GetVersion()
{
return wxString::Format(wxT("%d.%d.%d-%d"),major, minor, micro, nano);
}
wxArrayString GetExtensions();
bool LoadGStreamer(bool showerr);
private:
unsigned int major, minor, micro, nano;
bool mGStreamerLoaded;
};
#endif // USE_GSTREAMER
#endif // __AUDACITY_GSTREAMER__

File diff suppressed because it is too large Load Diff

View File

@ -13,9 +13,6 @@ LRN
#include "ImportPlugin.h"
class ImportPluginList;
class UnusableImportPluginList;
void GetGStreamerImportPlugin(ImportPluginList *importPluginList,
UnusableImportPluginList *unusableImportPluginList);

View File

@ -47,7 +47,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="&quot;$(WXWIN)\lib\vc_dll\mswu&quot;;&quot;$(WXWIN)\include&quot;;..\..;&quot;..\..\..\lib-src\expat\lib&quot;;&quot;..\..\..\lib-src\FileDialog&quot;;&quot;..\..\..\lib-src\FileDialog\win&quot;;&quot;..\..\..\lib-src\ffmpeg\win32&quot;;&quot;..\..\..\lib-src\ffmpeg&quot;;&quot;..\..\..\lib-src\lib-widget-extra&quot;;&quot;..\..\..\lib-src\libflac\include&quot;;&quot;..\..\..\lib-src\libid3tag&quot;;&quot;..\..\..\lib-src\libmad\msvc++&quot;;&quot;..\..\..\lib-src\libmad&quot;;&quot;..\..\..\lib-src\libnyquist&quot;;&quot;..\..\..\lib-src\libogg\include&quot;;&quot;..\..\..\lib-src\libresample\include&quot;;&quot;..\..\..\lib-src\libsamplerate\src&quot;;&quot;..\..\..\lib-src\libscorealign&quot;;..\libsndfile;&quot;..\..\..\lib-src\libsoxr\src&quot;;&quot;..\..\..\lib-src\libvamp&quot;;&quot;..\..\..\lib-src\libvorbis\include&quot;;&quot;..\..\..\lib-src\portaudio-v19\include&quot;;&quot;..\..\..\lib-src\portmixer\include&quot;;&quot;..\..\..\lib-src\portsmf&quot;;&quot;..\..\..\lib-src\sbsms\include&quot;;&quot;..\..\..\lib-src\soundtouch\include&quot;;&quot;..\..\..\lib-src\twolame\libtwolame&quot;;&quot;..\..\..\lib-src\portmidi\pm_common&quot;;&quot;..\..\..\lib-src\portmidi\pm_win&quot;;&quot;..\..\..\lib-src\portmidi\porttime&quot;;&quot;..\..\..\lib-src\lv2\lilv&quot;;&quot;..\..\..\lib-src\lv2\lv2&quot;;&quot;..\..\..\lib-src\lame&quot;"
AdditionalIncludeDirectories="&quot;$(WXWIN)\lib\vc_dll\mswu&quot;;&quot;$(WXWIN)\include&quot;;..\..;&quot;..\..\..\lib-src\expat\lib&quot;;&quot;..\..\..\lib-src\FileDialog&quot;;&quot;..\..\..\lib-src\FileDialog\win&quot;;&quot;..\..\..\lib-src\ffmpeg\win32&quot;;&quot;..\..\..\lib-src\ffmpeg&quot;;&quot;..\..\..\lib-src\lib-widget-extra&quot;;&quot;..\..\..\lib-src\libflac\include&quot;;&quot;..\..\..\lib-src\libid3tag&quot;;&quot;..\..\..\lib-src\libmad\msvc++&quot;;&quot;..\..\..\lib-src\libmad&quot;;&quot;..\..\..\lib-src\libnyquist&quot;;&quot;..\..\..\lib-src\libogg\include&quot;;&quot;..\..\..\lib-src\libresample\include&quot;;&quot;..\..\..\lib-src\libsamplerate\src&quot;;&quot;..\..\..\lib-src\libscorealign&quot;;..\libsndfile;&quot;..\..\..\lib-src\libsoxr\src&quot;;&quot;..\..\..\lib-src\libvamp&quot;;&quot;..\..\..\lib-src\libvorbis\include&quot;;&quot;..\..\..\lib-src\portaudio-v19\include&quot;;&quot;..\..\..\lib-src\portmixer\include&quot;;&quot;..\..\..\lib-src\portsmf&quot;;&quot;..\..\..\lib-src\sbsms\include&quot;;&quot;..\..\..\lib-src\soundtouch\include&quot;;&quot;..\..\..\lib-src\twolame\libtwolame&quot;;&quot;..\..\..\lib-src\portmidi\pm_common&quot;;&quot;..\..\..\lib-src\portmidi\pm_win&quot;;&quot;..\..\..\lib-src\portmidi\porttime&quot;;&quot;..\..\..\lib-src\lv2\lilv&quot;;&quot;..\..\..\lib-src\lv2\lv2&quot;;&quot;..\..\..\lib-src\lame&quot;;&quot;$(GSTREAMER_SDK)\include\gstreamer-1.0&quot;;&quot;$(GSTREAMER_SDK)\include\glib-2.0&quot;;&quot;$(GSTREAMER_SDK)\lib\glib-2.0\include&quot;;&quot;$(GSTREAMER_SDK)\include\libxml2&quot;"
PreprocessorDefinitions="BUILDING_AUDACITY;FLAC__NO_DLL;XML_STATIC;__STDC_CONSTANT_MACROS;WXUSINGDLL;__WXMSW__;NDEBUG;WIN32;STRICT"
StringPooling="true"
RuntimeLibrary="2"
@ -74,7 +74,7 @@
Name="VCLinkerTool"
LinkLibraryDependencies="false"
AdditionalDependencies="expat.lib filedialog.lib libsndfile.lib portaudio-v19.lib wxbase28u.lib wxbase28u_net.lib wxmsw28u_adv.lib wxmsw28u_core.lib wxmsw28u_html.lib wxpng.lib wxzlib.lib wxjpeg.lib wxtiff.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib oleacc.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"
AdditionalLibraryDirectories="&quot;$(OutDir)&quot;;&quot;$(WXWIN)\lib\vc_dll&quot;"
AdditionalLibraryDirectories="&quot;$(OutDir)&quot;;&quot;$(WXWIN)\lib\vc_dll&quot;;&quot;$(GSTREAMER_SDK)\lib&quot;"
IgnoreDefaultLibraryNames="dsound.lib"
SubSystem="2"
StackReserveSize="8388608"
@ -133,7 +133,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;$(WXWIN)\lib\vc_dll\mswud&quot;;&quot;$(WXWIN)\include&quot;;..\..;&quot;..\..\..\lib-src\expat\lib&quot;;&quot;..\..\..\lib-src\FileDialog&quot;;&quot;..\..\..\lib-src\FileDialog\win&quot;;&quot;..\..\..\lib-src\lib-widget-extra&quot;;&quot;..\..\..\lib-src\libflac\include&quot;;&quot;..\..\..\lib-src\libid3tag&quot;;&quot;..\..\..\lib-src\libmad\msvc++&quot;;&quot;..\..\..\lib-src\libmad&quot;;&quot;..\..\..\lib-src\libnyquist&quot;;&quot;..\..\..\lib-src\libogg\include&quot;;&quot;..\..\..\lib-src\libresample\include&quot;;&quot;..\..\..\lib-src\libsamplerate\src&quot;;&quot;..\..\..\lib-src\libscorealign&quot;;..\libsndfile;&quot;..\..\..\lib-src\libsoxr\src&quot;;&quot;..\..\..\lib-src\libvamp&quot;;&quot;..\..\..\lib-src\libvorbis\include&quot;;&quot;..\..\..\lib-src\portaudio-v19\include&quot;;&quot;..\..\..\lib-src\portmixer\include&quot;;&quot;..\..\..\lib-src\portsmf&quot;;&quot;..\..\..\lib-src\sbsms\include&quot;;&quot;..\..\..\lib-src\soundtouch\include&quot;;&quot;..\..\..\lib-src\twolame\libtwolame&quot;;&quot;..\..\..\lib-src\portmidi\pm_common&quot;;&quot;..\..\..\lib-src\portmidi\pm_win&quot;;&quot;..\..\..\lib-src\portmidi\porttime&quot;;&quot;..\..\..\lib-src\ffmpeg\win32&quot;;&quot;..\..\..\lib-src\ffmpeg&quot;;&quot;..\..\..\lib-src\lv2\lilv&quot;;&quot;..\..\..\lib-src\lv2\lv2&quot;;&quot;..\..\..\lib-src\lame&quot;"
AdditionalIncludeDirectories="&quot;$(WXWIN)\lib\vc_dll\mswud&quot;;&quot;$(WXWIN)\include&quot;;..\..;&quot;..\..\..\lib-src\expat\lib&quot;;&quot;..\..\..\lib-src\FileDialog&quot;;&quot;..\..\..\lib-src\FileDialog\win&quot;;&quot;..\..\..\lib-src\lib-widget-extra&quot;;&quot;..\..\..\lib-src\libflac\include&quot;;&quot;..\..\..\lib-src\libid3tag&quot;;&quot;..\..\..\lib-src\libmad\msvc++&quot;;&quot;..\..\..\lib-src\libmad&quot;;&quot;..\..\..\lib-src\libnyquist&quot;;&quot;..\..\..\lib-src\libogg\include&quot;;&quot;..\..\..\lib-src\libresample\include&quot;;&quot;..\..\..\lib-src\libsamplerate\src&quot;;&quot;..\..\..\lib-src\libscorealign&quot;;..\libsndfile;&quot;..\..\..\lib-src\libsoxr\src&quot;;&quot;..\..\..\lib-src\libvamp&quot;;&quot;..\..\..\lib-src\libvorbis\include&quot;;&quot;..\..\..\lib-src\portaudio-v19\include&quot;;&quot;..\..\..\lib-src\portmixer\include&quot;;&quot;..\..\..\lib-src\portsmf&quot;;&quot;..\..\..\lib-src\sbsms\include&quot;;&quot;..\..\..\lib-src\soundtouch\include&quot;;&quot;..\..\..\lib-src\twolame\libtwolame&quot;;&quot;..\..\..\lib-src\portmidi\pm_common&quot;;&quot;..\..\..\lib-src\portmidi\pm_win&quot;;&quot;..\..\..\lib-src\portmidi\porttime&quot;;&quot;..\..\..\lib-src\ffmpeg\win32&quot;;&quot;..\..\..\lib-src\ffmpeg&quot;;&quot;..\..\..\lib-src\lv2\lilv&quot;;&quot;..\..\..\lib-src\lv2\lv2&quot;;&quot;..\..\..\lib-src\lame&quot;;&quot;$(GSTREAMER_SDK)\include\gstreamer-1.0&quot;;&quot;$(GSTREAMER_SDK)\include\glib-2.0&quot;;&quot;$(GSTREAMER_SDK)\lib\glib-2.0\include&quot;;&quot;$(GSTREAMER_SDK)\include\libxml2&quot;"
PreprocessorDefinitions="BUILDING_AUDACITY;FLAC__NO_DLL;XML_STATIC;__STDC_CONSTANT_MACROS;WXUSINGDLL;__WXMSW__;__WXDEBUG__;_DEBUG;WIN32;STRICT"
StringPooling="true"
BasicRuntimeChecks="3"
@ -164,7 +164,7 @@
LinkLibraryDependencies="false"
AdditionalDependencies="expat.lib filedialog.lib libsndfile.lib portaudio-v19.lib wxbase28ud.lib wxbase28ud_net.lib wxmsw28ud_adv.lib wxmsw28ud_core.lib wxmsw28ud_html.lib wxpngd.lib wxzlibd.lib wxjpegd.lib wxtiffd.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib oleacc.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"
LinkIncremental="2"
AdditionalLibraryDirectories="&quot;$(OutDir)&quot;;&quot;$(WXWIN)\lib\vc_dll&quot;"
AdditionalLibraryDirectories="&quot;$(OutDir)&quot;;&quot;$(WXWIN)\lib\vc_dll&quot;;&quot;$(GSTREAMER_SDK)\lib&quot;"
IgnoreDefaultLibraryNames="dsound.lib"
GenerateDebugInformation="true"
SubSystem="2"
@ -1368,6 +1368,14 @@
RelativePath="..\..\..\src\import\ImportFLAC.h"
>
</File>
<File
RelativePath="..\..\..\src\import\ImportGStreamer.cpp"
>
</File>
<File
RelativePath="..\..\..\src\import\ImportGStreamer.h"
>
</File>
<File
RelativePath="..\..\..\src\import\ImportLOF.cpp"
>

View File

@ -53,7 +53,7 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>$(WXWIN)\lib\vc_dll\mswu;$(WXWIN)\include;..\..;..\..\..\lib-src\expat\lib;..\..\..\lib-src\FileDialog;..\..\..\lib-src\FileDialog\win;..\..\..\lib-src\ffmpeg\win32;..\..\..\lib-src\ffmpeg;..\..\..\lib-src\lib-widget-extra;..\..\..\lib-src\libflac\include;..\..\..\lib-src\libid3tag;..\..\..\lib-src\libmad\msvc++;..\..\..\lib-src\libmad;..\..\..\lib-src\libnyquist;..\..\..\lib-src\libogg\include;..\..\..\lib-src\libresample\include;..\..\..\lib-src\libsamplerate\src;..\..\..\lib-src\libscorealign;..\libsndfile;..\..\..\lib-src\libsoxr\src;..\..\..\lib-src\libvamp;..\..\..\lib-src\libvorbis\include;..\..\..\lib-src\portaudio-v19\include;..\..\..\lib-src\portmixer\include;..\..\..\lib-src\portsmf;..\..\..\lib-src\sbsms\include;..\..\..\lib-src\soundtouch\include;..\..\..\lib-src\twolame\libtwolame;..\..\..\lib-src\portmidi\pm_common;..\..\..\lib-src\portmidi\pm_win;..\..\..\lib-src\portmidi\porttime;..\..\..\lib-src\lv2\lilv;..\..\..\lib-src\lv2\lv2;..\..\..\lib-src\lame;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(WXWIN)\lib\vc_dll\mswu;$(WXWIN)\include;..\..;..\..\..\lib-src\expat\lib;..\..\..\lib-src\FileDialog;..\..\..\lib-src\FileDialog\win;..\..\..\lib-src\ffmpeg\win32;..\..\..\lib-src\ffmpeg;..\..\..\lib-src\lib-widget-extra;..\..\..\lib-src\libflac\include;..\..\..\lib-src\libid3tag;..\..\..\lib-src\libmad\msvc++;..\..\..\lib-src\libmad;..\..\..\lib-src\libnyquist;..\..\..\lib-src\libogg\include;..\..\..\lib-src\libresample\include;..\..\..\lib-src\libsamplerate\src;..\..\..\lib-src\libscorealign;..\libsndfile;..\..\..\lib-src\libsoxr\src;..\..\..\lib-src\libvamp;..\..\..\lib-src\libvorbis\include;..\..\..\lib-src\portaudio-v19\include;..\..\..\lib-src\portmixer\include;..\..\..\lib-src\portsmf;..\..\..\lib-src\sbsms\include;..\..\..\lib-src\soundtouch\include;..\..\..\lib-src\twolame\libtwolame;..\..\..\lib-src\portmidi\pm_common;..\..\..\lib-src\portmidi\pm_win;..\..\..\lib-src\portmidi\porttime;..\..\..\lib-src\lv2\lilv;..\..\..\lib-src\lv2\lv2;..\..\..\lib-src\lame;$(GSTREAMER_SDK)\include\gstreamer-1.0;$(GSTREAMER_SDK)\include\glib-2.0;$(GSTREAMER_SDK)\lib\glib-2.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>BUILDING_AUDACITY;FLAC__NO_DLL;XML_STATIC;__STDC_CONSTANT_MACROS;WXUSINGDLL;__WXMSW__;NDEBUG;WIN32;STRICT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@ -73,7 +73,7 @@
</ProjectReference>
<Link>
<AdditionalDependencies>expat.lib;filedialog.lib;libsndfile.lib;portaudio-v19.lib;wxbase28u.lib;wxbase28u_net.lib;wxmsw28u_adv.lib;wxmsw28u_core.lib;wxmsw28u_html.lib;wxpng.lib;wxzlib.lib;wxjpeg.lib;wxtiff.lib;comctl32.lib;rpcrt4.lib;wsock32.lib;winmm.lib;oleacc.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(OutDir);$(WXWIN)\lib\vc_dll;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(OutDir);$(WXWIN)\lib\vc_dll;$(GSTREAMER_SDK)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>dsound.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<SubSystem>Windows</SubSystem>
<StackReserveSize>8388608</StackReserveSize>
@ -85,7 +85,7 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(WXWIN)\lib\vc_dll\mswud;$(WXWIN)\include;..\..;..\..\..\lib-src\expat\lib;..\..\..\lib-src\FileDialog;..\..\..\lib-src\FileDialog\win;..\..\..\lib-src\lib-widget-extra;..\..\..\lib-src\libflac\include;..\..\..\lib-src\libid3tag;..\..\..\lib-src\libmad\msvc++;..\..\..\lib-src\libmad;..\..\..\lib-src\libnyquist;..\..\..\lib-src\libogg\include;..\..\..\lib-src\libresample\include;..\..\..\lib-src\libsamplerate\src;..\..\..\lib-src\libscorealign;..\libsndfile;..\..\..\lib-src\libsoxr\src;..\..\..\lib-src\libvamp;..\..\..\lib-src\libvorbis\include;..\..\..\lib-src\portaudio-v19\include;..\..\..\lib-src\portmixer\include;..\..\..\lib-src\portsmf;..\..\..\lib-src\sbsms\include;..\..\..\lib-src\soundtouch\include;..\..\..\lib-src\twolame\libtwolame;..\..\..\lib-src\portmidi\pm_common;..\..\..\lib-src\portmidi\pm_win;..\..\..\lib-src\portmidi\porttime;..\..\..\lib-src\ffmpeg\win32;..\..\..\lib-src\ffmpeg;..\..\..\lib-src\lv2\lilv;..\..\..\lib-src\lv2\lv2;..\..\..\lib-src\lame;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(WXWIN)\lib\vc_dll\mswud;$(WXWIN)\include;..\..;..\..\..\lib-src\expat\lib;..\..\..\lib-src\FileDialog;..\..\..\lib-src\FileDialog\win;..\..\..\lib-src\lib-widget-extra;..\..\..\lib-src\libflac\include;..\..\..\lib-src\libid3tag;..\..\..\lib-src\libmad\msvc++;..\..\..\lib-src\libmad;..\..\..\lib-src\libnyquist;..\..\..\lib-src\libogg\include;..\..\..\lib-src\libresample\include;..\..\..\lib-src\libsamplerate\src;..\..\..\lib-src\libscorealign;..\libsndfile;..\..\..\lib-src\libsoxr\src;..\..\..\lib-src\libvamp;..\..\..\lib-src\libvorbis\include;..\..\..\lib-src\portaudio-v19\include;..\..\..\lib-src\portmixer\include;..\..\..\lib-src\portsmf;..\..\..\lib-src\sbsms\include;..\..\..\lib-src\soundtouch\include;..\..\..\lib-src\twolame\libtwolame;..\..\..\lib-src\portmidi\pm_common;..\..\..\lib-src\portmidi\pm_win;..\..\..\lib-src\portmidi\porttime;..\..\..\lib-src\ffmpeg\win32;..\..\..\lib-src\ffmpeg;..\..\..\lib-src\lv2\lilv;..\..\..\lib-src\lv2\lv2;..\..\..\lib-src\lame;&amp;quot;$(GSTREAMER_SDK)\include\gstreamer-1.0;$(GSTREAMER_SDK)\include\glib-2.0;$(GSTREAMER_SDK)\lib\glib-2.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>BUILDING_AUDACITY;FLAC__NO_DLL;XML_STATIC;__STDC_CONSTANT_MACROS;WXUSINGDLL;__WXMSW__;__WXDEBUG__;_DEBUG;WIN32;STRICT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@ -109,7 +109,7 @@
</ProjectReference>
<Link>
<AdditionalDependencies>expat.lib;filedialog.lib;libsndfile.lib;portaudio-v19.lib;wxbase28ud.lib;wxbase28ud_net.lib;wxmsw28ud_adv.lib;wxmsw28ud_core.lib;wxmsw28ud_html.lib;wxpngd.lib;wxzlibd.lib;wxjpegd.lib;wxtiffd.lib;comctl32.lib;rpcrt4.lib;wsock32.lib;winmm.lib;oleacc.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(OutDir);$(WXWIN)\lib\vc_dll;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(OutDir);$(WXWIN)\lib\vc_dll;$(GSTREAMER_SDK)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>dsound.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
@ -150,6 +150,7 @@
<ClCompile Include="..\..\..\src\HelpText.cpp" />
<ClCompile Include="..\..\..\src\HistoryWindow.cpp" />
<ClCompile Include="..\..\..\src\ImageManipulation.cpp" />
<ClCompile Include="..\..\..\src\import\ImportGStreamer.cpp" />
<ClCompile Include="..\..\..\src\Internat.cpp" />
<ClCompile Include="..\..\..\src\InterpolateAudio.cpp" />
<ClCompile Include="..\..\..\src\LabelDialog.cpp" />
@ -392,6 +393,7 @@
<ClInclude Include="..\..\..\src\BlockFile.h" />
<ClInclude Include="..\..\..\src\CaptureEvents.h" />
<ClInclude Include="..\..\..\src\commands\OpenSaveCommands.h" />
<ClInclude Include="..\..\..\src\import\ImportGStreamer.h" />
<ClInclude Include="..\..\..\src\SseMathFuncs.h" />
<ClInclude Include="..\..\configwin.h" />
<ClInclude Include="..\..\..\src\Dependencies.h" />

View File

@ -807,6 +807,9 @@
<ClCompile Include="..\..\..\src\commands\OpenSaveCommands.cpp">
<Filter>src/commands</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\import\ImportGStreamer.cpp">
<Filter>src/import</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\src\AboutDialog.h">
@ -1586,6 +1589,9 @@
<ClInclude Include="..\..\..\src\commands\OpenSaveCommands.h">
<Filter>src/commands</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\import\ImportGStreamer.h">
<Filter>src/import</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Image Include="..\..\audacity.ico">

View File

@ -21,6 +21,7 @@
#define USE_LIBID3TAG 1
#define USE_LV2 1
#define USE_LIBMAD 1
//#define USE_GSTREAMER 1
// Resamplers:
// Exactly one resampler should be defined.
@ -36,7 +37,6 @@
#define USE_LIBVORBIS 1
#define USE_NYQUIST 1
#define USE_PORTMIXER 1
// #define USE_SLV2 1
#define USE_SBSMS 1
#define USE_SOUNDTOUCH 1
#define USE_VAMP 1