On Sun, Jan 31, 2016 at 10:36:11PM +1100, Peter Ross wrote: > On Fri, Jan 29, 2016 at 09:36:30PM +0000, popcorn mix wrote: > > The index creation is O(N^2) with number of entries (typically thousands). > > On a Raspberry Pi this can take more than 60 seconds to execute for a > > recording of a few hours. > > > > By replacing with an O(N) loop, this takes virtually zero time > > > > This patch has been in all Pi builds of Kodi for the last couple of years, > > so it is quite widely tested. No change in FATE output. > > > > From 4bad5dbd752e96a6dfcb7e46aff1d64996d08ed1 Mon Sep 17 00:00:00 2001 > > From: popcornmix <popcorn...@gmail.com> > > Date: Fri, 29 Jan 2016 20:27:00 +0000 > > Subject: [PATCH] wtv: Speed up wtv index creation > > > > The index creation is O(N^2) with number of entries (typically thousands). > > On a Pi this can take more than 60 seconds to execute for a recording of a > > few hours. > > > > By replacing with an O(N) loop, this takes virtually zero time > > --- > > libavformat/wtvdec.c | 18 ++++++++++-------- > > 1 file changed, 10 insertions(+), 8 deletions(-) > > > > diff --git a/libavformat/wtvdec.c b/libavformat/wtvdec.c > > index e8f6196..b329b7c 100644 > > --- a/libavformat/wtvdec.c > > +++ b/libavformat/wtvdec.c > > @@ -1028,21 +1028,23 @@ static int read_header(AVFormatContext *s) > > pb = wtvfile_open(s, root, root_size, > > ff_timeline_table_0_entries_Events_le16); > > if (pb) { > > int i; > > + AVIndexEntry *e = wtv->index_entries; > > + AVIndexEntry *e_end = wtv->index_entries + > > wtv->nb_index_entries - 1; > > + uint64_t last_position = 0; > > while (1) { > > uint64_t frame_nb = avio_rl64(pb); > > uint64_t position = avio_rl64(pb); > > + while (frame_nb > e->size && e <= e_end) { > > + e->pos = last_position; > > + e++; > > ^^^ this indent isn't aligned.
fixed > > otherwise, great stuff. your implementation is solid. applied thx [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Dictatorship naturally arises out of democracy, and the most aggravated form of tyranny and slavery out of the most extreme liberty. -- Plato
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel