{RTP_JITTER_BUFFER_MODE_SLAVE, "Slave receiver to sender clock", "slave"},
{RTP_JITTER_BUFFER_MODE_BUFFER, "Do low/high watermark buffering",
"buffer"},
+ {RTP_JITTER_BUFFER_MODE_SYNCED, "Synchronized sender and receiver clocks",
+ "synced"},
{0, NULL, NULL},
};
else
dts = -1;
break;
+ case RTP_JITTER_BUFFER_MODE_SYNCED:
+ /* synchronized clocks, take first timestamp as base, use RTP timestamps
+ * to interpolate */
+ if (jbuf->base_time != -1)
+ dts = -1;
+ break;
case RTP_JITTER_BUFFER_MODE_SLAVE:
default:
break;
* low latency communications.
* RTP_JITTER_BUFFER_MODE_BUFFER: buffer packets between low/high watermarks.
* This mode is good for streaming communication.
+ * RTP_JITTER_BUFFER_MODE_SYNCED: sender and receiver clocks are synchronized,
+ * like #RTP_JITTER_BUFFER_MODE_SLAVE but skew is assumed to be 0. Good for
+ * low latency communication when sender and receiver clocks are
+ * synchronized and there is thus no clock skew.
* RTP_JITTER_BUFFER_MODE_LAST: last buffer mode.
*
* The different buffer modes for a jitterbuffer.
RTP_JITTER_BUFFER_MODE_NONE = 0,
RTP_JITTER_BUFFER_MODE_SLAVE = 1,
RTP_JITTER_BUFFER_MODE_BUFFER = 2,
+ RTP_JITTER_BUFFER_MODE_SYNCED = 3,
RTP_JITTER_BUFFER_MODE_LAST
} RTPJitterBufferMode;