aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-09-18 04:46:45 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-09-19 23:52:37 +0200
commita1255a350d4629ca9f0073289ae8e2862aa0d9e1 (patch)
tree89fcb0bd18cee88deec687b4a5e28397550b7491
parentd69332e68856323858aca244990e95266077e81f (diff)
downloadffmpeg-a1255a350d4629ca9f0073289ae8e2862aa0d9e1.tar.gz
libswscale/options: Add parent_log_context_offset to AVClass
This allows to associate log messages from slice contexts to the user-visible SwsContext. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r--libswscale/options.c1
-rw-r--r--libswscale/swscale_internal.h2
-rw-r--r--libswscale/utils.c2
3 files changed, 5 insertions, 0 deletions
diff --git a/libswscale/options.c b/libswscale/options.c
index 4b71a23e37..f6ea9e1f9d 100644
--- a/libswscale/options.c
+++ b/libswscale/options.c
@@ -91,6 +91,7 @@ const AVClass ff_sws_context_class = {
.class_name = "SWScaler",
.item_name = sws_context_to_name,
.option = swscale_options,
+ .parent_log_context_offset = OFFSET(parent),
.category = AV_CLASS_CATEGORY_SWSCALER,
.version = LIBAVUTIL_VERSION_INT,
};
diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h
index fbfc08a89f..0d60dd2e6f 100644
--- a/libswscale/swscale_internal.h
+++ b/libswscale/swscale_internal.h
@@ -301,6 +301,8 @@ typedef struct SwsContext {
*/
const AVClass *av_class;
+ struct SwsContext *parent;
+
AVSliceThread *slicethread;
struct SwsContext **slice_ctx;
int *slice_err;
diff --git a/libswscale/utils.c b/libswscale/utils.c
index 25051ead72..84a29c4dc7 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -1214,6 +1214,8 @@ static int context_init_threaded(SwsContext *c,
if (!c->slice_ctx[i])
return AVERROR(ENOMEM);
+ c->slice_ctx[i]->parent = c;
+
ret = av_opt_copy((void*)c->slice_ctx[i], (void*)c);
if (ret < 0)
return ret;