Hello everybody, I'm developing an application witch receives voice from Sockets and playback it with the waveOutWrite function.. The problem is that when I receive datas during more than 5 minuts (more or less) the waveOutWrite function returns a INVALPARAM error. The "ReceiveData" method is this: private byte[] message; private byte[] message2; private EndPoint endPointRemote; public byte[] ReceiveData() { sock.ReceiveFrom(message, ref endPointRemote); sock.ReceiveFrom(message2, ref endPointRemote); ..... //Join message and message2 return messagejoin; } if I change the method for the next to do tests, it works fine: public byte[] ReceiveData() { if(count==0) { sock.ReceiveFrom(message, ref endPointRemote); sock.ReceiveFrom(message2, ref endPointRemote); count=1; } else { Thread.Sleep(100); } ..... //Join message and message2 return messagejoin; } with this test I receive only a packet and I playback it all the time. It seems that there's a memory problem, but I don't understand because I use global ids. What can I do? Do you think that if I use the UDPClient I'll have the same problem? Regards.
Where's the wave call? If that's generating the invalid parameter error, it seems like we might want to look at it! Paul T. [quoted text, click to view] "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message news:771B2874-571F-4697-A44E-10855CBA3AA6@microsoft.com... > Hello everybody, > > I'm developing an application witch receives voice from Sockets and > playback it with the waveOutWrite function.. > The problem is that when I receive datas during more than 5 minuts (more > or less) the waveOutWrite function returns a INVALPARAM error. > The "ReceiveData" method is this: > > private byte[] message; > private byte[] message2; > private EndPoint endPointRemote; > > public byte[] ReceiveData() > { > sock.ReceiveFrom(message, ref endPointRemote); > sock.ReceiveFrom(message2, ref endPointRemote); > .... > //Join message and message2 > return messagejoin; > } > > if I change the method for the next to do tests, it works fine: > public byte[] ReceiveData() > { > if(count==0) > { > sock.ReceiveFrom(message, ref endPointRemote); > sock.ReceiveFrom(message2, ref endPointRemote); > count=1; > } > else > { > Thread.Sleep(100); > } > .... > //Join message and message2 > return messagejoin; > } > with this test I receive only a packet and I playback it all the time. > > It seems that there's a memory problem, but I don't understand because I > use > global ids. > > > What can I do? > Do you think that if I use the UDPClient I'll have the same problem? > > Regards. > >
The wave call is in other Thread witch is the manager for taking packets from the queue and it sends them to playback with the waveOutWrite function. [quoted text, click to view] "Paul G. Tobey [eMVP]" wrote: > Where's the wave call? If that's generating the invalid parameter error, it > seems like we might want to look at it! > > Paul T. > > "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message > news:771B2874-571F-4697-A44E-10855CBA3AA6@microsoft.com... > > Hello everybody, > > > > I'm developing an application witch receives voice from Sockets and > > playback it with the waveOutWrite function.. > > The problem is that when I receive datas during more than 5 minuts (more > > or less) the waveOutWrite function returns a INVALPARAM error. > > The "ReceiveData" method is this: > > > > private byte[] message; > > private byte[] message2; > > private EndPoint endPointRemote; > > > > public byte[] ReceiveData() > > { > > sock.ReceiveFrom(message, ref endPointRemote); > > sock.ReceiveFrom(message2, ref endPointRemote); > > .... > > //Join message and message2 > > return messagejoin; > > } > > > > if I change the method for the next to do tests, it works fine: > > public byte[] ReceiveData() > > { > > if(count==0) > > { > > sock.ReceiveFrom(message, ref endPointRemote); > > sock.ReceiveFrom(message2, ref endPointRemote); > > count=1; > > } > > else > > { > > Thread.Sleep(100); > > } > > .... > > //Join message and message2 > > return messagejoin; > > } > > with this test I receive only a packet and I playback it all the time. > > > > It seems that there's a memory problem, but I don't understand because I > > use > > global ids. > > > > > > What can I do? > > Do you think that if I use the UDPClient I'll have the same problem? > > > > Regards. > > > > > >
And you don't think that the transport of data from one thread to the other is a more likely cause of the problem than the type of socket you're using. Send a small, complete, sample that reproduces the problem, including both the receive code (and how the buffers are appended, etc.), and the code to send the data to the wave calls, and we might have a chance... Paul T. [quoted text, click to view] "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message news:FBA65F70-B8B3-4A07-8411-89442F2BCAB0@microsoft.com... > The wave call is in other Thread witch is the manager for taking packets > from > the queue and it sends them to playback with the waveOutWrite function. > > > "Paul G. Tobey [eMVP]" wrote: > >> Where's the wave call? If that's generating the invalid parameter error, >> it >> seems like we might want to look at it! >> >> Paul T. >> >> "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message >> news:771B2874-571F-4697-A44E-10855CBA3AA6@microsoft.com... >> > Hello everybody, >> > >> > I'm developing an application witch receives voice from Sockets and >> > playback it with the waveOutWrite function.. >> > The problem is that when I receive datas during more than 5 minuts >> > (more >> > or less) the waveOutWrite function returns a INVALPARAM error. >> > The "ReceiveData" method is this: >> > >> > private byte[] message; >> > private byte[] message2; >> > private EndPoint endPointRemote; >> > >> > public byte[] ReceiveData() >> > { >> > sock.ReceiveFrom(message, ref endPointRemote); >> > sock.ReceiveFrom(message2, ref endPointRemote); >> > .... >> > //Join message and message2 >> > return messagejoin; >> > } >> > >> > if I change the method for the next to do tests, it works fine: >> > public byte[] ReceiveData() >> > { >> > if(count==0) >> > { >> > sock.ReceiveFrom(message, ref endPointRemote); >> > sock.ReceiveFrom(message2, ref endPointRemote); >> > count=1; >> > } >> > else >> > { >> > Thread.Sleep(100); >> > } >> > .... >> > //Join message and message2 >> > return messagejoin; >> > } >> > with this test I receive only a packet and I playback it all the time. >> > >> > It seems that there's a memory problem, but I don't understand because >> > I >> > use >> > global ids. >> > >> > >> > What can I do? >> > Do you think that if I use the UDPClient I'll have the same problem? >> > >> > Regards. >> > >> > >> >> >>
I don't know what to think because this is very strange... I have done the sample. because of the fact that I don't know where send the sample I have uploaded to a web: http://www.reunionparalimpica.com/microsoft.zip if you need something more, please, answer. Thank you very much. Regards. [quoted text, click to view] "Paul G. Tobey [eMVP]" wrote: > And you don't think that the transport of data from one thread to the other > is a more likely cause of the problem than the type of socket you're using. > Send a small, complete, sample that reproduces the problem, including both > the receive code (and how the buffers are appended, etc.), and the code to > send the data to the wave calls, and we might have a chance... > > Paul T. > > "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message > news:FBA65F70-B8B3-4A07-8411-89442F2BCAB0@microsoft.com... > > The wave call is in other Thread witch is the manager for taking packets > > from > > the queue and it sends them to playback with the waveOutWrite function. > > > > > > "Paul G. Tobey [eMVP]" wrote: > > > >> Where's the wave call? If that's generating the invalid parameter error, > >> it > >> seems like we might want to look at it! > >> > >> Paul T. > >> > >> "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message > >> news:771B2874-571F-4697-A44E-10855CBA3AA6@microsoft.com... > >> > Hello everybody, > >> > > >> > I'm developing an application witch receives voice from Sockets and > >> > playback it with the waveOutWrite function.. > >> > The problem is that when I receive datas during more than 5 minuts > >> > (more > >> > or less) the waveOutWrite function returns a INVALPARAM error. > >> > The "ReceiveData" method is this: > >> > > >> > private byte[] message; > >> > private byte[] message2; > >> > private EndPoint endPointRemote; > >> > > >> > public byte[] ReceiveData() > >> > { > >> > sock.ReceiveFrom(message, ref endPointRemote); > >> > sock.ReceiveFrom(message2, ref endPointRemote); > >> > .... > >> > //Join message and message2 > >> > return messagejoin; > >> > } > >> > > >> > if I change the method for the next to do tests, it works fine: > >> > public byte[] ReceiveData() > >> > { > >> > if(count==0) > >> > { > >> > sock.ReceiveFrom(message, ref endPointRemote); > >> > sock.ReceiveFrom(message2, ref endPointRemote); > >> > count=1; > >> > } > >> > else > >> > { > >> > Thread.Sleep(100); > >> > } > >> > .... > >> > //Join message and message2 > >> > return messagejoin; > >> > } > >> > with this test I receive only a packet and I playback it all the time. > >> > > >> > It seems that there's a memory problem, but I don't understand because > >> > I > >> > use > >> > global ids. > >> > > >> > > >> > What can I do? > >> > Do you think that if I use the UDPClient I'll have the same problem? > >> > > >> > Regards. > >> > > >> > > >> > >> > >> > >
That's fine. You must be using the Web interface to the newsgroup; regular newsreaders allow attachments... I'm sorry, but I can't get it to build for Windows CE.NET and I have no PPC devices. I need a higher-level description of what's supposed to be happening. What call EXACTLY returns the parameter error? What other information is included in the exception? How are you handling the case where a UDP packet is sent, but never arrives? Can packets be handled when they arrive in a different order than they were sent? Paul T. [quoted text, click to view] "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message news:4B9F189E-3C7B-448D-9085-0A229C2CCA41@microsoft.com... >I don't know what to think because this is very strange... > I have done the sample. because of the fact that I don't know where send > the > sample I have uploaded to a web: > > http://www.reunionparalimpica.com/microsoft.zip > > if you need something more, please, answer. > Thank you very much. > Regards. > > "Paul G. Tobey [eMVP]" wrote: > >> And you don't think that the transport of data from one thread to the >> other >> is a more likely cause of the problem than the type of socket you're >> using. >> Send a small, complete, sample that reproduces the problem, including >> both >> the receive code (and how the buffers are appended, etc.), and the code >> to >> send the data to the wave calls, and we might have a chance... >> >> Paul T. >> >> "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message >> news:FBA65F70-B8B3-4A07-8411-89442F2BCAB0@microsoft.com... >> > The wave call is in other Thread witch is the manager for taking >> > packets >> > from >> > the queue and it sends them to playback with the waveOutWrite function. >> > >> > >> > "Paul G. Tobey [eMVP]" wrote: >> > >> >> Where's the wave call? If that's generating the invalid parameter >> >> error, >> >> it >> >> seems like we might want to look at it! >> >> >> >> Paul T. >> >> >> >> "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message >> >> news:771B2874-571F-4697-A44E-10855CBA3AA6@microsoft.com... >> >> > Hello everybody, >> >> > >> >> > I'm developing an application witch receives voice from Sockets and >> >> > playback it with the waveOutWrite function.. >> >> > The problem is that when I receive datas during more than 5 minuts >> >> > (more >> >> > or less) the waveOutWrite function returns a INVALPARAM error. >> >> > The "ReceiveData" method is this: >> >> > >> >> > private byte[] message; >> >> > private byte[] message2; >> >> > private EndPoint endPointRemote; >> >> > >> >> > public byte[] ReceiveData() >> >> > { >> >> > sock.ReceiveFrom(message, ref endPointRemote); >> >> > sock.ReceiveFrom(message2, ref endPointRemote); >> >> > .... >> >> > //Join message and message2 >> >> > return messagejoin; >> >> > } >> >> > >> >> > if I change the method for the next to do tests, it works fine: >> >> > public byte[] ReceiveData() >> >> > { >> >> > if(count==0) >> >> > { >> >> > sock.ReceiveFrom(message, ref endPointRemote); >> >> > sock.ReceiveFrom(message2, ref endPointRemote); >> >> > count=1; >> >> > } >> >> > else >> >> > { >> >> > Thread.Sleep(100); >> >> > } >> >> > .... >> >> > //Join message and message2 >> >> > return messagejoin; >> >> > } >> >> > with this test I receive only a packet and I playback it all the >> >> > time. >> >> > >> >> > It seems that there's a memory problem, but I don't understand >> >> > because >> >> > I >> >> > use >> >> > global ids. >> >> > >> >> > >> >> > What can I do? >> >> > Do you think that if I use the UDPClient I'll have the same problem? >> >> > >> >> > Regards. >> >> > >> >> > >> >> >> >> >> >> >> >> >>
And just to be sure, you 1) are *not* using the emulator and, 2) are *not* using ActiveSync as your network transport, right? Paul T. "Paul G. Tobey [eMVP]" <ptobey no spam AT no instrument no spam DOT com> [quoted text, click to view] wrote in message news:e0M8aucRFHA.3928@TK2MSFTNGP09.phx.gbl... > That's fine. You must be using the Web interface to the newsgroup; > regular newsreaders allow attachments... > > I'm sorry, but I can't get it to build for Windows CE.NET and I have no > PPC devices. I need a higher-level description of what's supposed to be > happening. What call EXACTLY returns the parameter error? What other > information is included in the exception? How are you handling the case > where a UDP packet is sent, but never arrives? Can packets be handled > when they arrive in a different order than they were sent? > > Paul T. > > "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message > news:4B9F189E-3C7B-448D-9085-0A229C2CCA41@microsoft.com... >>I don't know what to think because this is very strange... >> I have done the sample. because of the fact that I don't know where send >> the >> sample I have uploaded to a web: >> >> http://www.reunionparalimpica.com/microsoft.zip >> >> if you need something more, please, answer. >> Thank you very much. >> Regards. >> >> "Paul G. Tobey [eMVP]" wrote: >> >>> And you don't think that the transport of data from one thread to the >>> other >>> is a more likely cause of the problem than the type of socket you're >>> using. >>> Send a small, complete, sample that reproduces the problem, including >>> both >>> the receive code (and how the buffers are appended, etc.), and the code >>> to >>> send the data to the wave calls, and we might have a chance... >>> >>> Paul T. >>> >>> "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message >>> news:FBA65F70-B8B3-4A07-8411-89442F2BCAB0@microsoft.com... >>> > The wave call is in other Thread witch is the manager for taking >>> > packets >>> > from >>> > the queue and it sends them to playback with the waveOutWrite >>> > function. >>> > >>> > >>> > "Paul G. Tobey [eMVP]" wrote: >>> > >>> >> Where's the wave call? If that's generating the invalid parameter >>> >> error, >>> >> it >>> >> seems like we might want to look at it! >>> >> >>> >> Paul T. >>> >> >>> >> "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message >>> >> news:771B2874-571F-4697-A44E-10855CBA3AA6@microsoft.com... >>> >> > Hello everybody, >>> >> > >>> >> > I'm developing an application witch receives voice from Sockets >>> >> > and >>> >> > playback it with the waveOutWrite function.. >>> >> > The problem is that when I receive datas during more than 5 minuts >>> >> > (more >>> >> > or less) the waveOutWrite function returns a INVALPARAM error. >>> >> > The "ReceiveData" method is this: >>> >> > >>> >> > private byte[] message; >>> >> > private byte[] message2; >>> >> > private EndPoint endPointRemote; >>> >> > >>> >> > public byte[] ReceiveData() >>> >> > { >>> >> > sock.ReceiveFrom(message, ref endPointRemote); >>> >> > sock.ReceiveFrom(message2, ref endPointRemote); >>> >> > .... >>> >> > //Join message and message2 >>> >> > return messagejoin; >>> >> > } >>> >> > >>> >> > if I change the method for the next to do tests, it works fine: >>> >> > public byte[] ReceiveData() >>> >> > { >>> >> > if(count==0) >>> >> > { >>> >> > sock.ReceiveFrom(message, ref endPointRemote); >>> >> > sock.ReceiveFrom(message2, ref endPointRemote); >>> >> > count=1; >>> >> > } >>> >> > else >>> >> > { >>> >> > Thread.Sleep(100); >>> >> > } >>> >> > .... >>> >> > //Join message and message2 >>> >> > return messagejoin; >>> >> > } >>> >> > with this test I receive only a packet and I playback it all the >>> >> > time. >>> >> > >>> >> > It seems that there's a memory problem, but I don't understand >>> >> > because >>> >> > I >>> >> > use >>> >> > global ids. >>> >> > >>> >> > >>> >> > What can I do? >>> >> > Do you think that if I use the UDPClient I'll have the same >>> >> > problem? >>> >> > >>> >> > Regards. >>> >> > >>> >> > >>> >> >>> >> >>> >> >>> >>> >>> > >
hello, I haven't got any Pocket PC device, so I am developing with the PPC2003 emulator. The call witch returns the parameter error is the "WaveOutWrite" function. In the WaveOut.cs there's a function called "Play" where, when I have a audio packet, playback it. At the begining, this function "WaveOutWrite" returns 0 (NOERROR) but then, when 5'30" (more or less) pass this function returns 11 (INVALPARAM) and the audio doesn't playback any more. It's not an exception, when this happens the application continues, but the sound stops. If you put a interruption point in the WaveOutWrite function in the debugger you can see it. If a packet doesn't arrive don't mind. In the code that you have, when I send a packet I cut it in two parts because the size is very long (more than 1500bytes), and then, when the 2 pieces arrive I join them. Yesterday I used a lower format: 8000HZ 8bits 1 channel and with this format the packet has the size of 800bytes so I didn't cut the packet but the error appears too. When I add a packet to the queue "ColaReproduccion.cs" I sort the ArrayList, I should control if the timestamp is higuer to not add it but at the moment I don't manage that. However,even if the audio is mix, the WaveOutWrite should playback it (listening bad but listening something) because the PCI format hasn't any compression codec. If you have any other question, I'll be delighted to answer you. Regards and thank you very much. [quoted text, click to view] "Paul G. Tobey [eMVP]" wrote: > And just to be sure, you 1) are *not* using the emulator and, 2) are *not* > using ActiveSync as your network transport, right? > > Paul T. > > "Paul G. Tobey [eMVP]" <ptobey no spam AT no instrument no spam DOT com> > wrote in message news:e0M8aucRFHA.3928@TK2MSFTNGP09.phx.gbl... > > That's fine. You must be using the Web interface to the newsgroup; > > regular newsreaders allow attachments... > > > > I'm sorry, but I can't get it to build for Windows CE.NET and I have no > > PPC devices. I need a higher-level description of what's supposed to be > > happening. What call EXACTLY returns the parameter error? What other > > information is included in the exception? How are you handling the case > > where a UDP packet is sent, but never arrives? Can packets be handled > > when they arrive in a different order than they were sent? > > > > Paul T.
You can't use datagrams and the emulator reliably in my experience. UDP support in the interface layer between the emulator and the host system is spotty. You must use a real device for this sort of code. I think that you'll probably find that, other than the lack of reliable delivery and lack of serialization in UDP, running on the device will probably work fine. You *have* considered the fact that a UDP packet can be sent but not ever arrived, right? And you *have* considered the fact that two UDP packets sent in order, 1 then 2, may arrive at the client in the reverse order, 2 then 1, right? Paul T. [quoted text, click to view] "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message news:50082AED-667F-41DA-A216-48C2A1ABACB0@microsoft.com... > hello, > > > I haven't got any Pocket PC device, so I am developing with the PPC2003 > emulator. > The call witch returns the parameter error is the "WaveOutWrite" function. > In the WaveOut.cs > there's a function called "Play" where, when I have a audio packet, > playback > it. > At the begining, this function "WaveOutWrite" returns 0 (NOERROR) but > then, > when 5'30" > (more or less) pass this function returns 11 (INVALPARAM) and the audio > doesn't playback any more. > It's not an exception, when this happens the application continues, but > the > sound stops. > If you put a interruption point in the WaveOutWrite function in the > debugger > you can see it. > If a packet doesn't arrive don't mind. In the code that you have, when I > send a packet > I cut it in two parts because the size is very long (more than 1500bytes), > and then, when > the 2 pieces arrive I join them. > Yesterday I used a lower format: 8000HZ 8bits 1 channel and with this > format > the packet has > the size of 800bytes so I didn't cut the packet but the error appears too. > When I add a packet to the queue "ColaReproduccion.cs" I sort the > ArrayList, > I should control > if the timestamp is higuer to not add it but at the moment I don't manage > that. > However,even if the audio is mix, the WaveOutWrite should playback it > (listening bad but > listening something) because the PCI format hasn't any compression codec. > If you have any other question, I'll be delighted to answer you. > > Regards and thank you very much. > > > > > "Paul G. Tobey [eMVP]" wrote: > >> And just to be sure, you 1) are *not* using the emulator and, 2) are >> *not* >> using ActiveSync as your network transport, right? >> >> Paul T. >> >> "Paul G. Tobey [eMVP]" <ptobey no spam AT no instrument no spam DOT com> >> wrote in message news:e0M8aucRFHA.3928@TK2MSFTNGP09.phx.gbl... >> > That's fine. You must be using the Web interface to the newsgroup; >> > regular newsreaders allow attachments... >> > >> > I'm sorry, but I can't get it to build for Windows CE.NET and I have no >> > PPC devices. I need a higher-level description of what's supposed to >> > be >> > happening. What call EXACTLY returns the parameter error? What other >> > information is included in the exception? How are you handling the >> > case >> > where a UDP packet is sent, but never arrives? Can packets be handled >> > when they arrive in a different order than they were sent? >> > >> > Paul T. >
If a packet is sent but not arrives, at the moment, it doesnt mind me, there'll be a jump in the playback but it doesn't mind me. When a packet arrives, I add it in a queue and then I sort the queue using the number of sequence. If the second packet arrives before than the first packet when the first packet arrives the queue is put in order. I can't obtein a real device:-( This is my degree project and I develop it at home. Regards. [quoted text, click to view] "Paul G. Tobey [eMVP]" wrote: > You can't use datagrams and the emulator reliably in my experience. UDP > support in the interface layer between the emulator and the host system is > spotty. You must use a real device for this sort of code. I think that > you'll probably find that, other than the lack of reliable delivery and lack > of serialization in UDP, running on the device will probably work fine. You > *have* considered the fact that a UDP packet can be sent but not ever > arrived, right? And you *have* considered the fact that two UDP packets > sent in order, 1 then 2, may arrive at the client in the reverse order, 2 > then 1, right? > > Paul T. > > "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message > news:50082AED-667F-41DA-A216-48C2A1ABACB0@microsoft.com... > > hello, > > > > > > I haven't got any Pocket PC device, so I am developing with the PPC2003 > > emulator. > > The call witch returns the parameter error is the "WaveOutWrite" function. > > In the WaveOut.cs > > there's a function called "Play" where, when I have a audio packet, > > playback > > it. > > At the begining, this function "WaveOutWrite" returns 0 (NOERROR) but > > then, > > when 5'30" > > (more or less) pass this function returns 11 (INVALPARAM) and the audio > > doesn't playback any more. > > It's not an exception, when this happens the application continues, but > > the > > sound stops. > > If you put a interruption point in the WaveOutWrite function in the > > debugger > > you can see it. > > If a packet doesn't arrive don't mind. In the code that you have, when I > > send a packet > > I cut it in two parts because the size is very long (more than 1500bytes), > > and then, when > > the 2 pieces arrive I join them. > > Yesterday I used a lower format: 8000HZ 8bits 1 channel and with this > > format > > the packet has > > the size of 800bytes so I didn't cut the packet but the error appears too. > > When I add a packet to the queue "ColaReproduccion.cs" I sort the > > ArrayList, > > I should control > > if the timestamp is higuer to not add it but at the moment I don't manage > > that. > > However,even if the audio is mix, the WaveOutWrite should playback it > > (listening bad but > > listening something) because the PCI format hasn't any compression codec. > > If you have any other question, I'll be delighted to answer you. > > > > Regards and thank you very much. > > > > > > > > > > "Paul G. Tobey [eMVP]" wrote: > > > >> And just to be sure, you 1) are *not* using the emulator and, 2) are > >> *not* > >> using ActiveSync as your network transport, right? > >> > >> Paul T. > >> > >> "Paul G. Tobey [eMVP]" <ptobey no spam AT no instrument no spam DOT com> > >> wrote in message news:e0M8aucRFHA.3928@TK2MSFTNGP09.phx.gbl... > >> > That's fine. You must be using the Web interface to the newsgroup; > >> > regular newsreaders allow attachments... > >> > > >> > I'm sorry, but I can't get it to build for Windows CE.NET and I have no > >> > PPC devices. I need a higher-level description of what's supposed to > >> > be > >> > happening. What call EXACTLY returns the parameter error? What other > >> > information is included in the exception? How are you handling the > >> > case > >> > where a UDP packet is sent, but never arrives? Can packets be handled > >> > when they arrive in a different order than they were sent? > >> > > >> > Paul T. > > > >
OK, it sounds like you'll live with the problems that might occur. You're out of luck, if you can't get a real device, I'm afraid. What, exactly, are you trying to demonstrate? Paul T. [quoted text, click to view] "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message news:084C6511-2FB7-45CB-8BC6-2B098DD8F364@microsoft.com... > If a packet is sent but not arrives, at the moment, it doesnt mind me, > there'll be a jump in the playback but it doesn't mind me. > When a packet arrives, I add it in a queue and then I sort the queue using > the number of sequence. If the second packet arrives before than the first > packet when the first packet arrives the queue is put in order. > > I can't obtein a real device:-( This is my degree project and I develop it > at home. > Regards. > > > "Paul G. Tobey [eMVP]" wrote: > >> You can't use datagrams and the emulator reliably in my experience. UDP >> support in the interface layer between the emulator and the host system >> is >> spotty. You must use a real device for this sort of code. I think that >> you'll probably find that, other than the lack of reliable delivery and >> lack >> of serialization in UDP, running on the device will probably work fine. >> You >> *have* considered the fact that a UDP packet can be sent but not ever >> arrived, right? And you *have* considered the fact that two UDP packets >> sent in order, 1 then 2, may arrive at the client in the reverse order, 2 >> then 1, right? >> >> Paul T. >> >> "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message >> news:50082AED-667F-41DA-A216-48C2A1ABACB0@microsoft.com... >> > hello, >> > >> > >> > I haven't got any Pocket PC device, so I am developing with the >> > PPC2003 >> > emulator. >> > The call witch returns the parameter error is the "WaveOutWrite" >> > function. >> > In the WaveOut.cs >> > there's a function called "Play" where, when I have a audio packet, >> > playback >> > it. >> > At the begining, this function "WaveOutWrite" returns 0 (NOERROR) but >> > then, >> > when 5'30" >> > (more or less) pass this function returns 11 (INVALPARAM) and the audio >> > doesn't playback any more. >> > It's not an exception, when this happens the application continues, but >> > the >> > sound stops. >> > If you put a interruption point in the WaveOutWrite function in the >> > debugger >> > you can see it. >> > If a packet doesn't arrive don't mind. In the code that you have, when >> > I >> > send a packet >> > I cut it in two parts because the size is very long (more than >> > 1500bytes), >> > and then, when >> > the 2 pieces arrive I join them. >> > Yesterday I used a lower format: 8000HZ 8bits 1 channel and with this >> > format >> > the packet has >> > the size of 800bytes so I didn't cut the packet but the error appears >> > too. >> > When I add a packet to the queue "ColaReproduccion.cs" I sort the >> > ArrayList, >> > I should control >> > if the timestamp is higuer to not add it but at the moment I don't >> > manage >> > that. >> > However,even if the audio is mix, the WaveOutWrite should playback it >> > (listening bad but >> > listening something) because the PCI format hasn't any compression >> > codec. >> > If you have any other question, I'll be delighted to answer you. >> > >> > Regards and thank you very much. >> > >> > >> > >> > >> > "Paul G. Tobey [eMVP]" wrote: >> > >> >> And just to be sure, you 1) are *not* using the emulator and, 2) are >> >> *not* >> >> using ActiveSync as your network transport, right? >> >> >> >> Paul T. >> >> >> >> "Paul G. Tobey [eMVP]" <ptobey no spam AT no instrument no spam DOT >> >> com> >> >> wrote in message news:e0M8aucRFHA.3928@TK2MSFTNGP09.phx.gbl... >> >> > That's fine. You must be using the Web interface to the newsgroup; >> >> > regular newsreaders allow attachments... >> >> > >> >> > I'm sorry, but I can't get it to build for Windows CE.NET and I have >> >> > no >> >> > PPC devices. I need a higher-level description of what's supposed >> >> > to >> >> > be >> >> > happening. What call EXACTLY returns the parameter error? What >> >> > other >> >> > information is included in the exception? How are you handling the >> >> > case >> >> > where a UDP packet is sent, but never arrives? Can packets be >> >> > handled >> >> > when they arrive in a different order than they were sent? >> >> > >> >> > Paul T. >> > >> >> >>
I have to develop two applications (PC and PPC) using VoIP (Voice over IP). The PC application is ready more or less, and the PPC application has that problem. I have to speak from the PC application to the PPC application and vice versa. The hard part is the PPC because of the fact that it's not a real time plattaform. And now with this problem... I don't know how to fix it:-( Regards and thank you very much. [quoted text, click to view] "Paul G. Tobey [eMVP]" wrote: > OK, it sounds like you'll live with the problems that might occur. You're > out of luck, if you can't get a real device, I'm afraid. What, exactly, are > you trying to demonstrate? > > Paul T. > > "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message > news:084C6511-2FB7-45CB-8BC6-2B098DD8F364@microsoft.com... > > If a packet is sent but not arrives, at the moment, it doesnt mind me, > > there'll be a jump in the playback but it doesn't mind me. > > When a packet arrives, I add it in a queue and then I sort the queue using > > the number of sequence. If the second packet arrives before than the first > > packet when the first packet arrives the queue is put in order. > > > > I can't obtein a real device:-( This is my degree project and I develop it > > at home. > > Regards. > > > > > > "Paul G. Tobey [eMVP]" wrote: > > > >> You can't use datagrams and the emulator reliably in my experience. UDP > >> support in the interface layer between the emulator and the host system > >> is > >> spotty. You must use a real device for this sort of code. I think that > >> you'll probably find that, other than the lack of reliable delivery and > >> lack > >> of serialization in UDP, running on the device will probably work fine. > >> You > >> *have* considered the fact that a UDP packet can be sent but not ever > >> arrived, right? And you *have* considered the fact that two UDP packets > >> sent in order, 1 then 2, may arrive at the client in the reverse order, 2 > >> then 1, right? > >> > >> Paul T. > >> > >> "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message > >> news:50082AED-667F-41DA-A216-48C2A1ABACB0@microsoft.com... > >> > hello, > >> > > >> > > >> > I haven't got any Pocket PC device, so I am developing with the > >> > PPC2003 > >> > emulator. > >> > The call witch returns the parameter error is the "WaveOutWrite" > >> > function. > >> > In the WaveOut.cs > >> > there's a function called "Play" where, when I have a audio packet, > >> > playback > >> > it. > >> > At the begining, this function "WaveOutWrite" returns 0 (NOERROR) but > >> > then, > >> > when 5'30" > >> > (more or less) pass this function returns 11 (INVALPARAM) and the audio > >> > doesn't playback any more. > >> > It's not an exception, when this happens the application continues, but > >> > the > >> > sound stops. > >> > If you put a interruption point in the WaveOutWrite function in the > >> > debugger > >> > you can see it. > >> > If a packet doesn't arrive don't mind. In the code that you have, when > >> > I > >> > send a packet > >> > I cut it in two parts because the size is very long (more than > >> > 1500bytes), > >> > and then, when > >> > the 2 pieces arrive I join them. > >> > Yesterday I used a lower format: 8000HZ 8bits 1 channel and with this > >> > format > >> > the packet has > >> > the size of 800bytes so I didn't cut the packet but the error appears > >> > too. > >> > When I add a packet to the queue "ColaReproduccion.cs" I sort the > >> > ArrayList, > >> > I should control > >> > if the timestamp is higuer to not add it but at the moment I don't > >> > manage > >> > that. > >> > However,even if the audio is mix, the WaveOutWrite should playback it > >> > (listening bad but > >> > listening something) because the PCI format hasn't any compression > >> > codec. > >> > If you have any other question, I'll be delighted to answer you. > >> > > >> > Regards and thank you very much. > >> > > >> > > >> > > >> > > >> > "Paul G. Tobey [eMVP]" wrote: > >> > > >> >> And just to be sure, you 1) are *not* using the emulator and, 2) are > >> >> *not* > >> >> using ActiveSync as your network transport, right? > >> >> > >> >> Paul T. > >> >> > >> >> "Paul G. Tobey [eMVP]" <ptobey no spam AT no instrument no spam DOT > >> >> com> > >> >> wrote in message news:e0M8aucRFHA.3928@TK2MSFTNGP09.phx.gbl... > >> >> > That's fine. You must be using the Web interface to the newsgroup; > >> >> > regular newsreaders allow attachments... > >> >> > > >> >> > I'm sorry, but I can't get it to build for Windows CE.NET and I have > >> >> > no > >> >> > PPC devices. I need a higher-level description of what's supposed > >> >> > to > >> >> > be > >> >> > happening. What call EXACTLY returns the parameter error? What > >> >> > other > >> >> > information is included in the exception? How are you handling the > >> >> > case > >> >> > where a UDP packet is sent, but never arrives? Can packets be > >> >> > handled > >> >> > when they arrive in a different order than they were sent? > >> >> > > >> >> > Paul T. > >> > > >> > >> > >> > >
Well, how do you plan to use the emulator for the speaking end of things? You *must* have a real device... Paul T. [quoted text, click to view] "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message news:1E44FDEA-30A2-4CDE-B28E-87267FE1AA27@microsoft.com... >I have to develop two applications (PC and PPC) using VoIP (Voice over IP). > The PC application is ready more or less, and the PPC application has that > problem. > I have to speak from the PC application to the PPC application and vice > versa. > The hard part is the PPC because of the fact that it's not a real time > plattaform. > And now with this problem... I don't know how to fix it:-( > Regards and thank you very much. > > > > "Paul G. Tobey [eMVP]" wrote: > >> OK, it sounds like you'll live with the problems that might occur. >> You're >> out of luck, if you can't get a real device, I'm afraid. What, exactly, >> are >> you trying to demonstrate? >> >> Paul T. >> >> "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message >> news:084C6511-2FB7-45CB-8BC6-2B098DD8F364@microsoft.com... >> > If a packet is sent but not arrives, at the moment, it doesnt mind me, >> > there'll be a jump in the playback but it doesn't mind me. >> > When a packet arrives, I add it in a queue and then I sort the queue >> > using >> > the number of sequence. If the second packet arrives before than the >> > first >> > packet when the first packet arrives the queue is put in order. >> > >> > I can't obtein a real device:-( This is my degree project and I develop >> > it >> > at home. >> > Regards. >> > >> > >> > "Paul G. Tobey [eMVP]" wrote: >> > >> >> You can't use datagrams and the emulator reliably in my experience. >> >> UDP >> >> support in the interface layer between the emulator and the host >> >> system >> >> is >> >> spotty. You must use a real device for this sort of code. I think >> >> that >> >> you'll probably find that, other than the lack of reliable delivery >> >> and >> >> lack >> >> of serialization in UDP, running on the device will probably work >> >> fine. >> >> You >> >> *have* considered the fact that a UDP packet can be sent but not ever >> >> arrived, right? And you *have* considered the fact that two UDP >> >> packets >> >> sent in order, 1 then 2, may arrive at the client in the reverse >> >> order, 2 >> >> then 1, right? >> >> >> >> Paul T. >> >> >> >> "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message >> >> news:50082AED-667F-41DA-A216-48C2A1ABACB0@microsoft.com... >> >> > hello, >> >> > >> >> > >> >> > I haven't got any Pocket PC device, so I am developing with the >> >> > PPC2003 >> >> > emulator. >> >> > The call witch returns the parameter error is the "WaveOutWrite" >> >> > function. >> >> > In the WaveOut.cs >> >> > there's a function called "Play" where, when I have a audio packet, >> >> > playback >> >> > it. >> >> > At the begining, this function "WaveOutWrite" returns 0 (NOERROR) >> >> > but >> >> > then, >> >> > when 5'30" >> >> > (more or less) pass this function returns 11 (INVALPARAM) and the >> >> > audio >> >> > doesn't playback any more. >> >> > It's not an exception, when this happens the application continues, >> >> > but >> >> > the >> >> > sound stops. >> >> > If you put a interruption point in the WaveOutWrite function in the >> >> > debugger >> >> > you can see it. >> >> > If a packet doesn't arrive don't mind. In the code that you have, >> >> > when >> >> > I >> >> > send a packet >> >> > I cut it in two parts because the size is very long (more than >> >> > 1500bytes), >> >> > and then, when >> >> > the 2 pieces arrive I join them. >> >> > Yesterday I used a lower format: 8000HZ 8bits 1 channel and with >> >> > this >> >> > format >> >> > the packet has >> >> > the size of 800bytes so I didn't cut the packet but the error >> >> > appears >> >> > too. >> >> > When I add a packet to the queue "ColaReproduccion.cs" I sort the >> >> > ArrayList, >> >> > I should control >> >> > if the timestamp is higuer to not add it but at the moment I don't >> >> > manage >> >> > that. >> >> > However,even if the audio is mix, the WaveOutWrite should playback >> >> > it >> >> > (listening bad but >> >> > listening something) because the PCI format hasn't any compression >> >> > codec. >> >> > If you have any other question, I'll be delighted to answer you. >> >> > >> >> > Regards and thank you very much. >> >> > >> >> > >> >> > >> >> > >> >> > "Paul G. Tobey [eMVP]" wrote: >> >> > >> >> >> And just to be sure, you 1) are *not* using the emulator and, 2) >> >> >> are >> >> >> *not* >> >> >> using ActiveSync as your network transport, right? >> >> >> >> >> >> Paul T. >> >> >> >> >> >> "Paul G. Tobey [eMVP]" <ptobey no spam AT no instrument no spam DOT >> >> >> com> >> >> >> wrote in message news:e0M8aucRFHA.3928@TK2MSFTNGP09.phx.gbl... >> >> >> > That's fine. You must be using the Web interface to the >> >> >> > newsgroup; >> >> >> > regular newsreaders allow attachments... >> >> >> > >> >> >> > I'm sorry, but I can't get it to build for Windows CE.NET and I >> >> >> > have >> >> >> > no >> >> >> > PPC devices. I need a higher-level description of what's >> >> >> > supposed >> >> >> > to >> >> >> > be >> >> >> > happening. What call EXACTLY returns the parameter error? What >> >> >> > other >> >> >> > information is included in the exception? How are you handling >> >> >> > the >> >> >> > case >> >> >> > where a UDP packet is sent, but never arrives? Can packets be >> >> >> > handled >> >> >> > when they arrive in a different order than they were sent? >> >> >> > >> >> >> > Paul T. >> >> > >> >> >> >> >> >> >> >> >>
At the begining I thought to buy a Pocket PC, but they are very expensive for me and until now I have worked with the emulator without problems. The application that I have uploaded works fine in the emulator (except for the problem that I have mentioned that in the 7th minut the waveOutwrite function returns an INVALPARAM error). What adventages has a real device than a emulator for this project? because I have worked since february with the emular sending data, playing back and recording audio,.... Regards. [quoted text, click to view] "Paul G. Tobey [eMVP]" wrote: > Well, how do you plan to use the emulator for the speaking end of things? > You *must* have a real device... > > Paul T.
I thought that I covered that. Emulator communications is not identical to a real network connected to a real device. I don't know the why of that, but it's an *emulator*; no one would try to implement their final application with the emulator as the target, so there's little effort to make emulation perfect. How are you going to capture audio on the emulator end? There's no audio capture support there that I can see. At best, even if you figure out this problem, you'll only be able to demonstrate audio output from the emulator, not input. Since it's my assertion that the emulator is responsible for this problem that you're having, tying yourself to it is not only limiting your ability to actually implement the whole solution, but is wasting your time trying to fix a problem that's just an emulator problem. Isn't there an academic purchase program that would get you a Pocket PC at a reasonable cost? What about eBay? Paul T. [quoted text, click to view] "Black_angel" <Blackangel@discussions.microsoft.com> wrote in message news:9D6B340D-7D6B-4FDA-9027-81BE06255D5F@microsoft.com... > At the begining I thought to buy a Pocket PC, but they are very expensive > for > me and > until now I have worked with the emulator without problems. > The application that I have uploaded works fine in the emulator (except > for > the problem that I have mentioned that in the 7th minut the waveOutwrite > function returns an INVALPARAM error). > What adventages has a real device than a emulator for this project? > because > I have worked since february with the emular sending data, playing back > and > recording audio,.... > Regards. > > > > "Paul G. Tobey [eMVP]" wrote: > >> Well, how do you plan to use the emulator for the speaking end of things? >> You *must* have a real device... >> >> Paul T. >>
The emulator can capture audio correctly with the WaveIn functions of the WaveFormAudio API. I did it and I can send that audio to the PC application using Sockets. The audio capture is supported in the emulator. Talking about buying a Pocket PC... I don't know any academic purchase program that would get me a Pocket PC at a reasonable cost, and at the begining, in february, I saw in eBay but the cost continue being expensive for me. I have a friend who has a Pocket PC, I'll try ask him to borrow. Regards. [quoted text, click to view] "Paul G. Tobey [eMVP]" wrote: > I thought that I covered that. Emulator communications is not identical to > a real network connected to a real device. I don't know the why of that, > but it's an *emulator*; no one would try to implement their final > application with the emulator as the target, so there's little effort to > make emulation perfect. > > How are you going to capture audio on the emulator end? There's no audio > capture support there that I can see. At best, even if you figure out this > problem, you'll only be able to demonstrate audio output from the emulator, > not input. > > Since it's my assertion that the emulator is responsible for this problem > that you're having, tying yourself to it is not only limiting your ability > to actually implement the whole solution, but is wasting your time trying to > fix a problem that's just an emulator problem. > > Isn't there an academic purchase program that would get you a Pocket PC at a > reasonable cost? What about eBay? > > Paul T. >
Don't see what you're looking for? Try a search.
|