{"action":"created","issue":{"url":"https://api.github.com/repos/ebu/ebu-tt-live-toolkit/issues/228","repository_url":"https://api.github.com/repos/ebu/ebu-tt-live-toolkit","labels_url":"https://api.github.com/repos/ebu/ebu-tt-live-toolkit/issues/228/labels{/name}","comments_url":"https://api.github.com/repos/ebu/ebu-tt-live-toolkit/issues/228/comments","events_url":"https://api.github.com/repos/ebu/ebu-tt-live-toolkit/issues/228/events","html_url":"https://github.com/ebu/ebu-tt-live-toolkit/issues/228","id":179431870,"number":228,"title":"possible missed documents with ebuttd encoder","user":{"login":"kozmaz87","id":4070837,"avatar_url":"https://avatars.githubusercontent.com/u/4070837?v=3","gravatar_id":"","url":"https://api.github.com/users/kozmaz87","html_url":"https://github.com/kozmaz87","followers_url":"https://api.github.com/users/kozmaz87/followers","following_url":"https://api.github.com/users/kozmaz87/following{/other_user}","gists_url":"https://api.github.com/users/kozmaz87/gists{/gist_id}","starred_url":"https://api.github.com/users/kozmaz87/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kozmaz87/subscriptions","organizations_url":"https://api.github.com/users/kozmaz87/orgs","repos_url":"https://api.github.com/users/kozmaz87/repos","events_url":"https://api.github.com/users/kozmaz87/events{/privacy}","received_events_url":"https://api.github.com/users/kozmaz87/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/ebu/ebu-tt-live-toolkit/milestones/2","html_url":"https://github.com/ebu/ebu-tt-live-toolkit/milestone/2","labels_url":"https://api.github.com/repos/ebu/ebu-tt-live-toolkit/milestones/2/labels","id":1864277,"number":2,"title":"Release 2","description":"","creator":{"login":"frans-ebu","id":4577613,"avatar_url":"https://avatars.githubusercontent.com/u/4577613?v=3","gravatar_id":"","url":"https://api.github.com/users/frans-ebu","html_url":"https://github.com/frans-ebu","followers_url":"https://api.github.com/users/frans-ebu/followers","following_url":"https://api.github.com/users/frans-ebu/following{/other_user}","gists_url":"https://api.github.com/users/frans-ebu/gists{/gist_id}","starred_url":"https://api.github.com/users/frans-ebu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/frans-ebu/subscriptions","organizations_url":"https://api.github.com/users/frans-ebu/orgs","repos_url":"https://api.github.com/users/frans-ebu/repos","events_url":"https://api.github.com/users/frans-ebu/events{/privacy}","received_events_url":"https://api.github.com/users/frans-ebu/received_events","type":"User","site_admin":false},"open_issues":58,"closed_issues":40,"state":"open","created_at":"2016-07-05T05:00:55Z","updated_at":"2017-01-27T17:54:55Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2016-09-27T08:47:26Z","updated_at":"2017-01-27T19:36:50Z","closed_at":null,"body":"The following is possible:\n\n```\n(env) C:\\Coding\\ebu-tt-live-toolkit>ebu-ebuttd-encoder -i 5\n[INFO] (2016-09-26 09:22:55,173) in ebu_simple_consumer[54] - This is the EBU-TT-D encoder\n[INFO] (2016-09-26 09:22:55,206) in twisted[154] - Starting factory <ebu_tt_live.twisted.websocket.BroadcastClientFactory object at 0x000000000596C978>\n[INFO] (2016-09-26 09:22:56,782) in ebu_tt_live.node.consumer[28] - Creating document sequence from first document <ebu_tt_live.documents.ebutt3.EBUTT3Document object at 0x00000000059CB860>\n[INFO] (2016-09-26 09:22:56,782) in document_logger[39] - Document TestSequence1__567 received. Calculated activation: [9:22:57.661000; 9:22:58.661000]\n[INFO] (2016-09-26 09:22:56,783) in document_logger[673] - TestSequence1: requesting segment (9:22:55.174000 - 9:23:00.174000)\n[INFO] (2016-09-26 09:22:56,783) in document_logger[374] - TestSequence1__567: requesting segment (9:22:55.174000 - 9:22:58.661000)\n[INFO] (2016-09-26 09:22:58,743) in document_logger[39] - Document TestSequence1__568 received. Calculated activation: [9:22:59.661000; 9:23:00.661000]\n[INFO] (2016-09-26 09:23:00,744) in document_logger[39] - Document TestSequence1__569 received. Calculated activation: [9:23:01.661000; 9:23:02.661000]\n[INFO] (2016-09-26 09:23:01,782) in document_logger[673] - TestSequence1: requesting segment (9:23:00.174000 - 9:23:05.174000)\n[INFO] (2016-09-26 09:23:01,785) in document_logger[374] - TestSequence1__568: requesting segment (9:23:00.174000 - 9:23:00.661000)\n[INFO] (2016-09-26 09:23:01,825) in document_logger[374] - TestSequence1__569: requesting segment (9:23:00.661000 - 9:23:02.661000)\n[INFO] (2016-09-26 09:23:02,733) in document_logger[39] - Document TestSequence1__570 received. Calculated activation: [9:23:03.661000; 9:23:04.661000]\n[INFO] (2016-09-26 09:23:04,713) in document_logger[39] - Document TestSequence1__571 received. Calculated activation: [9:23:05.660000; 9:23:06.660000]\n[INFO] (2016-09-26 09:23:06,743) in document_logger[39] - Document TestSequence1__572 received. Calculated activation: [9:23:07.660000; 9:23:08.660000]\n[INFO] (2016-09-26 09:23:06,782) in document_logger[673] - TestSequence1: requesting segment (9:23:05.174000 - 9:23:10.174000)\n[INFO] (2016-09-26 09:23:06,783) in document_logger[374] - TestSequence1__571: requesting segment (9:23:05.174000 - 9:23:06.660000)\n[INFO] (2016-09-26 09:23:06,812) in document_logger[374] - TestSequence1__572: requesting segment (9:23:06.660000 - 9:23:08.660000)\n[INFO] (2016-09-26 09:23:08,736) in document_logger[39] - Document TestSequence1__573 received. Calculated activation: [9:23:09.660000; 9:23:10.660000]\n[INFO] (2016-09-26 09:23:10,237) in twisted[154] - Received SIGINT, shutting down.\n[INFO] (2016-09-26 09:23:10,239) in twisted[154] - Stopping factory <ebu_tt_live.twisted.websocket.BroadcastClientFactory object at 0x000000000596C978>\n[INFO] (2016-09-26 09:23:10,239) in twisted[154] - Main loop terminated.\n```\n\nIn the above example document 570 never gets into the encoder because it is missing its place.\n"},"comment":{"url":"https://api.github.com/repos/ebu/ebu-tt-live-toolkit/issues/comments/275754465","html_url":"https://github.com/ebu/ebu-tt-live-toolkit/issues/228#issuecomment-275754465","issue_url":"https://api.github.com/repos/ebu/ebu-tt-live-toolkit/issues/228","id":275754465,"user":{"login":"nigelmegitt","id":4988915,"avatar_url":"https://avatars.githubusercontent.com/u/4988915?v=3","gravatar_id":"","url":"https://api.github.com/users/nigelmegitt","html_url":"https://github.com/nigelmegitt","followers_url":"https://api.github.com/users/nigelmegitt/followers","following_url":"https://api.github.com/users/nigelmegitt/following{/other_user}","gists_url":"https://api.github.com/users/nigelmegitt/gists{/gist_id}","starred_url":"https://api.github.com/users/nigelmegitt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigelmegitt/subscriptions","organizations_url":"https://api.github.com/users/nigelmegitt/orgs","repos_url":"https://api.github.com/users/nigelmegitt/repos","events_url":"https://api.github.com/users/nigelmegitt/events{/privacy}","received_events_url":"https://api.github.com/users/nigelmegitt/received_events","type":"User","site_admin":false},"created_at":"2017-01-27T19:36:50Z","updated_at":"2017-01-27T19:36:50Z","body":"There are two things going on here. Firstly the request for the segment that 570 occupies comes before it is available, so it is completely reasonable not to output it, though we should avoid configuring scenarios in which that can happen.\r\n\r\nSecondly the segment period is requested around 1.5s after it has begun but around 3.5s before it has ended. This means that on output, the availability time of the output will be at least 1.5s after it has begun, plus the time it took to compute and save that segment, and that the latter 3.5s worth of subtitle text will be missing. So if there is a packager looking for that segment assuming that it is available at its begin time then it will fail. And if there is one looking for it at its end time then it will succeed and get incomplete content.\r\n\r\nIf there is a bug here it is that there is no warning on requests for a segment before that segment has ended, and possibly that the segment request scheduling is mistimed - the first request comes in around 0.001s after the document sequence is created, when the sequence interval is 5s - the first request should be made at the document sequence creation time + the interval, at the earliest, to ensure that any content destined for the segment has actually arrived.\r\n\r\nThis bug was filed some time ago - I'm not sure if this behaviour has now been fixed - @kozmaz87 do you know?\r\n\r\nOne (obvious) operational consequences from this too:\r\n\r\n* we have to leave some time for the encoder to do its job before expecting the encoded output to be available, and this adds to the overall latency of the system."}}
{"actor":{"display_login":"nigelmegitt"}}