This repository has been archived by the owner. It is now read-only.

add support for "video projection" track headers #2064

Closed
mbunkus opened this Issue Aug 3, 2017 · 0 comments

Comments

@mbunkus
Owner

mbunkus commented Aug 3, 2017

Those were added to the specs and libMatroska a while ago. Support for them should be added to mkvmerge, mkvpropedit and the GUI's header editor.

mbunkus added a commit that referenced this issue Aug 3, 2017

propedit: add general support for elements in (sub-)sub-sub-masters
This is needed for implementing #2038 and #2064. Those new elements
located in `Track → TrackVideo → VideoColour` and `Track → TrackVideo
→ VideoColour → VideoColourMasteringMeta`, meaning four levels
deep. So far both mkvpropedit and the GUI's header editor only
supported two levels (`Track → TrackVideo` and `Track → TrackAudio`).

mbunkus added a commit that referenced this issue Aug 5, 2017

GUI: headers: refactor page initialization to use `property_element_c`
The information about each element's parents, its type, title and
description is available in property_element_c and used by mkvpropedit
already. As that's all the information needed by the GUI's header
editor, there's no reason to duplicate it in the header
editor. Instead it can iterate over the tables provided by
`property_element_c` and create pages based on that information.

This is in preparation of supporting the changes required for #2038
and #2064.

mbunkus added a commit that referenced this issue Aug 5, 2017

GUI: headers: support for editing video colour track attributes
Implements the second half of #2038. Also adds the necessary changes
for implementing #2064 eventually.

mbunkus added a commit that referenced this issue Aug 5, 2017

mbunkus added a commit that referenced this issue Aug 5, 2017

propedit: store (sub-)sub-sub-masters in change, not track
One track can only have one type of sub-master that changes may
affect: TrackVideo or TrackAudio, and there are no other masters on
that level that are relevant. So the sub-master can still be stored in
the track.

Below that there are now at least two different masters changes for
the same track may apply to: VideoColour and VideoProject. Therefore
storing the sub-sub-masters and its children in the track doesn't make
sense.

This is in preparation of adding support for "video projection" track
header elements in #2064.

mbunkus added a commit that referenced this issue Aug 5, 2017

mbunkus added a commit that referenced this issue Aug 5, 2017

mbunkus added a commit that referenced this issue Aug 8, 2017

GUI: headers: remove elements from newly created masters
When creating a new instance of a class derived from `EbmlMaster`,
libEBML adds instances for all mandatory children. So far the GUI's
header editor unconditionally uses `GetChild()` for ensuring that
track header sub-masters exist.

The combination of these two facts means that the header editor always
thinks that the video projection master contains all elements (as
they're all mandatory).

This commit removes the automatically added elements if a new master
instance has to be created.

See #2064.

mbunkus added a commit that referenced this issue Aug 8, 2017

GUI: headers: binaries: allow arbitrary bit length
This is required for the "video projection private data" element.

See #2064.

mbunkus added a commit that referenced this issue Aug 13, 2017

mbunkus added a commit that referenced this issue Aug 13, 2017

@mbunkus mbunkus closed this Aug 13, 2017

mkver referenced this issue Aug 19, 2017

GUI: headers: restore selected page no matter how deep in tree
Before the changes for #2068 the header editor only know two levels of
pages. Now the tree can be and is deeper. Upon saving the file the old
code was only able to remember and restore the selected page if it was
a top-level page or one of its children.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.