summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-07-18 13:48:57 +0200
committerwm4 <wm4@nowhere>2013-07-18 13:48:57 +0200
commitb606a6ce1a94017ee6519d884661ef828878226a (patch)
treeb05fec355ffec3edb2b818e9f3a5460622d2588c
parent7f88e36911fc1ad8a59c7335a0d33119519742fc (diff)
downloadmpv-b606a6ce1a94017ee6519d884661ef828878226a.tar.bz2
mpv-b606a6ce1a94017ee6519d884661ef828878226a.tar.xz
sws_utils: make hq swscale flags available with mp_sws_hq_flags
No need to duplicate this on the call-site.
-rw-r--r--video/image_writer.c6
-rw-r--r--video/sws_utils.c7
-rw-r--r--video/sws_utils.h2
3 files changed, 8 insertions, 7 deletions
diff --git a/video/image_writer.c b/video/image_writer.c
index 1791c01a38..5224841b5d 100644
--- a/video/image_writer.c
+++ b/video/image_writer.c
@@ -20,7 +20,6 @@
#include <string.h>
#include <setjmp.h>
-#include <libswscale/swscale.h>
#include <libavcodec/avcodec.h>
#include <libavutil/mem.h>
@@ -288,10 +287,7 @@ int write_image(struct mp_image *image, const struct image_writer_opts *opts,
struct mp_image *dst = mp_image_alloc(destfmt, d_w, d_h);
mp_image_copy_attributes(dst, image);
- int flags = SWS_LANCZOS | SWS_FULL_CHR_H_INT | SWS_FULL_CHR_H_INP |
- SWS_ACCURATE_RND | SWS_BITEXACT;
-
- mp_image_swscale(dst, image, flags);
+ mp_image_swscale(dst, image, mp_sws_hq_flags);
allocated_image = dst;
image = dst;
diff --git a/video/sws_utils.c b/video/sws_utils.c
index 652887d232..91635cf6dd 100644
--- a/video/sws_utils.c
+++ b/video/sws_utils.c
@@ -39,6 +39,10 @@ int sws_chr_hshift = 0;
float sws_chr_sharpen = 0.0;
float sws_lum_sharpen = 0.0;
+// Highest quality, but also slowest.
+const int mp_sws_hq_flags = SWS_LANCZOS | SWS_FULL_CHR_H_INT |
+ SWS_FULL_CHR_H_INP | SWS_ACCURATE_RND |
+ SWS_BITEXACT;
// Set ctx parameters to global command line flags.
void mp_sws_set_from_cmdline(struct mp_sws_context *ctx)
@@ -271,8 +275,7 @@ void mp_image_sw_blur_scale(struct mp_image *dst, struct mp_image *src,
float gblur)
{
struct mp_sws_context *ctx = mp_sws_alloc(NULL);
- ctx->flags = SWS_LANCZOS | SWS_FULL_CHR_H_INT | SWS_FULL_CHR_H_INP |
- SWS_ACCURATE_RND | SWS_BITEXACT;
+ ctx->flags = mp_sws_hq_flags;
ctx->src_filter = sws_getDefaultFilter(gblur, gblur, 0, 0, 0, 0, 0);
ctx->force_reload = true;
mp_sws_scale(ctx, dst, src);
diff --git a/video/sws_utils.h b/video/sws_utils.h
index f35cd626d1..07fc3c76b1 100644
--- a/video/sws_utils.h
+++ b/video/sws_utils.h
@@ -13,6 +13,8 @@ struct mp_csp_details;
// Guaranteed to be a power of 2 and > 1.
#define SWS_MIN_BYTE_ALIGN 16
+extern const int mp_sws_hq_flags;
+
bool mp_sws_supported_format(int imgfmt);
void mp_image_swscale(struct mp_image *dst, struct mp_image *src,