Skip to content

Commit

Permalink
Merge pull request #165 from Dash-Industry-Forum/publishing-workflow
Browse files Browse the repository at this point in the history
Publishing workflow
  • Loading branch information
thasso authored Sep 19, 2024
2 parents a288b6e + c77cb54 commit c6f6c70
Show file tree
Hide file tree
Showing 47 changed files with 164 additions and 43 deletions.
30 changes: 30 additions & 0 deletions .github/workflows/build-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Build Pull Request

on:
pull_request:
branches:
- master

jobs:
build:
runs-on: ubuntu-latest
container:
image: ghcr.io/dash-industry-forum/dashif-specs:latest
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}

steps:
- uses: actions/checkout@v4
- name: Build
env:
# Reset OPTS to empty to make sure we are not using
# interactive mode in CI
OPTS:
run: make -f /tools/Makefile spec SRC=DASH-IF-Ingest.bs.md NAME=Ingest

- name: Archive
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/
56 changes: 56 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Publish

on:
push:
branches:
- master

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
packages: read
pages: write
id-token: write

jobs:
build:
runs-on: ubuntu-latest
container:
image: ghcr.io/dash-industry-forum/dashif-specs:latest
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}

steps:
- uses: actions/checkout@v4
- name: Build
env:
# Reset OPTS to empty to make sure we are not using
# interactive mode in CI
OPTS:
run: make -f /tools/Makefile spec SRC=DASH-IF-Ingest.bs.md NAME=Ingest

- name: Archive
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/

package:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/download-artifact@v4
with:
name: dist
path: dist
- uses: actions/upload-pages-artifact@v3
with:
path: dist

publish:
runs-on: ubuntu-latest
needs: package
steps:
- name: Deploy to GitHub Pages
uses: actions/deploy-pages@v4
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dist/
25 changes: 13 additions & 12 deletions DASH-IF-Ingest.bs.md
Original file line number Diff line number Diff line change
Expand Up @@ -281,15 +281,15 @@ presentations based on information in the ingested stream. Figure 1 shows an
example for Interface-1. In many cases a common implementation is possible.

Figure 1: Example with [=CMAF Ingest=].
<figure> <img src="Diagrams/CMAF-Ingest.png"> </figure>
<figure> <img src="Images/CMAF-Ingest.png"> </figure>

The second workflow constitutes ingest to a passive delivery system such as a
cloud storage or a CDN. In this case, Interface-2 ([=DASH Ingest=] or
[=HLS Ingest=]) is used to ingest a stream already formatted to be ready for
delivery to an end client. Figure 2 shows an example for Interface-2.

Figure 2: Example with [=DASH Ingest=].
<figure> <img src="Diagrams/DASH-Ingest.png"> </figure>
<figure> <img src="Images/DASH-Ingest.png"> </figure>

