- RevueSDK
- LocalTrackPublication
- setCodec(_:)
Instance Method
setCodec(_:)
切換視訊 codec(含 encoding)
func setCodec(_ codec: VideoCodec) throwsParameters
- codec
目標 codec + 對應 encoding 參數
Discussion
立即切換 send pipeline:
.h264(...)→ 走revuekit_av_video_send_frame_encoded(外部 VideoToolbox 編).vp8(...)→ 走revuekit_av_video_send_frame(revuekit-c 內部軟體編)
若 codec type 沒變(例:VP8→VP8 只換 encoding),內部走 setVp8Encoding / setH264Encoding 邏輯、不重建 pipeline。
通話不中斷、不需要重談協商。切換 codec 時第一幀 keyframe 由 VideoConverter.setActiveCodec 內建 forceKeyframe 保證,對端解碼會有 <200ms 短暫卡頓後恢復。
Throws
.trackNotPublished— publication 已 unpublish
.invalidParameter— encoding.maxBitrate <= 0