Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
mpegts table: added MT_ONESHOT, change pmt scan weight
  • Loading branch information
perexg committed Apr 27, 2015
1 parent db31014 commit 4fce256
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 10 deletions.
14 changes: 8 additions & 6 deletions src/input/mpegts.h
Expand Up @@ -154,6 +154,7 @@ typedef struct mpegts_pid_sub
#define MPS_WEIGHT_RAW 400
#define MPS_WEIGHT_NIT2 300
#define MPS_WEIGHT_SDT2 300
#define MPS_WEIGHT_PMT_SCAN 100
int mps_weight;
void *mps_owner;
} mpegts_pid_sub_t;
Expand Down Expand Up @@ -183,12 +184,13 @@ struct mpegts_table
#define MT_FULL 0x0002
#define MT_QUICKREQ 0x0004
#define MT_FASTSWITCH 0x0008
#define MT_RECORD 0x0010
#define MT_SKIPSUBS 0x0020
#define MT_SCANSUBS 0x0040
#define MT_FAST 0x0080
#define MT_SLOW 0x0100
#define MT_DEFER 0x0200
#define MT_ONESHOT 0x0010
#define MT_RECORD 0x0020
#define MT_SKIPSUBS 0x0040
#define MT_SCANSUBS 0x0080
#define MT_FAST 0x0100
#define MT_SLOW 0x0200
#define MT_DEFER 0x0400

/**
* PID subscription weight
Expand Down
5 changes: 3 additions & 2 deletions src/input/mpegts/dvb_psi.c
Expand Up @@ -889,8 +889,9 @@ dvb_pat_callback
}
s->s_dvb_check_seen = dispatch_clock;
mpegts_table_add(mm, DVB_PMT_BASE, DVB_PMT_MASK, dvb_pmt_callback,
NULL, "pmt", MT_CRC | MT_QUICKREQ | MT_SCANSUBS,
pid, MPS_WEIGHT_PMT);
NULL, "pmt",
MT_CRC | MT_QUICKREQ | MT_ONESHOT | MT_SCANSUBS,
pid, MPS_WEIGHT_PMT_SCAN);

if (save)
service_request_save((service_t*)s, 1);
Expand Down
8 changes: 6 additions & 2 deletions src/input/mpegts/mpegts_table.c
Expand Up @@ -42,11 +42,13 @@ mpegts_table_consistency_check ( mpegts_mux_t *mm )
}

static void
mpegts_table_fastswitch ( mpegts_mux_t *mm )
mpegts_table_fastswitch ( mpegts_mux_t *mm, mpegts_table_t *mtm )
{
char buf[256];
mpegts_table_t *mt;

assert(mm == mtm->mt_mux);

if(mm->mm_scan_state != MM_SCAN_STATE_ACTIVE)
return;

Expand All @@ -59,6 +61,8 @@ mpegts_table_fastswitch ( mpegts_mux_t *mm )
return;
}
}
if (mtm->mt_flags & MT_ONESHOT)
mm->mm_close_table(mm, mtm);
pthread_mutex_unlock(&mm->mm_tables_lock);

mpegts_mux_nice_name(mm, buf, sizeof(buf));
Expand Down Expand Up @@ -96,7 +100,7 @@ mpegts_table_dispatch
mt->mt_count++;

if(!ret && mt->mt_flags & (MT_QUICKREQ|MT_FASTSWITCH))
mpegts_table_fastswitch(mt->mt_mux);
mpegts_table_fastswitch(mt->mt_mux, mt);
}

void
Expand Down

0 comments on commit 4fce256

Please sign in to comment.