[FFmpeg-cvslog] lavc/dpx: Support GRAY12 colourspace.

Carl Eugen Hoyos git at videolan.org
Mon Nov 14 01:33:42 EET 2016


ffmpeg | branch: master | Carl Eugen Hoyos <cehoyos at ag.or.at> | Thu Nov 10 23:04:46 2016 +0100| [b1367f7e5e6717cbd0ac658f74479b927c1945e3] | committer: Carl Eugen Hoyos

lavc/dpx: Support GRAY12 colourspace.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b1367f7e5e6717cbd0ac658f74479b927c1945e3
---

 libavcodec/dpx.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/libavcodec/dpx.c b/libavcodec/dpx.c
index e4dd1b0..1aa2cbd 100644
--- a/libavcodec/dpx.c
+++ b/libavcodec/dpx.c
@@ -243,6 +243,10 @@ static int decode_frame(AVCodecContext *avctx,
     case 6080:
         avctx->pix_fmt = AV_PIX_FMT_GRAY8;
         break;
+    case 6121:
+    case 6120:
+        avctx->pix_fmt = AV_PIX_FMT_GRAY12;
+        break;
     case 50081:
     case 50080:
         avctx->pix_fmt = AV_PIX_FMT_RGB24;
@@ -345,12 +349,12 @@ static int decode_frame(AVCodecContext *avctx,
                                 (uint16_t*)ptr[2],
                                 (uint16_t*)ptr[3]};
             for (y = 0; y < avctx->width; y++) {
-                *dst[2] = read16(&buf, endian) >> 4;
-                dst[2]++;
+                if (elements >= 3)
+                    *dst[2]++ = read16(&buf, endian) >> 4;
                 *dst[0] = read16(&buf, endian) >> 4;
                 dst[0]++;
-                *dst[1] = read16(&buf, endian) >> 4;
-                dst[1]++;
+                if (elements >= 2)
+                    *dst[1]++ = read16(&buf, endian) >> 4;
                 if (elements == 4)
                     *dst[3]++ = read16(&buf, endian) >> 4;
             }



More information about the ffmpeg-cvslog mailing list