Commit 42b5f13c authored by Moritz Bunkus's avatar Moritz Bunkus
Browse files

AV1: require manual activation via `--engage enable_av1`; fail otherwise

Reason: the AV1 bitstream specification hasn't been finalized yet.
parent 8ea159dc
......@@ -56,6 +56,12 @@
MXE is now supported by setting `configure`'s `host` triplet accordingly,
e.g. `--host=x86_64-w64-mingw32.shared`.
## Other changes
* mkvmerge: AV1: support for AV1 must be activated manually by adding
`--engage enable_av1` as the AV1 bitstream specification hasn't been
finalized yet.
# Version 22.0.0 "At The End Of The World" 2018-04-01
......
......@@ -48,6 +48,7 @@ get_list() {
"keep_last_chapter_in_mpls",
"keep_track_statistics_tags",
"all_i_slices_are_key_frames",
"enable_av1",
};
}
......
......@@ -43,7 +43,8 @@ constexpr unsigned int NO_DELAY_FOR_GARBAGE_IN_AVI = 18;
constexpr unsigned int KEEP_LAST_CHAPTER_IN_MPLS = 19;
constexpr unsigned int KEEP_TRACK_STATISTICS_TAGS = 20;
constexpr unsigned int ALL_I_SLICES_ARE_KEY_FRAMES = 21;
constexpr unsigned int MAX_IDX = 21;
constexpr unsigned int ENABLE_AV1 = 22;
constexpr unsigned int MAX_IDX = 22;
}
void engage(const std::string &hacks);
......
......@@ -85,6 +85,7 @@ AdditionalCommandLineOptionsDialog::AdditionalCommandLineOptionsDialog(QWidget *
add(Q("--engage all_i_slices_are_key_frames"), false, hacks,
{ QY("Some h.264/AVC tracks contain I slices but lack real key frames."),
QY("This option forces mkvmerge to treat all of those I slices as key frames.") });
add(Q("--engage enable_av1"), false, hacks, { QY("Enables AV1 video support even though the AV1 bitstream specification hasn't been finalized yet.") });
add(Q("--engage cow"), false, hacks, { QY("No help available.") });
m_ui->gbGlobalOutputControl->layout()->addItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding));
......
......@@ -15,6 +15,7 @@
#include "common/av1.h"
#include "common/codec.h"
#include "common/hacks.h"
#include "merge/connection_checks.h"
#include "output/p_av1.h"
......@@ -24,6 +25,9 @@ av1_video_packetizer_c::av1_video_packetizer_c(generic_reader_c *p_reader,
track_info_c &p_ti)
: generic_packetizer_c{p_reader, p_ti}
{
if (!mtx::hacks::is_engaged(mtx::hacks::ENABLE_AV1))
mxerror(Y("Support for AV1 is currently experimental and must be enabled with '--engage enable_av1' as the AV1 bitstream specification hasn't been finalized yet.\n"));
m_timestamp_factory_application_mode = TFA_SHORT_QUEUEING;
set_track_type(track_video);
......
......@@ -5,8 +5,8 @@ describe "mkvmerge / reading AV1 from IVF, WebM; writing Matroska, WebM"
base = "data/av1/av1."
test_merge "#{base}ivf"
test_merge "#{base}webm"
test_merge "#{base}ivf", :args => "--engage enable_av1"
test_merge "#{base}webm", :args => "--engage enable_av1"
test_merge "#{base}ivf", :args => "--webm"
test_merge "#{base}webm", :args => "--webm"
test_merge "#{base}ivf", :args => "--engage enable_av1 --webm"
test_merge "#{base}webm", :args => "--engage enable_av1 --webm"
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment