Ticket #87 (closed defect: fixed)

Opened 12 years ago

Last modified 12 years ago

Conference bridge should transmit silence frame when level is zero

Reported by: bennylp Owned by: bennylp
Priority: normal Milestone: release-0.5.10
Component: pjmedia Version: 0.5.9
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description (last modified by bennylp) (diff)

Currently the conference bridge will transmit PJMEDIA_FRAME_TYPE_NONE to a destination slot when the level is zero, regardless whether there is a source port transmitting to that particular destination slot:

  if (cport->tx_setting==PJMEDIA_PORT_MUTE || cport->srv_level==0) {
     frame.type = PJMEDIA_FRAME_TYPE_NONE;
     pjmedia_port_put_frame(cport->port, &frame);
  }

This will cause WAV writer to write nothing to the file, thus causing silence gap to not be written.

The solution, the bridge should distinguish between no listener situation and silence situation:

  if (cport->tx_setting == PJMEDIA_PORT_MUTE || cport->transmitter_cnt==0) {
       // Transmit TYPE_NONE frame
       ...
  } else if (cport->src_level==0) {
       // Transmit silence PCM frame
       ...
  }

Change History

comment:1 Changed 12 years ago by bennylp

  • Description modified (diff)

comment:2 Changed 12 years ago by bennylp

  • Description modified (diff)

comment:3 Changed 12 years ago by bennylp

  • Status changed from new to closed
  • Resolution set to fixed

Fixed in r930.

Note: See TracTickets for help on using tickets.