{"action":"created","comment":{"url":"https://api.github.com/repos/Matroska-Org/ebml-specification/pulls/comments/29920304","id":29920304,"diff_hunk":"@@ -1,66 +1,140 @@\n-### EBML specifications\n+# EBML specifications\n \n-#### EBML principle\n+## Abstract\n \n-EBML is short for Extensible Binary Meta Language. EBML specifies a\n-binary and octet (byte) aligned format inspired by the principle of XML.\n-EBML itself is a generalized description of the technique of binary\n-markup. Like XML, it is completely agnostic to any data that it might\n-contain. Therein, the Matroska project is a specific implementation\n-using the rules of EBML: It seeks to define a subset of the EBML\n-language in the context of audio and video data (though it obviously\n-isn't limited to this purpose). The format is made of 2 parts: the\n-semantic and the syntax. The semantic specifies a number of IDs and\n-their basic type and is not included in the data file/stream.\n+This document defines the Extensible Binary Markup Language (EBML) file\n+format. EBML is designed to be a binary format, inspired by XML, for the\n+purpose of storing and the possibility to manipulate all sorts of\n+digital content and metadata in a compact and simple form by using a\n+hierarchical form with variable field length.\n \n-Just like XML, the specific \"tags\" (IDs in EBML parlance) used in an\n-EBML implementation are arbitrary. However, the semantic of EBML\n-outlines general data types and ID's.\n+Some of the advantages of EBML are:\n+\n+- Possibility for compatibility between different versions of binary\n+    languages defined in EBML. A rare property of binary format that\n+    otherwise often needs careful consideration beforehand.\n+\n+- Unlimited size of data payload.\n+\n+- Can be both generated and read as a stream, without knowing the data\n+    size beforehand.\n+\n+- Often very space efficient, even compared to other binary\n+    representations of the same data.\n+\n+Some of the EBML disadvantages are:\n+\n+- No references can be made between EBML files, such as includes or\n+    inherits. Every EBML document is a self contained entity. The data\n+    stored in EBML may of course reference other resources.\n+\n+- No compositioning process to merge two or more EBML languages\n+    currently exists.\n+\n+This document describes the EBML binary syntax, its semantic\n+interpretation and the syntax of a textual document type definition\n+format used to define the rules and constraints of an EBML language.\n+\n+## Notations and Conventions\n+\n+The key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\",\n+\"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\",  \"MAY\", and \"OPTIONAL\" in this\n+document are to be interpreted as described in RFC 2119.\n+\n+BNF is used throughout this document to augment the description and\n+make it more formalized. It must however be noted that two different\n+formats are described in this document, with two different BNFs. One\n+for the binary format in chapter 2 and one for the document type\n+definition in the rest of the document. To avoid confusion different\n+token names has been chosen. The BNFs can be viewed in full in the\n+appendices.\n+\n+## EBML principle\n+\n+EBML specifies a binary and octet (byte) aligned format inspired by the\n+principle of XML. EBML itself is a generalized description of the\n+technique of binary markup. Like XML, it is completely agnostic to any\n+data that it might contain. The format is made of 2 parts: the semantic\n+and the syntax. The semantic specifies a number of Element IDs and their basic type and is not included in the data file/stream.\n+\n+Just like XML, the specific \"tags\" (Element IDs in EBML parlance) used in an EBML implementation are arbitrary. However, the semantic of EBML\n+outlines general data types and Element IDs.\n \n The known basic types are:\n \n--   Signed Integer - Big-endian, any size from 1 to 8 octets\n--   Unsigned Integer - Big-endian, any size from 1 to 8 octets\n--   Float - Big-endian, defined for 4 and 8 octets (32, 64 bits)\n--   String - Printable ASCII (0x20 to 0x7E), zero-padded when needed\n--   UTF-8 - [Unicode string](http://www.unicode.org/), zero padded when\n-    needed ([RFC 2279](http://www.faqs.org/rfcs/rfc2279.html))\n--   Date - signed 8 octets integer in nanoseconds with 0 indicating the\n-    precise beginning of the millennium (at\n-    2001-01-01T00:00:00,000000000 UTC)\n--   master-element - contains other EBML sub-elements of the next lower\n-    level\n--   Binary - not interpreted by the parser\n+Data Type        | Definition\n+-----------------|----------------------------------------------------\n+Signed Integer   | Big-endian, any size from 1 to 8 octets\n+Unsigned Integer | Big-endian, any size from 1 to 8 octets\n+Float            | Big-endian, defined for 4 and 8 octets (32, 64","path":"specification.markdown","position":96,"original_position":96,"commit_id":"8cbe0b0d56de8fb056a3a67bd97f43985619cbaa","original_commit_id":"8cbe0b0d56de8fb056a3a67bd97f43985619cbaa","user":{"login":"robUx4","id":657717,"avatar_url":"https://avatars.githubusercontent.com/u/657717?v=3","gravatar_id":"","url":"https://api.github.com/users/robUx4","html_url":"https://github.com/robUx4","followers_url":"https://api.github.com/users/robUx4/followers","following_url":"https://api.github.com/users/robUx4/following{/other_user}","gists_url":"https://api.github.com/users/robUx4/gists{/gist_id}","starred_url":"https://api.github.com/users/robUx4/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robUx4/subscriptions","organizations_url":"https://api.github.com/users/robUx4/orgs","repos_url":"https://api.github.com/users/robUx4/repos","events_url":"https://api.github.com/users/robUx4/events{/privacy}","received_events_url":"https://api.github.com/users/robUx4/received_events","type":"User","site_admin":false},"body":"Do we need the line formatting here ? We could at least have a 80 chars policy. This one ends at 66.","created_at":"2015-05-08T07:06:28Z","updated_at":"2015-05-08T07:06:28Z","html_url":"https://github.com/Matroska-Org/ebml-specification/pull/3#discussion_r29920304","pull_request_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/pulls/3","_links":{"self":{"href":"https://api.github.com/repos/Matroska-Org/ebml-specification/pulls/comments/29920304"},"html":{"href":"https://github.com/Matroska-Org/ebml-specification/pull/3#discussion_r29920304"},"pull_request":{"href":"https://api.github.com/repos/Matroska-Org/ebml-specification/pulls/3"}}},"pull_request":{"url":"https://api.github.com/repos/Matroska-Org/ebml-specification/pulls/3","id":34696430,"html_url":"https://github.com/Matroska-Org/ebml-specification/pull/3","diff_url":"https://github.com/Matroska-Org/ebml-specification/pull/3.diff","patch_url":"https://github.com/Matroska-Org/ebml-specification/pull/3.patch","issue_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/issues/3","number":3,"state":"open","locked":false,"title":"un-html, formatting, adding text from discussions and drafts","user":{"login":"dericed","id":762604,"avatar_url":"https://avatars.githubusercontent.com/u/762604?v=3","gravatar_id":"","url":"https://api.github.com/users/dericed","html_url":"https://github.com/dericed","followers_url":"https://api.github.com/users/dericed/followers","following_url":"https://api.github.com/users/dericed/following{/other_user}","gists_url":"https://api.github.com/users/dericed/gists{/gist_id}","starred_url":"https://api.github.com/users/dericed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dericed/subscriptions","organizations_url":"https://api.github.com/users/dericed/orgs","repos_url":"https://api.github.com/users/dericed/repos","events_url":"https://api.github.com/users/dericed/events{/privacy}","received_events_url":"https://api.github.com/users/dericed/received_events","type":"User","site_admin":false},"body":"@epiil and I started to integrate text from email discussions to the specification. I also did a lot of work to remove html formatting and other formatting that unlike other RFC documents. Because these patches integrate some of the discussion and draft with the specification there are now a few internal contradictions (such as the comments about the discrepancies in notes about the possible number of Element IDs). I can file issues for those or continue to discuss on the listserv.","created_at":"2015-05-05T04:58:28Z","updated_at":"2015-05-08T07:06:28Z","closed_at":null,"merged_at":null,"merge_commit_sha":"28206f796b80171d9f9a3b742f21318f3a61bf7e","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/pulls/3/commits","review_comments_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/pulls/3/comments","review_comment_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/issues/3/comments","statuses_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/statuses/8cbe0b0d56de8fb056a3a67bd97f43985619cbaa","head":{"label":"MediaArea:master","ref":"master","sha":"8cbe0b0d56de8fb056a3a67bd97f43985619cbaa","user":{"login":"MediaArea","id":7846736,"avatar_url":"https://avatars.githubusercontent.com/u/7846736?v=3","gravatar_id":"","url":"https://api.github.com/users/MediaArea","html_url":"https://github.com/MediaArea","followers_url":"https://api.github.com/users/MediaArea/followers","following_url":"https://api.github.com/users/MediaArea/following{/other_user}","gists_url":"https://api.github.com/users/MediaArea/gists{/gist_id}","starred_url":"https://api.github.com/users/MediaArea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MediaArea/subscriptions","organizations_url":"https://api.github.com/users/MediaArea/orgs","repos_url":"https://api.github.com/users/MediaArea/repos","events_url":"https://api.github.com/users/MediaArea/events{/privacy}","received_events_url":"https://api.github.com/users/MediaArea/received_events","type":"Organization","site_admin":false},"repo":{"id":34998353,"name":"ebml-specification","full_name":"MediaArea/ebml-specification","owner":{"login":"MediaArea","id":7846736,"avatar_url":"https://avatars.githubusercontent.com/u/7846736?v=3","gravatar_id":"","url":"https://api.github.com/users/MediaArea","html_url":"https://github.com/MediaArea","followers_url":"https://api.github.com/users/MediaArea/followers","following_url":"https://api.github.com/users/MediaArea/following{/other_user}","gists_url":"https://api.github.com/users/MediaArea/gists{/gist_id}","starred_url":"https://api.github.com/users/MediaArea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MediaArea/subscriptions","organizations_url":"https://api.github.com/users/MediaArea/orgs","repos_url":"https://api.github.com/users/MediaArea/repos","events_url":"https://api.github.com/users/MediaArea/events{/privacy}","received_events_url":"https://api.github.com/users/MediaArea/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/MediaArea/ebml-specification","description":"the specification for the EBML format","fork":true,"url":"https://api.github.com/repos/MediaArea/ebml-specification","forks_url":"https://api.github.com/repos/MediaArea/ebml-specification/forks","keys_url":"https://api.github.com/repos/MediaArea/ebml-specification/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MediaArea/ebml-specification/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MediaArea/ebml-specification/teams","hooks_url":"https://api.github.com/repos/MediaArea/ebml-specification/hooks","issue_events_url":"https://api.github.com/repos/MediaArea/ebml-specification/issues/events{/number}","events_url":"https://api.github.com/repos/MediaArea/ebml-specification/events","assignees_url":"https://api.github.com/repos/MediaArea/ebml-specification/assignees{/user}","branches_url":"https://api.github.com/repos/MediaArea/ebml-specification/branches{/branch}","tags_url":"https://api.github.com/repos/MediaArea/ebml-specification/tags","blobs_url":"https://api.github.com/repos/MediaArea/ebml-specification/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MediaArea/ebml-specification/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MediaArea/ebml-specification/git/refs{/sha}","trees_url":"https://api.github.com/repos/MediaArea/ebml-specification/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MediaArea/ebml-specification/statuses/{sha}","languages_url":"https://api.github.com/repos/MediaArea/ebml-specification/languages","stargazers_url":"https://api.github.com/repos/MediaArea/ebml-specification/stargazers","contributors_url":"https://api.github.com/repos/MediaArea/ebml-specification/contributors","subscribers_url":"https://api.github.com/repos/MediaArea/ebml-specification/subscribers","subscription_url":"https://api.github.com/repos/MediaArea/ebml-specification/subscription","commits_url":"https://api.github.com/repos/MediaArea/ebml-specification/commits{/sha}","git_commits_url":"https://api.github.com/repos/MediaArea/ebml-specification/git/commits{/sha}","comments_url":"https://api.github.com/repos/MediaArea/ebml-specification/comments{/number}","issue_comment_url":"https://api.github.com/repos/MediaArea/ebml-specification/issues/comments{/number}","contents_url":"https://api.github.com/repos/MediaArea/ebml-specification/contents/{+path}","compare_url":"https://api.github.com/repos/MediaArea/ebml-specification/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MediaArea/ebml-specification/merges","archive_url":"https://api.github.com/repos/MediaArea/ebml-specification/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MediaArea/ebml-specification/downloads","issues_url":"https://api.github.com/repos/MediaArea/ebml-specification/issues{/number}","pulls_url":"https://api.github.com/repos/MediaArea/ebml-specification/pulls{/number}","milestones_url":"https://api.github.com/repos/MediaArea/ebml-specification/milestones{/number}","notifications_url":"https://api.github.com/repos/MediaArea/ebml-specification/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MediaArea/ebml-specification/labels{/name}","releases_url":"https://api.github.com/repos/MediaArea/ebml-specification/releases{/id}","created_at":"2015-05-03T19:43:13Z","updated_at":"2015-05-03T17:48:36Z","pushed_at":"2015-05-07T16:18:53Z","git_url":"git://github.com/MediaArea/ebml-specification.git","ssh_url":"git@github.com:MediaArea/ebml-specification.git","clone_url":"https://github.com/MediaArea/ebml-specification.git","svn_url":"https://github.com/MediaArea/ebml-specification","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Matroska-Org:master","ref":"master","sha":"3bbe18c20b43c9303bee8483f5d49f3761324a52","user":{"login":"Matroska-Org","id":3148284,"avatar_url":"https://avatars.githubusercontent.com/u/3148284?v=3","gravatar_id":"","url":"https://api.github.com/users/Matroska-Org","html_url":"https://github.com/Matroska-Org","followers_url":"https://api.github.com/users/Matroska-Org/followers","following_url":"https://api.github.com/users/Matroska-Org/following{/other_user}","gists_url":"https://api.github.com/users/Matroska-Org/gists{/gist_id}","starred_url":"https://api.github.com/users/Matroska-Org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Matroska-Org/subscriptions","organizations_url":"https://api.github.com/users/Matroska-Org/orgs","repos_url":"https://api.github.com/users/Matroska-Org/repos","events_url":"https://api.github.com/users/Matroska-Org/events{/privacy}","received_events_url":"https://api.github.com/users/Matroska-Org/received_events","type":"Organization","site_admin":false},"repo":{"id":34994967,"name":"ebml-specification","full_name":"Matroska-Org/ebml-specification","owner":{"login":"Matroska-Org","id":3148284,"avatar_url":"https://avatars.githubusercontent.com/u/3148284?v=3","gravatar_id":"","url":"https://api.github.com/users/Matroska-Org","html_url":"https://github.com/Matroska-Org","followers_url":"https://api.github.com/users/Matroska-Org/followers","following_url":"https://api.github.com/users/Matroska-Org/following{/other_user}","gists_url":"https://api.github.com/users/Matroska-Org/gists{/gist_id}","starred_url":"https://api.github.com/users/Matroska-Org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Matroska-Org/subscriptions","organizations_url":"https://api.github.com/users/Matroska-Org/orgs","repos_url":"https://api.github.com/users/Matroska-Org/repos","events_url":"https://api.github.com/users/Matroska-Org/events{/privacy}","received_events_url":"https://api.github.com/users/Matroska-Org/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Matroska-Org/ebml-specification","description":"the specification for the EBML format","fork":false,"url":"https://api.github.com/repos/Matroska-Org/ebml-specification","forks_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/forks","keys_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/teams","hooks_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/hooks","issue_events_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/issues/events{/number}","events_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/events","assignees_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/assignees{/user}","branches_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/branches{/branch}","tags_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/tags","blobs_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/git/refs{/sha}","trees_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/statuses/{sha}","languages_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/languages","stargazers_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/stargazers","contributors_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/contributors","subscribers_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/subscribers","subscription_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/subscription","commits_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/commits{/sha}","git_commits_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/git/commits{/sha}","comments_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/comments{/number}","issue_comment_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/issues/comments{/number}","contents_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/contents/{+path}","compare_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/merges","archive_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/downloads","issues_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/issues{/number}","pulls_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/pulls{/number}","milestones_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/milestones{/number}","notifications_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/labels{/name}","releases_url":"https://api.github.com/repos/Matroska-Org/ebml-specification/releases{/id}","created_at":"2015-05-03T17:48:36Z","updated_at":"2015-05-03T17:48:36Z","pushed_at":"2015-05-07T16:18:53Z","git_url":"git://github.com/Matroska-Org/ebml-specification.git","ssh_url":"git@github.com:Matroska-Org/ebml-specification.git","clone_url":"https://github.com/Matroska-Org/ebml-specification.git","svn_url":"https://github.com/Matroska-Org/ebml-specification","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":4,"forks":2,"open_issues":4,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Matroska-Org/ebml-specification/pulls/3"},"html":{"href":"https://github.com/Matroska-Org/ebml-specification/pull/3"},"issue":{"href":"https://api.github.com/repos/Matroska-Org/ebml-specification/issues/3"},"comments":{"href":"https://api.github.com/repos/Matroska-Org/ebml-specification/issues/3/comments"},"review_comments":{"href":"https://api.github.com/repos/Matroska-Org/ebml-specification/pulls/3/comments"},"review_comment":{"href":"https://api.github.com/repos/Matroska-Org/ebml-specification/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Matroska-Org/ebml-specification/pulls/3/commits"},"statuses":{"href":"https://api.github.com/repos/Matroska-Org/ebml-specification/statuses/8cbe0b0d56de8fb056a3a67bd97f43985619cbaa"}}}}