A legacy example of a media ingest protocol for the first workflow is the ingest
part of the Microsoft Smooth Streaming protocol [[=MS-SSTR=]]. Interface-1 ([=CMAF Ingest=],
Expand Down Expand Up @@ -337,7 +337,7 @@ other factors.
</table>

Figure 3: Workflow with redundant ingest sources and receiving entities.
<figure> <img src="Diagrams/Redundant-Sources.png"> </figure>
<figure> <img src="Images/Redundant-Sources.png"> </figure>

Finally, Figure 3 highlights another aspect that was taken into consideration
for large-scale systems with many users. Often content owners would like to run
Expand Down Expand Up @@ -544,7 +544,7 @@ will make it easier to adopt such technologies.
Some discussions on the early development of the specification have been documented in [[=fmp4git=]].

Figure 4: CMAF Ingest with multiple ingest sources.
<figure> <img src="Diagrams/Multiple-Sources.png"> </figure>
<figure> <img src="Images/Multiple-Sources.png"> </figure>

Figures 5-7 detail some of the concepts and structures defined in
[[!MPEGCMAF]]. Figure 5 shows the data format structure of the [=CMAF track=].
Expand All @@ -558,7 +558,7 @@ referred to as a [=CMAF header=] in [[!MPEGCMAF]]. The combination of
pairs in the addressable object.

Figure 5: CMAF track stream.
<figure> <img src="Diagrams/CMAF-Track.png"></figure>
<figure> <img src="Images/CMAF-Track.png"></figure>

Figure 6 illustrates the presentation timing model, defined in [[!MPEGCMAF]]
clause 6.6. Different bit-rate tracks and/or media streams are conveyed in
Expand All @@ -583,10 +583,10 @@ time sharing an implicit timeline. A stream becoming available from a different
source needs to be synchronized and time-aligned with other streams.

Figure 6: CMAF track synchronization.
<figure> <img src="Diagrams/CMAF-Track-Sync.png"></figure>
<figure> <img src="Images/CMAF-Track-Sync.png"></figure>

Figure 7: CMAF late binding.
<figure> <img src="Diagrams/Late-Binding.png"></figure>
<figure> <img src="Images/Late-Binding.png"></figure>

Figure 8 shows the flow diagram of the protocol. It starts with a DNS resolution
(if needed) and an authentication step (using two-factor authentication, TLS
Expand All @@ -609,7 +609,7 @@ sending the *lmsg* brand letting the [=receiving entity=] know that the POST
command has been concluded.

Figure 8: CMAF Ingest flow.
<figure> <img src="Diagrams/Ingest-Flow.png"></figure>
<figure> <img src="Images/Ingest-Flow.png"></figure>

## General Protocol, Manifest and Track Format Requirements ## {#interface-1-requirements}

Expand Down Expand Up @@ -1558,7 +1558,7 @@ In this section, we provide some example deployments for live streaming.
Figure 10 shows an example where a separate packager and origin server are used.

Figure 10: Example setup with CMAF Ingest and DASH/HLS Ingest.
<figure><img src="Diagrams/Example-1.png"> </figure>
<figure><img src="Images/Example-1.png"> </figure>

The broadcast source is used as input to the [=live encoder=]. The broadcast
sources can be the SDI signals from a broadcast facility or MPEG-2 TS streams
Expand Down Expand Up @@ -1717,7 +1717,7 @@ initialization segment in case of connection failures to conform to the CMAF
Ingest specification.

Figure 11: DASH-IF/DVB reference live chunked CMAF workflow.
<figure> <img src="Diagrams/Example-2.png"> </figure>
<figure> <img src="Images/Example-2.png"> </figure>


# Implementations (Informative) # {#implementations}
Expand Down Expand Up @@ -1973,7 +1973,8 @@ Line Numbers: off
Markup Shorthands: markdown yes
Boilerplate: copyright off, abstract off
Abstract: None
Image Auto Size: false
Image Auto Size: false
Date: 2024-02-28
</pre>

<!-- Example of custom bibliography entries. Prefer adding your document to SpecRef over maintaining a custom definition. -->
Expand All @@ -1983,5 +1984,5 @@ Image Auto Size: false
<pre boilerplate="conformance"></pre>

<pre boilerplate="logo">
<!-- <a href="https://dashif.org/"><img src="Diagrams/DASH-IF.png"></a> -->
<!-- <a href="https://dashif.org/"><img src="Images/DASH-IF.png"></a> -->
</pre>
Binary file removed Diagrams/CMAF-Ingest.png
Binary file not shown.
Binary file removed Diagrams/CMAF-Track-Sync.png
Binary file not shown.
Binary file removed Diagrams/CMAF-Track.png
Binary file not shown.
Binary file removed Diagrams/DASH-IF.png
Binary file not shown.
Binary file removed Diagrams/DASH-Ingest.png
Binary file not shown.
Binary file removed Diagrams/Example-1.png
Binary file not shown.
Binary file removed Diagrams/Example-2.png
Binary file not shown.
Binary file removed Diagrams/Late-Binding.png
Binary file not shown.
Binary file removed Diagrams/Multiple-Sources.png
Binary file not shown.
Binary file removed Diagrams/Redundant-Sources.png
Binary file not shown.
Binary file removed Diagrams/Splice-Ingest.png
Binary file not shown.
Binary file removed Output/DASH-IF-Ingest.html
Binary file not shown.
Binary file removed Output/DASH-IF-Ingest.pdf
Binary file not shown.
Binary file removed Output/DASH-IF-Ingest.zip
Binary file not shown.
Binary file removed Output/Diagrams/CMAF-Ingest.png
Binary file not shown.
Binary file removed Output/Diagrams/CMAF-Track-Sync.png
Binary file not shown.
Binary file removed Output/Diagrams/CMAF-Track.png
Binary file not shown.
Binary file removed Output/Diagrams/DASH-IF.png
Binary file not shown.
Binary file removed Output/Diagrams/DASH-Ingest.png
Binary file not shown.
Binary file removed Output/Diagrams/Example-1.png
Binary file not shown.
Binary file removed Output/Diagrams/Example-2.png
Binary file not shown.
Binary file removed Output/Diagrams/Ingest-Flow.png
Binary file not shown.
Binary file removed Output/Diagrams/Late-Binding.png
Binary file not shown.
Binary file removed Output/Diagrams/Multiple-Sources.png
Binary file not shown.
Binary file removed Output/Diagrams/Redundant-Sources.png
Binary file not shown.
Binary file removed Output/Diagrams/Splice-Ingest.png
Binary file not shown.
Binary file removed Output/Images/CMAF-Ingest.png
Binary file not shown.
Binary file removed Output/Images/CMAF-Track-Sync.png
Binary file not shown.
Binary file removed Output/Images/CMAF-Track.png
Diff not rendered.
Binary file removed Output/Images/DASH-IF.png
Diff not rendered.
Binary file removed Output/Images/DASH-Ingest.png
Diff not rendered.
Binary file removed Output/Images/Example-1.png
Diff not rendered.
Binary file removed Output/Images/Example-2.png
Diff not rendered.
26 changes: 0 additions & 26 deletions Output/Images/Ingest-Flow.wsd

This file was deleted.

Binary file removed Output/Images/Late-Binding.png
Diff not rendered.
Binary file removed Output/Images/Multiple-Sources.png
Diff not rendered.
Binary file removed Output/Images/Redundant-Sources.png
Diff not rendered.
Binary file removed Output/Images/Splice-Ingest.png
Diff not rendered.
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ See [Document Authoring Kit](https://dashif.org/DocumentAuthoring/) for details

Most recent output from the **master** branch:

* [HTML document](https://dashif-documents.azurewebsites.net/Ingest/master/DASH-IF-Ingest.html)
* [PDF document](https://dashif-documents.azurewebsites.net/Ingest/master/DASH-IF-Ingest.pdf)
* [Download PDF + HTML as archive](https://dashif-documents.azurewebsites.net/Ingest/master/DASH-IF-Ingest.zip)
[![Build status of master branch](https://github.com/Dash-Industry-Forum/Ingest/actions/workflows/publish.yml/badge.svg?branch=master)](https://github.com/Dash-Industry-Forum/Ingest/actions/workflows/publish.yml)

![Build status of master branch](https://dev.azure.com/dashif/Automation/_apis/build/status/Ingest?branchName=master) [Build history](https://dev.azure.com/dashif/Automation/_build?definitionId=7)
* [HTML document](http://dashif.org/Ingest/)
* [PDF document](http://dashif.org/Ingest/Ingest.pdf)

https://github.com/RufaelDev/Ingest/blob/master/README.md
# Document authoring

See [Document Authoring Kit](https://dashif.org/DASH-IF-IOP/authoring/) for details on document authoring process and the relevant tooling.
22 changes: 22 additions & 0 deletions build.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
@echo off
set IMG=dashif/specs-builder:latest

rem Check if OPTS is defined, if not, set default value
if "%OPTS%"=="" (
set OPTS=-ti
)

rem Collect command-line arguments
set TARGETS=%*

rem If no arguments are provided, use "spec"
if "%TARGETS%"=="" (
set TARGETS=spec
)

rem Add parameters to TARGETS
set TARGETS=%TARGETS% SRC=DASH-IF-Ingest.bs.md NAME=Ingest

echo Running with targets: '%TARGETS%'
docker run --rm %OPTS% -v "%cd%:/data" -p 8000:8000 %IMG% %TARGETS%

29 changes: 29 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/bash

# Here is the command that can be used to debug or develop with the
# local resources.
#
# docker run --rm -ti -v `pwd`:/data -v `pwd`/build-tools/tools:/tools -v `pwd`/data/boilerplate/dashif:/usr/local/lib/python3.12/dist-packages/bikeshed/spec-data/boilerplate/dashif dashif-specs:latest
#

# Run the docker container and pass all the arguments
IMG=dashif/specs-builder:latest

# Allow to overwrite additional options from the outside.
# We use tty and interactive by default since this makes it easier
# to deal with watch mode and Ctrl-C etc but we can not use this
# for instance in CI mode
if [ -z ${OPTS+x} ]; then
OPTS=-ti
fi

TARGETS="${@}"
if [ -z "${TARGETS}" ]; then
TARGETS="spec"
fi
# Add parameters
TARGETS="${TARGETS} SRC=DASH-IF-Ingest.bs.md NAME=Ingest"

echo "Run with targets: '${TARGETS}'"
docker run --rm ${OPTS} -v `pwd`:/data -p 8000:8000 \
${IMG} ${TARGETS}
2 changes: 2 additions & 0 deletions setup.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@echo off
docker pull dashif/specs-builder:latest
5 changes: 5 additions & 0 deletions setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash

# Pull the latest build image
IMG=dashif/specs-builder:latest
docker pull ${IMG}

0 comments on commit c6f6c70

Please sign in to comment.