Browse Source

demux: mock: allow a track to be added at a later time

pull/77/head
Hugo Beauzée-Luyssen 8 years ago
committed by Thomas Guillem
parent
commit
f7b08bf6a1
  1. 23
      modules/demux/mock.c

23
modules/demux/mock.c

@ -108,6 +108,9 @@ var_InheritFourcc(vlc_object_t *obj, const char *name)
X(can_control_rate, bool, add_bool, var_InheritBool, true) \
X(can_record, bool, add_bool, var_InheritBool, true) \
X(error, bool, add_bool, var_InheritBool, false) \
X(add_video_track_at, vlc_tick_t, add_integer, var_InheritInteger, VLC_TICK_INVALID ) \
X(add_audio_track_at, vlc_tick_t, add_integer, var_InheritInteger, VLC_TICK_INVALID ) \
X(add_spu_track_at, vlc_tick_t, add_integer, var_InheritInteger, VLC_TICK_INVALID ) \
struct demux_sys
{
@ -590,6 +593,26 @@ Demux(demux_t *demux)
sys->pts += sys->step_length;
if (sys->pts > sys->length)
sys->pts = sys->length;
if (sys->add_video_track_at != VLC_TICK_INVALID &&
sys->add_video_track_at <= sys->pts)
{
InitVideoTracks(demux, 0, 1);
sys->add_video_track_at = VLC_TICK_INVALID;
}
if (sys->add_audio_track_at != VLC_TICK_INVALID &&
sys->add_audio_track_at <= sys->pts)
{
InitAudioTracks(demux, 0, 1);
sys->add_audio_track_at = VLC_TICK_INVALID;
}
if (sys->add_spu_track_at != VLC_TICK_INVALID &&
sys->add_spu_track_at <= sys->pts)
{
InitSubTracks(demux, 0, 1);
sys->add_spu_track_at = VLC_TICK_INVALID;
}
return sys->pts == sys->length ? VLC_DEMUXER_EOF : VLC_DEMUXER_SUCCESS;
}

Loading…
Cancel
Save