From 98a6c8f0d04a03b8ea4143958ecbf7fd85da60d3 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Sat, 14 Mar 2015 07:02:23 -0700 Subject: [PATCH] libobs: Always enumerate filter list in reverse The "last" filter that's rendered is technically at filter index 0, so enumeration needs to be from the last index in the list to the first index in the list. --- libobs/obs-source.c | 4 ++-- libobs/obs.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libobs/obs-source.c b/libobs/obs-source.c index 415478269..6eda6d875 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -2551,8 +2551,8 @@ void obs_source_enum_filters(obs_source_t *source, pthread_mutex_lock(&source->filter_mutex); - for (size_t i = 0; i < source->filters.num; i++) { - struct obs_source *filter = source->filters.array[i]; + for (size_t i = source->filters.num; i > 0; i--) { + struct obs_source *filter = source->filters.array[i - 1]; callback(source, filter, param); } diff --git a/libobs/obs.c b/libobs/obs.c index 00a60e4de..12e56fbc4 100644 --- a/libobs/obs.c +++ b/libobs/obs.c @@ -1370,8 +1370,8 @@ obs_data_t *obs_save_source(obs_source_t *source) pthread_mutex_lock(&source->filter_mutex); if (source->filters.num) { - for (size_t i = 0; i < source->filters.num; i++) { - obs_source_t *filter = source->filters.array[i]; + for (size_t i = source->filters.num; i > 0; i--) { + obs_source_t *filter = source->filters.array[i - 1]; obs_data_t *filter_data = obs_save_source(filter); obs_data_array_push_back(filters, filter_data); obs_data_release(filter_data);