Only generate 1 packet of FEC data per frame. Disable video resolution scaling on packet loss.

This commit is contained in:
Cameron Gutman 2014-08-04 10:20:49 -07:00
parent 0f0e41d5a4
commit 463d4ad3fd

View File

@ -104,13 +104,17 @@ public class SdpGenerator {
addSessionAttribute(config, "x-nv-video[0].framesWithInvalidRefThreshold", "0"); addSessionAttribute(config, "x-nv-video[0].framesWithInvalidRefThreshold", "0");
// The low nibble of the high byte should be 0x9 but that causes video issues // The low nibble of the high byte should be 0x9 but that causes video issues
addSessionAttribute(config, "x-nv-vqos[0].bw.flags", "7091"); // The bit 0x80 enables video scaling on packet loss which we can't support (for now)
addSessionAttribute(config, "x-nv-vqos[0].bw.flags", "7011");
addSessionAttribute(config, "x-nv-vqos[0].bw.maximumBitrate", ""+sc.getBitrate()); addSessionAttribute(config, "x-nv-vqos[0].bw.maximumBitrate", ""+sc.getBitrate());
// Prevent resolution changes due to network degradation // Since we can only deal with FEC data on a 1 packet frame,
addSessionAttribute(config, "x-nv-vqos[0].bw.earlyDetectionLowerBoundWidth", ""+sc.getWidth()); // restrict FEC repair percentage to minimum so we get only 1
addSessionAttribute(config, "x-nv-vqos[0].bw.earlyDetectionLowerBoundHeight", ""+sc.getHeight()); // FEC packet per frame
addSessionAttribute(config, "x-nv-vqos[0].fec.repairPercent", "1");
addSessionAttribute(config, "x-nv-vqos[0].fec.repairMaxPercent", "1");
addSessionAttribute(config, "x-nv-vqos[0].fec.repairMinPercent", "1");
addSessionAttribute(config, "x-nv-vqos[0].videoQualityScoreUpdateTime", "5000"); addSessionAttribute(config, "x-nv-vqos[0].videoQualityScoreUpdateTime", "5000");
addSessionAttribute(config, "x-nv-vqos[0].qosTrafficType", "7"); addSessionAttribute(config, "x-nv-vqos[0].qosTrafficType", "7");