|
@@ -156,6 +156,14 @@ static inline void render_main_texture(struct obs_core_video *video,
|
|
|
static inline gs_effect_t *get_scale_effect_internal(
|
|
|
struct obs_core_video *video)
|
|
|
{
|
|
|
+ /* if the dimension is under half the size of the original image,
|
|
|
+ * bicubic/lanczos can't sample enough pixels to create an accurate
|
|
|
+ * image, so use the bilinear low resolution effect instead */
|
|
|
+ if (video->output_width < (video->base_width / 2) &&
|
|
|
+ video->output_height < (video->base_height / 2)) {
|
|
|
+ return video->bilinear_lowres_effect;
|
|
|
+ }
|
|
|
+
|
|
|
switch (video->scale_type) {
|
|
|
case OBS_SCALE_BILINEAR: return video->default_effect;
|
|
|
case OBS_SCALE_LANCZOS: return video->lanczos_effect;
|