From 184e43fb68bff1abb0abb2c2bc5f30f4e1c03e31 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 6 Oct 2022 09:42:57 -0700 Subject: [PATCH] encodingparams: fix bug where pixel aspect wasn't serialized --- app/codec/encoder.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/codec/encoder.cpp b/app/codec/encoder.cpp index 380b067596..4888ed5a6c 100644 --- a/app/codec/encoder.cpp +++ b/app/codec/encoder.cpp @@ -214,6 +214,7 @@ void EncodingParams::Save(QXmlStreamWriter *writer) const writer->writeTextElement(QStringLiteral("width"), QString::number(video_params_.width())); writer->writeTextElement(QStringLiteral("height"), QString::number(video_params_.height())); writer->writeTextElement(QStringLiteral("format"), QString::number(video_params_.format())); + writer->writeTextElement(QStringLiteral("pixelaspect"), video_params_.pixel_aspect_ratio().toString()); writer->writeTextElement(QStringLiteral("timebase"), video_params_.time_base().toString()); writer->writeTextElement(QStringLiteral("divider"), QString::number(video_params_.divider())); writer->writeTextElement(QStringLiteral("bitrate"), QString::number(video_bit_rate_)); @@ -399,6 +400,8 @@ bool EncodingParams::LoadV1(QXmlStreamReader *reader) video_params_.set_height(reader->readElementText().toInt()); } else if (reader->name() == QStringLiteral("format")) { video_params_.set_format(static_cast(reader->readElementText().toInt())); + } else if (reader->name() == QStringLiteral("pixelaspect")) { + video_params_.set_pixel_aspect_ratio(rational::fromString(reader->readElementText())); } else if (reader->name() == QStringLiteral("timebase")) { video_params_.set_time_base(rational::fromString(reader->readElementText())); } else if (reader->name() == QStringLiteral("divider")) { @@ -449,6 +452,11 @@ bool EncodingParams::LoadV1(QXmlStreamReader *reader) reader->skipCurrentElement(); } } + + // HACK: Resolve bug where I forgot to serialize pixel aspect ratio + if (video_params_.pixel_aspect_ratio().isNull()) { + video_params_.set_pixel_aspect_ratio(1); + } } else if (reader->name() == QStringLiteral("audio")) { XMLAttributeLoop(reader, attr) { if (attr.name() == QStringLiteral("enabled")) {