mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02: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.
This commit is contained in:
parent
f4228097e4
commit
c9584f0c9c
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user