diff --git a/src/transport/scheduler/xqc_scheduler_backup_fec.c b/src/transport/scheduler/xqc_scheduler_backup_fec.c index 4c871a29a..930c4db91 100644 --- a/src/transport/scheduler/xqc_scheduler_backup_fec.c +++ b/src/transport/scheduler/xqc_scheduler_backup_fec.c @@ -182,6 +182,16 @@ xqc_backup_fec_scheduler_get_path(void *scheduler, xqc_connection_t *conn, #endif if (ret_path != NULL) { +#ifdef XQC_ENABLE_FEC + if (conn->fec_ctl + && conn->fec_ctl->fec_mp_mode == XQC_FEC_MP_USE_STB + && (packet_out->po_frame_types & XQC_FRAME_BIT_REPAIR_SYMBOL)) + { + if (ret_path->app_path_status == XQC_APP_PATH_STATUS_STANDBY) { + conn->fec_ctl->fec_rep_path_id = ret_path->path_id; + } + } +#endif xqc_log(conn->log, XQC_LOG_DEBUG, "|best path:%ui|frame_type:%s|" "pn:%ui|size:%ud|reinj:%d|path_class:%d|", ret_path->path_id, @@ -240,4 +250,4 @@ const xqc_scheduler_callback_t xqc_backup_fec_scheduler_cb = { .xqc_scheduler_init = xqc_backup_fec_scheduler_init, .xqc_scheduler_get_path = xqc_backup_fec_scheduler_get_path, .xqc_scheduler_handle_conn_event = xqc_backup_fec_scheduler_handle_conn_event, -}; \ No newline at end of file +};