mpegts: Make discard_pid() faster for single-program streams
When a stream contains a single program, there's no point in doing a PID -> program lookup. Normally the one and only program isn't disabled, so no packets should be discarded. Before After Mean StdDev Mean StdDev Change discard_pid() 73.8 9.4 20.2 1.5 +264.8% Overall 2300.8 28.0 2253.1 20.6 +2.1% Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
cabb168169
commit
c84ea750cf
@ -239,6 +239,17 @@ static int discard_pid(MpegTSContext *ts, unsigned int pid)
|
||||
int i, j, k;
|
||||
int used = 0, discarded = 0;
|
||||
struct Program *p;
|
||||
|
||||
/* If none of the programs have .discard=AVDISCARD_ALL then there's
|
||||
* no way we have to discard this packet
|
||||
*/
|
||||
for (k = 0; k < ts->stream->nb_programs; k++) {
|
||||
if (ts->stream->programs[k]->discard == AVDISCARD_ALL)
|
||||
break;
|
||||
}
|
||||
if (k == ts->stream->nb_programs)
|
||||
return 0;
|
||||
|
||||
for(i=0; i<ts->nb_prg; i++) {
|
||||
p = &ts->prg[i];
|
||||
for(j=0; j<p->nb_pids; j++) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user