diff --git a/core/MatroskaParser.c b/core/MatroskaParser.c index 34842e1ed..65bc3f828 100644 --- a/core/MatroskaParser.c +++ b/core/MatroskaParser.c @@ -96,6 +96,7 @@ static char *mystrdup(struct InputStream *is,const char *src) { return dst; } +#ifndef __FreeBSD__ static void strlcpy(char *dst,const char *src,unsigned size) { unsigned i; @@ -104,6 +105,7 @@ static void strlcpy(char *dst,const char *src,unsigned size) { if (i #include "audio_provider_avs.h" +#include "audio_provider_lavc.h" #include "audio_provider_ram.h" #include "audio_provider_hd.h" #include "options.h" @@ -171,7 +172,7 @@ AudioProvider *AudioProvider::GetAudioProvider(wxString filename, AudioDisplay * #endif #ifdef USE_LAVC - //if (!provider) provider = new LAVCAudioProvider(filename); + if (!provider) provider = new LAVCAudioProvider(filename); #endif // No provider found diff --git a/core/audio_provider_lavc.cpp b/core/audio_provider_lavc.cpp new file mode 100644 index 000000000..171fd0fb9 --- /dev/null +++ b/core/audio_provider_lavc.cpp @@ -0,0 +1,72 @@ +// Copyright (c) 2005-2006, Rodrigo Braz Monteiro, Fredrik Mellbin +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// * Neither the name of the Aegisub Group nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// ----------------------------------------------------------------------------- +// +// AEGISUB +// +// Website: http://aegisub.cellosoft.com +// Contact: mailto:zeratul@cellosoft.com +// + + +/////////// +// Headers +#include +#include +#include "audio_provider_lavc.h" +#include "options.h" + + +////////////// +// Constructor +LAVCAudioProvider::LAVCAudioProvider(wxString _filename) { + filename = _filename; + + // TODO +} + + +////////////// +// Destructor +LAVCAudioProvider::~LAVCAudioProvider() { + // TODO +} + + +//////////////// +// Get filename +wxString LAVCAudioProvider::GetFilename() { + return filename; +} + + +///////////// +// Get audio +void LAVCAudioProvider::GetAudio(void *buf, __int64 start, __int64 count) { + // TODO +} diff --git a/core/audio_provider_lavc.h b/core/audio_provider_lavc.h new file mode 100644 index 000000000..21864361e --- /dev/null +++ b/core/audio_provider_lavc.h @@ -0,0 +1,60 @@ +// Copyright (c) 2006, Rodrigo Braz Monteiro +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// * Neither the name of the Aegisub Group nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// ----------------------------------------------------------------------------- +// +// AEGISUB +// +// Website: http://aegisub.cellosoft.com +// Contact: mailto:zeratul@cellosoft.com +// + + +#pragma once + + +/////////// +// Headers +#include +#include "audio_provider.h" + + +//////////////////////// +// Audio provider class +class LAVCAudioProvider : public AudioProvider { +private: + wxString filename; + +public: + LAVCAudioProvider(wxString _filename); + ~LAVCAudioProvider(); + + wxString GetFilename(); + + void GetAudio(void *buf, __int64 start, __int64 count); + void GetWaveForm(int *min,int *peak,__int64 start,int w,int h,int samples,float scale); +}; diff --git a/core/video_provider.cpp b/core/video_provider.cpp index 6dc7cff2d..db139c773 100644 --- a/core/video_provider.cpp +++ b/core/video_provider.cpp @@ -63,7 +63,7 @@ VideoProvider *VideoProvider::GetProvider(wxString video,wxString subtitles) { // See if it's OK to use LAVC #ifdef USE_LAVC - if (preffered == _T("ffmpeg")) { + if (preffered == _T("ffmpeg") || !avisynthAvailable) { // Load bool success = false; wxString error;