[FFmpeg-cvslog] swscale: Pass through chroma positions in sws_getCachedContext
Kieran Kunhya
git at videolan.org
Fri Dec 26 18:26:58 CET 2014
ffmpeg | branch: master | Kieran Kunhya <kierank at obe.tv> | Fri Dec 26 14:46:02 2014 +0000| [18982f084c3e3961947aad1b48ae72f9a276f13b] | committer: Michael Niedermayer
swscale: Pass through chroma positions in sws_getCachedContext
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=18982f084c3e3961947aad1b48ae72f9a276f13b
---
libswscale/utils.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
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;
More information about the ffmpeg-cvslog
mailing list