Showing the changes to libavfilter (1 of 1 file). Show all
Unified · Split
| @@ -1152,9 +1152,28 @@ static void yuvtest_put_pixel(uint8_t *dstp[4], int dst_linesizep[4], · 1151 unmodified lines | |||
| 1152 | int i, int j, unsigned y, unsigned u, unsigned v, enum AVPixelFormat fmt, | 1152 | int i, int j, unsigned y, unsigned u, unsigned v, enum AVPixelFormat fmt, |
| 1153 | uint8_t ayuv_map[4]) | 1153 | uint8_t ayuv_map[4]) |
| 1154 | { | 1154 | { |
| 1155 | const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(fmt); | ||
| 1155 | uint32_t n; | 1156 | uint32_t n; |
| 1156 | 1157 | ||
| 1157 | switch (fmt) { | 1158 | switch (fmt) { |
| 1159 | case AV_PIX_FMT_VYU444: | ||
| 1160 | n = (y << (ayuv_map[Y]*8)) + (u << (ayuv_map[U]*8)) + (v << (ayuv_map[V]*8)); | ||
| 1161 | AV_WL24(&dstp[0][i*3 + j*dst_linesizep[0]], n); | ||
| 1162 | break; | ||
| 1163 | case AV_PIX_FMT_V30XLE: | ||
| 1164 | case AV_PIX_FMT_XV30LE: | ||
| 1165 | n = (y << ((desc->comp[0].offset*8) + desc->comp[0].shift)) + | ||
| 1166 | (u << ((desc->comp[1].offset*8) + desc->comp[1].shift)) + | ||
| 1167 | (v << ((desc->comp[2].offset*8) + desc->comp[2].shift)); | ||
| 1168 | AV_WL32(&dstp[0][i*4 + j*dst_linesizep[0]], n); | ||
| 1169 | break; | ||
| 1170 | case AV_PIX_FMT_UYVA: | ||
| 1171 | case AV_PIX_FMT_VUYA: | ||
| 1172 | case AV_PIX_FMT_VUYX: | ||
| 1173 | case AV_PIX_FMT_AYUV: | ||
| 1174 | n = (y << (ayuv_map[Y]*8)) + (u << (ayuv_map[U]*8)) + (v << (ayuv_map[V]*8)) + (255U << (ayuv_map[A]*8)); | ||
| 1175 | AV_WL32(&dstp[0][i*4 + j*dst_linesizep[0]], n); | ||
| 1176 | break; | ||
| 1158 | case AV_PIX_FMT_YUV444P: | 1177 | case AV_PIX_FMT_YUV444P: |
| 1159 | case AV_PIX_FMT_YUVJ444P: | 1178 | case AV_PIX_FMT_YUVJ444P: |
| 1160 | dstp[0][i + j*dst_linesizep[0]] = y; | 1179 | dstp[0][i + j*dst_linesizep[0]] = y; |
| @@ -1177,7 +1196,7 @@ static void yuvtest_fill_picture(AVFilterContext *ctx, AVFrame *frame) · 16 unmodified lines | |||
| 1177 | { | 1196 | { |
| 1178 | TestSourceContext *test = ctx->priv; | 1197 | TestSourceContext *test = ctx->priv; |
| 1179 | int i, j, w = frame->width, h = frame->height; | 1198 | int i, j, w = frame->width, h = frame->height; |
| 1180 | const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(frame->format); | 1199 | const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(ctx->outputs[0]->format); |
| 1181 | const int factor = 1 << desc->comp[0].depth; | 1200 | const int factor = 1 << desc->comp[0].depth; |
| 1182 | const int mid = 1 << (desc->comp[0].depth - 1); | 1201 | const int mid = 1 << (desc->comp[0].depth - 1); |
| 1183 | 1202 | ||
| @@ -1209,7 +1228,10 @@ static const enum AVPixelFormat yuvtest_pix_fmts[] = { · 25 unmodified lines | |||
| 1209 | AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, | 1228 | AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, |
| 1210 | AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV444P10, | 1229 | AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV444P10, |
| 1211 | AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV444P14, | 1230 | AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV444P14, |
| 1212 | AV_PIX_FMT_YUV444P16, | 1231 | AV_PIX_FMT_YUV444P16, AV_PIX_FMT_VYU444, |
| 1232 | AV_PIX_FMT_AYUV, AV_PIX_FMT_UYVA, | ||
| 1233 | AV_PIX_FMT_VUYA, AV_PIX_FMT_VUYX, | ||
| 1234 | AV_PIX_FMT_XV30LE, AV_PIX_FMT_V30XLE, | ||
| 1213 | AV_PIX_FMT_NONE | 1235 | AV_PIX_FMT_NONE |
| 1214 | }; | 1236 | }; |
| 1215 | 1237 | ||