mirror of https://code.videolan.org/videolan/vlc
src/clock: add new field track_str_id
In traces, it's useful to have the str_id of the elementary stream read. It can be obtained through the clock.
This commit is contained in:
parent
a7edba0704
commit
8218c474e7
|
@ -73,6 +73,7 @@ struct vlc_clock_t
|
|||
vlc_clock_main_t *owner;
|
||||
vlc_tick_t delay;
|
||||
unsigned priority;
|
||||
const char *track_str_id;
|
||||
|
||||
const struct vlc_clock_cbs *cbs;
|
||||
void *cbs_data;
|
||||
|
@ -549,6 +550,7 @@ static void vlc_clock_set_slave_callbacks(vlc_clock_t *clock)
|
|||
}
|
||||
|
||||
static vlc_clock_t *vlc_clock_main_Create(vlc_clock_main_t *main_clock,
|
||||
const char* track_str_id,
|
||||
unsigned priority,
|
||||
const struct vlc_clock_cbs *cbs,
|
||||
void *cbs_data)
|
||||
|
@ -558,6 +560,7 @@ static vlc_clock_t *vlc_clock_main_Create(vlc_clock_main_t *main_clock,
|
|||
return NULL;
|
||||
|
||||
clock->owner = main_clock;
|
||||
clock->track_str_id = track_str_id;
|
||||
clock->delay = 0;
|
||||
clock->cbs = cbs;
|
||||
clock->cbs_data = cbs_data;
|
||||
|
@ -568,11 +571,12 @@ static vlc_clock_t *vlc_clock_main_Create(vlc_clock_main_t *main_clock,
|
|||
}
|
||||
|
||||
vlc_clock_t *vlc_clock_main_CreateMaster(vlc_clock_main_t *main_clock,
|
||||
const char *track_str_id,
|
||||
const struct vlc_clock_cbs *cbs,
|
||||
void *cbs_data)
|
||||
{
|
||||
/* The master has always the 0 priority */
|
||||
vlc_clock_t *clock = vlc_clock_main_Create(main_clock, 0, cbs, cbs_data);
|
||||
vlc_clock_t *clock = vlc_clock_main_Create(main_clock, track_str_id, 0, cbs, cbs_data);
|
||||
if (!clock)
|
||||
return NULL;
|
||||
|
||||
|
@ -594,7 +598,7 @@ vlc_clock_t *vlc_clock_main_CreateMaster(vlc_clock_main_t *main_clock,
|
|||
vlc_clock_t *vlc_clock_main_CreateInputMaster(vlc_clock_main_t *main_clock)
|
||||
{
|
||||
/* The master has always the 0 priority */
|
||||
vlc_clock_t *clock = vlc_clock_main_Create(main_clock, 0, NULL, NULL);
|
||||
vlc_clock_t *clock = vlc_clock_main_Create(main_clock, NULL, 0, NULL, NULL);
|
||||
if (!clock)
|
||||
return NULL;
|
||||
|
||||
|
@ -618,6 +622,7 @@ vlc_clock_t *vlc_clock_main_CreateInputMaster(vlc_clock_main_t *main_clock)
|
|||
}
|
||||
|
||||
vlc_clock_t *vlc_clock_main_CreateSlave(vlc_clock_main_t *main_clock,
|
||||
const char* track_str_id,
|
||||
enum es_format_category_e cat,
|
||||
const struct vlc_clock_cbs *cbs,
|
||||
void *cbs_data)
|
||||
|
@ -639,7 +644,7 @@ vlc_clock_t *vlc_clock_main_CreateSlave(vlc_clock_main_t *main_clock,
|
|||
break;
|
||||
}
|
||||
|
||||
vlc_clock_t *clock = vlc_clock_main_Create(main_clock, priority, cbs,
|
||||
vlc_clock_t *clock = vlc_clock_main_Create(main_clock, track_str_id, priority, cbs,
|
||||
cbs_data);
|
||||
if (!clock)
|
||||
return NULL;
|
||||
|
@ -655,7 +660,7 @@ vlc_clock_t *vlc_clock_main_CreateSlave(vlc_clock_main_t *main_clock,
|
|||
vlc_clock_t *vlc_clock_CreateSlave(const vlc_clock_t *clock,
|
||||
enum es_format_category_e cat)
|
||||
{
|
||||
return vlc_clock_main_CreateSlave(clock->owner, cat, NULL, NULL);
|
||||
return vlc_clock_main_CreateSlave(clock->owner, clock->track_str_id, cat, NULL, NULL);
|
||||
}
|
||||
|
||||
void vlc_clock_Delete(vlc_clock_t *clock)
|
||||
|
|
|
@ -97,6 +97,7 @@ void vlc_clock_main_ChangePause(vlc_clock_main_t *clock, vlc_tick_t system_now,
|
|||
* You must use vlc_clock_Delete to free it.
|
||||
*/
|
||||
vlc_clock_t *vlc_clock_main_CreateMaster(vlc_clock_main_t *main_clock,
|
||||
const char *track_str_id,
|
||||
const struct vlc_clock_cbs *cbs,
|
||||
void *cbs_data);
|
||||
|
||||
|
@ -118,6 +119,7 @@ vlc_clock_t *vlc_clock_main_CreateInputMaster(vlc_clock_main_t *main_clock);
|
|||
* You must use vlc_clock_Delete to free it.
|
||||
*/
|
||||
vlc_clock_t *vlc_clock_main_CreateSlave(vlc_clock_main_t *main_clock,
|
||||
const char *track_str_id,
|
||||
enum es_format_category_e cat,
|
||||
const struct vlc_clock_cbs *cbs,
|
||||
void *cbs_data);
|
||||
|
|
|
@ -2315,12 +2315,14 @@ static void EsOutCreateDecoder( es_out_t *out, es_out_id_t *p_es )
|
|||
p_es->master = true;
|
||||
p_es->p_pgrm->p_master_es_clock = p_es->p_clock =
|
||||
vlc_clock_main_CreateMaster( p_es->p_pgrm->p_main_clock,
|
||||
p_es->id.str_id,
|
||||
&clock_cbs, p_es );
|
||||
}
|
||||
else
|
||||
{
|
||||
p_es->master = false;
|
||||
p_es->p_clock = vlc_clock_main_CreateSlave( p_es->p_pgrm->p_main_clock,
|
||||
p_es->id.str_id,
|
||||
p_es->fmt.i_cat,
|
||||
&clock_cbs, p_es );
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue