Menu

#14 Clicky RTP audio playback

open
nobody
None
5
2007-06-18
2007-06-18
Ken Larson
No

Comments from ULAW DePacketizer analysis:

* TODO: when this is called by the FMJ handler, the buffers look like:
* input : javax.media.Buffer@125f92 seq=59080 off=12 len=480 flags=[FLAG_RELATIVE_TIME | FLAG_RTP_TIME] fmt=[ULAW/rtp, 8000.0 Hz, 8-bit, Mono] data=[[B@290ef4
* when this is called by the JMF handler, the buffers look like:
* input : com.sun.media.ExtBuffer@6be4cc seq=23370 off=12 len=480 flags=[FLAG_NO_WAIT | FLAG_NO_SYNC | FLAG_RTP_TIME] fmt=[ULAW/rtp, 8000.0 Hz, 8-bit, Mono] data=[[B@4e94a4 ]
* input : com.sun.media.ExtBuffer@6be4cc seq=23371 off=12 len=480 flags=[FLAG_NO_WAIT | FLAG_NO_SYNC | FLAG_SYSTEM_MARKER | FLAG_RTP_TIME] fmt=[ULAW/rtp, 8000.0 Hz, 8-bit, Mono] data=[[B@5ae1e7
*
* It doesn't matter whether we use FMJ's RTPSessionMgr. If FMJ's Handler is used, we get clicks in the audio.
*
* This is using Sun's com.sun.media.parser.RawBufferParser, regardless of whether FMJ's or JMF's handler is used.
*
* FINE: Filter graph:
* INFO: ContentDescriptor [raw]
* INFO: com.sun.media.parser.RawBufferParser
* INFO: AudioFormat [ULAW/rtp, 8000.0 Hz, 8-bit, Mono]
* INFO: com.sun.media.codec.audio.ulaw.DePacketizer
* INFO: AudioFormat [ULAW, 8000.0 Hz, 8-bit, Mono]
* INFO: com.sun.media.renderer.audio.JavaSoundRenderer
*
* Theory: the filter graph processing uses a single thread.

Discussion

  • Ken Larson

    Ken Larson - 2007-06-18

    Logged In: YES
    user_id=911347
    Originator: YES

    If the transmission packet size is doubled, the clicking goes away. I suspect it was 1 click per packet, due to not feeding the renderer fast enough. If a packet cannot be decoded and processed in the time it takes to render the audio, it is basically an underflow.

     
  • Ken Larson

    Ken Larson - 2007-06-18

    Logged In: YES
    user_id=911347
    Originator: YES

    Correction, the clicking doesn't go away, it happens half as fast.