mbox series

[FFmpeg-devel,v2,0/1,WIP] avutil/csp changes

Message ID 20220522053144.3707803-1-leo.izen@gmail.com
Headers show
Series avutil/csp changes | expand

Message

Leo Izen May 22, 2022, 5:31 a.m. UTC
Changes in v2:
- increase precision for AVR() macro to 100k, at haasn's request
- add #define AVUTIL_CSP_DENOM 100000
- add 0.5 to the AVR macro definition to get exact values from truncation

This patch is a work in progress example for swapping these
structs from doubles to AVRationals.

There's two main discussions here to be had
- Is this API to be exposed as avpriv_ or av_?
- Should these structs use AVRational or double values?

I don't believe a consensus has been reached on this yet, but I've attached
an AVRational version of it so we can see the pros/cons.

Leo Izen (1):
  avutil/csp: create public API for colorspace structs

 libavfilter/colorspace.c    | 143 ++++++++----------------------------
 libavfilter/colorspace.h    |  31 +-------
 libavfilter/fflcms2.c       |  25 ++++---
 libavfilter/fflcms2.h       |   4 +-
 libavfilter/vf_colorspace.c |  37 +++++-----
 libavfilter/vf_iccdetect.c  |   5 +-
 libavfilter/vf_tonemap.c    |  17 +----
 libavutil/Makefile          |   2 +
 libavutil/csp.c             | 121 ++++++++++++++++++++++++++++++
 libavutil/csp.h             |  51 +++++++++++++
 libavutil/version.h         |   4 +-
 11 files changed, 252 insertions(+), 188 deletions(-)
 create mode 100644 libavutil/csp.c
 create mode 100644 libavutil/csp.h

Comments

Niklas Haas May 22, 2022, 11:48 a.m. UTC | #1
Would it make sense to regroup the structs like this?

typedef struct AVCIExy {
    AVRational x, y;
} AVCIExy;

struct AVPrimaryCoefficients {
    AVCIExy r, g, b;
    AVCIExy wp;
};

typedef AVCIExy AVWhitepointCoefficients; /* optional */

On Sun, 22 May 2022 01:31:43 -0400 Leo Izen <leo.izen@gmail.com> wrote:
> Changes in v2:
> - increase precision for AVR() macro to 100k, at haasn's request
> - add #define AVUTIL_CSP_DENOM 100000
> - add 0.5 to the AVR macro definition to get exact values from truncation
> 
> This patch is a work in progress example for swapping these
> structs from doubles to AVRationals.
> 
> There's two main discussions here to be had
> - Is this API to be exposed as avpriv_ or av_?
> - Should these structs use AVRational or double values?
> 
> I don't believe a consensus has been reached on this yet, but I've attached
> an AVRational version of it so we can see the pros/cons.
> 
> Leo Izen (1):
>   avutil/csp: create public API for colorspace structs
> 
>  libavfilter/colorspace.c    | 143 ++++++++----------------------------
>  libavfilter/colorspace.h    |  31 +-------
>  libavfilter/fflcms2.c       |  25 ++++---
>  libavfilter/fflcms2.h       |   4 +-
>  libavfilter/vf_colorspace.c |  37 +++++-----
>  libavfilter/vf_iccdetect.c  |   5 +-
>  libavfilter/vf_tonemap.c    |  17 +----
>  libavutil/Makefile          |   2 +
>  libavutil/csp.c             | 121 ++++++++++++++++++++++++++++++
>  libavutil/csp.h             |  51 +++++++++++++
>  libavutil/version.h         |   4 +-
>  11 files changed, 252 insertions(+), 188 deletions(-)
>  create mode 100644 libavutil/csp.c
>  create mode 100644 libavutil/csp.h
> 
> -- 
> 2.36.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-request@ffmpeg.org with subject "unsubscribe".