[FFmpeg-cvslog] avformat/cinedec: add support for additional Bayer CFA patterns for Phantom CINE file format

Max Rudolph git at videolan.org
Wed May 7 16:37:45 EEST 2025


ffmpeg | branch: master | Max Rudolph <maxwellr at gmail.com> | Tue May  6 14:52:30 2025 +0200| [9537d91e8f1e389e7c957d3ca62d35f27453d347] | committer: Michael Niedermayer

avformat/cinedec: add support for additional Bayer CFA patterns for Phantom CINE file format

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

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

 libavformat/cinedec.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/libavformat/cinedec.c b/libavformat/cinedec.c
index e0bcca4ce5..cd13f132c3 100644
--- a/libavformat/cinedec.c
+++ b/libavformat/cinedec.c
@@ -52,6 +52,8 @@ enum {
     CFA_VRIV6     = 2,  /**< BGGR/GRBG */
     CFA_BAYER     = 3,  /**< GB/RG */
     CFA_BAYERFLIP = 4,  /**< RG/GB */
+    CFA_BAYERFLIPB = 5, /**< GR/BG */
+    CFA_BAYERFLIPH = 6, /**< BG/GR */
 };
 
 #define CFA_TLGRAY  0x80000000U
@@ -237,6 +239,26 @@ static int cine_read_header(AVFormatContext *avctx)
                 return AVERROR_INVALIDDATA;
             }
             break;
+        case CFA_BAYERFLIPB:
+            if (biBitCount == 8) {
+                st->codecpar->format = AV_PIX_FMT_BAYER_GRBG8;
+            } else if (biBitCount == 16) {
+                st->codecpar->format = AV_PIX_FMT_BAYER_GRBG16LE;
+            } else {
+                avpriv_request_sample(avctx, "unsupported biBitCount %i", biBitCount);
+                return AVERROR_INVALIDDATA;
+            }
+            break;
+        case CFA_BAYERFLIPH:
+            if (biBitCount == 8) {
+                st->codecpar->format = AV_PIX_FMT_BAYER_BGGR8;
+            } else if (biBitCount == 16) {
+                st->codecpar->format = AV_PIX_FMT_BAYER_BGGR16LE;
+            } else {
+                avpriv_request_sample(avctx, "unsupported biBitCount %i", biBitCount);
+                return AVERROR_INVALIDDATA;
+            }
+            break;
         default:
            avpriv_request_sample(avctx, "unsupported Color Field Array (CFA) %i", CFA & 0xFFFFFF);
             return AVERROR_INVALIDDATA;



More information about the ffmpeg-cvslog mailing list