2019-01-06 12:12 GMT+01:00, Peter Ross <pr...@xvid.org>: > for the '127-bit shift left' algorithm to work as intended, little-endian > reads and writes must be used. > > libavcodec/dstdec.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/libavcodec/dstdec.c b/libavcodec/dstdec.c > index 511861f4d2..e9653edc9f 100644 > --- a/libavcodec/dstdec.c > +++ b/libavcodec/dstdec.c > @@ -343,8 +343,15 @@ static int decode_frame(AVCodecContext *avctx, void > *data, > v = ((predict >> 15) ^ residual) & 1; > dsd[((i >> 3) * channels + ch) << 2] |= v << (7 - (i & 0x7 )); > > - AV_WN64A(status + 8, (AV_RN64A(status + 8) << 1) | > ((AV_RN64A(status) >> 63) & 1)); > - AV_WN64A(status, (AV_RN64A(status) << 1) | v); > +#if HAVE_BIGENDIAN > +#define RL64A AV_RL64 > +#define WL64A AV_WL64 > +#else > +#define RL64A AV_RN64A > +#define WL64A AV_WN64A > +#endif > + WL64A(status + 8, (RL64A(status + 8) << 1) | ((RL64A(status) >> > 63) & 1)); > + WL64A(status, (RL64A(status) << 1) | v);
Why not using AV_WL64() and and AV_RL64()? Is there a measurable speed difference? Carl Eugen _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel