|
Fascinating
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
It is the sad reply I got from Microsoft today.
When I saw the source code of rtsample, a smaple inside RTC SDK, I find it using only one audio/video chat session at a time :
This is a source code extract :
if (CRTCAVSession::m_Singleton != NULL)
{
pSession->Terminate(RTCTR_BUSY);
SAFE_RELEASE(pSession);
return;
}
I didn't new that this was becuase of an inherent limitation of the SDK itself until recently !
I am dead, I wo'nt be able to develop a videoconferencing application..
Our Philosophy, Mohammed Baqir Al Sadr
|
|
|
|
|
I went through this too.
I do multimedia software with live video/audio streaming.
I looked at (and tried) any free and/or open-source solutions
I could find for the transport and none performed the way I needed.
RTP seemed like a good idea since it's a standard protocol, but
port requirements made it useless to me. I ended up writing my own.
This is big money business these days so finding free solutions isn't easy
(although it may be getting easier since it's been around a while now).
The best I can recommend is research. You need acquistion, compression,
transport, decompression, and rendering - all of which need to perform
fairly well, especially with video.
Acquisition and rendering can be done with stuff included with Windows -
no problem.
Realtime codecs are a little harder but there's free ones available,
both from Microsoft and open-source.
For the transport, sockets can be used. TCP/IP is possible (contrary to
what some papers from the 90's state) but UDP does perform better. With
UDP you need to deal with potential packet loss and packets arriving out
of order. In any case, the most difficult thing to deal with (at least it
was for me) is clock drift. The hardware clock speeds on different machines
vary enough that one machine gets ahead or behind the other fairly quickly
so that has to be dealt with as well.
Just my 2 cents,
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Oh yes, you are right on saying that this is big money business today...
Currently, I am trying to see what I can do with DirectShow : it has evrything for me except that I need to find an RTP sender/receiver DirectShow filters. Hence I can create a graph with a capture filter, linked to a codec, then to an RTP Sender, and to the other side : an RTP receiver and back the chains of filters to the video renderers and audio player.
Thank you for your messages indeed.
Our Philosophy, Mohammed Baqir Al Sadr
|
|
|
|
|
Hi,
I want to write a program for Arabic language.But arabic is written from rigth to left.To set this property, I should set the WS_EX_RTLREADING ex-style.But in the msdn there is an information for this property like that:
" If the shell language is Hebrew, Arabic, or another language that supports reading order alignment, the window text is displayed using Right to Left reading-order properties. For other languages, the style is ignored and not treated as an error. "
When I set WS_EX_RTLREADING nothing changes.What is the meaning of shell language? If it is not Arabic how can I set the shell language to Arabic?
I asked a similar question before but I couldn't get an answer.
Thanks
ibrahim
|
|
|
|
|
Did you set your system locale to Arabic?
In order to do that, you have to install support for these languages (Regional and Language Settings -> Languages -> Install files for complex script and right-to-left languages).
After that, go again to Regional and Language Settings -> Advanced -> Select a language to match...
|
|
|
|
|
Yes,I did everything you said.But it is not working still.I want to change the language (so the writing order) at the runtime.I am writing this code can you check if it is right.Heye I want to change the writing order of an edit box;
CRect clientRect;
m_edit.GetWindowRect(clientRect);
ScreenToClient(clientRect);
SetWindowLong (m_edit.m_hWnd,
GWL_EXSTYLE,
GetWindowLong(m_edit.m_hWnd,GWL_EXSTYLE) & ~WS_EX_RTLREADING);
m_edit.SetWindowPos(&wndTop,clientRect.left,clientRect.top,clientRect.Width(),clientRect.Height(),SWP_SHOWWINDOW);
Thanks,
ibrahim
|
|
|
|
|
I think you also have to set the correct font and character set for your edit control. Something like this:
CFont fnt;
LOGFONT lf;
::ZeroMemory(&lf, sizeof(lf));
lf.lfHeight = 18;
lf.lfCharSet = ARABIC_CHARSET;
::lstrcpy(lf.lfFaceName, "System");
fnt.CreateFontIndirect(&lf);
GetDlgItem(IDC_EDIT)->SetFont(&fnt);
fnt.Detach();
|
|
|
|
|
code -----
CMyDialog dlg;
whiel(true)
{
dlg.Create( IDD_DLG_MYDLG, this);
dlg.DestroyWindow();
Sleep(50);
}
---------------------------
this code is not normal code, but have problem.
this code run. and look task manager,
some time memory leak for 4kb.
what up this problem ??
|
|
|
|
|
gamja wrote: whiel(true)
Typo...
gamja wrote: this code is not normal code, but have problem.
and why isn't the code normal. Everyone here may have used this n number of times
gamja wrote: some time memory leak for 4kb.
Did you check the leak were not from the internal MFC files
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
Yes, MyDialog is clean CDialog subclassing class,
no member variable, no function
i think this problem IS RELATED TO memory fragmentation.
|
|
|
|
|
gamja wrote: what up this problem ??
Why do you assume there is a problem?
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
the formula I have doesn't work well does anyone have an azimuth formula for two points (lat and longs) on earth?
I don't need the code just formula
Thanks
|
|
|
|
|
|
|
Hi all,
I want in TreeCtrl when i select any child than its corresponding parent is also selected.
so please tell me how can i do this.
thanks in advance.
IN A DAY, WHEN YOU DON'T COME ACROSS ANY PROBLEMS - YOU CAN BE SURE THAT YOU ARE TRAVELLING IN A WRONG PATH
|
|
|
|
|
no direct notifications are sent when a check box gets selected/deselected.
Handle the NM_CLICK message which is sent to the parent window of the tree control
{
Get clicked node's flag ( use HitTest())
PostMessage( CUSTOM_MESSAGE, 0, clicked node's HITEM );
}
Define a custom message to handle the checkbox selection/deselection.
LRESULT CheckStateChange(WPARAM wParam, LPARAM lParam)
{
HTREEITEM hItem= (HTREEITEM)lParam;
int nState = m_myTree.GetCheck( hItem );
if( nState == 1 )
{
// loop till hItem = m_Tree.GetParentItem( hItem ) is NULL and set check mark for each parent item
}
if( nState == 0 )
{
// loop till hItem = m_Tree.GetParentItem( hItem ) is NULL and reset check mark for each parent item
}
}
Ajay
|
|
|
|
|
Hi!
I've two un related applications. The first application has a button on it. The second project has to know whether the button in the first application has clicked or not? How to do?
|
|
|
|
|
you need IPC [^]
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
Isn't it possible by adding the first project to the second project's solution?
My requirement is: The first application(GUI)should run fist(It has three buttons low, medium, high). If low button is clicked, the second application has to load some three vehicles(the second project has code to load vehicles), like wise for second button click, it has to load some five vehicles.
|
|
|
|
|
T.RATHA KRISHNAN wrote: Isn't it possible by adding the first project to the second project's solution?
No. Even if they are in the same solution, they are still two different executables. Putting them in the same solution is just a matter of convenience, it doesn't change anything about the functionalities.
|
|
|
|
|
Three suggestions,
1) On the button click of first application, post a user defined window message to second application and handle it accordingly in second application.
2) If you don't like to define a user defined message, utilize WM_COPYDATA and handle it accordingly. This link will be helpful - http://weseetips.com/2008/04/12/wm_copydata-can-be-used-as-simple-ipc-mechanism/[^]
3) Create a named event and the second application should wait for the event in a thread. On button click of first application, signal the event. The second application will be triggered and handle it accordingly.
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
Thanks for ur reply. I've decided to use the second method "WM_COPYDATA". I've a few doubts regarding the arguments to the "SendData" method.
For pData_i what value should I pass?
For HWND hTargetWindow_i the second application's exe name or what else?
More Over I'm not using MFC. I'm creating window using an external tool.
Should add the first project to the second project's solution if I use this method?
modified on Wednesday, August 13, 2008 2:55 AM
|
|
|
|
|
T.RATHA KRISHNAN wrote: For pData_i what value should I pass?
The WM_COPYDATA is the simple IPC mechanism used to sent a chunk of bytes from one window to another. Well, in the pData_i just pass some string to identify your button event such as "ApplicEvent_ButtonPressed" or something like that.
T.RATHA KRISHNAN wrote: For HWND hTargetWindow_i the second application's exe name or what else?
in your case hTargetWindow_i is the handle of the window in your second application. You can use FindWindow() to find the window by using the window title.
T.RATHA KRISHNAN wrote: More Over I'm not using MFC. I'm creating window using an external tool.
SDK style programming?
T.RATHA KRISHNAN wrote: Should add the first project to the second project's solution if I use this method?
Not necessary. If you insert both project to same solution, it will be easier to refer. You can avoid switching of windows. Well, you need two Visual Studio instances to debug both at same time.
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
If you do messaging you bette use a message ID from RegisterMessage.
Greetings from Germany
|
|
|
|