On Sat, Sep 26, 2020 at 12:27:48PM +0200, Andreas Rheinhardt wrote: > The MagicYUV decoder currently sets both the length and the symbol field > of an array of HuffEntries; hereby the symbol of the ith entry (0-based) > is just i. Then said array gets sorted so that entries with greater > length are at the end and entries with the same length are ordered so > that those with smaller symbols are at the end. Afterwards the newly > sorted array is traversed in reverse order. This commit instead inverts > the ordering and traverses the array in its ordinary order in order to > simplify understanding.
apply as you wish. > > Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> > --- > This commit actually only exists to simplify understanding of the next > two commits; apart from that, it is unnecessary. > > libavcodec/magicyuv.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/libavcodec/magicyuv.c b/libavcodec/magicyuv.c > index 93ee739093..1b3f4cfc6b 100644 > --- a/libavcodec/magicyuv.c > +++ b/libavcodec/magicyuv.c > @@ -77,24 +77,23 @@ typedef struct MagicYUVContext { > static int huff_cmp_len(const void *a, const void *b) > { > const HuffEntry *aa = a, *bb = b; > - return (aa->len - bb->len) * 4096 + bb->sym - aa->sym; > + return (bb->len - aa->len) * 4096 + aa->sym - bb->sym; > } > > static int huff_build(HuffEntry he[], VLC *vlc, int nb_elems) > { > uint32_t code; > - int i; > > AV_QSORT(he, nb_elems, HuffEntry, huff_cmp_len); > > code = 1; > - for (i = nb_elems - 1; i >= 0; i--) { > + for (unsigned i = 0; i < nb_elems; i++) { > he[i].code = code >> (32 - he[i].len); > code += 0x80000000u >> (he[i].len - 1); > } > > ff_free_vlc(vlc); > - return ff_init_vlc_sparse(vlc, FFMIN(he[nb_elems - 1].len, 12), nb_elems, > + return ff_init_vlc_sparse(vlc, FFMIN(he[0].len, 12), nb_elems, > &he[0].len, sizeof(he[0]), sizeof(he[0].len), > &he[0].code, sizeof(he[0]), sizeof(he[0].code), > &he[0].sym, sizeof(he[0]), sizeof(he[0].sym), > 0); > -- > 2.25.1 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".