Showing the changes to libavfilter (1 of 1 file). Show all
Unified · Split
| @@ -206,11 +206,12 @@ static int query_formats(const AVFilterContext *ctx, · 205 unmodified lines | ||
| 206 | 206 | AV_PIX_FMT_YUVA420P10, AV_PIX_FMT_YUVA422P10, AV_PIX_FMT_YUVA444P10, |
| 207 | 207 | AV_PIX_FMT_YUVA444P12, AV_PIX_FMT_YUVA422P12, |
| 208 | 208 | AV_PIX_FMT_YUVA420P16, AV_PIX_FMT_YUVA422P16, AV_PIX_FMT_YUVA444P16, |
| 209 | + AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY9, AV_PIX_FMT_GRAY10, | |
| 209 | 210 | AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP10, |
| 210 | 211 | AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRP14, AV_PIX_FMT_GBRP16, |
| 211 | 212 | AV_PIX_FMT_GBRAP, AV_PIX_FMT_GBRAP10, AV_PIX_FMT_GBRAP12, AV_PIX_FMT_GBRAP14, AV_PIX_FMT_GBRAP16, |
| 212 | − AV_PIX_FMT_GBRPF16, AV_PIX_FMT_GBRAPF16, | |
| 213 | − AV_PIX_FMT_GBRPF32, AV_PIX_FMT_GBRAPF32, | |
| 213 | + AV_PIX_FMT_GRAYF16, AV_PIX_FMT_GBRPF16, AV_PIX_FMT_GBRAPF16, | |
| 214 | + AV_PIX_FMT_GRAYF32, AV_PIX_FMT_GBRPF32, AV_PIX_FMT_GBRAPF32, | |
| 214 | 215 | AV_PIX_FMT_NONE |
| 215 | 216 | }; |
| 216 | 217 | int ret; |
| @@ -585,7 +586,8 @@ static void format_init(zimg_image_format *format, AVFrame *frame, const AVPixFm · 368 unmodified lines | ||
| 585 | 586 | format->depth = desc->comp[0].depth; |
| 586 | 587 | format->pixel_type = (desc->flags & AV_PIX_FMT_FLAG_FLOAT) ? (desc->comp[0].depth > 16 ? ZIMG_PIXEL_FLOAT : ZIMG_PIXEL_HALF) |
| 587 | 588 | : (desc->comp[0].depth > 8 ? ZIMG_PIXEL_WORD : ZIMG_PIXEL_BYTE); |
| 588 | − format->color_family = (desc->flags & AV_PIX_FMT_FLAG_RGB) ? ZIMG_COLOR_RGB : ZIMG_COLOR_YUV; | |
| 589 | + format->color_family = (desc->flags & AV_PIX_FMT_FLAG_RGB) ? ZIMG_COLOR_RGB | |
| 590 | + : (desc->nb_components > 1 ? ZIMG_COLOR_YUV : ZIMG_COLOR_GREY); | |
| 589 | 591 | format->matrix_coefficients = (desc->flags & AV_PIX_FMT_FLAG_RGB) ? ZIMG_MATRIX_RGB : colorspace == -1 ? convert_matrix(frame->colorspace) : colorspace; |
| 590 | 592 | format->color_primaries = primaries == -1 ? convert_primaries(frame->color_primaries) : primaries; |
| 591 | 593 | format->transfer_characteristics = transfer == -1 ? convert_trc(frame->color_trc) : transfer; |
| @@ -738,14 +740,18 @@ static int filter_slice(AVFilterContext *ctx, void *data, int job_nr, int n_jobs · 146 unmodified lines | ||
| 738 | 740 | |
| 739 | 741 | p = td->desc->comp[i].plane; |
| 740 | 742 | |
| 743 | + if (i < td->desc->nb_components) { | |
| 741 | 744 | src_buf.plane[i].data = td->in->data[p]; |
| 742 | 745 | src_buf.plane[i].stride = td->in->linesize[p]; |
| 743 | 746 | src_buf.plane[i].mask = -1; |
| 747 | + } | |
| 744 | 748 | |
| 745 | 749 | p = td->odesc->comp[i].plane; |
| 750 | + if (i < td->odesc->nb_components) { | |
| 746 | 751 | dst_buf.plane[i].data = td->out->data[p] + td->out->linesize[p] * (out_slice_start >> vsamp); |
| 747 | 752 | dst_buf.plane[i].stride = td->out->linesize[p]; |
| 748 | 753 | dst_buf.plane[i].mask = -1; |
| 754 | + } | |
| 749 | 755 | } |
| 750 | 756 | if (!s->graph[job_nr]) |
| 751 | 757 | return AVERROR(EINVAL); |