sdp_rtpmap_t const *rm)
{
char const *lparam, *rparam;
+ sdp_rtpmap_t const *cp_list = NULL;
if (rm == NULL)
return NULL;
-
+
for (; list; list = list->rm_next) {
if (rm->rm_rate != list->rm_rate)
continue;
lparam = rm->rm_params; rparam = list->rm_params;
- if (lparam == rparam)
- break;
+ if (lparam == rparam) {
+ cp_list = list;
+ if (rm->rm_pt != list->rm_pt) continue;
+ break;
+ }
if (!lparam) lparam = "1"; if (!rparam) rparam = "1";
if (!su_casematch(lparam, rparam))
break;
}
- return (sdp_rtpmap_t *)list;
+ return cp_list ? (sdp_rtpmap_t *) cp_list : (sdp_rtpmap_t *)list;
}