From 3e154333de490b603ab80156e0e14e5c585d9125 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 2 Oct 2013 12:57:36 +0200 Subject: [PATCH] avcodecmap: Only append values to the video/audio format lists if we don't have them already --- ext/libav/gstavcodecmap.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/ext/libav/gstavcodecmap.c b/ext/libav/gstavcodecmap.c index dacac4bb5a..1ae3f07537 100644 --- a/ext/libav/gstavcodecmap.c +++ b/ext/libav/gstavcodecmap.c @@ -191,7 +191,10 @@ gst_ffmpeg_video_set_pix_fmts (GstCaps * caps, const enum AVPixelFormat *fmts) format = gst_ffmpeg_pixfmt_to_videoformat (*fmts); if (format != GST_VIDEO_FORMAT_UNKNOWN) { g_value_set_string (&v, gst_video_format_to_string (format)); - gst_value_list_append_value (&va, &v); + /* Only append values we don't have yet */ + if (gst_value_list_get_size (&va) == 0 + || !gst_value_can_intersect (&v, &va)) + gst_value_list_append_value (&va, &v); } fmts++; } @@ -452,7 +455,10 @@ gst_ffmpeg_audio_set_sample_fmts (GstCaps * caps, format = gst_ffmpeg_smpfmt_to_audioformat (*fmts); if (format != GST_AUDIO_FORMAT_UNKNOWN) { g_value_set_string (&v, gst_audio_format_to_string (format)); - gst_value_list_append_value (&va, &v); + /* Only append values we don't have yet */ + if (gst_value_list_get_size (&va) == 0 + || !gst_value_can_intersect (&v, &va)) + gst_value_list_append_value (&va, &v); } fmts++; }