History

avfilter/vf_zscale: add support for grayscale formats

James Almer committed 1 year ago

Commit 0ce405a1 parent c3522711 file · +9 −3Browse files

Showing the changes to libavfilter (1 of 1 file). Show all

Unified · Split

libavfilter/vf_zscale.c+9−3
@@ -206,11 +206,12 @@ static int query_formats(const AVFilterContext *ctx, · 205 unmodified lines
206 AV_PIX_FMT_YUVA420P10, AV_PIX_FMT_YUVA422P10, AV_PIX_FMT_YUVA444P10,206 AV_PIX_FMT_YUVA420P10, AV_PIX_FMT_YUVA422P10, AV_PIX_FMT_YUVA444P10,
207 AV_PIX_FMT_YUVA444P12, AV_PIX_FMT_YUVA422P12,207 AV_PIX_FMT_YUVA444P12, AV_PIX_FMT_YUVA422P12,
208 AV_PIX_FMT_YUVA420P16, AV_PIX_FMT_YUVA422P16, AV_PIX_FMT_YUVA444P16,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 AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP10,210 AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP10,
210 AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRP14, AV_PIX_FMT_GBRP16,211 AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRP14, AV_PIX_FMT_GBRP16,
211 AV_PIX_FMT_GBRAP, AV_PIX_FMT_GBRAP10, AV_PIX_FMT_GBRAP12, AV_PIX_FMT_GBRAP14, AV_PIX_FMT_GBRAP16,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_GRAYF16, AV_PIX_FMT_GBRPF16, AV_PIX_FMT_GBRAPF16,
213 AV_PIX_FMT_GBRPF32, AV_PIX_FMT_GBRAPF32,214 AV_PIX_FMT_GRAYF32, AV_PIX_FMT_GBRPF32, AV_PIX_FMT_GBRAPF32,
214 AV_PIX_FMT_NONE215 AV_PIX_FMT_NONE
215 };216 };
216 int ret;217 int ret;
@@ -585,7 +586,8 @@ static void format_init(zimg_image_format *format, AVFrame *frame, const AVPixFm · 368 unmodified lines
585 format->depth = desc->comp[0].depth;586 format->depth = desc->comp[0].depth;
586 format->pixel_type = (desc->flags & AV_PIX_FMT_FLAG_FLOAT) ? (desc->comp[0].depth > 16 ? ZIMG_PIXEL_FLOAT : ZIMG_PIXEL_HALF)587 format->pixel_type = (desc->flags & AV_PIX_FMT_FLAG_FLOAT) ? (desc->comp[0].depth > 16 ? ZIMG_PIXEL_FLOAT : ZIMG_PIXEL_HALF)
587 : (desc->comp[0].depth > 8 ? ZIMG_PIXEL_WORD : ZIMG_PIXEL_BYTE);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 format->matrix_coefficients = (desc->flags & AV_PIX_FMT_FLAG_RGB) ? ZIMG_MATRIX_RGB : colorspace == -1 ? convert_matrix(frame->colorspace) : colorspace;591 format->matrix_coefficients = (desc->flags & AV_PIX_FMT_FLAG_RGB) ? ZIMG_MATRIX_RGB : colorspace == -1 ? convert_matrix(frame->colorspace) : colorspace;
590 format->color_primaries = primaries == -1 ? convert_primaries(frame->color_primaries) : primaries;592 format->color_primaries = primaries == -1 ? convert_primaries(frame->color_primaries) : primaries;
591 format->transfer_characteristics = transfer == -1 ? convert_trc(frame->color_trc) : transfer;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 p = td->desc->comp[i].plane;741 p = td->desc->comp[i].plane;
740 742
743 if (i < td->desc->nb_components) {
741 src_buf.plane[i].data = td->in->data[p];744 src_buf.plane[i].data = td->in->data[p];
742 src_buf.plane[i].stride = td->in->linesize[p];745 src_buf.plane[i].stride = td->in->linesize[p];
743 src_buf.plane[i].mask = -1;746 src_buf.plane[i].mask = -1;
747 }
744 748
745 p = td->odesc->comp[i].plane;749 p = td->odesc->comp[i].plane;
750 if (i < td->odesc->nb_components) {
746 dst_buf.plane[i].data = td->out->data[p] + td->out->linesize[p] * (out_slice_start >> vsamp);751 dst_buf.plane[i].data = td->out->data[p] + td->out->linesize[p] * (out_slice_start >> vsamp);
747 dst_buf.plane[i].stride = td->out->linesize[p];752 dst_buf.plane[i].stride = td->out->linesize[p];
748 dst_buf.plane[i].mask = -1;753 dst_buf.plane[i].mask = -1;
754 }
749 }755 }
750 if (!s->graph[job_nr])756 if (!s->graph[job_nr])
751 return AVERROR(EINVAL);757 return AVERROR(EINVAL);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t