Code Monkey home page Code Monkey logo

hbbtv-testsuite's People

Contributors

deokhyunkim avatar lixx19 avatar mitxp avatar ybootin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hbbtv-testsuite's Issues

Parental rating tests should not use hasOwnProperty to check

Parental ratings tests are using hasOwnProperty to check if "name" and "value" are set on the ParentalRating object.

http://itv.mit-xperts.com/hbbtvtest/parentalcontrol/index.html line 90:

> if (!rating.hasOwnProperty('name') || !rating.hasOwnProperty('value')) { 

This test is incorrect, as the properties name & values have no reason to be "own properties" as they are defined on the object prototype.
Please check using 
if ('name' in rating) 
I guess you could also check using 
rating.prototype.hasOwnProperty('name')

https://stackoverflow.com/questions/13632999/if-key-in-object-or-ifobject-hasownpropertykey
https://developers.google.com/web/updates/2015/04/DOM-attributes-now-on-the-prototype-chain

Date and time test does not match the latest stream

The value of streamtime in settings.js used by the datetime test does not correspond to the TDT/TOT in the latest test transport stream (http://www.mit-xperts.com/download/irtws201208.zip).

Should the test stream always use the same date and time as the test suite, or should the test suite be updated whenever the stream is changed?

Also, in the definition of streamtime, the local hours and minutes do not correspond to the (UTC) timestamp value.

Application signalled from 'HbbTV-DSM-CC-Prio' fails XHR CORS policy enforcement

The 'HbbTV-DSM-CC-Prio' service signals an AUTOSTART application signalled w/ both HTTP and OC transport types. When using AIT order for transport protocol preference, the application is loaded from the OC and issues an XHR request which fails as follows:

XMLHttpRequest cannot load http://itv.ard.de/ardstart/check.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'dvb://1.ff03.139c.14' is therefore not allowed access.

Prior to errata 3, ETSI TS 102 796 v1.2.1 did require implementers to consider an application boundary as part of its origin: "For files requested with XMLHttpRequest, the Same-Origin Policy shall be extended using the application boundary i.e. any origin in the application boundary will be considered of same origin."

However w/ HbbTV CR https://www.hbbtv.org/redmine/attachments/download/1715/hbbtv-cr-2309r2-broadcast-application-origin-errata.doc, this requirement was removed from errata 3. So the application boundary can no longer be accounted for as part of the same-origin, which here is 'dvb://1.ff03.139c.14'. The UA CORS policy enforcement will deny access unless the target server replies w/ a 'Access-Control-Allow-Origin' header allowing access to the requested resource. No such header is currently returned by the server, hence the failure.

As an additional reference, the same kind of problem is discussed in the HbbTV redmine issue #2312.

issue about useragent test

In the HBBTV Specification part 7.3.2.4, it gives two examples, the second example doesn't pass in current useragent test.
In the validate.php file, line 41 to line 48 should be removed.

memory audio test (cache=true parameter)

For the "memory audio test" (http://itv.mit-xperts.com/hbbtvtest/memoryaudio/ ) the object is declared using:

object type="audio/mp4" id="aud" cache="true" data="http://itv.mit-xperts.com/hbbtvtest/memoryaudio/stream.php/test.aac"
param name="loop" value="2" /
/object

Is there any reason why cache="true" is set within the object tag ?
"cache" is not an attribute of the A/V Control object, and based on OIPF Volume 5 - Declarative Application Environment v1.2, chapter "7.14.10.1 Usage of CE-HTML tags" , cache shall be a param element.
Am I missing something ?
Actually I guess that current test page is working on most HbbTV browser implementation only because implementers are NOT checking "cache" but only the loop parameter.

Anyway I believe the standard test implementation should be :

object type="audio/mp4" id="aud" data="http://itv.mit-xperts.com/hbbtvtest/memoryaudio/stream.php/test.aac"
param name="cache" value="true"
param name="loop" value="2" /
/object

Automation PIN code uses VK_0-VK_9 but app does set keyset mask to use it

Few days ago automation support was added.

Code that handles automation PIN code handles VK_0-VK_9 keys (https://github.com/mitxp/HbbTV-Testsuite/blob/master/index.php line 40), but application does not set proper keyset to handle numeric keys (i.e. Keyset.NUMERIC)

Please update initApp() in https://github.com/mitxp/HbbTV-Testsuite/blob/master/base.js to include Keyset.NUMERIC, i.e. call
setKeyset(0x1+0x2+0x4+0x8+0x10+0x100);
instead of:
setKeyset(0x1+0x2+0x4+0x8+0x10);

preferredAudioLanguage should not check that the length is 3.

From the OIPF Declarative-Application-Denvironment V1.1.
It says "Each language SHALL be indicated by its ISO 639 langauge code".

But there's two kind of ISO 639.
ISO 639-1 is 2 length code, ISO 639-2 is 3 length code.

So we should not check the length for verficiation of preferredAudioLanguage.

HTML5 Video Test case problem

Hi, I've encounter an possible issue but not sure if it is the intended behavior.

When entering HTML5 Video test case and go through step 1~3 I've found out that video/broadcast's video hole remains while html5 video is already moved to the lower right according to step 3.

I understand that the simplified behavior from step 1 to step 2 is as followed

  1. video/broadcast.bindToCurrentChannel()
  2. video/broadcast.stop()
  3. html5.play()

I don't see in html5vid.index about setting visibility of such video/broadcast and by oipf spec if video/broadcast is in stopped state The content of the video/broadcast object shall be an opaque black rectangle. Thus the opaque black punch hole is remained. Why don't we leave video/broadcast in unrealized state so such punch hole would disappear?

It just seem a bit odd to me that there's an unused punch hole for video/broadcast there when executing steps 2~8.
Could you help to answer if this is intended behavior?

Regards,
John

Interaction with YouTube Iframe API

Hello. I have an app which scales the broadcast player and I manually stop it when YouTube Iframe API is requested. It works fine till then. The problem is that once user goes to other page I can't restore the broadcast player anymore. Even rebooting the app doesn't help. What might be the issue in this situation?

Corrupted segment in MPEG-DASH content

Hi, we encountered a problem with MPEG-DASH related tests from DOLBY video format / AVComponents. Sometimes, fetched content has corrupted segments. Our investigation is as follows:

Engineer downloaded the whole content from http://streaming.dolby.com/ftproot/mitXperts/dash/dash_basic.mpd, and hosted it locally. He did a test where he loaded this content 100 times from the original testsuite, and from hosted locally.

  • On original Mitxperts (Dolby) server: 43/100 reproductions
  • On local server: 0/100 reproductions

What he noticed from a look at ffprobe -show_packets -show_data one packet's data seems shifted:

  • bad case

    [...]
    000067d0: a294 67ca 6941 585b 2e99 051f 9445 bc2a  ..g.iAX[.....E.*
    000067e0: ed2d 8382 2d7d a2e4 4595 564b 010b 7b21  .-..-}..E.VK..{!
    000067f0: af13 cc5f e2be 8a91 0766 8f96 4383 df85  ..._.....f..C...
    00006800: e74f 6eeb 3f32 905c e2ba 4ae7 c34d 2a3b  .On.?2.\..J..M*;
    00006810: 907e ca78 377e 2c0c 7245 1724 599c 218d  .~.x7~,.rE.$Y.!.
    
    00006820: 0000 0002 0950 0000 000b 0601 0700 004e  .....P.........N
    00006830: 0000 0404 8000 005a 3a41 9e2e 2674 8437  .......Z:A..&t.7
    00006840: ff00 0028 bf78 f6d6 cf14 14fd 2561 1a6f  ...(.x......%a.o
    00006850: 1c8a 438d 3ba8 cac8 2307 ea14 0e9a 822f  ..C.;...#....../
    00006860: 148a 9097 d102 d97b f6f8 9939 92ec 469e  .......{...9..F.
    00006870: c409 4659 c079 e0a8 8c02 3151 c030 d401  ..FY.y....1Q.0..
    00006880: 0a67 3560 54fb 8f4e 8551 f8d0 043e 38c7  .g5`T..N.Q...>8.
    00006890: af21 183f 99                             .!.?.
    
    [/PACKET]
    [PACKET]
    codec_type=video
    stream_index=0
    pts=191000
    pts_time=7.640000
    dts=189000
    dts_time=7.560000
    duration=1000
    duration_time=0.040000
    convergence_duration=N/A
    convergence_duration_time=N/A
    size=23123
    pos=1516855
    flags=_
    data=
    00000000: 1e81 33ba 50c3 c6e2 6d10 fc52 15d6 946a  ..3.P...m..R...j
    00000010: c7ff 0f75 3d41 6f04 aa37 b061 8be6 451e  ...u=Ao..7.a..E.
    00000020: c9c6 70d6 d395 2c0c eee6 6d53 ee4f f85e  ..p...,...mS.O.^
    00000030: 6b5d b2fa 7706 2e79 ff6e 6701 2256 ce45  k]..w..y.ng."V.E
    00000040: 1bee a4a4 5fed 2655 b1e7 778c 31a7 281e  ...._.&U..w.1.(.
    00000050: 80b9 d477 bd5d 650a 66cd 82d8 3ce2 64ed  ...w.]e.f...<.d.
    00000060: 265f dd4b 2b28 8614 1eee b951 3d9d 183d  &_.K+(.....Q=..=
    [...]
    
  • good case

    [...]
    00006830: 63eb c911 bba2 b7c5 ade0 7a2a 0870 3101  c.........z*.p1.
    00006840: e17b 017b fea2 9467 ca69 4158 5b2e 9905  .{.{...g.iAX[...
    00006850: 1f94 45bc 2aed 2d83 822d 7da2 e445 9556  ..E.*.-..-}..E.V
    00006860: 4b01 0b7b 21af 13cc 5fe2 be8a 9107 668f  K..{!..._.....f.
    00006870: 9643 83df 85e7 4f6e eb3f 3290 5ce2 ba4a  .C....On.?2.\..J
    00006880: e7c3 4d2a 3b90 7eca 7837 7e2c 0c72 4517  ..M*;.~.x7~,.rE.
    00006890: 2459 9c21 8d                             $Y.!.
    
    [/PACKET]
    [PACKET]
    codec_type=video
    stream_index=0
    pts=191000
    pts_time=7.640000
    dts=189000
    dts_time=7.560000
    duration=1000
    duration_time=0.040000
    convergence_duration=N/A
    convergence_duration_time=N/A
    size=23123
    pos=1516855
    flags=_
    data=
    00000000: 0000 0002 0950 0000 000b 0601 0700 004e  .....P.........N
    00000010: 0000 0404 8000 005a 3a41 9e2e 2674 8437  .......Z:A..&t.7
    00000020: ff00 0028 bf78 f6d6 cf14 14fd 2561 1a6f  ...(.x......%a.o
    00000030: 1c8a 438d 3ba8 cac8 2307 ea14 0e9a 822f  ..C.;...#....../
    00000040: 148a 9097 d102 d97b f6f8 9939 92ec 469e  .......{...9..F.
    00000050: c409 4659 c079 e0a8 8c02 3151 c030 d401  ..FY.y....1Q.0..
    00000060: 0a67 3560 54fb 8f4e 8551 f8d0 043e 38c7  .g5`T..N.Q...>8.
    00000070: af21 183f 991e 8133 ba50 c3c6 e26d 10fc  .!.?...3.P...m..
    00000080: 5215 d694 6ac7 ff0f 753d 416f 04aa 37b0  R...j...u=Ao..7.
    00000090: 618b e645 1ec9 c670 d6d3 952c 0cee e66d  a..E...p...,...m
    000000a0: 53ee 4ff8 5e6b 5db2 fa77 062e 79ff 6e67  S.O.^k]..w..y.ng
    [...]
    

In "bad case" the data from next segment "0000 0002 0950 0000 000b 0601 0700 004e" falls into the previous one:

00006810: 907e ca78 377e 2c0c 7245 1724 599c 218d 
00006820: 0000 0002 0950 0000 000b 0601 0700 004e  .....P.........N

While in good it starts at new segment:

00006890: 2459 9c21 8d  [/PACKET][PACKET]
00000000: 0000 0002 0950 0000 000b 0601 0700 004e  .....P.........N

Note however that size of the segment remains the same in both cases: (00006890 + 5), so there must be some content actually missing earlier in the "bad case" while whole payload just got shifted.

Investigation refers to E-AC3 in MPEG-DASH, where reproduction rate is the highest. However, we also confirmed this issue in Multi-Rate for MPEG-DASH and Multi-Codec in MPEG-DASH (there might be more).

HTML5 video test should keep the v/b alive after stop()

"HbbTV 2.0.1 specification introduced change about resource management (section A.2.1) between HTML5 media elements and broadcast video in way that application has to stop broadcast video before playing media through HTML5 media elements (unless there is synchronization involved)"
https://www.hbbtv.org/redmine/issues/6230

The statement in section A.2.1 is:

An HTML5 media element shall not be able to obtain resources
that are already in use either by an A/V control object
or to present broadcast video (either by the HbbTV application through a video/broadcast object, or by the terminal
when it is presenting broadcast content not under the control of
a video/broadcast object).

In the HTML5 video test page:
http://itv.mit-xperts.com/hbbtvtest/html5vid/

in govid function, the video/broadcast is stopped then released. The terminal will take over broadcast video presentation. As the broadcast is playing, HTML5 video won't be able to reach the "potentially playing state" on devices not supporting the multi-decoder model.

To support HTML5 video presentation, the video broadcast should stop() and should not be released, or the app should be broadcast independent.

Let me know if I'm missing something.

A question about video object in iframe page

If call setFullscreen method on an video boject which is in sub frame page, does the video cover the whole page include parent frame page? I can't find any description about this situation, do you have any suggestion?

In addition, in the page /hbbtv/videocomponents/index.php, the root div element height is 550px, is this designed or just make a mistake?

Multi-Rate for MPEG-DASH streams uses incorrect 'sample_description_index'

Hello,

The stream[1] refers to the initialization data[2] which containin Sample Description Box with the reference to only one self contained 'url' box.

Later on the data fragment[3] in the 'tfhd' contains flags (0x2003a) which means that the 'sample-description-index-present' is present and is equal to 2 (should be 1) which is in contrary to the definition placed in the initialization data[2].

Would it be possible to correct those streams?

[1] http://streaming.dolby.com/ftproot/mitXperts/dash/dash_multi_rate.mpd
[2] http://streaming.dolby.com/ftproot/mitXperts/dash/./multi_rate_ddp_cis.mp4
[3] http://streaming.dolby.com/ftproot/mitXperts/dash/./channel_check_ddp_448000_1.m4s

issue and suggestion

  1. Stream issue: http://www.mit-xperts.com/download/irtws201105.zip
    In the first channel of this stream, the launched DSMCC file name should be "index.html" not be "index.php"
  2. In order to operate easily, modify the (root) index.php, and add these code after line 43:
    //begin
    } else if(kc == VK_LEFT){
    menuSelect(selected-6);
    setDescr();
    return true;
    } else if(kc == VK_RIGHT){
    menuSelect(selected+6);
    setDescr();
    return true;
    //end
  3. The word "squeeeze" in the file "memoryaudio/index.php" should be "squeeze" :)

Dash live (geoblock)

Hello,
what is the expected behavior for Streaming video/audio formats/MPEG DASH live (Geoblock) test?
I tried to wget/curl the manifest but i got a 403 http error.

wget http://rbb-dash-berlin.akamaized.net/dash/live/2017826/rbb_berlin/manifest.mpd --2021-12-06 14:12:20-- http://rbb-dash-berlin.akamaized.net/dash/live/2017826/rbb_berlin/manifest.mpd Resolving rbb-dash-berlin.akamaized.net (rbb-dash-berlin.akamaized.net)... 212.205.126.169, 212.205.126.34, 2a02:582:a00::d4cd:7ea9, ... Connecting to rbb-dash-berlin.akamaized.net (rbb-dash-berlin.akamaized.net)|212.205.126.169|:80... connected. HTTP request sent, awaiting response... 403 Forbidden 2021-12-06 14:12:20 ERROR 403: Forbidden.

Application Manager tests

Hi, one question about the application manager test; does the test require that there should be a broadcast service already started /playing, before destroyApplication is called?

keyset.value is read-only

At base.js:45, we have

app.privateData.keyset.setValue(mask);
app.privateData.keyset.value = mask;

The keyset.value property is read-only, and can only be set using setValue, so line 46 should be deleted.

Content-Type in <meta> tag

The meta tag for XHTML apps appears as

<meta http-equiv="content-type" content="Content-Type: application/vnd.hbbtv.xhtml+xml; charset=UTF-8" />

but should be

<meta http-equiv="Content-Type" content="application/vnd.hbbtv.xhtml+xml; charset=UTF-8" />

(i.e. the string "Content-Type: " should be only in the http-equiv attribute and not in the content attribute)

This affects:

  • base.php
  • appmanager/preferdsmcc.html
  • imuxcfg/dsmcc/index.html
  • imuxcfg/dsmcc/preferdsmcc.html

Content on Dolby servers is missing

Hi,

Test cases located under DOLBY video format / AVComponents fetch content from remote, dolby server. Trying to access DASH manifest returns HTTP 404 error.

Regards,
Przemysław Mazur

Building a stream

I'd like to build a stream myself with the test suite on services in my stream. Is there a guide to which files to tweak, how to render the php into html etc.?

How should be the track ID encoded in to the media tracks / media content components available for MPEG - DASH Media Presentation?

As per ISO/IEC 14496 Part 12 : ISOBMFF , the track Identifier specified in track header box "trak" and track fragment header "tfhd" box should be same and unique to each track available in an ISO file.

Also as per ISO/IEC 23009 Part 1 , The track Identifier is same for all the representation of same content component type and unique to a media content component type( Audio / Video etc . . .) in an adaptation set.

But , Most of the mpeg dash non multiplexed sample streams available in internet also with MITXP has encoded same track Identifier in all media tracks ( Audio , video etc. . . ) available for a media presentation. Say track ID for all content component(Audio,Video...) encoded with a value equal to 1.

In this case, If a media player is supported with single mp4 demuxer means, it is not possible to demux the fragmented media sample from various track correctly for a media presentation.

My question is,
Having same track identifier for all media content component type in a dash media presentation is MPEG DASH Standard ?

Detect no parental rating threshold

The following code should be updated to detect no threshold signalling:

if (parseInt(rating.name)!=rating.value) {
      showStatus(false, 'Current threshold rating name is not string representation of value attribute');
      return;
}

From: https://github.com/mitxp/HbbTV-Testsuite/blob/master/parentalcontrol/index.php#L86

As per HbbTV 2.0.1 spec, no threshold can be signalled for 'dvb-si' scheme in the following way:

Table A.1, Notes for 7.9.2
The threshold.value and threshold.name properties shall be undefined if the user has set no minimum age in the terminal's None parental control system (i.e. the user will never be requested for their PIN) and the threshold.scheme property is dvb-si.

app.activate() should be removed

base.js:21 calls app.activate()

In the OIPF DAE specification, the Application object has an activateInput() method. There is no activate() method, although activate() is mentioned in v1.2 of the DAE due to a spelling mistake, which was fixed in v2.3.

However, activateInput() is not included in any version of HbbTV, so this line should be deleted.

issue about datetime case

Because the STB gets system time from TOT of the stream, so I think that the test case should compute the offset value.

Edit the file datetime/index.php:
Add below code after line 9:

$offset = 0;
$uagent = strtolower($_SERVER['HTTP_USER_AGENT']);
if (!(strstr($uagent, 'firefox') || strstr($uagent, 'chrome'))) {
    $offset = $time - strtotime('2011/08/10 15:40:58'); //strtotime(TOT time)
}

then replace

var myd = new Date();

as

var myd = new Date(new Date().getTime()+<?php echo $offset; ?>);

getSIDescriptors() return null if descriptorTagExtension and privateDataSpecifier does not exist

Hi MIT-xperts,

please refer to latest OIPF DAE spec in chapter "7.16.2.4 DVB-SI extensions to Programme", it says "If the descriptor specified by descriptorTag and (optionally) descriptorTagExtension and privateDataSpecifier does not exist, this method SHALL return null"

so hbbtv MIT testcase at EIT events/Present event descriptors (HbbTV 1.2) the javascript write in this way:
try {
descr = evt.getSIDescriptors(descrcodes[0]);
} catch (e2) {
showStatus(false, 'Retrieval of descriptors failed');
return;
}

if (!descr || descr.length<1) {
showStatus(false, 'No descriptor returned');
return;
}

actually descr return null.

Support for play the DRM encrypted content in HbbTV Application

We are in-progress of supporting the DRM playback for HbbTV 1.5. For this we are evaluating the Marlin Wasabi development SDK against Marlin encrypted content available in HbbTV Application.
We have tested the encrypted playback using sample marlin encrypted test file. But we are facing problem when we playback the DRM encrypted test file available in HbbTV Application.
When we play the DRM encrypted content, we are getting the error message saying that "DRM Deny Rights Error". From this error we understand that, we need to have user access rights to playback the encrypted content. Could any one suggest us, what are the procedure to get access for the encrypted content playback available in HbbTV Application.

HTML5 video stop()

Hello Guys,
About Testsuite release: 2.0.2 (20150727), there is one case named "Hbbtv 1.3 HTML5 video".
In this case, an stop() method is used to stop the html5 video, but according to W3C standard, there is no stop() method. I think "oldvideo.paused(); oldvideo.src= ' ' " shoud be used for stopping a HTML5 Video.
Could you guys help to check it ?

Is XMLSerializer the indispensable object in hbbtv?

In the part 'OIPF Capabilities' => xmlCapabilities, it uses the XMLSerializer object.
If the browser doesn't support XMLSerializer object, this case is failed.
Is there description about XMLSerializer object in hbbtv related document?

encrypted property of DOLBY Multi-Language tests

In the OIPF DAE spec 8.4.2 the encrypted property is listed as "Not defined" for MP4 FF and blank for MPEG DASH. We interprets this as the property should be undefined in the AVComponent class returned from an a/v control object playing these contents.

When running the dolby tests "Multi-Language in mp4" and "Multi-Language in MPEG-DASH" these tests fails on most of the steps as the test expects the "encoded" property to be present and set to false.

We think the "encoded" property should be removed from the expected properties for these two tests.

nextChannel() kills the test application

The execution of
Get and set channel / Test 5: nextChannel()
changes the channel to "HbbTV - Subtitles", where the AIT does not signal the test application, which should therefore be terminated and cannot display the result.
Is this the expected behaviour or a problem in the test suite?

can a Hbbtv audio object play inline wav base64 encoded..

hello, i was having a look at your test set for hbbtv terminals. thanx a lot for having made it publicly available! it's an invaluable tool!

my interest is in the playback of audio samples generated by javascript code client-side.
as a proof of concept, i've started using your memory audio test and trying to feed it with a static audio wav file as:

audio = document.createElement("audio");
audio.src = "data:audio/x-wav;base64,"+encode64(wav)+"">";

but i'm unable to hear sounds from the tv set (hbbtv 1.2); on the chrome browser is ok.

i'm wondering if you tested this use case of audio objects or you do already know it's not supported.

thanx

Incorrect parental rating threshold value displayed

In parental control test, the current threshold is displayed using "document.getElementById('pcmgr').parentalRatingSchemes.getParentalRatingScheme('dvb-si').threshold + 3".
HbbTV 2.0.1 specification states that in ParentalRating class, the name property should contain the Age:
'For instances with a scheme of "dvb-si", the name property is a string containing an age in years, encoded as a decimal in the range "4" to "18" inclusive.'

So I think that you should not add 3 to the value retrieved (as the value attribute should be the integer representation of the name attribute).

An issue related with test User Agent.

Current User agent test is checking user agent too strictly more than HbbTV docuement specified.

Vender and model name fields are optional but the test failed these are not specified.

RTL video(MP4) - server response is not RFC compliant.

The content used in the 'Streaming video/audio formats/RTL video(MP4)' test case (http://bilder.rtl.de/tt_hd/trailer_hotelinspektor.mp4) is available via ApacheTrafficServer proxy servers using load-balancing. Unfortunately it seems that at least some of the servers do not follow the RFC-2616 specification i.e. respond with a multipart/byteranges content type for a single byte range request.

An exemplary request:
GET /tt_hd/trailer_hotelinspektor.mp4 HTTP/1.1
Accept: /
Range: bytes=10000-
Host: bilder.rtl.de

Response:
HTTP/1.1 206 Partial Content
Date: Thu, 19 Sep 2013 06:46:54 GMT
Server: Apache/2.4.6 (Unix) OpenSSL/1.0.1e
Last-Modified: Thu, 09 Apr 2009 10:32:15 GMT
Accept-Ranges: bytes
Cache-Control: max-age=28800
Expires: Thu, 19 Sep 2013 14:46:54 GMT
Content-Type: multipart/byteranges; boundary=RANGE_SEPARATOR
Content-Length: 6005818
Age: 14152
Connection: keep-alive
Via: http/1.1 bilder-fra9 (ApacheTrafficServer/3.2.4)

(here comes the requested data with no multipart/byteranges-related headers)

The behaviour breaks playback as the response can not be interpreted properly.

From RFC-2616, 14.16 Content-Range:
A response to a request for a single range MUST NOT be sent using the multipart/byteranges media type.

Streaming vide/audio formats -> Live stream test (TS, no seeking!)

It seems that the server doesn't provide any real data after issuing GET request.

wget -d http://hbbtv.nacamar.c.nmdn.net/nacamar/test
DEBUG output created by Wget 1.14 on linux-gnu.

URI encoding = ‘UTF-8’
--2013-09-30 11:19:27-- http://hbbtv.nacamar.c.nmdn.net/nacamar/test
Resolving hbbtv.nacamar.c.nmdn.net (hbbtv.nacamar.c.nmdn.net)... 62.27.85.75
Caching hbbtv.nacamar.c.nmdn.net => 62.27.85.75
Connecting to hbbtv.nacamar.c.nmdn.net (hbbtv.nacamar.c.nmdn.net)|62.27.85.75|:80... connected.
Created socket 3.
Releasing 0x0000000002568040 (new refcount 1).

---request begin---
GET /nacamar/test HTTP/1.1
User-Agent: Wget/1.14 (linux-gnu)
Accept: /
Host: hbbtv.nacamar.c.nmdn.net
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Server: nacamar HBBTV-LSS
Date: Sep 30, 2013 9:17:09 AM
Content-Type: video/mpeg
Transfer-Encoding: chunked
Accept-Ranges: none

---response end---
200 OK
Registered socket 3 for persistent reuse.
Length: unspecified [video/mpeg]
Saving to: ‘test.1’

[ <=>                                        ] 0           --.-K/s   in 0s      

Disabling further reuse of socket 3.
Closed fd 3
2013-09-30 11:19:27 (0.00 B/s) - Read error at byte 0 (Success).Retrying.

--2013-09-30 11:19:28-- (try: 2) http://hbbtv.nacamar.c.nmdn.net/nacamar/test
Found hbbtv.nacamar.c.nmdn.net in host_name_addresses_map (0x2568040)
Connecting to hbbtv.nacamar.c.nmdn.net (hbbtv.nacamar.c.nmdn.net)|62.27.85.75|:80... connected.
Created socket 3.
Releasing 0x0000000002568040 (new refcount 1).

---request begin---
GET /nacamar/test HTTP/1.1
User-Agent: Wget/1.14 (linux-gnu)
Accept: /
Host: hbbtv.nacamar.c.nmdn.net
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Server: nacamar HBBTV-LSS
Date: Sep 30, 2013 9:17:10 AM
Content-Type: video/mpeg
Transfer-Encoding: chunked
Accept-Ranges: none

---response end---
200 OK
Registered socket 3 for persistent reuse.
Length: unspecified [video/mpeg]
Saving to: ‘test.1’

[ <=>                                        ] 0           --.-K/s   in 0s      

Disabling further reuse of socket 3.
Closed fd 3
2013-09-30 11:19:28 (0.00 B/s) - Read error at byte 0 (Success).Retrying.

curl -v http://hbbtv.nacamar.c.nmdn.net/nacamar/test

  • About to connect() to hbbtv.nacamar.c.nmdn.net port 80 (#0)
  • Trying 62.27.85.75...
  • Connected to hbbtv.nacamar.c.nmdn.net (62.27.85.75) port 80 (#0)

    GET /nacamar/test HTTP/1.1
    User-Agent: curl/7.29.0
    Host: hbbtv.nacamar.c.nmdn.net
    Accept: /

    < HTTP/1.1 200 OK
    < Server: nacamar HBBTV-LSS
    < Date: Sep 30, 2013 9:18:35 AM
    < Content-Type: video/mpeg
    < Transfer-Encoding: chunked
    < Accept-Ranges: none
    <
  • transfer closed with outstanding read data remaining
  • Closing connection 0
    curl: (18) transfer closed with outstanding read data remaining

{Android R}{DTVkit}{HbbTV}{Video control} Test 4: fast forward(2x)the video play with 2X, sometimes the speed =0 Frequency:2/2

Step to reproduce :

1.Play stream-dvbt.ts on DVBT ,install service

2.Zap to HbbTV Testsuite1 service and auto launch HbbTV application

3.Select Video control

4.Select Test1 start streaming video and then select Test4:fast forward(2x)

Expected results :

The video play with 2x and the speed = 2 always.

Actual Result:

The video play with 2X, sometimes the speed =0

Frequency: 2/2

HbbTV 1.3 CSS3 animation is not backwards compatible

Hi Mitxperts,
we have analysed the latest MIT-Xperts test cases, now facing an issue with
http://itv.mit-xperts.com/hbbtvtest/animation/
Test 6: HbbTV 1.3 CSS3 animation

from source:
animation: spin 2s linear infinite;
is not backwards compatible, e.g. it is not supported in chrome v40, but working with chrome v44.

please add backwards compatible parts like:

<style rel="stylesheet" type="text/css"> .cssrotate { animation: spin 2s linear infinite; -webkit-animation: spin 2s linear infinite; /_Webkit_/ } @-webkit-keyframes spin { 100% { transform:rotate(360deg); } } /_Webkit_/ @Keyframes spin { 100% { transform:rotate(360deg); } } Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.