[FFmpeg-devel] [PATCH 5/5] avfilter/drawutils: support native-endian instead of little endian

Muhammad Faiz mfcc64 at gmail.com
Sun Jan 27 18:38:54 EET 2019


On Sun, Jan 27, 2019 at 11:02 PM Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:
>
> 2019-01-27 16:18 GMT+01:00, Muhammad Faiz <mfcc64 at gmail.com>:
> > On Sun, Jan 27, 2019 at 5:25 PM Marton Balint <cus at passwd.hu> wrote:
> >>
> >>
> >>
> >> On Sun, 27 Jan 2019, Muhammad Faiz wrote:
> >>
> >> > Signed-off-by: Muhammad Faiz <mfcc64 at gmail.com>
> >> > ---
> >> > Old thread is here:
> >> > https://ffmpeg.org/pipermail/ffmpeg-devel/2016-June/195941.html
> >> > Need someone test it on big-endian machine.
> >> >
> >> > libavfilter/drawutils.c     | 48 +++++++++++++++++++++----------------
> >> > libavfilter/vf_rotate.c     | 26 ++++++++++----------
> >> > libavfilter/vf_tinterlace.c | 30 +++++++++++------------
> >> > 3 files changed, 54 insertions(+), 50 deletions(-)
> >> >
> >> > diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c
> >> > index 5f4cb548f0..12bdfcb900 100644
> >> > --- a/libavfilter/drawutils.c
> >> > +++ b/libavfilter/drawutils.c
> >> > @@ -175,6 +175,17 @@ void ff_copy_rectangle(uint8_t *dst[4], int
> >> > dst_linesize[4],
> >> >     }
> >> > }
> >> >
> >> > +static int is_native_endian(const AVPixFmtDescriptor *desc)
> >> > +{
> >> > +    int len = strlen(desc->name);
> >> > +
> >> > +    if (!strcmp(desc->name + len - 2, "be"))
> >> > +        return HAVE_BIGENDIAN;
> >> > +    if (!strcmp(desc->name + len - 2, "le"))
> >> > +        return !HAVE_BIGENDIAN;
> >> > +    return 1;
> >> > +}
> >> > +
> >>
> >> Maybe you can check if shift+depth > 8 and FMT_FLAG_BE
> >> instead of string compare?
> >
> > I don't really understand your code.
>
> Something like "return shift + depth <=8 ||
> desc->flags | FMT_FLAG_BE ^ !HAVE_BIGENDIAN"

OK, I will try.

>
> And since the new function is only used once, it may
> be more readable not to add a new function.

OK.

>
> > Currently I can't test on big-endian platform. Adding
> > something that I don't understand and
> > can't test is not a good idea.
>
> But your patchset does change big-endian code and only
> improves big-endian, no?

Yes. I write it blindly. I really depends on Michael's report on
big-endian platform.


More information about the ffmpeg-devel mailing list