On Fri, Feb 01, 2019 at 10:29:13PM +0100, Marton Balint wrote: > > > On Fri, 25 Jan 2019, Marton Balint wrote: > > > > > > >On Fri, 25 Jan 2019, Michael Niedermayer wrote: > > > >>On Thu, Jan 24, 2019 at 09:38:00PM +0100, Marton Balint wrote: > >>>discard_pid can be quite expensive, so let's cache it and recalculate > >>>it > >on > >>>every packet start. > >>> > >>>ffmpeg -y -i samples/MPEG-VOB/sdtv/RAI.ts -c copy -map 0:v:0 -map > >>>0:a:0 -f > >mpegts /dev/null > >>> > >>>Before: > >>> 1685 decicycles in handle_packet, 523483 runs, 805 skips > >>> > >>>After: > >>> 883 decicycles in handle_packet, 523505 runs, 783 skips > >>> > >>>Signed-off-by: Marton Balint <c...@passwd.hu> > >>>--- > >>> libavformat/mpegts.c | 7 +++++-- > >>> 1 file changed, 5 insertions(+), 2 deletions(-) > >>> > >>>diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c > >>>index 300db110d4..b04fd7b4f4 100644 > >>>--- a/libavformat/mpegts.c > >>>+++ b/libavformat/mpegts.c > >>>@@ -91,6 +91,7 @@ struct MpegTSFilter { > >>> int es_id; > >>> int last_cc; /* last cc code (-1 if first packet) */ > >>> int64_t last_pcr; > >>>+ int discard; > >>> enum MpegTSFilterType type; > >>> union { > >>> MpegTSPESFilter pes_filter; > >>>@@ -2474,8 +2475,6 @@ static int handle_packet(MpegTSContext *ts, > >>>const > >uint8_t *packet) > >>> int64_t pos; > >>> > >>> pid = AV_RB16(packet + 1) & 0x1fff; > >>>- if (pid && discard_pid(ts, pid)) > >>>- return 0; > >>> is_start = packet[1] & 0x40; > >>> tss = ts->pids[pid]; > >>> if (ts->auto_guess && !tss && is_start) { > >>>@@ -2484,6 +2483,10 @@ static int handle_packet(MpegTSContext *ts, > >>>const > >uint8_t *packet) > >>> } > >>> if (!tss) > >>> return 0; > >>>+ if (is_start) > >>>+ tss->discard = discard_pid(ts, pid); > >>>+ if (tss->discard) > >>>+ return 0; > >> > >>this is moving the discard check over the auto_guess /add_pes_stream() > >>have you checked or know that this is ok ? > >>its not immedeatly obviouls (to me) why this would have no side effects > > > >As far as I see that code is used to add streams which are not part of the > >detected programs. Therefore program discards should not concern them. > > Will apply soon.
sure ok thanks [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB I am the wisest man alive, for I know one thing, and that is that I know nothing. -- Socrates
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel