{"action":"opened","issue":{"url":"https://api.github.com/repos/pothosware/pothos-blocks/issues/31","labels_url":"https://api.github.com/repos/pothosware/pothos-blocks/issues/31/labels{/name}","comments_url":"https://api.github.com/repos/pothosware/pothos-blocks/issues/31/comments","events_url":"https://api.github.com/repos/pothosware/pothos-blocks/issues/31/events","html_url":"https://github.com/pothosware/pothos-blocks/issues/31","id":91912714,"number":31,"title":"bursty stream fragmentation and reassembly blocks","user":{"login":"guruofquality","id":184117,"avatar_url":"https://avatars.githubusercontent.com/u/184117?v=3","gravatar_id":"","url":"https://api.github.com/users/guruofquality","html_url":"https://github.com/guruofquality","followers_url":"https://api.github.com/users/guruofquality/followers","following_url":"https://api.github.com/users/guruofquality/following{/other_user}","gists_url":"https://api.github.com/users/guruofquality/gists{/gist_id}","starred_url":"https://api.github.com/users/guruofquality/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/guruofquality/subscriptions","organizations_url":"https://api.github.com/users/guruofquality/orgs","repos_url":"https://api.github.com/users/guruofquality/repos","events_url":"https://api.github.com/users/guruofquality/events{/privacy}","received_events_url":"https://api.github.com/users/guruofquality/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/pothosware/pothos-blocks/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-06-29T21:21:18Z","updated_at":"2015-06-29T21:21:18Z","closed_at":null,"body":"Consider a bursty stream that uses start of frame labels (optional) and end of frame labels to designate the boundaries of a burst.\r\n\r\n* The burst fragmenter block is responsible for slicing the stream into MTU sized packets and appending a header that specifies the packet index (within the burst), start of burst an end of burst markers. The first element in a start of burst packet is the element with the start of frame label. The last element in an end of burst packet is the element with the end of frame label. This block is data type agnostic.\r\n\r\n* The burst reassembler block is responsible for converting between these formatted packets back into a labelled stream of bursts. This block takes the desired output data type as an input parameter.\r\n\r\nImmediate use case: The burst fragmenter will accept bursts from a level detector that is fed by an audio source. This will enable the transmission of useful audio data over a link. The burst reassembler will feed the bursts to an audio sink which will use the end of frame label to stop the audio device and avoid underflow: https://github.com/pothosware/pothos-audio/issues/2"}}