From: ronag Date: Wed, 18 May 2011 15:55:23 +0000 (+0000) Subject: 2.0.0.2: Updated to ffmpeg 0.7 and replaced manual packet copy by av_dup_packet. X-Git-Tag: 2.0.1~530 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=4d7d81fae393be4d0cfcfc603c82170a94102849;p=casparcg 2.0.0.2: Updated to ffmpeg 0.7 and replaced manual packet copy by av_dup_packet. git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@777 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d --- diff --git a/modules/decklink/decklink.vcxproj b/modules/decklink/decklink.vcxproj index 02bbbd9a5..3daf960a4 100644 --- a/modules/decklink/decklink.vcxproj +++ b/modules/decklink/decklink.vcxproj @@ -260,10 +260,6 @@ interop\ interop\ interop\ - true - true - true - true true diff --git a/modules/decklink/interop/DeckLinkAPI_h.h b/modules/decklink/interop/DeckLinkAPI_h.h index 1c790d525..5a5c8b372 100644 --- a/modules/decklink/interop/DeckLinkAPI_h.h +++ b/modules/decklink/interop/DeckLinkAPI_h.h @@ -4,7 +4,7 @@ /* File created by MIDL compiler version 7.00.0555 */ -/* at Wed May 18 01:57:28 2011 +/* at Wed May 18 17:47:16 2011 */ /* Compiler settings for interop\DeckLinkAPI.idl: Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 diff --git a/modules/decklink/interop/DeckLinkAPI_i.c b/modules/decklink/interop/DeckLinkAPI_i.c index 9ae432a3a..be7d9d689 100644 --- a/modules/decklink/interop/DeckLinkAPI_i.c +++ b/modules/decklink/interop/DeckLinkAPI_i.c @@ -6,7 +6,7 @@ /* File created by MIDL compiler version 7.00.0555 */ -/* at Wed May 18 01:57:28 2011 +/* at Wed May 18 17:47:16 2011 */ /* Compiler settings for interop\DeckLinkAPI.idl: Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 diff --git a/modules/ffmpeg/ffmpeg.vcxproj b/modules/ffmpeg/ffmpeg.vcxproj index 8b7d1765b..7b1c34190 100644 --- a/modules/ffmpeg/ffmpeg.vcxproj +++ b/modules/ffmpeg/ffmpeg.vcxproj @@ -72,14 +72,14 @@ $(ProjectDir)tmp\$(Configuration)\ $(ProjectDir)tmp\$(Configuration)\ $(ProjectDir)tmp\$(Configuration)\ - ..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath) - ..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath) - ..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath) - ..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath) - ..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) - ..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) - ..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) - ..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) + ..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.7\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath) + ..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.7\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath) + ..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.7\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath) + ..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.7\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath) + ..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.7\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) + ..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.7\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) + ..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.7\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) + ..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.7\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) $(ProjectDir)bin\$(Configuration)\ $(ProjectDir)bin\$(Configuration)\ $(ProjectDir)bin\$(Configuration)\ diff --git a/modules/ffmpeg/producer/audio/audio_decoder.cpp b/modules/ffmpeg/producer/audio/audio_decoder.cpp index 671bd3b97..4cc3339d3 100644 --- a/modules/ffmpeg/producer/audio/audio_decoder.cpp +++ b/modules/ffmpeg/producer/audio/audio_decoder.cpp @@ -64,7 +64,7 @@ public: } } - std::vector> execute(const packet& audio_packet) + std::vector> execute(packet&& audio_packet) { std::vector> result; @@ -78,7 +78,7 @@ public: current_chunk_.resize(s + 4*format_desc_.audio_sample_rate*2+FF_INPUT_BUFFER_PADDING_SIZE/2); int written_bytes = (current_chunk_.size() - s)*2 - FF_INPUT_BUFFER_PADDING_SIZE; - const int errn = avcodec_decode_audio2(&codec_context_, ¤t_chunk_[s], &written_bytes, audio_packet.data->data(), audio_packet.data->size()); + const int errn = avcodec_decode_audio3(&codec_context_, ¤t_chunk_[s], &written_bytes, audio_packet.av_packet.get()); if(errn < 0) { BOOST_THROW_EXCEPTION( @@ -102,5 +102,5 @@ public: }; audio_decoder::audio_decoder(AVCodecContext& codec_context, const core::video_format_desc& format_desc) : impl_(new implementation(codec_context, format_desc)){} -std::vector> audio_decoder::execute(const packet& audio_packet){return impl_->execute(audio_packet);} +std::vector> audio_decoder::execute(packet&& audio_packet){return impl_->execute(std::move(audio_packet));} } \ No newline at end of file diff --git a/modules/ffmpeg/producer/audio/audio_decoder.h b/modules/ffmpeg/producer/audio/audio_decoder.h index f5c705f2f..3e96eb3d3 100644 --- a/modules/ffmpeg/producer/audio/audio_decoder.h +++ b/modules/ffmpeg/producer/audio/audio_decoder.h @@ -38,7 +38,7 @@ class audio_decoder : boost::noncopyable { public: explicit audio_decoder(AVCodecContext& codec_context, const core::video_format_desc& format_desc); - std::vector> execute(const packet& audio_packet); + std::vector> execute(packet&& audio_packet); private: struct implementation; std::shared_ptr impl_; diff --git a/modules/ffmpeg/producer/ffmpeg_producer.cpp b/modules/ffmpeg/producer/ffmpeg_producer.cpp index 9b65db85f..b7dbbf09d 100644 --- a/modules/ffmpeg/producer/ffmpeg_producer.cpp +++ b/modules/ffmpeg/producer/ffmpeg_producer.cpp @@ -159,14 +159,14 @@ public: return try_merge_audio_and_video(); } - void try_decode_video_packet(const packet& video_packet) + void try_decode_video_packet(packet&& video_packet) { if(!video_decoder_) return; try { - boost::range::push_back(video_frame_buffer_, video_decoder_->execute(video_packet)); + boost::range::push_back(video_frame_buffer_, video_decoder_->execute(std::move(video_packet))); } catch(...) { @@ -176,14 +176,14 @@ public: } } - void try_decode_audio_packet(const packet& audio_packet) + void try_decode_audio_packet(packet&& audio_packet) { if(!audio_decoder_) return; try { - boost::range::push_back(audio_chunk_buffer_, audio_decoder_->execute(audio_packet)); + boost::range::push_back(audio_chunk_buffer_, audio_decoder_->execute(std::move(audio_packet))); } catch(...) { diff --git a/modules/ffmpeg/producer/input.cpp b/modules/ffmpeg/producer/input.cpp index a4e8b4c96..70803035a 100644 --- a/modules/ffmpeg/producer/input.cpp +++ b/modules/ffmpeg/producer/input.cpp @@ -37,7 +37,6 @@ #include #include - extern "C" { #define __STDC_CONSTANT_MACROS @@ -112,13 +111,13 @@ public: boost::errinfo_errno(AVUNERROR(errn))); } - video_codec_context_ = open_stream(CODEC_TYPE_VIDEO, video_s_index_); + video_codec_context_ = open_stream(AVMEDIA_TYPE_VIDEO, video_s_index_); if(!video_codec_context_) CASPAR_LOG(warning) << print() << " Could not open any video stream."; else fix_time_base(video_codec_context_.get()); - audio_codex_context_ = open_stream(CODEC_TYPE_AUDIO, audio_s_index_); + audio_codex_context_ = open_stream(AVMEDIA_TYPE_AUDIO, audio_s_index_); if(!audio_codex_context_) CASPAR_LOG(warning) << print() << " Could not open any audio stream."; else @@ -217,11 +216,14 @@ private: try { - AVPacket tmp_packet; - safe_ptr read_packet(&tmp_packet, av_free_packet); + std::shared_ptr read_packet(new AVPacket(), [](AVPacket* p) + { + av_free_packet(p); + delete p; + }); - const int errn = av_read_frame(format_context_.get(), read_packet.get()); - if(is_eof(errn)) + const int errn = av_read_frame(format_context_.get(), read_packet.get()); // read_packet is only valid until next call of av_read_frame. + if(is_eof(errn)) // Use av_dup_packet to extend its life. { if(loop_) { @@ -245,9 +247,15 @@ private: else { if(read_packet->stream_index == video_s_index_) - video_packet_buffer_.try_push(packet(read_packet->data, read_packet->data + read_packet->size)); - else if(read_packet->stream_index) - audio_packet_buffer_.try_push(packet(read_packet->data, read_packet->data + read_packet->size)); + { + av_dup_packet(read_packet.get()); + video_packet_buffer_.try_push(packet(read_packet)); + } + else if(read_packet->stream_index) + { + av_dup_packet(read_packet.get()); + audio_packet_buffer_.try_push(packet(read_packet)); + } } graph_->update_value("input-buffer", static_cast(video_packet_buffer_.size())/static_cast(PACKET_BUFFER_COUNT)); @@ -292,7 +300,7 @@ private: if(length_ != -1) return get_default_context()->frame_number > eof_count_; - return errn == AVERROR_EOF || errn == AVERROR_IO; + return errn == AVERROR_EOF; } packet get_packet(tbb::concurrent_bounded_queue& buffer) diff --git a/modules/ffmpeg/producer/packet.h b/modules/ffmpeg/producer/packet.h index 2e2e08346..9a76643fb 100644 --- a/modules/ffmpeg/producer/packet.h +++ b/modules/ffmpeg/producer/packet.h @@ -1,7 +1,8 @@ #pragma once #include -#include + +#include namespace caspar { @@ -14,18 +15,15 @@ enum packet_type struct packet { - typedef std::vector> aligned_buffer; - packet_type type; - std::shared_ptr data; - + std::shared_ptr av_packet; + packet(packet_type t = empty_packet) : type(t){} - template - packet(T first, T last) + packet(const std::shared_ptr& av_packet) : type(data_packet) - , data(new aligned_buffer(first, last)){} + , av_packet(av_packet){} }; } \ No newline at end of file diff --git a/modules/ffmpeg/producer/video/video_decoder.cpp b/modules/ffmpeg/producer/video/video_decoder.cpp index 37ab59d62..64722650a 100644 --- a/modules/ffmpeg/producer/video/video_decoder.cpp +++ b/modules/ffmpeg/producer/video/video_decoder.cpp @@ -43,6 +43,7 @@ extern "C" #define __STDC_LIMIT_MACROS #include #include + #include } #if defined(_MSC_VER) #pragma warning (pop) @@ -147,7 +148,7 @@ public: } } - std::vector> execute(const packet& video_packet) + std::vector> execute(packet&& video_packet) { std::vector> result; @@ -160,7 +161,7 @@ public: safe_ptr decoded_frame(avcodec_alloc_frame(), av_free); int frame_finished = 0; - const int errn = avcodec_decode_video(&codec_context_, decoded_frame.get(), &frame_finished, video_packet.data->data(), video_packet.data->size()); + const int errn = avcodec_decode_video2(&codec_context_, decoded_frame.get(), &frame_finished, video_packet.av_packet.get()); if(errn < 0) { @@ -216,6 +217,6 @@ public: }; video_decoder::video_decoder(AVCodecContext& codec_context, const safe_ptr& frame_factory) : impl_(new implementation(codec_context, frame_factory)){} -std::vector> video_decoder::execute(const packet& video_packet){return impl_->execute(video_packet);} +std::vector> video_decoder::execute(packet&& video_packet){return impl_->execute(std::move(video_packet));} } \ No newline at end of file diff --git a/modules/ffmpeg/producer/video/video_decoder.h b/modules/ffmpeg/producer/video/video_decoder.h index 1756b1c20..07d772892 100644 --- a/modules/ffmpeg/producer/video/video_decoder.h +++ b/modules/ffmpeg/producer/video/video_decoder.h @@ -36,7 +36,7 @@ class video_decoder : boost::noncopyable { public: explicit video_decoder(AVCodecContext& codec_context, const safe_ptr& frame_factory); - std::vector> execute(const packet& video_packet); + std::vector> execute(packet&& video_packet); private: struct implementation; safe_ptr impl_; diff --git a/shell/shell.vcxproj b/shell/shell.vcxproj index fb194c6a2..90b449b87 100644 --- a/shell/shell.vcxproj +++ b/shell/shell.vcxproj @@ -126,14 +126,14 @@ $(SolutionDir)tmp\$(Configuration)\ $(SolutionDir)tmp\$(Configuration)\ $(SolutionDir)tmp\$(Configuration)\ - ..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath) - ..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath) - ..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath) - ..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath) - C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) - C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) - C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) - C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) + ..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.7\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath) + ..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.7\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath) + ..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.7\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath) + ..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.7\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath) + C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.7\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) + C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.7\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) + C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.7\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) + C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.7\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath) $(SolutionDir)bin\$(Configuration)\ $(SolutionDir)bin\$(Configuration)\ $(SolutionDir)bin\$(Configuration)\ @@ -181,7 +181,7 @@ common/compiler/vs/disable_silly_warnings.h - Bluevelvet3_d.lib;BlueHancUtils_d.lib;sfml-system-d.lib;sfml-audio-d.lib;sfml-window-d.lib;sfml-graphics-d.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib + Bluevelvet3_d.lib;BlueHancUtils_d.lib;sfml-system-d.lib;sfml-audio-d.lib;sfml-window-d.lib;sfml-graphics-d.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat.lib;avcodec.lib;avutil.lib;avfilter.lib;swscale.lib;tbb.lib;Glee.lib %(AdditionalLibraryDirectories) @@ -234,7 +234,7 @@ copy "$(ProjectDir)caspar.config" "$(OutDir)" - Bluevelvet3.lib;BlueHancUtils.lib;sfml-system.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib + Bluevelvet3.lib;BlueHancUtils.lib;sfml-system.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat.lib;avcodec.lib;avutil.lib;avfilter.lib;swscale.lib;tbb.lib;Glee.lib %(AdditionalLibraryDirectories) @@ -289,7 +289,7 @@ copy "$(ProjectDir)caspar.config" "$(OutDir)" - Bluevelvet3.lib;BlueHancUtils.lib;sfml-system.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib + Bluevelvet3.lib;BlueHancUtils.lib;sfml-system.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat.lib;avcodec.lib;avutil.lib;avfilter.lib;swscale.lib;tbb.lib;Glee.lib %(AdditionalLibraryDirectories) @@ -344,7 +344,7 @@ copy "$(ProjectDir)caspar.config" "$(OutDir)" - Bluevelvet3.lib;BlueHancUtils.lib;sfml-system.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib + Bluevelvet3.lib;BlueHancUtils.lib;sfml-system.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat.lib;avcodec.lib;avutil.lib;avfilter.lib;swscale.lib;tbb.lib;Glee.lib %(AdditionalLibraryDirectories)