summaryrefslogtreecommitdiffstats
path: root/video/filter/vf.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/filter/vf.c')
-rw-r--r--video/filter/vf.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/video/filter/vf.c b/video/filter/vf.c
index f286da8a4f..b7a2044ad1 100644
--- a/video/filter/vf.c
+++ b/video/filter/vf.c
@@ -30,6 +30,7 @@
#include "core/m_option.h"
#include "core/m_struct.h"
+#include "core/options.h"
#include "video/img_format.h"
#include "video/mp_image.h"
@@ -476,6 +477,20 @@ void vf_uninit_filter_chain(vf_instance_t *vf)
}
}
+// When cropping an image that had old_w/old_h/*d_width/*d_height to the new
+// size new_w/new_h, adjust *d_width/*d_height such that the new image has
+// the same pixel aspect ratio.
+void vf_rescale_dsize(struct vf_instance *vf, int *d_width, int *d_height,
+ int old_w, int old_h, int new_w, int new_h)
+{
+ // No idea what this is about
+ if (vf->opts->screen_size_x || vf->opts->screen_size_y)
+ return;
+
+ *d_width = *d_width * new_w / old_w;
+ *d_height = *d_height * new_h / old_h;
+}
+
void vf_detc_init_pts_buf(struct vf_detc_pts_buf *p)
{
p->inpts_prev = MP_NOPTS_VALUE;