Keith Kyzivat wrote:
On Thu, Nov 13, 2008 at 7:50 PM, Paul Whitfield
<[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:
The DTMF packets were from the same SSRC with the same time stamps
as the audio stream.
For my application I have re-worked the code to not call
MprDecode::pushPacket() for DTMF packets,
this then caused a problem that the DTMF packets
never got decoded, I fixed this and my application is working fine now.
Now all seems to work OK.
Might you have a patch file you can send up so this can be reviewed and
checked into the repository?
Indeed I would be happy to.
Before generating these patches I had applied the the recent change for
coping with multiple SSRC on the same RTP stream.
Regards
Paul
181,193d180
< // SSRC change handling
< void MprDecode::setmIsStreamInitialized(UtlBoolean initialized)
< {
< mIsStreamInitialized = initialized;
< }
<
< //needed when SSRC changes
< void MprDecode::resetDejitter()
< {
< setmIsStreamInitialized(FALSE);
< mpMyDJ->reset();
< }
<
229a217,218
> // RTL_EVENT(str_fg+"_MprDecode_PF_stream_position",
> mStreamState.playbackStreamPosition);
>
355,358c343
<
< if ( tryDecodeAsSignalling(rtp) )
< {
< return TRUE;
---
> dprintf(" <%"PRIu32" n=%d", rtp->getRtpTimestamp(),
> nextPacketAvailable);
359a345,347
> else
> {
> dprintf(" <-");
376a363
> dprintf("]\n");
380,381c367
<
<
---
> dprintf("]");
431a416,420
> // Step 3. Get signaling data from packet if any.
> if (rtp.isValid())
> {
> tryDecodeAsSignalling(rtp);
> }
432a422
> dprintf("\n");
452,453c442
< pCurDec->decode(rtp,0, NULL);
< uint8_t signal;
---
> uint8_t event;
460c449
< sigRes = pCurDec->getSignalingData(signal,
---
> sigRes = pCurDec->getSignalingData(event,
469c458
< (MprnDTMFMsg::KeyCode)signal,
---
> (MprnDTMFMsg::KeyCode)event,
477c466
< | (uint32_t)(signal) << 16
---
> | (uint32_t)(event) << 16
486c475
< (MprnDTMFMsg::KeyCode)signal,
---
> (MprnDTMFMsg::KeyCode)event,
494c483
< | (uint32_t)(signal) << 16
---
> | (uint32_t)(event) << 16
141,143c141
< if ( !rtpPacket.isValid() )
< return OS_FAILED;
<
---
> assert(rtpPacket.isValid());
188,190c186
<
< if ( !decoder->getInfo()->isSignalingCodec() )
< {
---
> RTL_EVENT("MpJitterBuffer_loss_pattern", !rtpPacket.isValid());
225,231c221
< else
< {
< assert(!"Decoder returned 0 samples for non-signaling packet!"
);
< }
< }
< }
< else // Signalling Codec
---
> else if (decoder->getInfo()->isSignalingCodec())
238a229,235
> else
> {
> // Something should be definitely wrong here.
> // But, in release mode we could continue with PLC.
> assert(!"Decoder returned 0 samples for non-signaling packet!");
> }
> }
246d242
<
_______________________________________________
sipxtapi-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/