[FFmpeg-devel] [RFC] cinedec: report meaningful gamma value

Peter Ross pross at xvid.org
Sun Nov 9 11:55:59 CET 2014


For cehoyos:

To apply use:
    -vf 'lutyuv=gammaval(1.0/GAMMA)'
---
 libavformat/cinedec.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/libavformat/cinedec.c b/libavformat/cinedec.c
index 632f46c..5989039 100644
--- a/libavformat/cinedec.c
+++ b/libavformat/cinedec.c
@@ -89,6 +89,12 @@ static int set_metadata_float(AVDictionary **dict, const char *key, float value,
     return 0;
 }
 
+static const float xlat_gamma(int gamma)
+{
+    return gamma == 34 ? 1.f / 0.45f
+                       : powf(10.f, gamma / 100.f);
+}
+
 static int cine_read_header(AVFormatContext *avctx)
 {
     AVIOContext *pb = avctx->pb;
@@ -186,7 +192,7 @@ static int cine_read_header(AVFormatContext *avctx)
 
     set_metadata_int(&st->metadata, "brightness", avio_rl32(pb), 1);
     set_metadata_int(&st->metadata, "contrast", avio_rl32(pb), 1);
-    set_metadata_int(&st->metadata, "gamma", avio_rl32(pb), 1);
+    set_metadata_float(&st->metadata, "gamma", xlat_gamma(avio_rl32(pb)), 0);
 
     avio_skip(pb, 12 + 16); // Reserved1 .. AutoExpRect
     set_metadata_float(&st->metadata, "wbgain[0].r", av_int2float(avio_rl32(pb)), 1);
-- 
2.1.0

-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20141109/aa8363ff/attachment.asc>


More information about the ffmpeg-devel mailing list