Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
mpegts input: add back last_mp, it should be safe
The PID subscriptions are protected using mi_output lock, so
the whole mpegts_input_process() subroutine should be safe
for the mp structure caching.
  • Loading branch information
perexg committed Nov 14, 2014
1 parent 47ecb74 commit fbf7a3d
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions src/input/mpegts/mpegts_input.c
Expand Up @@ -734,7 +734,7 @@ mpegts_input_process
uint8_t cc;
uint8_t *tsb = mpkt->mp_data;
int len = mpkt->mp_len;
int table, stream, f;
int table = 0, stream = 0, f;
mpegts_pid_t *mp;
mpegts_pid_sub_t *mps;
service_t *s;
Expand Down Expand Up @@ -768,6 +768,7 @@ mpegts_input_process
/* Ignore NUL packets */
if (pid == 0x1FFF) goto done;

/* Remove in future or move it outside this loop */
lock_assert(&mi->mi_output_lock);

/* Find PID */
Expand All @@ -783,10 +784,8 @@ mpegts_input_process
mp->mp_cc = (cc + 1) & 0xF;
}

// Note: there is a minor danger this caching will get things
// wrong for a brief period of time if the registrations on
// the PID change
if (mp != last_mp) {
last_mp = mp;
if (pid == 0) {
stream = MPS_STREAM;
table = MPS_TABLE;
Expand Down

0 comments on commit fbf7a3d

Please sign in to comment.