Hi,
could you write what exactly are you doing to add video to pjsip? Did
you follow these steps
http://trac.pjsip.org/repos/wiki/Video_Users_Guide#WindowsDesktopVisualStudio
? I also have vs c++ EE 2008, and I'm afraid that i also had these
problem with linker but i remember what I did to resolve it.
BR
Andrew
I can share with you my pjsua project configuration(similar for other
problem projects in PJ-project solution):
Configuration Properties/ Linker / General / Additional Library Directories
D:\Projects\PJSIP_BaseClasses\Debug
C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib
D:\Projects\PJSIP\SDL-1.3.0-6091\VisualC\SDL\Release
D:\Projects\PJSIP\ffmpeg-git-7d531e8-win32-dev\lib
C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib\x86
Configuration Properties/ Linker / Input/ Additional Dependencies
Iphlpapi.lib dsound.lib dxguid.lib netapi32.lib mswsock.lib ws2_32.lib
odbc32.lib odbccp32.lib ole32.lib user32.lib gdi32.lib advapi32.lib
Configuration Properties/ Linker / Input/ Ignore Specific Library
msvcrt.lib; LIBCMTD.lib
Cheers
http://trac.pjsip.org/repos/wiki/Video_Users_Guide#WindowsDesktopVisualStudio
Frogerisk, I do follow that guide. I'm using the latest ffmpeg git repository (FFMPEG_VERSION "0.9.1.git"), that bring a problem not related to this compilation problem.
Errors for using latest version of ffmpeg:
* avcodec_init is deprecated and undefined so I have to remove it from ffmpeg_codecs.c
* if I compile the project defining "#define PJMEDIA_VIDEO_DEV_HAS_DSHOW 0" the project does not present the compilation problem i am having, but the ffmpeg video codecs are not present when I use pjsua application.
This two problems are solved using an older version of ffmpeg.
These are my paths for include:
F:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include DIRECT X
F:\SDL-1.3.0-6248\include SDL 1.3
These are my paths for link:
F:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Lib DIRECT X
F:\SDL-1.3.0-6248\VisualC\SDL\DebugSDL 1.3
F:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Release DirectShow
I tried building BaseClases of direct show using both Multi-threaded DLL and Multi-threaded Debug DLL but both bring a lot of compiling errors.
Thanks for your help.
Thanks for your answer Fedot, I will try using the same versions you are using.
How do you build BaseClasses?. Because when I build in debug the library name is strmbasd.lib. When i build in release the name is strmbase.lib but using this is when I have the compilation problems.
I download Windows SDK 6.0, before i was using Windows SDK 6.1.
1>------ Build started: Project: pjmedia_test, Configuration: Release Win32 ------
2>------ Build started: Project: pjsua, Configuration: Release Win32 ------
3>------ Skipped Build: Project: PocketPJ ------
3>Project not selected to build for this solution configuration
4>------ Skipped Build: Project: pjsua_wince ------
4>Project not selected to build for this solution configuration
5>------ Build started: Project: samples, Configuration: Release Win32 ------
5>Performing Makefile project actions
6>------ Skipped Build: Project: python_pjsua, Configuration: Release Win32 ------
6>Project not selected to build for this solution configuration
7>------ Build started: Project: pjsystest, Configuration: Release Win32 ------
5>aviplay.c
1>Linking...
2>Linking...
7>Linking...
1>libpjproject-i386-win32-vc8-release.lib(dshowclasses.obj) : error LNK2019: unresolved external symbol "public: __thiscall CBaseRenderer::CBaseRenderer(struct _GUID const &,char const *,struct IUnknown *,long *)" (??0CBaseRenderer@@QAE@ABU_GUID@@PBDPAUIUnknown@@PAJ@Z) referenced in function "public: __thiscall NullRenderer::NullRenderer(long *)" (??0NullRenderer@@QAE@PAJ@Z)
1>..\bin\pjmedia-test-i386-Win32-vc8-Release.exe : fatal error LNK1120: 1 unresolved externals
2>libpjproject-i386-win32-vc8-release.lib(dshowclasses.obj) : error LNK2019: unresolved external symbol "public: __thiscall CBaseRenderer::CBaseRenderer(struct _GUID const &,char const *,struct IUnknown *,long *)" (??0CBaseRenderer@@QAE@ABU_GUID@@PBDPAUIUnknown@@PAJ@Z) referenced in function "public: __thiscall NullRenderer::NullRenderer(long *)" (??0NullRenderer@@QAE@PAJ@Z)
2>..\bin\pjsua-i386-Win32-vc8-Release.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://j:\Nacho\Proyectos\pj\pjproject\pjmedia\build\output\pjmedia_test-i386-Win32-vc8-Release\BuildLog.htm"
1>pjmedia_test - 2 error(s), 0 warning(s)
2>Build log was saved at "file://j:\Nacho\Proyectos\pj\pjproject\pjsip-apps\build\output\pjsua-i386-Win32-vc8-Release\BuildLog.htm"
2>pjsua - 2 error(s), 0 warning(s)
7>libpjproject-i386-win32-vc8-release.lib(dshowclasses.obj) : error LNK2019: unresolved external symbol "public: __thiscall CBaseRenderer::CBaseRenderer(struct _GUID const &,char const *,struct IUnknown *,long *)" (??0CBaseRenderer@@QAE@ABU_GUID@@PBDPAUIUnknown@@PAJ@Z) referenced in function "public: __thiscall NullRenderer::NullRenderer(long *)" (??0NullRenderer@@QAE@PAJ@Z)
7>..\bin\pjsystest-i386-Win32-vc8-Release.exe : fatal error LNK1120: 1 unresolved externals
7>Build log was saved at "file://j:\Nacho\Proyectos\pj\pjproject\pjsip-apps\build\output\pjsystest-i386-Win32-vc8-Release\BuildLog.htm"
7>pjsystest - 2 error(s), 0 warning(s)
5>pjmedia-videodev-i386-win32-vc8-release.lib(dshowclasses.obj) : error LNK2019: unresolved external symbol "public: __thiscall CBaseRenderer::CBaseRenderer(struct _GUID const &,char const *,struct IUnknown *,long *)" (??0CBaseRenderer@@QAE@ABU_GUID@@PBDPAUIUnknown@@PAJ@Z) referenced in function "public: __thiscall NullRenderer::NullRenderer(long *)" (??0NullRenderer@@QAE@PAJ@Z)
5>..\bin\samples\i386-win32-vc8-release\aviplay.exe : fatal error LNK1120: 1 unresolved externals
5>NMAKE : fatal error U1077: '"F:\Program Files\Microsoft Visual Studio 9.0\VC\bin\cl.EXE"' : return code '0x2'
5>Stop.
5>Project : error PRJ0019: A tool returned an error code from "Performing Makefile project actions"
5>Build log was saved at "file://j:\Nacho\Proyectos\pj\pjproject\pjsip-apps\build\output\samples-i386-Win32-vs8-Release\BuildLog.htm"
5>samples - 4 error(s), 0 warning(s)
========== Build: 0 succeeded, 4 failed, 25 up-to-date, 3 skipped ==========
De: Fedot Fedotov fedot.fedotov@gmail.com
Para: pjsip list pjsip@lists.pjsip.org
Enviado: Martes, 3 de abril, 2012 8:38:05
Asunto: Re: [pjsip] Problem compiling pjsip windows
I can share with you my pjsua project configuration(similar for other problem projects in PJ-project solution):
Configuration Properties/ Linker / General / Additional Library Directories
D:\Projects\PJSIP_BaseClasses\Debug
C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib
D:\Projects\PJSIP\SDL-1.3.0-6091\VisualC\SDL\Release
D:\Projects\PJSIP\ffmpeg-git-7d531e8-win32-dev\lib
C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib\x86\
Configuration Properties/ Linker / Input/ Additional Dependencies
Iphlpapi.lib dsound.lib dxguid.lib netapi32.lib mswsock.lib ws2_32.lib odbc32.lib odbccp32.lib ole32.lib user32.lib gdi32.lib advapi32.lib
Configuration Properties/ Linker / Input/ Ignore Specific Librarymsvcrt.lib; LIBCMTD.lib
Cheers
Visit our blog: http://blog.pjsip.org
pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
I move some paths and try to build pjsip with debug configuration:
I skip samples, psystest, the python and the windows mobile projects.
INCLUDE PATHS:
FFMPEGINCLUDE = J:\ffmpeg-git-7d5318-win32-dev\include ( I download this from the page http://ffmpeg.zeranoe.com/builds/win32/dev/ )
INTTYPESINCLUDE = F:\ffmpeg\msinttypes ( I download this from http://code.google.com/p/msinttypes/downloads/list )
SDLINCLUDE = F:\SDL-1.3.0-6248\include ( I download this from http://www.libsdl.org/tmp/ )
DIRECTSHOWINCLUDE = F:\Program Files\Microsoft SDKs\Windows\v6.0\Samples\Multimedia\DirectShow\BaseClasses ( I download this from http://www.microsoft.com/download/en/details.aspx?id=23719
LINK PATHS
DIRECTX = F:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Lib ( I download this from http://www.microsoft.com/download/en/details.aspx?id=21416 )
FFMPEG = J:\ffmpeg-git-7d531e8-win32-dev\lib
SDL = F:\SDL-1.3.0-6248\VisualC\SDL\Debug
DIRECTSHOW = F:\Program Files\Microsoft SDKs\Windows\v6.0\Samples\Multimedia\DirectShow\BaseClasses\Debug
My project configuration:
pjmedia
include
FFMPEGINCLUDE
INTTYPESINCLUDE
pjmedia_codec
include
FFMPEGINCLUDE
INTTYPESINCLUDE
pjmedia_videodev
include
SDLINCLUDE
DIRECTSHOWINCLUDE
pjsip_test
link
DIRECTX
pjsua
link
DIRECTX
FFMPEG
SDL
DIRECTSHOW
simple_debug
link
DIRECTX
pjmedia_test
link
DIRECTX
FFMPEG
SDL
DIRECTSHOW
I set this in the config_site.h file:
#include <pj/config_site_sample.h>
#define PJMEDIA_HAS_VIDEO 1
#define PJMEDIA_HAS_FFMPEG 1
#define PJMEDIA_VIDEO_DEV_HAS_SDL 1
#define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1
#define PJMEDIA_HAS_FFMPEG_CODEC_H264 1 /* Optional. Note: require libx264 and ffmpeg must be built with h264 enabled */
And these are the compiling errors:
1>------ Skipped Build: Project: samples, Configuration: Debug Win32 ------
1>Project not selected to build for this solution configuration
2>------ Skipped Build: Project: PocketPJ, Configuration: Debug Win32 ------
2>Project not selected to build for this solution configuration
3>------ Skipped Build: Project: pjsua_wince, Configuration: Debug Win32 ------
3>Project not selected to build for this solution configuration
4>------ Build started: Project: pjsua, Configuration: Debug Win32 ------
5>------ Build started: Project: pjmedia_test, Configuration: Debug Win32 ------
6>------ Skipped Build: Project: python_pjsua, Configuration: Debug Win32 ------
6>Project not selected to build for this solution configuration
7>------ Skipped Build: Project: pjsystest, Configuration: Debug Win32 ------
7>Project not selected to build for this solution configuration
5>Linking...
4>Linking...
4>libpjproject-i386-win32-vc8-debug.lib(dshowclasses.obj) : error LNK2019: unresolved external symbol "public: __thiscall CBaseRenderer::CBaseRenderer(struct _GUID const &,char const *,struct IUnknown *,long *)" (??0CBaseRenderer@@QAE@ABU_GUID@@PBDPAUIUnknown@@PAJ@Z) referenced in function "public: __thiscall NullRenderer::NullRenderer(long *)" (??0NullRenderer@@QAE@PAJ@Z)
5>libpjproject-i386-win32-vc8-debug.lib(dshowclasses.obj) : error LNK2019: unresolved external symbol "public: __thiscall CBaseRenderer::CBaseRenderer(struct _GUID const &,char const *,struct IUnknown *,long *)" (??0CBaseRenderer@@QAE@ABU_GUID@@PBDPAUIUnknown@@PAJ@Z) referenced in function "public: __thiscall NullRenderer::NullRenderer(long *)" (??0NullRenderer@@QAE@PAJ@Z)
5>..\bin\pjmedia-test-i386-Win32-vc8-Debug.exe : fatal error LNK1120: 1 unresolved externals
4>..\bin\pjsua-i386-Win32-vc8-Debug.exe : fatal error LNK1120: 1 unresolved externals
4>Build log was saved at "file://j:\Nacho\Proyectos\pj\pjproject\pjsip-apps\build\output\pjsua-i386-Win32-vc8-Debug\BuildLog.htm"
4>pjsua - 2 error(s), 0 warning(s)
5>Build log was saved at "file://j:\Nacho\Proyectos\pj\pjproject\pjmedia\build\output\pjmedia_test-i386-Win32-vc8-Debug\BuildLog.htm"
5>pjmedia_test - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 2 failed, 25 up-to-date, 5 skipped ==========
I still don't know how to fix this.
Thanks for the help.
De: Ignacio Gonzalez Lopez mylaneza@yahoo.com.mx
Para: pjsip list pjsip@lists.pjsip.org
Enviado: Martes, 3 de abril, 2012 13:55:26
Asunto: Re: [pjsip] Problem compiling pjsip windows
How do you build BaseClasses?. Because when I build in debug the library name is strmbasd.lib. When i build in release the name is strmbase.lib but using this is when I have the compilation problems.
I download Windows SDK 6.0, before i was using Windows SDK 6.1.
1>------ Build started: Project: pjmedia_test, Configuration: Release Win32 ------
2>------ Build started: Project: pjsua, Configuration: Release Win32 ------
3>------ Skipped Build: Project: PocketPJ ------
3>Project not selected to build for this solution configuration
4>------ Skipped Build: Project: pjsua_wince ------
4>Project not selected to build for this solution configuration
5>------
Build started: Project: samples, Configuration: Release Win32 ------
5>Performing Makefile project actions
6>------ Skipped Build: Project: python_pjsua, Configuration: Release Win32 ------
6>Project not selected to build for this solution configuration
7>------ Build started: Project: pjsystest, Configuration: Release Win32 ------
5>aviplay.c
1>Linking...
2>Linking...
7>Linking...
1>libpjproject-i386-win32-vc8-release.lib(dshowclasses.obj) : error LNK2019: unresolved external symbol "public: __thiscall CBaseRenderer::CBaseRenderer(struct _GUID const &,char const *,struct IUnknown *,long *)" (??0CBaseRenderer@@QAE@ABU_GUID@@PBDPAUIUnknown@@PAJ@Z) referenced in function "public: __thiscall NullRenderer::NullRenderer(long *)" (??0NullRenderer@@QAE@PAJ@Z)
1>..\bin\pjmedia-test-i386-Win32-vc8-Release.exe : fatal error LNK1120: 1 unresolved
externals
2>libpjproject-i386-win32-vc8-release.lib(dshowclasses.obj) : error LNK2019: unresolved external symbol "public: __thiscall CBaseRenderer::CBaseRenderer(struct _GUID const &,char const *,struct IUnknown *,long *)" (??0CBaseRenderer@@QAE@ABU_GUID@@PBDPAUIUnknown@@PAJ@Z) referenced in function "public: __thiscall NullRenderer::NullRenderer(long *)" (??0NullRenderer@@QAE@PAJ@Z)
2>..\bin\pjsua-i386-Win32-vc8-Release.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://j:\Nacho\Proyectos\pj\pjproject\pjmedia\build\output\pjmedia_test-i386-Win32-vc8-Release\BuildLog.htm"
1>pjmedia_test - 2 error(s), 0 warning(s)
2>Build log was saved at "file://j:\Nacho\Proyectos\pj\pjproject\pjsip-apps\build\output\pjsua-i386-Win32-vc8-Release\BuildLog.htm"
2>pjsua - 2 error(s), 0 warning(s)
7>libpjproject-i386-win32-vc8-release.lib(dshowclasses.obj) : error LNK2019: unresolved external
symbol "public: __thiscall CBaseRenderer::CBaseRenderer(struct _GUID const &,char const *,struct IUnknown *,long *)" (??0CBaseRenderer@@QAE@ABU_GUID@@PBDPAUIUnknown@@PAJ@Z) referenced in function "public: __thiscall NullRenderer::NullRenderer(long *)" (??0NullRenderer@@QAE@PAJ@Z)
7>..\bin\pjsystest-i386-Win32-vc8-Release.exe : fatal error LNK1120: 1 unresolved externals
7>Build log was saved at "file://j:\Nacho\Proyectos\pj\pjproject\pjsip-apps\build\output\pjsystest-i386-Win32-vc8-Release\BuildLog.htm"
7>pjsystest - 2 error(s), 0 warning(s)
5>pjmedia-videodev-i386-win32-vc8-release.lib(dshowclasses.obj) : error LNK2019: unresolved external symbol "public: __thiscall CBaseRenderer::CBaseRenderer(struct _GUID const &,char const *,struct IUnknown *,long *)" (??0CBaseRenderer@@QAE@ABU_GUID@@PBDPAUIUnknown@@PAJ@Z) referenced in function "public: __thiscall NullRenderer::NullRenderer(long *)"
(??0NullRenderer@@QAE@PAJ@Z)
5>..\bin\samples\i386-win32-vc8-release\aviplay.exe : fatal error LNK1120: 1 unresolved externals
5>NMAKE : fatal error U1077: '"F:\Program Files\Microsoft Visual Studio 9.0\VC\bin\cl.EXE"' : return code '0x2'
5>Stop.
5>Project : error PRJ0019: A tool returned an error code from "Performing Makefile project actions"
5>Build log was saved at "file://j:\Nacho\Proyectos\pj\pjproject\pjsip-apps\build\output\samples-i386-Win32-vs8-Release\BuildLog.htm"
5>samples - 4 error(s), 0 warning(s)
========== Build: 0 succeeded, 4 failed, 25 up-to-date, 3 skipped ==========
De: Fedot Fedotov fedot.fedotov@gmail.com
Para: pjsip list pjsip@lists.pjsip.org
Enviado: Martes, 3 de abril, 2012 8:38:05
Asunto: Re: [pjsip] Problem compiling pjsip windows
I can share with you my pjsua project configuration(similar for other problem projects in PJ-project solution):
Configuration Properties/ Linker / General / Additional Library Directories
D:\Projects\PJSIP_BaseClasses\Debug
C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib
D:\Projects\PJSIP\SDL-1.3.0-6091\VisualC\SDL\Release
D:\Projects\PJSIP\ffmpeg-git-7d531e8-win32-dev\lib
C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib\x86\
Configuration Properties/ Linker / Input/ Additional Dependencies
Iphlpapi.lib dsound.lib dxguid.lib netapi32.lib mswsock.lib ws2_32.lib odbc32.lib odbccp32.lib ole32.lib user32.lib gdi32.lib advapi32.lib
Configuration Properties/ Linker / Input/ Ignore Specific Librarymsvcrt.lib; LIBCMTD.lib
Cheers
Visit our blog: http://blog.pjsip.org
pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
Visit our blog: http://blog.pjsip.org
pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
hello!
sorry, for late reply.
as I can see - you have problems in pjsua and pjmedia_test projects.
let's concentrate on pjsua.
in my solution(under 2005 VS) for pjsua I have next configuration:
C/C++\General\ Additional Include Directories
../../pjsip/include,../../pjlib/include,../../pjlib-util/include,../../pjmedia/include,../../pjnath/include
Linker\ General\ Additional Library Directories
D:\Projects\PJSIP_BaseClasses\Debug;
"C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib";
"D:\Projects\PJSIP\SDL-1.3.0-6091\VisualC\SDL\Release";
"D:\Projects\PJSIP\ffmpeg-git-7d531e8-win32-dev\lib";
"C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib\x86"
BUT you post that you link libraries :
DIRECTX, FFMPEG, SDL, DIRECTSHOW
to your pjsua project.
I think you should:
Linker\ Input \ Additional Dependencies
Iphlpapi.lib dsound.lib dxguid.lib netapi32.lib mswsock.lib ws2_32.lib
odbc32.lib odbccp32.lib ole32.lib user32.lib gdi32.lib advapi32.lib
Ingnore All Default Libraries
No
Ignore Specific Library
msvcrt.lib; LIBCMTD.lib
(for debug)