Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol authored on 2016/03/07 03:55:02... | ... |
@@ -75,8 +75,10 @@ static const enum AVPixelFormat levels_in_pix_fmts[] = { |
75 | 75 |
AV_PIX_FMT_YUVA420P9, AV_PIX_FMT_YUVA422P9, AV_PIX_FMT_YUVA444P9, |
76 | 76 |
AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, |
77 | 77 |
AV_PIX_FMT_YUVA420P10, AV_PIX_FMT_YUVA422P10, AV_PIX_FMT_YUVA444P10, |
78 |
+ AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, |
|
78 | 79 |
AV_PIX_FMT_GBRAP, AV_PIX_FMT_GBRP, |
79 | 80 |
AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP10, |
81 |
+ AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRAP12, |
|
80 | 82 |
AV_PIX_FMT_GRAY8, |
81 | 83 |
AV_PIX_FMT_NONE |
82 | 84 |
}; |
... | ... |
@@ -96,6 +98,11 @@ static const enum AVPixelFormat levels_out_yuv10_pix_fmts[] = { |
96 | 96 |
AV_PIX_FMT_NONE |
97 | 97 |
}; |
98 | 98 |
|
99 |
+static const enum AVPixelFormat levels_out_yuv12_pix_fmts[] = { |
|
100 |
+ AV_PIX_FMT_YUV444P12, |
|
101 |
+ AV_PIX_FMT_NONE |
|
102 |
+}; |
|
103 |
+ |
|
99 | 104 |
static const enum AVPixelFormat levels_out_rgb8_pix_fmts[] = { |
100 | 105 |
AV_PIX_FMT_GBRAP, AV_PIX_FMT_GBRP, |
101 | 106 |
AV_PIX_FMT_NONE |
... | ... |
@@ -111,6 +118,11 @@ static const enum AVPixelFormat levels_out_rgb10_pix_fmts[] = { |
111 | 111 |
AV_PIX_FMT_NONE |
112 | 112 |
}; |
113 | 113 |
|
114 |
+static const enum AVPixelFormat levels_out_rgb12_pix_fmts[] = { |
|
115 |
+ AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRAP12, |
|
116 |
+ AV_PIX_FMT_NONE |
|
117 |
+}; |
|
118 |
+ |
|
114 | 119 |
static int query_formats(AVFilterContext *ctx) |
115 | 120 |
{ |
116 | 121 |
AVFilterFormats *avff; |
... | ... |
@@ -144,12 +156,16 @@ static int query_formats(AVFilterContext *ctx) |
144 | 144 |
out_pix_fmts = levels_out_rgb9_pix_fmts; |
145 | 145 |
else if (rgb && bits == 10) |
146 | 146 |
out_pix_fmts = levels_out_rgb10_pix_fmts; |
147 |
+ else if (rgb && bits == 12) |
|
148 |
+ out_pix_fmts = levels_out_rgb12_pix_fmts; |
|
147 | 149 |
else if (bits == 8) |
148 | 150 |
out_pix_fmts = levels_out_yuv8_pix_fmts; |
149 | 151 |
else if (bits == 9) |
150 | 152 |
out_pix_fmts = levels_out_yuv9_pix_fmts; |
151 | 153 |
else if (bits == 10) |
152 | 154 |
out_pix_fmts = levels_out_yuv10_pix_fmts; |
155 |
+ else if (bits == 12) |
|
156 |
+ out_pix_fmts = levels_out_yuv12_pix_fmts; |
|
153 | 157 |
else |
154 | 158 |
return AVERROR(EAGAIN); |
155 | 159 |
if ((ret = ff_formats_ref(ff_make_format_list(out_pix_fmts), &ctx->outputs[0]->in_formats)) < 0) |
... | ... |
@@ -173,6 +189,7 @@ static int config_input(AVFilterLink *inlink) |
173 | 173 |
h->mult = h->histogram_size / 256; |
174 | 174 |
|
175 | 175 |
switch (inlink->format) { |
176 |
+ case AV_PIX_FMT_GBRP12: |
|
176 | 177 |
case AV_PIX_FMT_GBRP10: |
177 | 178 |
case AV_PIX_FMT_GBRP9: |
178 | 179 |
case AV_PIX_FMT_GBRAP: |