On Mon, Apr 22, 2013 at 05:22:09PM +0200, Janne Grunau wrote:
> On 2013-04-22 16:47:55 +0200, Janne Grunau wrote:
> > ---
> > forgot to add XYZ12* as valid inputs/outputs for swscale 
> > 
> >  libswscale/swscale_unscaled.c | 3 ++-
> >  libswscale/utils.c            | 2 ++
> >  2 files changed, 4 insertions(+), 1 deletion(-)
> > 
> > diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
> > index a994d6f..433dbdb 100644
> > --- a/libswscale/swscale_unscaled.c
> > +++ b/libswscale/swscale_unscaled.c
> > @@ -1030,7 +1030,8 @@ void ff_get_unscaled_swscale(SwsContext *c)
> >          IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_RGB444) ||
> >          IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_RGB48)  ||
> >          IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_RGB555) ||
> > -        IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_RGB565))
> > +        IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_RGB565) ||
> > +        IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_XYZ12))
> >          c->swScale = packed_16bpc_bswap;
> >  
> >      if ((usePal(srcFormat) && (
> > diff --git a/libswscale/utils.c b/libswscale/utils.c
> > index 6bbdb64..4dbad9b 100644
> > --- a/libswscale/utils.c
> > +++ b/libswscale/utils.c
> > @@ -170,6 +170,8 @@ static const FormatEntry format_entries[AV_PIX_FMT_NB] 
> > = {
> >      [AV_PIX_FMT_GBRP10BE]    = { 1, 1 },
> >      [AV_PIX_FMT_GBRP16LE]    = { 1, 0 },
> >      [AV_PIX_FMT_GBRP16BE]    = { 1, 0 },
> > +    [AV_PIX_FMT_XYZ12BE]     = { 1, 1 },
> > +    [AV_PIX_FMT_XYZ12LE]     = { 1, 1 },
> >  };
> 
> This doesn't work since it makes swscale assume every conversion with
> AV_PIX_FMT_XYZ12* works now which is obviously not true. Any ideas how
> to solve that?

abuse some filter for making output always little-endian?
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to