libobs: Use bilinear low res scale effect
The normal scaling methods cannot sample enough pixels to create an accurate output image when the output size is under half the base size, so use the bilinear low resolution scaling effect in that case instead to ensure a more accurate low resolution image.
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user