ffmpeg: store divided frames in memory cache
Since users will most likely be working with a divider most of the time, there's no reason to waste memory space with undivided frames considering the dividing process is quite fast.
This commit is contained in:
@@ -145,9 +145,8 @@ bool VideoParams::operator!=(const VideoParams &rhs) const
|
||||
|
||||
void VideoParams::calculate_effective_size()
|
||||
{
|
||||
// Fast rounding up to an even number
|
||||
effective_width_ = qCeil(width() / divider_ * 0.5) * 2;
|
||||
effective_height_ = qCeil(height() / divider_ * 0.5) * 2;
|
||||
effective_width_ = GetScaledDimension(width(), divider_);
|
||||
effective_height_ = GetScaledDimension(height(), divider_);
|
||||
}
|
||||
|
||||
void VideoParams::validate_pixel_aspect_ratio()
|
||||
@@ -195,4 +194,9 @@ QString VideoParams::FormatPixelAspectRatioString(const QString &format, const r
|
||||
return format.arg(QString::number(ratio.toDouble(), 'f', 4));
|
||||
}
|
||||
|
||||
int VideoParams::GetScaledDimension(int dim, int divider)
|
||||
{
|
||||
return qCeil(dim / divider * 0.5) * 2;
|
||||
}
|
||||
|
||||
OLIVE_NAMESPACE_EXIT
|
||||
|
||||
@@ -114,6 +114,8 @@ public:
|
||||
static QStringList GetStandardPixelAspectRatioNames();
|
||||
static QString FormatPixelAspectRatioString(const QString& format, const rational& ratio);
|
||||
|
||||
static int GetScaledDimension(int dim, int divider);
|
||||
|
||||
private:
|
||||
void calculate_effective_size();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user