{"id":20331136,"url":"https://github.com/comcast/gaad","last_synced_at":"2025-06-12T11:34:04.402Z","repository":{"id":9767007,"uuid":"63074202","full_name":"Comcast/gaad","owner":"Comcast","description":"GAAD (Go Advanced Audio Decoder)","archived":false,"fork":false,"pushed_at":"2023-01-27T22:41:30.000Z","size":112,"stargazers_count":128,"open_issues_count":2,"forks_count":19,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-11T21:07:11.953Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Comcast.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-07-11T14:19:16.000Z","updated_at":"2025-03-21T23:05:16.000Z","dependencies_parsed_at":"2023-02-15T13:15:36.496Z","dependency_job_id":null,"html_url":"https://github.com/Comcast/gaad","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Comcast/gaad","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comcast%2Fgaad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comcast%2Fgaad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comcast%2Fgaad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comcast%2Fgaad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Comcast","download_url":"https://codeload.github.com/Comcast/gaad/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comcast%2Fgaad/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259456091,"owners_count":22860484,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T20:18:54.192Z","updated_at":"2025-06-12T11:34:04.358Z","avatar_url":"https://github.com/Comcast.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GoDoc](https://godoc.org/github.com/Comcast/gaad?status.svg)](https://godoc.org/github.com/Comcast/gaad)\n[![Build Status](https://travis-ci.org/Comcast/gaad.svg?branch=master)](https://travis-ci.org/Comcast/gaad)\n[![Go Report Card](https://goreportcard.com/badge/github.com/Comcast/gaad)](https://goreportcard.com/report/github.com/Comcast/gaad)\n\n\n# GAAD (Go Advanced Audio Decoder)\n\nPackage currently provides AAC parsing capabilities.  This package performs a full parse of AAC-LC and HE-AACv1 bitstreams.  Bitstreams with Parametric Stereo (HE-AACv2) are not yet supported, but AAC bitstream data and SBR data will be extracted. The AAC decode from the parsed data to LPCM (.wav) is not yet implemented.  Please help us expand and test this library!\n\n## AACParser\nThis package currently supports AAC audio data contained in an ADTS header.  All available data is returned in the `adts` struct and can be accessed as nested objects as presented in the AAC specification.  All parameter names should be verbatim from the AAC specification, if you find an issue with this please file a bug or submit a pull request.  \n\n### AAC Types\n\n| Type      | Description     | CODEC        |\n| :-------: | --------------- | :----------: |\n| AACLC     | AAC             | mp4a.40.2    |\n| HEAAC     | AAC + SBR       | mp4a.40.5    |\n| HEAACv2   | AAC + SBR + PS  | mp4a.40.29   |\n\nwhere:\n+ SBR = Spectral band replication\n+ PS = Parametric Stereo\n\n### Usage\n```go\nvar []byte buf\nbuf = \u003cADTS+AAC data\u003e\n\n// Parsing the buffer\nadts, err := gaad.ParseADTS(buf)\n\n// Looping through top level elements and accessing sub-elements\nvar sbr bool\nif adts.Fill_elements != nil {\n\tfor _, e := range adts.Fill_elements {\n\t\tif e.Extension_payload != nil \u0026\u0026\n\t\t\te.Extension_payload.Extension_type == gaad.EXT_SBR_DATA {\n\t\t\tsbr = true\n\t\t}\n\t}\n}\n```\n\n### VBR vs CBR\n\nVBR (Variable bitrate) and CBR (Constant bitrate) is derived from the bitstream_type attribute in the adif_header section.  It is VBR if bitstream_type is true, and CBR otherwise.\n\n### References\n\n#### ISO/IEC STANDARD 14496-3\n\n```\nTitle         : Coding of audio-visual objects — Part 3: Audio\nFile          : ISO_14496-3-4th-Edition.pdf\nEdition       : Fourth edition (2009-09-01)\nRelevant Sections\n    - Page 64   : 1.6.5 Signaling of SBR\n    - Page 120  : 1.A.2 AAC Interchange formats\n    - Page 489  : 4.4.2 GA bitstream payloads\n```\n#### Related Books\n\n* Video Demystified (5th Edition) http://my.safaribooksonline.com/book/-/9780750683951\n\n#### Related Links\n\n* http://www.mp4ra.org/codecs.html\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomcast%2Fgaad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcomcast%2Fgaad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomcast%2Fgaad/lists"}