Sending in the new patch :-). On Wed, Mar 2, 2016 at 5:20 PM, Michael Niedermayer <mich...@niedermayer.cc> wrote:
> On Wed, Mar 02, 2016 at 04:35:08PM -0800, NagaChaitanya Vellanki wrote: > > --- > > libavutil/Makefile | 1 + > > libavutil/color_utils.c | 65 > ++++++++++++++++++++++++++++++++++++++++++++++ > > tests/fate/libavutil.mak | 4 +++ > > tests/ref/fate/color_utils | 38 +++++++++++++++++++++++++++ > > 4 files changed, 108 insertions(+) > > create mode 100644 tests/ref/fate/color_utils > > > > diff --git a/libavutil/Makefile b/libavutil/Makefile > > index a4d79cd..934564f 100644 > > --- a/libavutil/Makefile > > +++ b/libavutil/Makefile > > @@ -176,6 +176,7 @@ TESTPROGS = adler32 > \ > > bprint > \ > > cast5 > \ > > camellia > \ > > + color_utils > \ > > cpu > \ > > crc > \ > > des > \ > > diff --git a/libavutil/color_utils.c b/libavutil/color_utils.c > > index b68b402..e53f408 100644 > > --- a/libavutil/color_utils.c > > +++ b/libavutil/color_utils.c > > @@ -21,6 +21,7 @@ > > #include <stddef.h> > > #include <math.h> > > > > +#include "common.h" > > #include "libavutil/color_utils.h" > > #include "libavutil/pixfmt.h" > > > > @@ -216,3 +217,67 @@ avpriv_trc_function > avpriv_get_trc_function_from_trc(enum AVColorTransferCharact > > } > > return func; > > } > > + > > +#ifdef TEST > > +// LCOV_EXCL_START > > + > > +int main(int argc, char *argv[]) > > +{ > > + int i; > > + struct test { > > + enum AVColorTransferCharacteristic trc; > > + const char* func_name; > > + double arg; > > + double result; > > + } tests[] = { > > + { AVCOL_TRC_BT709, "avpriv_trc_bt709", -0.01, 0.0 }, > > + { AVCOL_TRC_SMPTE170M, "avpriv_trc_bt709", 0.005, 0.022500 }, > > + { AVCOL_TRC_BT2020_10, "avpriv_trc_bt709", 0.015, 0.067500 }, > > + { AVCOL_TRC_BT2020_12, "avpriv_trc_bt709", 1.0, 1.0 }, > > + { AVCOL_TRC_BT2020_12, "avpriv_trc_bt709", 15123.4567, 83.452916 > }, > > + { AVCOL_TRC_GAMMA22, "avpriv_trc_gamma22", -0.01, 0.0 }, > > + { AVCOL_TRC_GAMMA22, "avpriv_trc_gamma22", 1.0, 1.0 }, > > + { AVCOL_TRC_GAMMA22, "avpriv_trc_gamma22", 125.098765, 8.980424 }, > > + { AVCOL_TRC_GAMMA28, "avpriv_trc_gamma28", -0.01, 0.0 }, > > + { AVCOL_TRC_GAMMA28, "avpriv_trc_gamma28", 1.0, 1.0 }, > > + { AVCOL_TRC_GAMMA28, "avpriv_trc_gamma28", 99999.899998, > 61.054001 }, > > + { AVCOL_TRC_SMPTE240M, "avpriv_trc_smpte240M", -0.01, 0.0 }, > > + { AVCOL_TRC_SMPTE240M, "avpriv_trc_smpte240M", 0.015, 0.060000 }, > > + { AVCOL_TRC_LINEAR, "avpriv_trc_linear", 0.0, 0.0 }, > > + { AVCOL_TRC_LINEAR, "avpriv_trc_linear", 0.1, 0.1 }, > > + { AVCOL_TRC_LINEAR, "avpriv_trc_linear", -0.1, -0.1 }, > > + { AVCOL_TRC_LOG, "avpriv_trc_log", 0.009, 0.0 }, > > + { AVCOL_TRC_LOG, "avpriv_trc_log", 1.0, 1.0 }, > > + { AVCOL_TRC_LOG, "avpriv_trc_log", 98678.4231, 3.497111 }, > > + { AVCOL_TRC_LOG_SQRT, "avpriv_trc_log_sqrt", 0.00316227760, 0.0 }, > > + { AVCOL_TRC_LOG_SQRT, "avpriv_trc_log_sqrt", 1.0, 1.0 }, > > + { AVCOL_TRC_LOG_SQRT, "avpriv_trc_log_sqrt", 19845.88923, > 2.719068 }, > > + { AVCOL_TRC_IEC61966_2_4, "avpriv_trc_iec61966_2_4", 0.0, 0.0 }, > > + { AVCOL_TRC_IEC61966_2_4, "avpriv_trc_iec61966_2_4", > -0.018053968510807, -0.081243 }, > > + { AVCOL_TRC_IEC61966_2_4, "avpriv_trc_iec61966_2_4", 0.015, > 0.067500 }, > > + { AVCOL_TRC_IEC61966_2_4, "avpriv_trc_iec61966_2_4", 98245.76983, > 193.835711 }, > > + { AVCOL_TRC_BT1361_ECG, "avpriv_trc_bt1361", 0.0, 0.0 }, > > + { AVCOL_TRC_BT1361_ECG, "avpriv_trc_bt1361", -0.0045, -0.069898 }, > > + { AVCOL_TRC_BT1361_ECG, "avpriv_trc_bt1361", 0.015, 0.067500 }, > > + { AVCOL_TRC_BT1361_ECG, "avpriv_trc_bt1361", 1999.11123, > 33.512490 }, > > + { AVCOL_TRC_IEC61966_2_1, "avpriv_trc_iec61966_2_1", 0.0, 0.0 }, > > + { AVCOL_TRC_IEC61966_2_1, "avpriv_trc_iec61966_2_1", 0.015, > 0.128354 }, > > + { AVCOL_TRC_IEC61966_2_1, "avpriv_trc_iec61966_2_1", 6945.443, > 42.013863 }, > > + { AVCOL_TRC_SMPTEST2084, "avpriv_trc_smpte_st2084", -0.01, 0.0 }, > > + { AVCOL_TRC_SMPTEST2084, "avpriv_trc_smpte_st2084", 0.0, 0.000001 > }, > > + { AVCOL_TRC_SMPTEST428_1, "avpriv_trc_smpte_st428_1", -0.01, 0.0 > }, > > + { AVCOL_TRC_SMPTEST428_1, "avpriv_trc_smpte_st428_1", 52.37, > 4.432321 }, > > + { AVCOL_TRC_SMPTEST428_1, "avpriv_trc_smpte_st428_1", 0.0, 0.0 } > > this can be simplified, you dont need to list the results explicitly > nor the functions or enum values and the testpoints can be the same > for all > > > for (i = 0; i<AVCOL_TRC_NB; i++) { > avpriv_trc_function func = avpriv_get_trc_function_from_trc(i); > for (j = 0; FF_ARRAY_ELEMS(testpoints); j++) { > double result = func(testpoints[j]); > printf(... > } > } > > [...] > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > Old school: Use the lowest level language in which you can solve the > problem > conveniently. > New school: Use the highest level language in which the latest > supercomputer > can solve the problem without the user falling asleep waiting. > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel