color_utils.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. * Copyright (c) 2015 Kevin Wheatley <kevin.j.wheatley@gmail.com>
  3. *
  4. * This file is part of FFmpeg.
  5. *
  6. * FFmpeg is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU Lesser General Public
  8. * License as published by the Free Software Foundation; either
  9. * version 2.1 of the License, or (at your option) any later version.
  10. *
  11. * FFmpeg is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * Lesser General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU Lesser General Public
  17. * License along with FFmpeg; if not, write to the Free Software
  18. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  19. */
  20. #ifndef AVUTIL_COLOR_UTILS_H
  21. #define AVUTIL_COLOR_UTILS_H
  22. #include "libavutil/pixfmt.h"
  23. /**
  24. * Determine a suitable 'gamma' value to match the supplied
  25. * AVColorTransferCharacteristic.
  26. *
  27. * See Apple Technical Note TN2257 (https://developer.apple.com/library/mac/technotes/tn2257/_index.html)
  28. *
  29. * @return Will return an approximation to the simple gamma function matching
  30. * the supplied Transfer Characteristic, Will return 0.0 for any
  31. * we cannot reasonably match against.
  32. */
  33. double avpriv_get_gamma_from_trc(enum AVColorTransferCharacteristic trc);
  34. typedef double (*avpriv_trc_function)(double);
  35. /**
  36. * Determine the function needed to apply the given
  37. * AVColorTransferCharacteristic to linear input.
  38. *
  39. * The function returned should expect a nominal domain and range of [0.0-1.0]
  40. * values outside of this range maybe valid depending on the chosen
  41. * characteristic function.
  42. *
  43. * @return Will return pointer to the function matching the
  44. * supplied Transfer Characteristic. If unspecified will
  45. * return NULL:
  46. */
  47. avpriv_trc_function avpriv_get_trc_function_from_trc(enum AVColorTransferCharacteristic trc);
  48. #endif