Skip to content

Commit

Permalink
Merge pull request #29 from nrkno/chore/update-information-files
Browse files Browse the repository at this point in the history
Updated information files
  • Loading branch information
nytamin authored Dec 5, 2023
2 parents 39b069c + 7844402 commit d7ccae2
Show file tree
Hide file tree
Showing 8 changed files with 228 additions and 39 deletions.
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/BUG_REPORT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Bug Report
description: Use this if you've found a bug
title: "Bug Report: [Short description of the bug]"
labels: 🐛bug
assignees: ''

---

<!--
Before you post, be sure to read our Contribution guidelines:
https://nrkno.github.io/sofie-core/docs/for-developers/contribution-guidelines
-->

## About Me
<!--
Tell us who / which organization you are representing, and how the Sofie team will be able to contact you.
Example: "This issue is posted on behalf of the NRK."
-->

## Observed Behavior
<!-- What happened? -->

## Expected Behavior
<!-- What did you expect to happen? -->

## Version
<!-- What version of Sofie Core / Gateways / other components are you using? -->

## Severity / Impact
<!--
How big of an issue is this? How does this limit your operations?
Examples:
* This is a blocker for us, we cannot use feature X until this is fixed.
* Not a big issue for us, but it would be nice to have this fixed.
-->


22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/OTHER.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: Other Issue
description: Use this for other issues
title: "Other: [Short description of the issue]"
labels: "Other"
assignees: ''

---

<!--
Before you post, be sure to read our Contribution guidelines:
https://nrkno.github.io/sofie-core/docs/for-developers/contribution-guidelines
-->

## About Me
<!--
Tell us who / which organization you are representing, and how the Sofie team will be able to contact you.
Example: "This issue is posted on behalf of the NRK."
-->

## Issue
<!-- Describe the issue below -->
22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/QUESTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: Question
description: Use this if you have a question to the Sofie team
title: "Question: [Short summary of the question]"
labels: ❓ Question
assignees: ''

---

<!--
Before you post, be sure to read our Contribution guidelines:
https://nrkno.github.io/sofie-core/docs/for-developers/contribution-guidelines
-->

## About Me
<!--
Tell us who / which organization you are representing, and how the Sofie team will be able to contact you.
Example: "This issue is posted on behalf of the NRK."
-->

## My Question
<!-- Write your question below. -->
46 changes: 46 additions & 0 deletions .github/ISSUE_TEMPLATE/RFC.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
name: Request for Comments
description: Use this to initiate a discussion about a new feature or a larger change
title: "RFC: [Short description of the feature/change]"
labels: RFC, Contribution
assignees: ''

---

<!--
Before you post, be sure to read our Contribution guidelines:
https://nrkno.github.io/sofie-core/docs/for-developers/contribution-guidelines
-->

## About Me
<!--
Tell us who / which organization you are representing, and how the Sofie team will be able to contact you.
Example: "This RFC is posted on behalf of the NRK."
-->

## Background
<!--
Please write some background information here, such as:
What is your use case?
What problem are you trying to solve?
-->


## Proposal
<!--
Please describe your proposal here:
-->


## Status
<!--
Please don't touch this section, the Sofie team will update this as the RFC progresses.
-->

The Sofie Team will evaluate this RFC and open up a discussion about it, usually within a week.

- [x] RFC created
- [ ] Sofie Team has evaluated the RFC
- [ ] A workshop has been planned
- [ ] RFC has been discussed in a workshop
- [ ] A conclusion has been reached, see comments in thread.
51 changes: 47 additions & 4 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,56 @@
* **What kind of change does this PR introduce?** (Bug fix, feature, docs update, ...)
<!--
Before you open a PR, be sure to read our Contribution guidelines:
https://nrkno.github.io/sofie-core/docs/for-developers/contribution-guidelines
-->

## About the Contributor
<!--
Tell us who / which organization you are representing, and how the Sofie team will be able to contact you.
Example: "This pull request is posted on behalf of the NRK."
-->


* **What is the current behavior?** (You can also link to an open issue here)
## Type of Contribution

This is a:
<!-- (pick one) -->
Bug fix / Feature / Code improvement / Documentation improvement / Other (please specify)


* **What is the new behavior (if this is a feature change)?**
## Current Behavior
<!--
Please describe how things worked before this PR.
If it's a bug fixe: Describe the bug (what was happening?)
-->


## New Behavior
<!--
What is the new behavior?
-->

* **Other information**:

