I use dashdemux and adaptivedemux to playback for recorded file in our target environment (e.g TV). recorded file was consist of fragmented MP4 with mpd file. I found issues during REW. please check issue case and review my solutions.
issue No.1 : if try REW from start of period, playback is stopped. solution : when starting trick play, old stream get EOS event and checking valid stream using presence or absence of pad. But, it is not suitable to check the stream pad because EOS push and pad remove are performed in the adaptivedemux expose step at the time of trick play.
issue No.2 : during REW, sometimes playtime increases by 1 second and decreases. solution : when update segment.duration and segment.stop, there are no check whether valid duration or not. so check return value of gst_qtdemux_get_duration function and if duration value is GST_CLOCK_TIME_NONE, do not update segment.duration and segment.stop