|
|
|
@@ -86,28 +86,31 @@ AVFilterFormats *avfilter_make_format_list(const enum PixelFormat *pix_fmts) |
|
|
|
return formats; |
|
|
|
} |
|
|
|
|
|
|
|
int avfilter_add_colorspace(AVFilterFormats *avff, enum PixelFormat pix_fmt) |
|
|
|
int avfilter_add_colorspace(AVFilterFormats **avff, enum PixelFormat pix_fmt) |
|
|
|
{ |
|
|
|
enum PixelFormat *pix_fmts = |
|
|
|
av_realloc(avff->formats, sizeof(avff->formats) * (avff->format_count+1)); |
|
|
|
enum PixelFormat *pix_fmts; |
|
|
|
|
|
|
|
if (!(*avff) && !(*avff = av_mallocz(sizeof(AVFilterFormats)))) |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
|
|
|
|
pix_fmts = av_realloc((*avff)->formats, |
|
|
|
sizeof((*avff)->formats) * ((*avff)->format_count+1)); |
|
|
|
if (!pix_fmts) |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
|
|
|
|
avff->formats = pix_fmts; |
|
|
|
avff->formats[avff->format_count++] = pix_fmt; |
|
|
|
(*avff)->formats = pix_fmts; |
|
|
|
(*avff)->formats[(*avff)->format_count++] = pix_fmt; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
AVFilterFormats *avfilter_all_colorspaces(void) |
|
|
|
{ |
|
|
|
AVFilterFormats *ret; |
|
|
|
AVFilterFormats *ret = NULL; |
|
|
|
enum PixelFormat pix_fmt; |
|
|
|
|
|
|
|
ret = av_mallocz(sizeof(AVFilterFormats)); |
|
|
|
for (pix_fmt = 0; pix_fmt < PIX_FMT_NB; pix_fmt++) |
|
|
|
if (!(av_pix_fmt_descriptors[pix_fmt].flags & PIX_FMT_HWACCEL)) |
|
|
|
avfilter_add_colorspace(ret, pix_fmt); |
|
|
|
avfilter_add_colorspace(&ret, pix_fmt); |
|
|
|
|
|
|
|
return ret; |
|
|
|
} |
|
|
|
|