## Testing Instructions
<!--
Please provide some instructions and other information for how to verify that the feature works.
Examples:
* "Do a Take for a part that contains an adlib, verify that the adlib plays out."
* "Open the Switchboard panel and toggle a route, verify that the route toggles in the GUI."
* "This feature also affects 'feature X', so that needs to be tested for regressions as well."
-->


## Other Information
<!-- The more information you can provide, the easier the pull request will be to merge -->


## Status
<!--
Before you open the PR, make sure the items below are done.
If they're not, please open the PR as a Draft.
-->

- [ ] PR is ready to be reviewed.
- [ ] The functionality has been tested by the author.
- [ ] Relevant unit tests has been added / updated.
- [ ] Relevant documentation (code comments, [system documentation](https://nrkno.github.io/sofie-core/)) has been added / updated.
12 changes: 12 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# How to Contribute to this Repository

Before contributing to this specific repository, please read the [Contribution Guidelines](https://nrkno.github.io/sofie-core/docs/for-developers/contribution-guidelines) for the _Sofie_ project.


## Branches
This repository uses the following branches:

* The **_master_** is our main branch. We consider it stable and it is used in production.
* The **_develop_** branch is our unstable branch, it is used for staging, testing and development.

We encourage you to base your contributions on the latest **_master_** branch of this repository (alternatively the **_develop_** branch).
56 changes: 31 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
# Sofie Quantel Gateway
This is the _Quantel Gateway_ application of the [**Sofie** TV Automation System](https://github.com/nrkno/Sofie-TV-automation/). This application uses native bindings to bridge the Quantel ISA System CORBA API and a Sofie-specific HTTP REST API, allowing discovery of clips and playback control of Quantel servers.

# Sofie: The Modern TV News Studio Automation System (Quantel gateway)
## General Sofie System Information
* [_Sofie_ Documentation](https://nrkno.github.io/sofie-core/)
* [_Sofie_ Releases](https://nrkno.github.io/sofie-core/releases)
* [Contribution Guidelines](CONTRIBUTING.md)
* [License](LICENSE)

This is a part of the [**Sofie** TV News Studio Automation System](https://github.com/nrkno/Sofie-TV-automation/).
---

## Abstract
This library uses native bindings to bridge the Quantel ISA System CORBA API and a Sofie-specific HTTP REST API, allowing discovery of clips and playback control of Quantel servers.
## Supported Devices
* Grass Valley _sQ Series_ media servers via ISA System.

## Supported devices
* [Grass Valley sQ series media servers](https://www.grassvalley.com/products/sq_1000_servers/) via ISA System.

## Install instructions
## Installation

This software can be built for Windows and Linux platforms:

* On Linux, an OmniORB4 development package should be available ([Ubuntu example](https://packages.ubuntu.com/search?keywords=omniorb)) for your distribution.

* On Windows, the required DLL and LIB files are included with this package. The included OmniORB was built with Visual Studio 2017 for x64 architecture. The native extension runs with the 64-bit version of Node.js.

This addon has not been built for or tested on MacOS.
This addon has not been built for or tested on macOS.

### Prerequisites

Expand All @@ -41,7 +44,7 @@ Build the typescript interface module:

yarn build

This package has automated tests that run with [jest](). Test with:
This package has automated tests that run with _jest_. Test with:

yarn test

Expand Down Expand Up @@ -70,13 +73,13 @@ For example:

yarn server --port 9876 --isa qisa01:2099 --dummy true --watchdog 30

### Run with docker
### Run with Docker

Available on the [Sofie TV docker hub](https://hub.docker.com/u/sofietv):

docker pull sofietv/tv-automation-quantel-gateway:master

### Experimenting and importing
### Experimenting and Importing

Experiment from the REPL with:

Expand All @@ -87,7 +90,7 @@ Import into an external project with:
import { Quantel } from 'tv-automation-quantel-gateway'
const { Quantel } = require('tv-automation-quantel-gateway')

See the [walkthrough for how to do playback](./doc/plyout_walkthrough.md) with this module as a Node.js API.
See the [walkthrough for how to do playback](./doc/playout_walkthrough.md) with this module as a Node.js API.

## HTTP API

Expand All @@ -105,7 +108,7 @@ ISA systems are normally deployed in _master_ and _slave_ pairs. The `:address`

A successful request produces a JSON response with the discovered IOR (`isaIOR`) and ISA endpoint address (`href`). Subsequently, the currently configured connection can be queried with a GET request to `/connect`.

### Topology of a Quantel system
### Topology of a Quantel System

In general, paths are all of the form ...

Expand Down Expand Up @@ -169,7 +172,7 @@ A GET request to the zones name (`/:zoneID/server/`) retrieves details of all th
} ]
```

### Create a port
### Creating a Port

To assign a channel to a port, choose a suitable `:portID` and PUT an empty document to ...

Expand Down Expand Up @@ -226,7 +229,7 @@ Add `/properties` to the port to get name/value pair configuration properties fo

/:zoneID/server/:serverID/port/:portID/properties

### Clip references
### Clip References

_Fragments_ of _clips_ are loaded onto _ports_. This means that an automation system is responsible of associating a specific video clip to appear on an output _channel_ (SDI ports). Clips are referenced by their integer identifier (`:clipID`) ...

Expand Down Expand Up @@ -306,7 +309,7 @@ This produces (a few fields omitted):
}
```

### Loading clips
### Loading Clips

Clips consist of _fragments_. To play a _clip_, or a sub-clip of a clip, it is necessary to load fragments onto a port. To query all fragments for a clip:

Expand Down Expand Up @@ -352,7 +355,7 @@ To load the fragments onto a port, POST the fragments to the port reference, add

Information about the status of the port is returned.

### Port fragment operations - query and wipe
### Port Fragment Operations — Query and Wipe

The fragments that are loaded onto a port can be queried with a GET request to:

Expand All @@ -370,7 +373,7 @@ The `:start` parameter is the first frame in the port's timeline to wipe from an

To completely clear a port of all fragments, see port reset.

### Cloning clips
### Cloning Clips

The Quantel systems have a mechanism to clone clips between servers, either within in the same zone or between servers in different zones (_inter-zone cloning_). Only the source essence material that is missing from a particular destination disk pool is copied. Where the material has already been duplicated, this means that a request to clone can be almost instantaneous. The Quantel gateway allows clones to be initiated and the subsequent copy progress of that or any other clone to be monitored.

Expand Down Expand Up @@ -424,23 +427,23 @@ A clip can be deleted by sending a DELETE request to its path:

Note that the clip metadata will persist in the database but the essence will be removed, setting the `Frames` field to `0`.

### Controlling the port
### Controlling the Port

To control the PORT, POST trigger messages:

/:zoneID/server/:serverID/port/:portID/trigger/:trigger(?offset=:offset)

The `:trigger` is one of `START`, `STOP` or `JUMP`. Note that `STOP` is equivalent to CasparCG _pause_. To _resume_, use `START`. The optional `:offset` is a frame at which to trigger the action, for example `.../trigger/STOP?offset=345` signals that the playing of the clip should stop at frame 345 on the ports timeline.

#### Hard jump
#### Hard Jump

To force a hard jump to specific point, ideally when stopped and not on air, POST to:

/:zoneID/server/:serverID/port/:portID/jump?offset=:offset

This will cause an immediate jump and - if the video is playing - it will pause on the jumped-to frame. If the video at the jump-to point is not currently loaded on the port, a short period of black may be played out.

#### Triggered jump
#### Triggered Jump

For smoother jumping, each port can have a controlled jump point set and can cause a triggered jump. As long as the jump point is set with a second or more to spare, the material to jump to will be loaded onto the port. This enables smooth playing across the jump, e.g. to achieve a smooth loop. To set the triggered jump point:

Expand All @@ -461,15 +464,15 @@ All error responses are in JSON format and includes properties for a numerical `
}
```

### Shutting down
### Shutting Down

To request that the application shuts down, POST to

/kill/me/if/you/are/sure

This will wait 5 seconds and then initiate web server and Quantel connection shutdown. If the application is running in a docker container with automatic restart enabled, the server will restart.

### Debug logging
### Debug Logging

The application can be told to activate debug-logging at runtime by POST:ing to

Expand All @@ -486,4 +489,7 @@ Unless otherwise called out in the header of a file, the files of this project a

Please also note the specific terms of the [`Quentin.idl`](./include/quantel/Quentin.idl) file.

Copyright (c) 2019 Norsk rikskringkasting AS (NRK)
---

_The NRK logo is a registered trademark of Norsk rikskringkasting AS. The license does not grant any right to use, in any way, any trademarks, service marks or logos of Norsk rikskringkasting AS._

Loading

0 comments on commit d7ccae2

Please sign in to comment.