Files
oak-editor/tests/gtest/render_videoparams_test.cpp
T
Mike-Solar 76f5c2a65b color: input colorspace auto-detection, HDR export tags, LGG/white balance nodes, more LUT formats, waveform parade
- 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
2026-07-19 21:45:51 +08:00

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);
}