Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
jamiesonpepper authored Jan 22, 2023
2 parents 647a584 + 513381c commit 9e89466
Show file tree
Hide file tree
Showing 5 changed files with 7 additions and 8 deletions.
7 changes: 2 additions & 5 deletions docs/spherical-video-rfc.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@ Spherical video metadata is stored in a uniquely-identified *moov.trak.uuid* box
|CroppedAreaLeftPixels|Column where the left edge of the image was cropped from the full sized panorama|Integer|No|0| |
|CroppedAreaTopPixels|Row where the top edge of the image was cropped from the full sized panorama|Integer|No|0| |

<a name="StereoMode"\>
#### Stereo Mode

[SEI Frame Packing Arragement](http://www.itu.int/ITU-T/recommendations/rec.aspx?rec=10635) and the [StereoMode](http://www.matroska.org/technical/specs/index.html#StereoMode) tag for Matroska/WebM video files can be used to describe the left/right frame layout. To include non-h264 MPEG-4 files an additional StereoMode tag will override the native stereo configuration. The supported StereoMode values are shown below with the corresponding native values.
Expand All @@ -90,7 +89,6 @@ Cropping, initial view, and projection properties are shared across the left/rig
|FullPanoWidthPixels |Container Width. |Half Container Width. |Container Width. |
|FullPanoHeightPixels |Container Height.|Container Height. |Half Container Height.|

<a name="InitialView"\>
#### Initial View

The default initial viewport is set such that the frame center occurs at the view center. A diagram of the rotation model for an equirectangular projection is shown below.
Expand All @@ -112,7 +110,6 @@ The default initial viewport is set such that the frame center occurs at the vie
o - the image center for a pitch of 45 and a heading of 90
> - the up vector for a rotation of 90 degrees.

<a name="LocalMetadata"/a>
### Local Metadata
Version 1 supports the following Local Metadata:

Expand All @@ -133,7 +130,7 @@ Metadata content will go into the [BlockAdditional](http://matroska.org/technica
User data unregistered SEI message syntax from the ISO-14496-10:2005 (see D.1.6). This message is an SEI message of Payload Type 5.

### Specifications of Local Metadata Sampled at Intervals
In this case, the metadata content not availble at frame-level accuracy, but rather sampled as a certain time interval.
In this case, the metadata content not available at frame-level accuracy, but rather sampled as a certain time interval.

#### WebM/Matroska
Metadata content should be stored as a separate metadata track. The metadata track entry must have the following values for specified fields:
Expand Down Expand Up @@ -173,7 +170,7 @@ Header bits (1 to 32): flags indicating which metadata are present.

Depending on which flags are set, the actual metadata will follow in the exact order of the flags.

Each block of local metadata will be preceded by the length of that particular block of data. This will alow parsers to skip metadata blocks.
Each block of local metadata will be preceded by the length of that particular block of data. This will allow parsers to skip metadata blocks.

Example:

Expand Down
1 change: 1 addition & 0 deletions docs/spherical-video-v2-rfc.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ aligned(8) class Stereoscopic3D extends FullBox(‘st3d’, 0, 0) {
| `1` | **Stereoscopic Top-Bottom**: Indicates the video frame contains a stereoscopic view storing the left eye on top half of the frame and right eye at the bottom half of the frame.|
| `2` | **Stereoscopic Left-Right**: Indicates the video frame contains a stereoscopic view storing the left eye on left half of the frame and right eye on the right half of the frame.|
| `3` | **Stereoscopic Stereo-Custom**: Indicates the video frame contains a stereoscopic view storing left and right eyes in the frame, but its layout is application dependent, and needs to be determined elsewhere. For example, this must be used with a mesh projection that contains a mesh for each eye. In this case the layout information is stored in the meshes instead of explicitly described here.|
| `4` | **Stereoscopic Right-Left**: Indicates the video frame contains a stereoscopic view storing the right eye on the left half of the frame and the left eye on the right half of the frame.|

#### Spherical Video Box (sv3d)
##### Definition
Expand Down
3 changes: 2 additions & 1 deletion spatialmedia/gui.py
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -333,10 +333,11 @@ def report_callback_exception(self, *args):

def main():
root = tk.Tk()
root.tk.call('tk', 'scaling', 2.0)
tk.report_callback_exception = report_callback_exception
app = Application(master=root)
app.mainloop()


if __name__ == "__main__":
main()
main()
2 changes: 1 addition & 1 deletion spatialmedia/metadata_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ def parse_spherical_xml(contents, console):
return

sphericalDictionary = dict()
for child in parsed_xml.getchildren():
for child in list(parsed_xml):
if child.tag in SPHERICAL_TAGS.keys():
console("\t\t" + SPHERICAL_TAGS[child.tag]
+ " = " + child.text)
Expand Down
2 changes: 1 addition & 1 deletion spatialmedia/mpeg/container.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ def load(fh, position, end):

def load_multiple(fh, position=None, end=None):
loaded = list()
while (position < end):
while (position + 4 < end):
new_box = load(fh, position, end)
if new_box is None:
print("Error, failed to load box.")
Expand Down

0 comments on commit 9e89466

Please sign in to comment.