- media color primaries/transfer tags now flow from the FFmpeg probe through VideoParams into Footage::get_colorspace_to_use(); precedence is user override > media tags > project default - export nclc tags derive from the output colorspace (PQ/HLG/BT.2020, P3, sRGB, Rec.601, Rec.709) instead of hardcoded BT.709 - new OCIO Color Grading (Log) node (lift/gamma/gain) and White Balance node (kelvin temperature + tint, HDR-safe) - LUT whitelist extended to 9 OCIO-supported formats - waveform scope gains an RGB parade mode (GPU and software paths) - tests updated for the new colorspace precedence
47 lines
1.4 KiB
C++
47 lines
1.4 KiB
C++
#include <gtest/gtest.h>
|
|
|
|
#include <QBuffer>
|
|
#include <QXmlStreamReader>
|
|
#include <QXmlStreamWriter>
|
|
|
|
#include "render/videoparams.h"
|
|
|
|
TEST(RenderVideoParams, SaveLoadRoundTrip)
|
|
{
|
|
olive::VideoParams params;
|
|
params.set_width(1280);
|
|
params.set_height(720);
|
|
params.set_frame_rate(olive::core::Rational(24, 1));
|
|
params.set_pixel_aspect_ratio(olive::core::Rational(1, 1));
|
|
params.set_colorspace(QStringLiteral("test"));
|
|
params.set_color_primaries(9);
|
|
params.set_color_transfer(16);
|
|
|
|
QByteArray xml;
|
|
QBuffer buffer(&xml);
|
|
buffer.open(QIODevice::WriteOnly);
|
|
QXmlStreamWriter writer(&buffer);
|
|
writer.writeStartDocument();
|
|
writer.writeStartElement(QStringLiteral("videoparams"));
|
|
params.save(&writer);
|
|
writer.writeEndElement();
|
|
writer.writeEndDocument();
|
|
buffer.close();
|
|
|
|
olive::VideoParams loaded;
|
|
QBuffer read_buffer(&xml);
|
|
read_buffer.open(QIODevice::ReadOnly);
|
|
QXmlStreamReader reader(&read_buffer);
|
|
EXPECT_TRUE(reader.readNextStartElement());
|
|
EXPECT_EQ(reader.name().toString(), QStringLiteral("videoparams"));
|
|
loaded.load(&reader);
|
|
|
|
EXPECT_EQ(loaded.width(), 1280);
|
|
EXPECT_EQ(loaded.height(), 720);
|
|
EXPECT_EQ(loaded.frame_rate(), olive::core::Rational(24, 1));
|
|
EXPECT_EQ(loaded.pixel_aspect_ratio(), olive::core::Rational(1, 1));
|
|
EXPECT_EQ(loaded.colorspace(), QStringLiteral("test"));
|
|
EXPECT_EQ(loaded.color_primaries(), 9);
|
|
EXPECT_EQ(loaded.color_transfer(), 16);
|
|
}
|