Source:
<code>public void addDynamicRTPPayloadType( byte rtpPayloadType, MediaFormat format) { @SuppressWarnings("unchecked") MediaFormatImpl<? extends Format> mediaFormatImpl = (MediaFormatImpl<? extends Format>) format; synchronized (dynamicRTPPayloadTypes) { dynamicRTPPayloadTypes.put(Byte.valueOf(rtpPayloadType), format); } String encoding = format.getEncoding(); if (Constants.RED.equals(encoding)) { REDTransformEngine redTransformEngine = getRedTransformEngine(); if (redTransformEngine != null) { redTransformEngine.setIncomingPT(rtpPayloadType); redTransformEngine.setOutgoingPT(rtpPayloadType); } } else if (Constants.ULPFEC.equals(encoding)) { FECTransformEngine fecTransformEngine = getFecTransformEngine(); if (fecTransformEngine != null) { fecTransformEngine.setIncomingPT(rtpPayloadType); fecTransformEngine.setOutgoingPT(rtpPayloadType); } } else if (Constants.FLEXFEC_03.equals(encoding)) { logger.info("Creating FlexFEC transform engine"); FECTransformEngine flexFecTransformEngine = new FECTransformEngine(FECTransformEngine.FecType.FLEXFEC_03, rtpPayloadType, rtpPayloadType, this); setFecTransformEngine(flexFecTransformEngine); <START> } <END> if (rtpManager != null) { rtpManager.addFormat( mediaFormatImpl.getFormat(), rtpPayloadType); } this.onDynamicPayloadTypesChanged(); }</code><technical_language>play ULPFEC? Do want enable ulpfec flexfec (I'm guessing not)</technical_language>

Target:
public void addDynamicRTPPayloadType( byte rtpPayloadType, MediaFormat format) { @SuppressWarnings("unchecked") MediaFormatImpl<? extends Format> mediaFormatImpl = (MediaFormatImpl<? extends Format>) format; synchronized (dynamicRTPPayloadTypes) { dynamicRTPPayloadTypes.put(Byte.valueOf(rtpPayloadType), format); } String encoding = format.getEncoding(); if (Constants.RED.equals(encoding)) { REDTransformEngine redTransformEngine = getRedTransformEngine(); if (redTransformEngine != null) { redTransformEngine.setIncomingPT(rtpPayloadType); redTransformEngine.setOutgoingPT(rtpPayloadType); } } else if (Constants.ULPFEC.equals(encoding)) { TransformEngineWrapper<FECTransformEngine> fecTransformEngineWrapper = getFecTransformEngine(); if (fecTransformEngineWrapper.getWrapped() != null) { FECTransformEngine fecTransformEngine = fecTransformEngineWrapper.getWrapped(); fecTransformEngine.setIncomingPT(rtpPayloadType); fecTransformEngine.setOutgoingPT(rtpPayloadType); } } else if (Constants.FLEXFEC_03.equals(encoding)) { TransformEngineWrapper<FECTransformEngine> fecTransformEngineWrapper = getFecTransformEngine(); if (fecTransformEngineWrapper.getWrapped() != null) { logger.info("Updating existing FlexFEC-03 transform engine with payload type " + rtpPayloadType); fecTransformEngineWrapper.getWrapped().setIncomingPT(rtpPayloadType); fecTransformEngineWrapper.getWrapped().setOutgoingPT(rtpPayloadType); } else { logger.info("Creating FlexFEC-03 transform engine with payload type " + rtpPayloadType); FECTransformEngine flexFecTransformEngine = new FECTransformEngine(FECTransformEngine.FecType.FLEXFEC_03, rtpPayloadType, rtpPayloadType, this); setFecTransformEngine(flexFecTransformEngine); } } if (rtpManager != null) { rtpManager.addFormat( mediaFormatImpl.getFormat(), rtpPayloadType); } this.onDynamicPayloadTypesChanged(); }