* Process a packet
*/
-static void
-timeshift_smt_start ( timeshift_t *ts, streaming_start_t *ss )
-{
- int i;
-
- /* Update early teletext index */
- for (i = 0; i < ss->ss_num_components; i++)
- if (ss->ss_components[i].ssc_type == SCT_TELETEXT) {
- ts->teletextidx0 = ss->ss_components[i].ssc_index;
- break;
- }
-}
-
static int
timeshift_packet( timeshift_t *ts, streaming_message_t *sm )
{
if (pkt->pkt_pts != PTS_UNSET) {
/* avoid to update last_wr_time for TELETEXT packets */
- if (ts->teletextidx0 != pkt->pkt_componentindex) {
+ if (pkt->pkt_type != SCT_TELETEXT) {
time = ts_rescale(pkt->pkt_pts, 1000000);
if (ts->last_wr_time < time)
ts->last_wr_time = time;
else if (type == SMT_MPEGTS)
ts->packet_mode = 0;
- else if (type == SMT_START)
- timeshift_smt_start(ts, (streaming_start_t *)sm->sm_data);
-
/* Send to the writer thread */
if (ts->packet_mode) {
sm->sm_time = ts->last_wr_time;
int file_segments; ///< Count of segments in files
int vididx; ///< Index of (current) video stream
- int teletextidx0; ///< Index of (current) teletext stream (EARLY)
- int teletextidx; ///< Index of (current) teletext stream
streaming_start_t *smt_start; ///< Streaming start info
ts->vididx = ss->ss_components[i].ssc_index;
break;
}
- /* Update teletext index */
- for (i = 0; i < ss->ss_num_components; i++)
- if (ss->ss_components[i].ssc_type == SCT_TELETEXT) {
- ts->teletextidx = ss->ss_components[i].ssc_index;
- break;
- }
}
/*
case SMT_PACKET:
if (timeshift_conf.teletext && sm->sm_type == SMT_PACKET) {
pkt = sm->sm_data;
- teletext = pkt->pkt_componentindex == ts->teletextidx;
+ teletext = pkt->pkt_type == SCT_TELETEXT;
}
/* fall thru */
case SMT_SIGNAL_STATUS: