diff options
author | Kieran Kunhya <kierank@obe.tv> | 2014-12-26 14:46:02 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-12-26 17:55:12 +0100 |
commit | 18982f084c3e3961947aad1b48ae72f9a276f13b (patch) | |
tree | dedbe939e74f391acab7de7e1e5d4e345d2f0e52 /libswscale | |
parent | 4bc0dbfc9f05e36844119e7b5215b7e3709134d7 (diff) | |
download | ffmpeg-streaming-18982f084c3e3961947aad1b48ae72f9a276f13b.zip ffmpeg-streaming-18982f084c3e3961947aad1b48ae72f9a276f13b.tar.gz |
swscale: Pass through chroma positions in sws_getCachedContext
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libswscale')
-rw-r--r-- | libswscale/utils.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libswscale/utils.c b/libswscale/utils.c index ab494ed..601e7bf 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -1960,6 +1960,8 @@ struct SwsContext *sws_getCachedContext(struct SwsContext *context, int srcW, { static const double default_param[2] = { SWS_PARAM_DEFAULT, SWS_PARAM_DEFAULT }; + int64_t src_h_chr_pos = -513, dst_h_chr_pos = -513, + src_v_chr_pos = -513, dst_v_chr_pos = -513; if (!param) param = default_param; @@ -1974,6 +1976,11 @@ struct SwsContext *sws_getCachedContext(struct SwsContext *context, int srcW, context->flags != flags || context->param[0] != param[0] || context->param[1] != param[1])) { + + av_opt_get_int(context, "src_h_chr_pos", 0, &src_h_chr_pos); + av_opt_get_int(context, "src_v_chr_pos", 0, &src_v_chr_pos); + av_opt_get_int(context, "dst_h_chr_pos", 0, &dst_h_chr_pos); + av_opt_get_int(context, "dst_v_chr_pos", 0, &dst_v_chr_pos); sws_freeContext(context); context = NULL; } @@ -1990,6 +1997,12 @@ struct SwsContext *sws_getCachedContext(struct SwsContext *context, int srcW, context->flags = flags; context->param[0] = param[0]; context->param[1] = param[1]; + + av_opt_set_int(context, "src_h_chr_pos", src_h_chr_pos, 0); + av_opt_set_int(context, "src_v_chr_pos", src_v_chr_pos, 0); + av_opt_set_int(context, "dst_h_chr_pos", dst_h_chr_pos, 0); + av_opt_set_int(context, "dst_v_chr_pos", dst_v_chr_pos, 0); + if (sws_init_context(context, srcFilter, dstFilter) < 0) { sws_freeContext(context); return NULL; |