I'm trying to build ffdshow [r4530] in vs2013. If you're interested I'll send/contribute the sln & vcxproj files. Regardless, I've got the solution converted and all the projects building but ffdshow itself. The error below is typical of the kind I've seen moving forward from vs2010. The compiler wants explicit type casting to resolve ambiguity. But in this case, the use of templates has me at a loss. I'm hoping that one of you with greater familiarity with the code can recommend what I expect is a simple cast. If there's something more that you might need, please let me know. Thanks!
The error is:
1>------ Build started: Project: ffdshow, Configuration: Debug Win32 ------
1> TffdshowPageEnc.cpp
1>c:\program files (x86)\microsoft visual studio 12.0\vc\include\xmemory0(893): error C2678: binary '==' : no operator found which takes a left-hand operand of type 'array_allocator<const tcspinfo="" *,70="">' (or there is no acceptable conversion)
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\system_error(410): could be 'bool std::operator ==(const std::error_condition &,const std::error_code &) throw()'
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\system_error(402): or 'bool std::operator ==(const std::error_code &,const std::error_condition &) throw()'
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\exception(507): or 'bool std::operator ==(const std::exception_ptr &,std::nullptr_t)'
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\exception(502): or 'bool std::operator ==(std::nullptr_t,const std::exception_ptr &)'
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\exception(497): or 'bool std::operator ==(const std::exception_ptr &,const std::exception_ptr &)'
1> c:\program files (x86)\windows kits\8.1\include\shared\guiddef.h(192): or 'bool operator ==(const GUID &,const GUID &)' [found using argument-dependent lookup]
1> d:\research\ffdshow-tryout-code-4530-trunk\src\imgfilters\tffrect.h(57): or 'bool operator ==(const Trect &,const Trect &)' [found using argument-dependent lookup]
1> while trying to match the argument list '(array_allocator<const tcspinfo="" *,70="">, array_allocator<const tcspinfo="" *,70="">)'
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\xmemory0(901) : see reference to function template instantiation 'bool std::operator ==<array_allocator\<const tcspinfo="" *,70="">,array_allocator\<const tcspinfo="" *,70="">>(const std::_Wrap_alloc<array_allocator\<const tcspinfo="" *,70="">> &,const std::_Wrap_alloc<array_allocator\<const tcspinfo="" *,70="">> &) throw()' being compiled
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\vector(953) : see reference to function template instantiation 'bool std::operator !=<array_allocator\<const tcspinfo="" *,70="">,array_allocator\<const tcspinfo="" *,70="">>(const std::_Wrap_alloc<array_allocator\<const tcspinfo="" *,70="">> &,const std::_Wrap_alloc<array_allocator\<const tcspinfo="" *,70="">> &) throw()' being compiled
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\vector(949) : while compiling class template member function 'std::vector<const tcspinfo="" *,array_allocator\<const="" *,70="">> &std::vector<const tcspinfo="" *,array_allocator\<const="" *,70="">>::operator =(const std::vector<const tcspinfo="" *,array_allocator\<const="" *,70="">> &)'
1> d:\research\ffdshow-tryout-code-4530-trunk\src\dialog\tffdshowpageenc.cpp(96) : see reference to function template instantiation 'std::vector<const tcspinfo="" *,array_allocator\<const="" *,70="">> &std::vector<const tcspinfo="" *,array_allocator\<const="" *,70="">>::operator =(const std::vector<const tcspinfo="" *,array_allocator\<const="" *,70="">> &)' being compiled
1> d:\research\ffdshow-tryout-code-4530-trunk\src\imgfilters\ffimgfmt.h(348) : see reference to class template instantiation 'std::vector<const tcspinfo="" *,array_allocator\<const="" *,70="">>' being compiled
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========</const></const></const></const></const></const></const></array_allocator\<const></array_allocator\<const></const></array_allocator\<const></array_allocator\<const></array_allocator\<const></const></array_allocator\<const></const></const></const>
The attached zip file contains just the _2013. files.
I've given up trying to get ffdshow to build in vs2013. The source file Tuple.h defines a tuple class and some derivatives which have name collisions with several visual studio 2013 built-in classes. Renaming the ffdshow classes to eliminate the collision was more than I was interested in pursuing at this point.