]> git.sesse.net Git - casparcg/commitdiff
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Tue, 18 Oct 2011 14:49:39 +0000 (14:49 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Tue, 18 Oct 2011 14:49:39 +0000 (14:49 +0000)
21 files changed:
common/common.vcxproj
common/common.vcxproj.filters
common/concrt/bounded_buffer.h [deleted file]
common/concrt/scoped_oversubscription_token.h [deleted file]
core/core.vcxproj
core/producer/frame/frame_factory.h
modules/bluefish/bluefish.vcxproj
modules/decklink/decklink.vcxproj
modules/ffmpeg/StdAfx.h
modules/ffmpeg/ffmpeg.cpp
modules/ffmpeg/ffmpeg.vcxproj
modules/ffmpeg/producer/ffmpeg_producer.cpp
modules/ffmpeg/producer/input.cpp
modules/ffmpeg/producer/util.cpp
modules/ffmpeg/tbb_avcodec.cpp
modules/flash/flash.vcxproj
modules/image/image.vcxproj
modules/oal/oal.vcxproj
modules/ogl/ogl.vcxproj
protocol/protocol.vcxproj
shell/shell.vcxproj

index 3157645d4c6fc1212502f1de680f604aa459f00d..5c7e77f37d2c37abcc7631c09a66f2c94a7beabe 100644 (file)
   </ImportGroup>\r
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
-    <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
     <LibraryPath>..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\;$(LibraryPath)</LibraryPath>\r
     <OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
     <IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
-    <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
     <LibraryPath>..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\;$(LibraryPath)</LibraryPath>\r
     <OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
     <IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
-    <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
     <LibraryPath>..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\;$(LibraryPath)</LibraryPath>\r
     <OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
     <IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
-    <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
     <LibraryPath>..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\;$(LibraryPath)</LibraryPath>\r
     <OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
     <IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
     <ClInclude Include="compiler\vs\disable_silly_warnings.h" />\r
-    <ClInclude Include="concrt\bounded_buffer.h" />\r
-    <ClInclude Include="concrt\scoped_oversubscription_token.h" />\r
     <ClInclude Include="concurrency\com_context.h" />\r
     <ClInclude Include="concurrency\executor.h" />\r
     <ClInclude Include="diagnostics\graph.h" />\r
index 8ebdeab3c312b6091f5398dca8f2c8a78dc11151..54cce3a53fc4219395c28ca04e27ecfe0f2136df 100644 (file)
@@ -37,9 +37,6 @@
     <Filter Include="source\compiler\vs">\r
       <UniqueIdentifier>{28c25c8a-1277-4d2c-9e85-5af33f9938ea}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="source\concrt">\r
-      <UniqueIdentifier>{d3ba93c7-82fb-4e69-97bc-cdbf7d6feb24}</UniqueIdentifier>\r
-    </Filter>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClCompile Include="exception\win32_exception.cpp">\r
     <ClInclude Include="utility\move_on_copy.h">\r
       <Filter>source\utility</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="concrt\bounded_buffer.h">\r
-      <Filter>source\concrt</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="concrt\scoped_oversubscription_token.h">\r
-      <Filter>source\concrt</Filter>\r
-    </ClInclude>\r
   </ItemGroup>\r
 </Project>
\ No newline at end of file
diff --git a/common/concrt/bounded_buffer.h b/common/concrt/bounded_buffer.h
deleted file mode 100644 (file)
index c167e33..0000000
+++ /dev/null
@@ -1,584 +0,0 @@
-#pragma once\r
-\r
-#include <agents.h>\r
-\r
-namespace Concurrency\r
-{\r
-\r
-/// <summary>\r
-///    A bounded_buffer implementation. Once the capacity is reached it will save the offered message\r
-///    id and postpone. Once below capacity again the bounded_buffer will try to reserve and consume\r
-///    any of the postponed messages. Preference is given to previously offered messages before new ones.\r
-///\r
-///    NOTE: this bounded_buffer implementation contains code that is very unique to this particular block. \r
-///          Extreme caution should be taken if code is directly copy and pasted from this class. The bounded_buffer\r
-///          implementation uses a critical_section, several interlocked operations, and additional calls to async_send.\r
-///          These are needed to not abandon a previously saved message id. Most blocks never have to deal with this problem.\r
-/// </summary>\r
-/// <typeparam name="_Type">\r
-///     The payload type of messages stored and propagated by the buffer.\r
-/// </typeparam>\r
-template<class _Type>\r
-class bounded_buffer : public propagator_block<multi_link_registry<ITarget<_Type>>, multi_link_registry<ISource<_Type>>>\r
-{\r
-public:\r
-    /// <summary>\r
-    ///     Creates an bounded_buffer within the default scheduler, and places it any schedule\r
-    ///     group of the scheduler\92s choosing.\r
-    /// </summary>\r
-    bounded_buffer(const size_t capacity)\r
-        : _M_capacity(capacity), _M_currentSize(0)\r
-    {\r
-        initialize_source_and_target();\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Creates an bounded_buffer within the default scheduler, and places it any schedule\r
-    ///     group of the scheduler\92s choosing.\r
-    /// </summary>\r
-    /// <param name="_Filter">\r
-    ///     A reference to a filter function.\r
-    /// </param>\r
-    bounded_buffer(const size_t capacity, filter_method const& _Filter)\r
-        : _M_capacity(capacity), _M_currentSize(0)\r
-    {\r
-        initialize_source_and_target();\r
-        register_filter(_Filter);\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Creates an bounded_buffer within the specified scheduler, and places it any schedule\r
-    ///     group of the scheduler\92s choosing.\r
-    /// </summary>\r
-    /// <param name="_PScheduler">\r
-    ///     A reference to a scheduler instance.\r
-    /// </param>\r
-    bounded_buffer(const size_t capacity, Scheduler& _PScheduler)\r
-        : _M_capacity(capacity), _M_currentSize(0)\r
-    {\r
-        initialize_source_and_target(&_PScheduler);\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Creates an bounded_buffer within the specified scheduler, and places it any schedule\r
-    ///     group of the scheduler\92s choosing.\r
-    /// </summary>\r
-    /// <param name="_PScheduler">\r
-    ///     A reference to a scheduler instance.\r
-    /// </param>\r
-    /// <param name="_Filter">\r
-    ///     A reference to a filter function.\r
-    /// </param>\r
-    bounded_buffer(const size_t capacity, Scheduler& _PScheduler, filter_method const& _Filter) \r
-        : _M_capacity(capacity), _M_currentSize(0)\r
-    {\r
-        initialize_source_and_target(&_PScheduler);\r
-        register_filter(_Filter);\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Creates an bounded_buffer within the specified schedule group.  The scheduler is implied\r
-    ///     by the schedule group.\r
-    /// </summary>\r
-    /// <param name="_PScheduleGroup">\r
-    ///     A reference to a schedule group.\r
-    /// </param>\r
-    bounded_buffer(const size_t capacity, ScheduleGroup& _PScheduleGroup)\r
-        : _M_capacity(capacity), _M_currentSize(0)\r
-    {\r
-        initialize_source_and_target(NULL, &_PScheduleGroup);\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Creates an bounded_buffer within the specified schedule group.  The scheduler is implied\r
-    ///     by the schedule group.\r
-    /// </summary>\r
-    /// <param name="_PScheduleGroup">\r
-    ///     A reference to a schedule group.\r
-    /// </param>\r
-    /// <param name="_Filter">\r
-    ///     A reference to a filter function.\r
-    /// </param>\r
-    bounded_buffer(const size_t capacity, ScheduleGroup& _PScheduleGroup, filter_method const& _Filter)\r
-        : _M_capacity(capacity), _M_currentSize(0)\r
-    {\r
-        initialize_source_and_target(NULL, &_PScheduleGroup);\r
-        register_filter(_Filter);\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Cleans up any resources that may have been used by the bounded_buffer.\r
-    /// </summary>\r
-    ~bounded_buffer()\r
-    {\r
-        // Remove all links\r
-        remove_network_links();\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Add an item to the bounded_buffer.\r
-    /// </summary>\r
-    /// <param name="_Item">\r
-    ///     A reference to the item to add.\r
-    /// </param>\r
-    /// <returns>\r
-    ///     A boolean indicating whether the data was accepted.\r
-    /// </returns>\r
-    bool enqueue(_Type const& _Item)\r
-    {\r
-        return Concurrency::send<_Type>(this, _Item);\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Remove an item from the bounded_buffer.\r
-    /// </summary>\r
-    /// <returns>\r
-    ///     The message payload.\r
-    /// </returns>\r
-    _Type dequeue()\r
-    {\r
-        return receive<_Type>(this);\r
-    }\r
-\r
-protected:\r
-\r
-    /// <summary>\r
-    ///     The main propagate() function for ITarget blocks.  Called by a source\r
-    ///     block, generally within an asynchronous task to send messages to its targets.\r
-    /// </summary>\r
-    /// <param name="_PMessage">\r
-    ///     A pointer to the message.\r
-    /// </param>\r
-    /// <param name="_PSource">\r
-    ///     A pointer to the source block offering the message.\r
-    /// </param>\r
-    /// <returns>\r
-    ///     An indication of what the target decided to do with the message.\r
-    /// </returns>\r
-    /// <remarks>\r
-    ///     It is important that calls to propagate do *not* take the same lock on the\r
-    ///     internal structure that is used by Consume and the LWT.  Doing so could\r
-    ///     result in a deadlock with the Consume call.  (in the case of the bounded_buffer,\r
-    ///     this lock is the m_internalLock)\r
-    /// </remarks>\r
-    virtual message_status propagate_message(message<_Type> * _PMessage, ISource<_Type> * _PSource)\r
-    {\r
-        message_status _Result = accepted;\r
-            \r
-        // Check current capacity. \r
-        if((size_t)_InterlockedIncrement(&_M_currentSize) > _M_capacity)\r
-        {\r
-            // Postpone the message, buffer is full.\r
-            _InterlockedDecrement(&_M_currentSize);\r
-            _Result = postponed;\r
-\r
-            // Save off the message id from this source to later try\r
-            // and reserve/consume when more space is free.\r
-            {\r
-                critical_section::scoped_lock scopedLock(_M_savedIdsLock);\r
-                _M_savedSourceMsgIds[_PSource] = _PMessage->msg_id();\r
-            }\r
-\r
-            async_send(NULL);\r
-        }\r
-        else\r
-        {\r
-            //\r
-            // Accept the message being propagated\r
-            // Note: depending on the source block propagating the message\r
-            // this may not necessarily be the same message (pMessage) first\r
-            // passed into the function.\r
-            //\r
-            _PMessage = _PSource->accept(_PMessage->msg_id(), this);\r
-\r
-            if (_PMessage != NULL)\r
-            {\r
-                async_send(_PMessage);\r
-            }\r
-            else\r
-            {\r
-                // Didn't get a message so need to decrement.\r
-                _InterlockedDecrement(&_M_currentSize);\r
-                _Result = missed;\r
-                async_send(NULL);\r
-            }\r
-        }\r
-\r
-        return _Result;\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Synchronously sends a message to this block.  When this function completes the message will\r
-    ///     already have propagated into the block.\r
-    /// </summary>\r
-    /// <param name="_PMessage">\r
-    ///     A pointer to the message.\r
-    /// </param>\r
-    /// <param name="_PSource">\r
-    ///     A pointer to the source block offering the message.\r
-    /// </param>\r
-    /// <returns>\r
-    ///     An indication of what the target decided to do with the message.\r
-    /// </returns>\r
-    virtual message_status send_message(message<_Type> * _PMessage, ISource<_Type> * _PSource)\r
-    {\r
-        message_status _Result = accepted;\r
-            \r
-        // Check current capacity. \r
-        if((size_t)_InterlockedIncrement(&_M_currentSize) > _M_capacity)\r
-        {\r
-            // Postpone the message, buffer is full.\r
-            _InterlockedDecrement(&_M_currentSize);\r
-            _Result = postponed;\r
-\r
-            // Save off the message id from this source to later try\r
-            // and reserve/consume when more space is free.\r
-            {\r
-                critical_section::scoped_lock scopedLock(_M_savedIdsLock);\r
-                _M_savedSourceMsgIds[_PSource] = _PMessage->msg_id();\r
-            }\r
-\r
-            async_send(NULL);\r
-        }\r
-        else\r
-        {\r
-            //\r
-            // Accept the message being propagated\r
-            // Note: depending on the source block propagating the message\r
-            // this may not necessarily be the same message (pMessage) first\r
-            // passed into the function.\r
-            //\r
-            _PMessage = _PSource->accept(_PMessage->msg_id(), this);\r
-\r
-            if (_PMessage != NULL)\r
-            {\r
-                async_send(_PMessage);\r
-            }\r
-            else\r
-            {\r
-                // Didn't get a message so need to decrement.\r
-                _InterlockedDecrement(&_M_currentSize);\r
-                _Result = missed;\r
-                async_send(NULL);\r
-            }\r
-        }\r
-\r
-        return _Result;\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Accepts an offered message by the source, transferring ownership to the caller.\r
-    /// </summary>\r
-    /// <param name="_MsgId">\r
-    ///     The runtime object identity of the message.\r
-    /// </param>\r
-    /// <returns>\r
-    ///     A pointer to the message that the caller now has ownership of.\r
-    /// </returns>\r
-    virtual message<_Type> * accept_message(runtime_object_identity _MsgId)\r
-    {\r
-        //\r
-        // Peek at the head message in the message buffer.  If the Ids match\r
-        // dequeue and transfer ownership\r
-        //\r
-        message<_Type> * _Msg = NULL;\r
-\r
-        if (_M_messageBuffer._Is_head(_MsgId))\r
-        {\r
-                       _Msg = _M_messageBuffer._Dequeue();\r
-\r
-            // Give preference to any previously postponed messages\r
-            // before decrementing current size.\r
-            if(!try_consume_msg())\r
-            {\r
-                _InterlockedDecrement(&_M_currentSize);\r
-            }\r
-        }\r
-\r
-        return _Msg;\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Try to reserve and consume a message from list of saved message ids.\r
-    /// </summary>\r
-    /// <returns>\r
-    ///     True if a message was sucessfully consumed, false otherwise.\r
-    /// </returns>\r
-    bool try_consume_msg()\r
-    {\r
-        runtime_object_identity _ReservedId = -1;\r
-        ISource<_Type> * _PSource = NULL;\r
-\r
-        // Walk through source links seeing if any saved ids exist.\r
-        bool _ConsumedMsg = true;\r
-        while(_ConsumedMsg)\r
-        {\r
-            source_iterator _Iter = _M_connectedSources.begin();\r
-            {\r
-                critical_section::scoped_lock scopedLock(_M_savedIdsLock);\r
-                for (; *_Iter != NULL; ++_Iter)\r
-                {\r
-                    _PSource = *_Iter;\r
-                    std::map<ISource<_Type> *, runtime_object_identity>::iterator _MapIter;\r
-                    if((_MapIter = _M_savedSourceMsgIds.find(_PSource)) != _M_savedSourceMsgIds.end())\r
-                    {\r
-                        _ReservedId = _MapIter->second;\r
-                        _M_savedSourceMsgIds.erase(_MapIter);\r
-                        break;\r
-                    }\r
-                }\r
-            }\r
-\r
-            // Can't call into source block holding _M_savedIdsLock, that would be a recipe for disaster.\r
-            if(_ReservedId != -1)\r
-            {\r
-                if(_PSource->reserve(_ReservedId, this))\r
-                {\r
-                    message<_Type> * _ConsumedMsg = _PSource->consume(_ReservedId, this);\r
-                    async_send(_ConsumedMsg);\r
-                    return true;\r
-                }\r
-                // Reserve failed go or link was removed, \r
-                // go back and try and find a different msg id.\r
-                else\r
-                {\r
-                    continue;\r
-                }\r
-            }\r
-\r
-            // If this point is reached the map of source ids was empty.\r
-            break;\r
-        }\r
-\r
-        return false;\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Reserves a message previously offered by the source.\r
-    /// </summary>\r
-    /// <param name="_MsgId">\r
-    ///     The runtime object identity of the message.\r
-    /// </param>\r
-    /// <returns>\r
-    ///     A Boolean indicating whether the reservation worked or not.\r
-    /// </returns>\r
-    /// <remarks>\r
-    ///     After 'reserve' is called, either 'consume' or 'release' must be called.\r
-    /// </remarks>\r
-    virtual bool reserve_message(runtime_object_identity _MsgId)\r
-    {\r
-        // Allow reservation if this is the head message\r
-        return _M_messageBuffer._Is_head(_MsgId);\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Consumes a message that was reserved previously.\r
-    /// </summary>\r
-    /// <param name="_MsgId">\r
-    ///     The runtime object identity of the message.\r
-    /// </param>\r
-    /// <returns>\r
-    ///     A pointer to the message that the caller now has ownership of.\r
-    /// </returns>\r
-    /// <remarks>\r
-    ///     Similar to 'accept', but is always preceded by a call to 'reserve'.\r
-    /// </remarks>\r
-    virtual message<_Type> * consume_message(runtime_object_identity _MsgId)\r
-    {\r
-        // By default, accept the message\r
-        return accept_message(_MsgId);\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Releases a previous message reservation.\r
-    /// </summary>\r
-    /// <param name="_MsgId">\r
-    ///     The runtime object identity of the message.\r
-    /// </param>\r
-    virtual void release_message(runtime_object_identity _MsgId)\r
-    {\r
-        // The head message is the one reserved.\r
-        if (!_M_messageBuffer._Is_head(_MsgId))\r
-        {\r
-            throw message_not_found();\r
-        }\r
-    }\r
-\r
-    /// <summary>\r
-    ///    Resumes propagation after a reservation has been released\r
-    /// </summary>\r
-    virtual void resume_propagation()\r
-    {\r
-        // If there are any messages in the buffer, propagate them out\r
-        if (_M_messageBuffer._Count() > 0)\r
-        {\r
-            async_send(NULL);\r
-        }\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Notification that a target was linked to this source.\r
-    /// </summary>\r
-    /// <param name="_PTarget">\r
-    ///     A pointer to the newly linked target.\r
-    /// </param>\r
-    virtual void link_target_notification(ITarget<_Type> * _PTarget)\r
-    {\r
-        // If the message queue is blocked due to reservation\r
-        // there is no need to do any message propagation\r
-        if (_M_pReservedFor != NULL)\r
-        {\r
-            return;\r
-        }\r
-\r
-        message<_Type> * _Msg = _M_messageBuffer._Peek();\r
-\r
-        if (_Msg != NULL)\r
-        {\r
-            // Propagate the head message to the new target\r
-            message_status _Status = _PTarget->propagate(_Msg, this);\r
-\r
-            if (_Status == accepted)\r
-            {\r
-                // The target accepted the message, restart propagation.\r
-                propagate_to_any_targets(NULL);\r
-            }\r
-\r
-            // If the status is anything other than accepted, then leave\r
-            // the message queue blocked.\r
-        }\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Takes the message and propagates it to all the targets of this bounded_buffer.\r
-    ///     This is called from async_send.\r
-    /// </summary>\r
-    /// <param name="_PMessage">\r
-    ///     A pointer to a new message.\r
-    /// </param>\r
-    virtual void propagate_to_any_targets(message<_Type> * _PMessage)\r
-    {\r
-        // Enqueue pMessage to the internal message buffer if it is non-NULL.\r
-        // pMessage can be NULL if this LWT was the result of a Repropagate call\r
-        // out of a Consume or Release (where no new message is queued up, but\r
-        // everything remaining in the bounded buffer needs to be propagated out)\r
-        if (_PMessage != NULL)\r
-        {\r
-            _M_messageBuffer._Enqueue(_PMessage);\r
-\r
-            // If the incoming pMessage is not the head message, we can safely assume that\r
-            // the head message is blocked and waiting on Consume(), Release() or a new\r
-            // link_target() and cannot be propagated out.\r
-                       if (_M_messageBuffer._Is_head(_PMessage->msg_id()))\r
-            {\r
-                _Propagate_priority_order();\r
-            }\r
-        }\r
-        else\r
-        {\r
-            // While current size is less than capacity try to consume\r
-            // any previously offered ids.\r
-            bool _ConsumedMsg = true;\r
-            while(_ConsumedMsg)\r
-            {\r
-                // Assume a message will be found to successfully consume in the\r
-                // saved ids, if not this will be decremented afterwards.\r
-                if((size_t)_InterlockedIncrement(&_M_currentSize) > _M_capacity)\r
-                {\r
-                    break;\r
-                }\r
-\r
-                _ConsumedMsg = try_consume_msg();\r
-            }\r
-\r
-            // Decrement the current size, we broke out of the previous loop\r
-            // because we reached capacity or there were no more messages to consume.\r
-            _InterlockedDecrement(&_M_currentSize);\r
-        }\r
-    }\r
-\r
-private:\r
-\r
-    /// <summary>\r
-    ///     Attempts to propagate out any messages currently in the block.\r
-    /// </summary>\r
-    void _Propagate_priority_order()\r
-    {\r
-        message<_Target_type> * _Msg = _M_messageBuffer._Peek();\r
-\r
-        // If someone has reserved the _Head message, don't propagate anymore\r
-        if (_M_pReservedFor != NULL)\r
-        {\r
-            return;\r
-        }\r
-\r
-        while (_Msg != NULL)\r
-        {\r
-            message_status _Status = declined;\r
-\r
-            // Always start from the first target that linked.\r
-            for (target_iterator _Iter = _M_connectedTargets.begin(); *_Iter != NULL; ++_Iter)\r
-            {\r
-                ITarget<_Target_type> * _PTarget = *_Iter;\r
-                _Status = _PTarget->propagate(_Msg, this);\r
-\r
-                // Ownership of message changed. Do not propagate this\r
-                // message to any other target.\r
-                if (_Status == accepted)\r
-                {\r
-                    break;\r
-                }\r
-\r
-                // If the target just propagated to reserved this message, stop\r
-                // propagating it to others.\r
-                if (_M_pReservedFor != NULL)\r
-                {\r
-                    break;\r
-                }\r
-            }\r
-\r
-            // If status is anything other than accepted, then the head message\r
-            // was not propagated out.  Thus, nothing after it in the queue can\r
-            // be propagated out.  Cease propagation.\r
-            if (_Status != accepted)\r
-            {\r
-                break;\r
-            }\r
-\r
-            // Get the next message\r
-            _Msg = _M_messageBuffer._Peek();\r
-        }\r
-    }\r
-\r
-    /// <summary>\r
-    ///     Message buffer used to store messages.\r
-    /// </summary>\r
-    ::Concurrency::details::_Queue<message<_Type>> _M_messageBuffer;\r
-\r
-    /// <summary>\r
-    ///     Maximum number of messages bounded_buffer can hold.\r
-    /// </summary>\r
-    const size_t _M_capacity;\r
-\r
-    /// <summary>\r
-    ///     Current number of messages in bounded_buffer.\r
-    /// </summary>\r
-    volatile long _M_currentSize;\r
-\r
-    /// <summary>\r
-    ///     Lock used to guard saved message ids map.\r
-    /// </summary>\r
-    critical_section _M_savedIdsLock;\r
-\r
-    /// <summary>\r
-    ///     Map of source links to saved message ids.\r
-    /// </summary>\r
-    std::map<ISource<_Type> *, runtime_object_identity> _M_savedSourceMsgIds;\r
-\r
-    //\r
-    // Hide assignment operator and copy constructor\r
-    //\r
-    bounded_buffer const &operator =(bounded_buffer const&);  // no assignment operator\r
-    bounded_buffer(bounded_buffer const &);                   // no copy constructor\r
-};\r
-}
\ No newline at end of file
diff --git a/common/concrt/scoped_oversubscription_token.h b/common/concrt/scoped_oversubscription_token.h
deleted file mode 100644 (file)
index 71d6e35..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#pragma once\r
-\r
-#include <agents.h>\r
-\r
-namespace Concurrency {\r
-\r
-/// <summary>\r
-/// An RAII style wrapper around Concurrency::Context::Oversubscribe,\r
-/// useful for annotating known blocking calls\r
-/// </summary>\r
-class scoped_oversubcription_token\r
-{\r
-public:\r
-    scoped_oversubcription_token()\r
-    {\r
-        Concurrency::Context::CurrentContext()->Oversubscribe(true);\r
-    }\r
-    ~scoped_oversubcription_token()\r
-    {\r
-        Concurrency::Context::CurrentContext()->Oversubscribe(false);\r
-    }\r
-};\r
-\r
-}
\ No newline at end of file
index 9bd7a8e1c6384447ee7b2f1da58a2eb626b137df..5481610a77ae7f5a6cef9689621b67224cddc5fb 100644 (file)
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
index efaa38b5402b1db05c8e5630302d7b6cbb32dbc0..ee92e87e0802f5aad4329f54af5c0d9e4688726b 100644 (file)
@@ -23,9 +23,9 @@
 #include "../../video_format.h"\r
 \r
 #include <common/memory/safe_ptr.h>\r
-#include <common/concrt/scoped_oversubscription_token.h>\r
 \r
 #include <concrt.h>\r
+#include <concrt_extras.h>\r
 \r
 #include <boost/noncopyable.hpp>\r
 #include <boost/thread/future.hpp>\r
index 0995347e1f96127750f8971d71e95e10aec3cc1f..0e2ef75c7ef28493ed77321ca24939b2d39a1167 100644 (file)
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
index f8eea8486881285af48210c791cc65c48c56aded..35a2ff2d1b06bd178afb66e77ee22d052a930cef 100644 (file)
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
index 9dbd5c4f484c0a1b6e799598d8e11d738c22a45c..958e3ccdaf73493c633dc69403ed40c51e0dbf48 100644 (file)
@@ -42,6 +42,9 @@
 #include <math.h>\r
 \r
 #include <agents.h>\r
+#include <agents_extras.h>\r
+#include <concrt.h>\r
+#include <concrt_extras.h>\r
 #include <ppl.h>\r
 \r
 #include <boost/assign.hpp>\r
index 87e1e00833d8308f08941dcb4e6e5eeddc33b14c..572982740f800a478ed619e8e37d182da6167fe9 100644 (file)
@@ -28,7 +28,7 @@
 #include <core/consumer/frame_consumer.h>\r
 #include <core/producer/frame_producer.h>\r
 \r
-#include <tbb/recursive_mutex.h>\r
+#include <ppl.h>\r
 \r
 #if defined(_MSC_VER)\r
 #pragma warning (disable : 4244)\r
@@ -53,13 +53,13 @@ int ffmpeg_lock_callback(void **mutex, enum AVLockOp op)
        if(!mutex)\r
                return 0;\r
 \r
-       auto my_mutex = reinterpret_cast<tbb::recursive_mutex*>(*mutex);\r
+       auto my_mutex = reinterpret_cast<Concurrency::critical_section*>(*mutex);\r
        \r
        switch(op) \r
        { \r
                case AV_LOCK_CREATE: \r
                { \r
-                       *mutex = new tbb::recursive_mutex(); \r
+                       *mutex = new Concurrency::critical_section(); \r
                        break; \r
                } \r
                case AV_LOCK_OBTAIN: \r
index ad2bdc7165e3e20d67c8e9bc058d5d3435fc0ed1..21bd2e7c57247a7517373d963aab24f566661e92 100644 (file)
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
index 66fda2ce41966d46d83170c8ef39c7f1fba066f3..aa9cf9aa399f1588a3a68d67a7002f408ff487ed 100644 (file)
@@ -27,7 +27,6 @@
 #include "audio/audio_decoder.h"\r
 #include "video/video_decoder.h"\r
 \r
-#include <common/concrt/bounded_buffer.h>\r
 #include <common/env.h>\r
 #include <common/utility/assert.h>\r
 #include <common/diagnostics/graph.h>\r
 #include <boost/range/algorithm/find.hpp>\r
 \r
 #include <agents.h>\r
+#include <agents_extras.h>\r
 #include <ppl.h>\r
 \r
-namespace caspar { namespace ffmpeg {\r
+using namespace Concurrency;\r
 \r
-template<typename T>\r
-struct buffer_alias\r
-{\r
-       typedef Concurrency::bounded_buffer<std::shared_ptr<T>> type;\r
-};\r
-                               \r
+namespace caspar { namespace ffmpeg {\r
+       \r
 struct ffmpeg_producer : public core::frame_producer\r
 {      \r
        const std::wstring                                              filename_;\r
@@ -63,11 +59,11 @@ struct ffmpeg_producer : public core::frame_producer
        const bool                                                              loop_;\r
        const size_t                                                    length_;\r
 \r
-       buffer_alias<AVPacket>::type                                    packets0_;\r
-       buffer_alias<AVPacket>::type                                    packets1_;\r
-       buffer_alias<AVFrame>::type                                             video_frames_;\r
-       buffer_alias<core::audio_buffer>::type                  audio_buffers_;\r
-       buffer_alias<core::basic_frame>::type                   muxed_frames_;\r
+       Concurrency::bounded_buffer<std::shared_ptr<AVPacket>>                          packets0_;\r
+       Concurrency::bounded_buffer<std::shared_ptr<AVPacket>>                          packets1_;\r
+       Concurrency::bounded_buffer<std::shared_ptr<AVFrame>>                           video_frames_;\r
+       Concurrency::bounded_buffer<std::shared_ptr<core::audio_buffer>>        audio_buffers_;\r
+       Concurrency::bounded_buffer<std::shared_ptr<core::basic_frame>>         muxed_frames_;\r
                \r
        const safe_ptr<diagnostics::graph>              graph_;\r
                                        \r
index 720ac839223d4b1857ba546ae9e852fb4af92cfd..412ba58a848a48790a943cf9e18cbf54bd7976a5 100644 (file)
 \r
 #include <core/video_format.h>\r
 \r
-#include <common/concrt/scoped_oversubscription_token.h>\r
 #include <common/diagnostics/graph.h>\r
 #include <common/exception/exceptions.h>\r
 #include <common/exception/win32_exception.h>\r
 \r
 #include <tbb/atomic.h>\r
 \r
-#include <boost/range/algorithm.hpp>\r
-\r
 #include <agents.h>\r
+#include <concrt_extras.h>\r
 \r
 #if defined(_MSC_VER)\r
 #pragma warning (push)\r
index a98c08737f16450882371031dda2d57e2a4c4ee7..a156062c2751d9dc577f77d36e8eb0bd9a92142d 100644 (file)
@@ -4,7 +4,7 @@
 \r
 #include "format/flv.h"\r
 \r
-#include <tbb/concurrent_unordered_map.h>\r
+#include <concurrent_unordered_map.h>\r
 #include <concurrent_queue.h>\r
 \r
 #include <core/producer/frame/frame_transform.h>\r
@@ -127,7 +127,7 @@ int make_alpha_format(int format)
 \r
 safe_ptr<core::write_frame> make_write_frame(const void* tag, const safe_ptr<AVFrame>& decoded_frame, const safe_ptr<core::frame_factory>& frame_factory, int hints)\r
 {                      \r
-       static tbb::concurrent_unordered_map<size_t, Concurrency::concurrent_queue<std::shared_ptr<SwsContext>>> sws_contexts_;\r
+       static Concurrency::concurrent_unordered_map<size_t, Concurrency::concurrent_queue<std::shared_ptr<SwsContext>>> sws_contexts_;\r
        \r
        const auto width  = decoded_frame->width;\r
        const auto height = decoded_frame->height;\r
index 1f0eb7b2a9af95db54523b6b7f695a49f5e8953d..961c06fb90d32802ecca4f33fdd5acb50db2a209 100644 (file)
@@ -11,8 +11,6 @@
 #include <ppl.h>\r
 \r
 #include <tbb/atomic.h>\r
-#include <tbb/parallel_for.h>\r
-#include <tbb/tbb_thread.h>\r
 \r
 #if defined(_MSC_VER)\r
 #pragma warning (push)\r
@@ -47,7 +45,6 @@ int thread_execute2(AVCodecContext* s, int (*func)(AVCodecContext* c2, void* arg
        tbb::atomic<int> counter;   \r
     counter = 0;   \r
 \r
-       CASPAR_ASSERT(tbb::tbb_thread::hardware_concurrency() < 16);\r
        // Note: this will probably only work when tbb::task_scheduler_init::num_threads() < 16.\r
     Concurrency::parallel_for(0, count, 2, [&](int jobnr)    \r
     {   \r
index 5e4f5566b0a2e92c43213eb9d7e62ec0b7201f9a..a2d3f10a59f7669372daad5d0857fcaa468953dd 100644 (file)
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
index a159f14cf1eb895a9c05226fe814d06e20dce273..78e843f4f2d4b8db5417fd5b5e539297c07c8697 100644 (file)
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
index c4d4f476d6af025944e5665f13b1b220fa8c3843..665658104ba2e5befee47c37d068d3e4b35c849b 100644 (file)
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
index 9d5ce9e30491a7ba1aa182afe858516f3000d3fc..61ef75cb6e51654042d2ce2d1e9140855b6c1314 100644 (file)
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
index 4ce363226274de8308e4eaf968070364f957e204..3b405fa7f39e9457b170993286d79009a6b75879 100644 (file)
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
   </ImportGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
-    <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath)</IncludePath>\r
+    <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
     <OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
     <IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
-    <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath)</IncludePath>\r
+    <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
     <OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
     <IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
-    <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath)</IncludePath>\r
+    <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
     <OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
     <IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
-    <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath)</IncludePath>\r
+    <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
     <OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
     <IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
index 1ec92e818d3b6bc3b25614b0111fadbf8925dbc0..5547737bb707ea68c7236f587a2a1845b796b21a 100644 (file)
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(SolutionDir)tmp\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(SolutionDir)tmp\$(Configuration)\</IntDir>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">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.8\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">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.8\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">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.8\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r