Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

making it easier to target HbbTV and ATSC3 smart TVs #1

Open
jpiesing opened this issue Feb 1, 2021 · 13 comments
Open

making it easier to target HbbTV and ATSC3 smart TVs #1

jpiesing opened this issue Feb 1, 2021 · 13 comments
Labels
Deferred Deferred to future work Smart/Hybrid TV

Comments

@jpiesing
Copy link
Contributor

jpiesing commented Feb 1, 2021

We should consider making it easier to target HbbTV and ATSC3 smart TVs.

Specifically, we could include in the UI on the PC a button that generates a file with the correct signalling to launch the test runner on the Smart TV - a file suitable to be played into the TV by a modulator as-is.

I don't know what this file would be for ATSC3 but I'm sure there is something.
For HbbTV, it would be an MPEG-2 transport stream with an AIT containing the IP address of the PC.

@louaybassbouss
Copy link
Collaborator

@jpiesing maybe in first stage we need just a script that generates the MPEG-2 TS Stream based on input parameters (mainly the endpoint of the test runner). Do you have volunteers in mind who can help with this?

@jpiesing
Copy link
Contributor Author

jpiesing commented Feb 1, 2021

@jpiesing maybe in first stage we need just a script that generates the MPEG-2 TS Stream based on input parameters (mainly the endpoint of the test runner). Do you have volunteers in mind who can help with this?

HbbTV uses the open source package opencaster, http://www.avalpa.com/the-key-values/15-free-software/33-opencaster, to generate transport streams with AITs. I suspect it's a matter of finding finding out how to call it with the right arguments. There are examples in the documentation.

@nicholas-fr
Copy link

In case it's useful, another alternative is tsduck.
For example, you can create an XML file with the AIT definition and update the AIT in an existing TS with the following commands:
tstabcomp --compile AIT.xml
tsp -I file "wave_test_runner_old_AIT.ts" -P inject --replace --binary AIT.bin --pid 0x1000 -O file wave_test_runner_new_AIT.ts

So one option is to create a TS using ffmpeg and tsduck, with an AIT that can be updated with the correct test runner URL via a script.

@jpiesing
Copy link
Contributor Author

jpiesing commented Feb 2, 2021

February 2nd
ATSC3 would be more complex to create all the needed layers.
ATSC3 test suite is mostly PCAP captures after the signalling layer. This is a single service.
STLTP (Studio to Transmitter Link - A/324) captures are also used by some people.
A DekTek modulator for ATSC3 would take both PCAP and STLTP.
GPAC have an open source implementation for part of the ATSC3 stack.

@bobcampbell-resillion
Copy link

I'm sure we can provide an ATSC pcap, presuming CTA agree to share one we'll produce for their NEXTGEN TV logo program anyway.

@jpiesing
Copy link
Contributor Author

For HbbTV, it has been pointed out HbbTV 2.0.x's support for DIAL would allow the test UI on the PC to push the HTTP server URL straight to a TV without needing a transport stream or a modulator. ATSC A/338 includes something very similar as "Companion Device Application to Primary Device Communication".

@bobcampbell-eurofins Do you know if A/338 is implemented in the real world?

@bobcampbell-resillion
Copy link

Hi Jon,
It is mandatory for a HbbTV 2 terminal to support this method - correct?

I can't speak for ATSC implementers but A/338 is not something I think has been widely adopted in the real world yet. I think it is considered "optional", for a start, and the CTA's CEB 32.X docs (Recommended Practice for ATSC 3.0 Television
Sets) do not address it at all yet. I don't think we could rely on it as a launch mechanism for ATSC receivers.

@cta-source
Copy link

Discussion has been around a test setup that would dynamically edit or create a PCAP stream that points to the hosted version so that tests are be launched in the correct user agent. Eurofins is willing to investigate this approach after certain resources are available, so we should hold off on decisions until after the March timeframe. No "due date" for results of this investigation is set yet.

@jpiesing
Copy link
Contributor Author

jpiesing commented Apr 21, 2021

I would like to see a button in the landing page (or perhaps the page to configure a session) that;

  • For HbbTV generates a transport stream and for ATSC3 generates a PCAP
  • Has an option (another button?) to download the TS or PCAP from the system hosting the docker instance to the system where the UI is running (where different).
    -- The TS or PCAP would include a reference to the landing page for the DUT
    -- For a cloud hosted instance (if that's even appropriate for DPCTF), the reference would include the host name of that instance. Such a TS / PCAP could be distributed from github.
    -- For a locally hosted instance, the reference would include the IP address of the system running the docker instance
  • For HbbTV, the landing page would need some additional HbbTV specific method calls since it would run as a so-called "broadcast-related" application. It would need to make itself broadcast-independent and request the remote control keys needed for the app.

Once the test engineer has got the TS or PCAP on a system with a modulator, they can use the UI of the stream player for that modulator to play the TS or PCAP.

@jpiesing
Copy link
Contributor Author

jpiesing commented Apr 21, 2021

For HbbTV, there is also the option for the reference to the landing page to be pushed to the DUT using DIAL. Due to a lack of suitable web APIs, this would be limited to locally hosted instances of the docker image and would run as part of the docker image. This has particular advantages in the current circumstances as not everyone working from home will have a modulator with them. It also simplifies the process as the session id can be pushed to the DUT in the DIAL messaging.
Perhaps there would be an option in the configure session UI to set the IP address or host name of the DUT. The docker image could do DIAL discovery and offer a choice and/or there could be the possibility to enter the IP address / host name manually.

@jpiesing
Copy link
Contributor Author

After discussions with @louaybassbouss , the DPCTF test runner is derived from the WMAS test runner.
Since this issue is also applicable to the WMAS test runner, I've created new issues in that repository. If the WMAS test runner would be updated then hopefully nothing specific to the DPCTF test runner would be needed.

@gitwjr
Copy link

gitwjr commented Nov 16, 2022

Yan is already testing with HbbTV using just the Test Runner. Requires a cloud transport stream (which WMAS does have). It does not appear anything has been done on ATSC.
Deferred to a future release.

@bobcampbell-resillion
Copy link

For reference the upcoming (Jan 2024) and current (Dec 2023) release of Resillion's test harnesses for HbbTV (Ligada) and ATSC (Arreios) support WMAS testing natively within the tool environment. I.e. no configuration of launch RF streams required and the servers for the tests are hosted by Resillion. These tools are used by all major manufacturers for those standards.

DPCTF capability will follow in subsequent releases, including local hosting of the test infrastructure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Deferred Deferred to future work Smart/Hybrid TV
Projects
None yet
Development

No branches or pull requests

6 participants