mpegts: add helper function for determining the weight of a mux instance
This commit is contained in:
parent
31d0690da2
commit
5fede076db
2 changed files with 29 additions and 0 deletions
|
@ -578,6 +578,8 @@ mpegts_service_t *mpegts_mux_find_service(mpegts_mux_t *ms, uint16_t sid);
|
|||
int mpegts_mux_instance_start
|
||||
( mpegts_mux_instance_t **mmiptr );
|
||||
|
||||
int mpegts_mux_instance_weight ( mpegts_mux_instance_t *mmi );
|
||||
|
||||
int mpegts_mux_set_tsid ( mpegts_mux_t *mm, uint16_t tsid );
|
||||
int mpegts_mux_set_onid ( mpegts_mux_t *mm, uint16_t onid );
|
||||
int mpegts_mux_set_crid_authority ( mpegts_mux_t *mm, const char *defauth );
|
||||
|
|
|
@ -116,6 +116,33 @@ mpegts_mux_instance_start
|
|||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
mpegts_mux_instance_weight ( mpegts_mux_instance_t *mmi )
|
||||
{
|
||||
int w = 0;
|
||||
const service_t *s;
|
||||
const th_subscription_t *ths;
|
||||
mpegts_input_t *mi = mmi->mmi_input;
|
||||
lock_assert(&mi->mi_delivery_mutex);
|
||||
|
||||
/* Direct subs */
|
||||
LIST_FOREACH(ths, &mmi->mmi_subs, ths_mmi_link) {
|
||||
w = MAX(w, ths->ths_weight);
|
||||
}
|
||||
|
||||
/* Service subs */
|
||||
LIST_FOREACH(s, &mi->mi_transports, s_active_link) {
|
||||
mpegts_service_t *ms = (mpegts_service_t*)s;
|
||||
if (ms->s_dvb_mux == mmi->mmi_mux) {
|
||||
LIST_FOREACH(ths, &s->s_subscriptions, ths_service_link) {
|
||||
w = MAX(w, ths->ths_weight);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return w;
|
||||
}
|
||||
|
||||
/* ****************************************************************************
|
||||
* Class definition
|
||||
* ***************************************************************************/
|
||||
|
|
Loading…
Add table
Reference in a new issue