{"action":"created","issue":{"url":"https://api.github.com/repos/Dash-Industry-Forum/DASH-IF-IOP/issues/225","repository_url":"https://api.github.com/repos/Dash-Industry-Forum/DASH-IF-IOP","labels_url":"https://api.github.com/repos/Dash-Industry-Forum/DASH-IF-IOP/issues/225/labels{/name}","comments_url":"https://api.github.com/repos/Dash-Industry-Forum/DASH-IF-IOP/issues/225/comments","events_url":"https://api.github.com/repos/Dash-Industry-Forum/DASH-IF-IOP/issues/225/events","html_url":"https://github.com/Dash-Industry-Forum/DASH-IF-IOP/issues/225","id":382591609,"node_id":"MDU6SXNzdWUzODI1OTE2MDk=","number":225,"title":"What does it mean to \"not offer the last segment that is signaled in the MPD\"?","user":{"login":"sandersaares","id":9914262,"node_id":"MDQ6VXNlcjk5MTQyNjI=","avatar_url":"https://avatars1.githubusercontent.com/u/9914262?v=4","gravatar_id":"","url":"https://api.github.com/users/sandersaares","html_url":"https://github.com/sandersaares","followers_url":"https://api.github.com/users/sandersaares/followers","following_url":"https://api.github.com/users/sandersaares/following{/other_user}","gists_url":"https://api.github.com/users/sandersaares/gists{/gist_id}","starred_url":"https://api.github.com/users/sandersaares/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sandersaares/subscriptions","organizations_url":"https://api.github.com/users/sandersaares/orgs","repos_url":"https://api.github.com/users/sandersaares/repos","events_url":"https://api.github.com/users/sandersaares/events{/privacy}","received_events_url":"https://api.github.com/users/sandersaares/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-11-20T10:16:47Z","updated_at":"2018-12-17T13:32:05Z","closed_at":null,"author_association":"MEMBER","body":"IOP v4.3 section 4.4.3.6 \"Signalling the last segment number in Period\" contains the following clause:\r\n\r\n> As indicated in clause 4.3.2.2, the content provider may not offer the last segment that is signaled in the MPD.\r\n\r\nWhat exactly does this mean? That something described in the MPD is a 404? Or something else? What is the use case?\r\n\r\nThe referenced 4.3.2.2 is a rather substantial chapter and I do not see any obvious relation to this clause.\r\n\r\nI request clarification of what this clause in 4.4.3.6 is supposed to mean."},"comment":{"url":"https://api.github.com/repos/Dash-Industry-Forum/DASH-IF-IOP/issues/comments/447846305","html_url":"https://github.com/Dash-Industry-Forum/DASH-IF-IOP/issues/225#issuecomment-447846305","issue_url":"https://api.github.com/repos/Dash-Industry-Forum/DASH-IF-IOP/issues/225","id":447846305,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0Nzg0NjMwNQ==","user":{"login":"sandersaares","id":9914262,"node_id":"MDQ6VXNlcjk5MTQyNjI=","avatar_url":"https://avatars1.githubusercontent.com/u/9914262?v=4","gravatar_id":"","url":"https://api.github.com/users/sandersaares","html_url":"https://github.com/sandersaares","followers_url":"https://api.github.com/users/sandersaares/followers","following_url":"https://api.github.com/users/sandersaares/following{/other_user}","gists_url":"https://api.github.com/users/sandersaares/gists{/gist_id}","starred_url":"https://api.github.com/users/sandersaares/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sandersaares/subscriptions","organizations_url":"https://api.github.com/users/sandersaares/orgs","repos_url":"https://api.github.com/users/sandersaares/repos","events_url":"https://api.github.com/users/sandersaares/events{/privacy}","received_events_url":"https://api.github.com/users/sandersaares/received_events","type":"User","site_admin":false},"created_at":"2018-12-17T13:32:05Z","updated_at":"2018-12-17T13:32:05Z","author_association":"MEMBER","body":"Explanation from F2F:\r\n\r\n1. Consider timeline from t=0s to t=100s, with segment duration t=3s.\r\n1. Assume using simple addressing (`SegmentTemplate@duration`) that allows for inaccuracy.\r\n1. Segment 33 will nominally start at t=96s.\r\n1. Due to the 50% inaccuracy allowed by IOP, segment 33 might actually contain data up to the end of the presentation (t=100s) in its natural state.\r\n1. Segment 34 at t=99s nominally ends the period. However, given that all the data up to t=100s already went into segment 33, the last segment may be left empty!\r\n1. Empty segments are not allowed.\r\n\r\nThis would result in a presentation with an empty (illegal) last segment. Furthermore, it might be difficult to produce such a segment as the packager might not be aware of how many segments are expected from it in certain workflows. At the same time, there really is data to fill the entire period, so it would be a shame to clip it just because a meaningful segment cannot be generated at the end.\r\n\r\nThere was some discussion at F2F regarding whether this principle truly applies at all times. Do we need a \"@noLastSegment\" signal to be explicit about this?\r\n\r\n----\r\n\r\nThe above is the explanation from F2F. I do not agree with it, as it makes addressing needlessly complicated and \"legalizes\" implicit gaps in content. Instead of such client complexity, the service should bear the burden of making content that can be addressed rationally. The above interpretation conflicts with the #210 \"no gaps\" principles, as well.\r\n\r\nI propose that we remove this relaxation and require the service to provide each and every segment that is defined on the timeline. If the service does not wish to offer some segment, it should not define it on the MPD timeline.\r\n\r\nAt minimum, the following mechanisms exist to ensure proper behavior:\r\n\r\n1. Use explicit addressing (`SegmentTimeline`) without any inaccuracy.\r\n1. Re-think your segmentation scheme not to create such an issue (if possible). Remember that periods are the source of truth in timing, not samples or segments - in the example scenario here we put the cart before the horse by assuming that samples are somehow more important.\r\n1. Generate padding samples as required to make a legal final segment that will never be actually presented (yes, ugly workaround but it would work)."}}
{"actor":{"display_login":"sandersaares"}}