From c77ab0370055d0f08b3e9cb070159b569a75b865 Mon Sep 17 00:00:00 2001 From: smorlat Date: Mon, 20 Oct 2008 06:57:08 +0000 Subject: [PATCH] work in progress for improving windows webcam support fastness. git-svn-id: svn+ssh://svn.savannah.nongnu.org/linphone/trunk@105 3f6dc0c8-ddfe-455d-9043-3cd528dc4637 --- .../build/win32native/alldescs.h | 2 ++ .../build/win32native/mediastreamer2.dev | 12 +++++++++- .../include/mediastreamer2/allfilters.h | 5 ++--- .../include/mediastreamer2/msvideo.h | 1 + .../plugins/msx264/configure.ac | 2 +- .../mediastreamer2/plugins/msx264/msx264.iss | 2 +- linphone/mediastreamer2/src/mscommon.c | 4 ++-- linphone/mediastreamer2/src/vfw-missing.h | 22 +++++++++++++++++++ linphone/mediastreamer2/src/videostream.c | 1 - linphone/mediastreamer2/src/winvideo.c | 2 ++ 10 files changed, 44 insertions(+), 9 deletions(-) diff --git a/linphone/mediastreamer2/build/win32native/alldescs.h b/linphone/mediastreamer2/build/win32native/alldescs.h index ba01dbfda..9419c4a47 100755 --- a/linphone/mediastreamer2/build/win32native/alldescs.h +++ b/linphone/mediastreamer2/build/win32native/alldescs.h @@ -41,6 +41,7 @@ extern MSFilterDesc ms_resample_desc; extern MSFilterDesc ms_volume_desc; extern MSFilterDesc ms_static_image_desc; extern MSFilterDesc ms_mire_desc; +extern MSFilterDesc ms_vfw_desc; MSFilterDesc * ms_filter_descs[]={ &ms_alaw_dec_desc, &ms_alaw_enc_desc, @@ -85,6 +86,7 @@ MSFilterDesc * ms_filter_descs[]={ &ms_volume_desc, &ms_static_image_desc, &ms_mire_desc, +&ms_vfw_desc, NULL }; diff --git a/linphone/mediastreamer2/build/win32native/mediastreamer2.dev b/linphone/mediastreamer2/build/win32native/mediastreamer2.dev index a7d09a9eb..ef196210f 100755 --- a/linphone/mediastreamer2/build/win32native/mediastreamer2.dev +++ b/linphone/mediastreamer2/build/win32native/mediastreamer2.dev @@ -1,7 +1,7 @@ [Project] FileName=mediastreamer2.dev Name=mediastreamer2 -UnitCount=54 +UnitCount=55 Type=2 Ver=3 IsCpp=1 @@ -601,3 +601,13 @@ Priority=1000 OverrideBuildCmd=0 BuildCmd= +[Unit55] +FileName=..\..\src\winvideo2.c +CompileCpp=0 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= $(CC) -c winvideo2.c -o "Default Profile/winvideo2.o" $(CFLAGS) + diff --git a/linphone/mediastreamer2/include/mediastreamer2/allfilters.h b/linphone/mediastreamer2/include/mediastreamer2/allfilters.h index 15659cfb2..9e2c0a231 100644 --- a/linphone/mediastreamer2/include/mediastreamer2/allfilters.h +++ b/linphone/mediastreamer2/include/mediastreamer2/allfilters.h @@ -73,15 +73,14 @@ typedef enum MSFilterId{ MS_SNOW_ENC_ID, MS_CA_READ_ID, MS_CA_WRITE_ID, -#ifdef __DIRECTSOUND_ENABLED__ MS_WINSNDDS_READ_ID, MS_WINSNDDS_WRITE_ID, -#endif MS_STATIC_IMAGE_ID, MS_V4L2_CAPTURE_ID, MS_H263_OLD_DEC_ID, MS_H263_OLD_ENC_ID, - MS_MIRE_ID + MS_MIRE_ID, + MS_VFW_ID } MSFilterId; diff --git a/linphone/mediastreamer2/include/mediastreamer2/msvideo.h b/linphone/mediastreamer2/include/mediastreamer2/msvideo.h index 82bbdcb0b..a14b9d6fc 100644 --- a/linphone/mediastreamer2/include/mediastreamer2/msvideo.h +++ b/linphone/mediastreamer2/include/mediastreamer2/msvideo.h @@ -77,6 +77,7 @@ typedef enum{ MS_YUV420P, MS_YUYV, MS_RGB24, + MS_RGB24_REV, /*->microsoft down-top bitmaps */ MS_MJPEG, MS_UYVY, MS_YUY2, /* -> same as MS_YUYV */ diff --git a/linphone/mediastreamer2/plugins/msx264/configure.ac b/linphone/mediastreamer2/plugins/msx264/configure.ac index 5aac96897..0e698ec97 100644 --- a/linphone/mediastreamer2/plugins/msx264/configure.ac +++ b/linphone/mediastreamer2/plugins/msx264/configure.ac @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([msx264],[1.1.4]) +AC_INIT([msx264],[1.1.5]) AM_INIT_AUTOMAKE([tar-ustar]) diff --git a/linphone/mediastreamer2/plugins/msx264/msx264.iss b/linphone/mediastreamer2/plugins/msx264/msx264.iss index 5fd0f4d54..ac74a2004 100755 --- a/linphone/mediastreamer2/plugins/msx264/msx264.iss +++ b/linphone/mediastreamer2/plugins/msx264/msx264.iss @@ -3,7 +3,7 @@ [Setup] AppName=msx264 -AppVerName=msx264 version 1.1.4., an H.264 plugin for linphone. +AppVerName=msx264 version 1.1.5., an H.264 plugin for linphone. AppPublisher=linphone.org AppPublisherURL=http://www.linphone.org AppSupportURL=http://www.linphone.org diff --git a/linphone/mediastreamer2/src/mscommon.c b/linphone/mediastreamer2/src/mscommon.c index 128c09b53..f3253990d 100644 --- a/linphone/mediastreamer2/src/mscommon.c +++ b/linphone/mediastreamer2/src/mscommon.c @@ -472,7 +472,7 @@ extern MSWebCamDesc v4l2_desc; #endif #ifdef WIN32 -extern MSWebCamDesc ms_v4w_cam_desc; +extern MSWebCamDesc ms_vfw_cam_desc; #endif extern MSWebCamDesc static_image_desc; @@ -486,7 +486,7 @@ static MSWebCamDesc * ms_web_cam_descs[]={ &v4l_desc, #endif #ifdef WIN32 - &ms_v4w_cam_desc, + &ms_vfw_cam_desc, #endif &mire_desc, &static_image_desc, diff --git a/linphone/mediastreamer2/src/vfw-missing.h b/linphone/mediastreamer2/src/vfw-missing.h index 155cd0cc1..0c9006cbb 100755 --- a/linphone/mediastreamer2/src/vfw-missing.h +++ b/linphone/mediastreamer2/src/vfw-missing.h @@ -38,6 +38,28 @@ typedef struct tagCaptureParms { UINT AVStreamMaster; // Which stream controls length? } CAPTUREPARMS, *PCAPTUREPARMS, FAR *LPCAPTUREPARMS; +typedef struct { + UINT uiImageWidth; + UINT uiImageHeight; + BOOL fLiveWindow; + BOOL fOverlayWindow; + BOOL fScale; + POINT ptScroll; + BOOL fUsingDefaultPalette; + BOOL fAudioHardware; + BOOL fCapFileExists; + DWORD dwCurrentVideoFrame; + DWORD dwCurrentVideoFramesDropped; + DWORD dwCurrentWaveSamples; + DWORD dwCurrentTimeElapsedMS; + HPALETTE hPalCurrent; + BOOL fCapturingNow; + DWORD dwReturn; + UINT wNumVideoAllocated; + UINT wNumAudioAllocated; +} CAPSTATUS, *PCAPSTATUS, FAR *LPCAPSTATUS; + + #ifdef __cplusplus /* SendMessage in C++*/ #define AVICapSM(hwnd,m,w,l) ( (::IsWindow(hwnd)) ? ::SendMessage(hwnd,m,w,l) : 0) diff --git a/linphone/mediastreamer2/src/videostream.c b/linphone/mediastreamer2/src/videostream.c index 31980b21e..fa55bffd7 100644 --- a/linphone/mediastreamer2/src/videostream.c +++ b/linphone/mediastreamer2/src/videostream.c @@ -257,7 +257,6 @@ int video_stream_start (VideoStream *stream, RtpProfile *profile, const char *re ms_filter_call_method(stream->source,MS_FILTER_GET_VIDEO_SIZE,&vsize); ms_filter_call_method(stream->pixconv,MS_FILTER_SET_VIDEO_SIZE,&vsize); - } ms_filter_call_method(stream->encoder,MS_FILTER_GET_VIDEO_SIZE,&vsize); diff --git a/linphone/mediastreamer2/src/winvideo.c b/linphone/mediastreamer2/src/winvideo.c index 25d7f10a3..2d0b0cb5b 100644 --- a/linphone/mediastreamer2/src/winvideo.c +++ b/linphone/mediastreamer2/src/winvideo.c @@ -627,6 +627,7 @@ MSFilterDesc ms_v4w_desc={ MS_FILTER_DESC_EXPORT(ms_v4w_desc) +#if 0 static void ms_v4w_detect(MSWebCamManager *obj); static void ms_v4w_cam_init(MSWebCam *cam){ @@ -678,3 +679,4 @@ static void ms_v4w_detect(MSWebCamManager *obj){ } } +#endif