mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-11 17:30:00 +01:00
vf_mp: do not add duplicated pixel formats.
This avoid a crash with in avfilter_merge_formats() in case one of the
filter formats list has multiple time the same entry.
Thanks to Mina Nagy Zaki for helping figuring out the issue.
(cherry picked from commit 680e473643)
This commit is contained in:
committed by
Michael Niedermayer
parent
e845455225
commit
07f5da6128
@@ -41,6 +41,7 @@
|
||||
|
||||
|
||||
//FIXME maybe link the orig in
|
||||
//XXX: identical pix_fmt must be following with each others
|
||||
static const struct {
|
||||
int fmt;
|
||||
enum PixelFormat pix_fmt;
|
||||
@@ -785,13 +786,17 @@ static int query_formats(AVFilterContext *ctx)
|
||||
{
|
||||
AVFilterFormats *avfmts=NULL;
|
||||
MPContext *m = ctx->priv;
|
||||
enum PixelFormat lastpixfmt = PIX_FMT_NONE;
|
||||
int i;
|
||||
|
||||
for(i=0; conversion_map[i].fmt; i++){
|
||||
av_log(ctx, AV_LOG_DEBUG, "query: %X\n", conversion_map[i].fmt);
|
||||
if(m->vf.query_format(&m->vf, conversion_map[i].fmt)){
|
||||
av_log(ctx, AV_LOG_DEBUG, "supported,adding\n");
|
||||
avfilter_add_format(&avfmts, conversion_map[i].pix_fmt);
|
||||
if (conversion_map[i].pix_fmt != lastpixfmt) {
|
||||
avfilter_add_format(&avfmts, conversion_map[i].pix_fmt);
|
||||
lastpixfmt = conversion_map[i].pix_fmt;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user