Commit graph

94 commits

Author SHA1 Message Date
mewmew 3c81d18bb2 frame: Use pointers in Frame for subframes. 2014-08-06 04:43:38 +02:00
mewmew cfd1e6af0a frame: Add Channels.Count. 2014-08-06 04:38:58 +02:00
mewmew 923cdff51a frame: Add Header, Channels, SubHeader and Pred definitions. This was the last piece of the new frame API. Updates issue #4. 2014-08-06 04:24:36 +02:00
mewmew 7e1f8d2b03 frame: Initial version of the new frame API. Updates issue #4. 2014-08-06 03:08:32 +02:00
mewmew 51d342ff4b flac: Clean start in preparation for the new API. All functionality will be back ported later on. 2014-08-05 21:51:52 +02:00
mewmew 9370982910 frame: Verify decoded audio data using md5. 2014-08-05 15:33:23 +02:00
mewmew 6d8d6f28a4 frame: Implement rice2 decoding. 2014-08-03 15:59:00 +02:00
mewmew a5595f088c flac: Add license notice for eaburns/flac code segments. 2014-08-03 15:26:35 +02:00
mewmew 060f13b6f9 frame: Make use of mewkiz/pkg/bit instead of eaburns/bit.
The real time it takes to decode a 32 MB flac file is on average 5.5% less.
2014-08-03 14:57:12 +02:00
mewmew f911f2e145 frame: Speed optimization. 2014-08-03 01:16:49 +02:00
mewmew b7742ffb7c frame: Toggle debug output. 2014-08-02 22:34:12 +02:00
mewmew 15bc88aadd frame: Implement channel decorrelation (part 2). flac-frame is now able to decode most flac files :) 2014-08-02 21:58:36 +02:00
mewmew d1efb29881 frame: Interchannel decorrelation (part 1). 2014-08-02 21:43:13 +02:00
mewmew abd8be75fc frame: Add two additional panics while trouble-shooting. 2014-08-01 04:18:20 +02:00
mewmew 7a54bca667 frame: Implement DecodeLPC. 2014-08-01 03:58:35 +02:00
mewmew 916e9cfc9b frame: Update comments. 2014-08-01 03:16:39 +02:00
mewmew 8c3f6695f3 frame: Fix riceDecode implementation. 2014-08-01 02:53:13 +02:00
mewmew d066f2f029 frame: Initial implementation of lpcDecode. 2014-07-31 17:41:10 +02:00
mewmew b8cceb5fc6 frame: Reimplement riceDecode. 2014-07-31 16:49:27 +02:00
mewmew 79e02a43a5 frame: Initial implementation of rice decoding; making it possible to decode residuals :) 2014-07-31 04:53:26 +02:00
mewmew 5057601481 frame: Update TODO comments. 2014-07-31 03:05:39 +02:00
mewmew af4e6cbd90 frame: Implement parsing of rice parameters which uses the escape code. 2013-12-02 23:20:32 +01:00
mewmew 7a122b13ac frame: Use bitutil.DecodeUnary and pre-allocate samples instead of using append. 2013-11-18 17:33:29 +01:00
mewmew b3530e6d6e frame: Remove old code which was out commented. 2013-11-17 00:10:31 +01:00
mewmew 51f30c32ef frame: Use io.TeeReader instead of hashutil.HashReader. 2013-11-16 23:48:45 +01:00
mewmew 8443fd2cce frame: Add some comments and panic on unreachable branches. 2013-11-16 17:59:43 +01:00
mewmew 56fd51d329 frame: Use ReadFields instead of bit masks in header.go. 2013-11-16 17:55:22 +01:00
mewmew dfd18aa2cb frame: Refactor to make use of github.com/eaburns/bit and hash readers. 2013-11-16 14:57:18 +01:00
mewmew c4e2b604f7 go fmt * 2013-11-03 22:19:15 +01:00
mewmew f583bf6928 all: Fix issues located by golint.
- "error strings should not end with punctuation"
2013-10-29 14:45:05 +01:00
mewmew 1a2f006677 Rename the package from rsf to flac. A command can later use the rsf name. 2013-06-07 03:23:23 +02:00
mewmew 0c1e1f11b3 frame: Initial work on DecodeResidual. 2013-01-21 16:28:42 +01:00
mewmew b9fe537027 frame: Make comments and names more consistent with the spec, read more below.
frame:
	- Rename EncType to PredMethod since it is used to specify the prediction
	  method.
	- Rename Order PredOrder since it is used to specify the predictor order.
	- Correct the comment for DecodeConstant.
	- Add comments for DecodeRice, DecodeRice2.
2013-01-17 16:46:51 +01:00
mewmew f9c8e03b70 frame: Implement DecodeVerbatim and partly DecodeLPC. More details below.
meta:
	- Move reference links to bottom of comments.
frame:
	- Parse wasted bits-per-sample.
2013-01-17 05:41:57 +01:00
mewmew 7a4afa3c0e frame: Initial parsing of subframes implemented, read more below.
meta: Minor alteration of comment.
rsf: Start using frame.NewFrame.

The changes to frame are as follows:
	* Frame struct no longer contains Footer. Instead NewFrame returns an error
	  if the CRC-16 verification fails.
	* Implement NewFrame which parses audio frames. Each audio frame consists of
	  a frame header, one subframe per channel and a footer containing a CRC-16
	  checksum.
	* Initial implementation of NewSubFrame which parses subframes. Currently
	  only the easiest case is fully supported.
		- Constant encoding is fully supported.
		- Fixed encoding can currently decode the "warm-up" samples. Rice0 and
		  rice1 still have to be implemented for full support.
		- LPC - not yet implemented.
		- Verbatim - not yet implemented. This one should be easy though.
	* NewSubHeader has almost been fully implemented. Only
	  "wasted-bits-per-sample" remains.

Note: This code uses the bitstream Reader from "github.com/mewkiz/pkg/bit",
which is convenient but also inefficient. When decoding has been fully
implemented we should use profiling to find the bottlenecks.
2013-01-15 04:15:39 +01:00
mewmew 13351d0b7d frame: Create dedicated file for subframe code. 2013-01-15 03:46:11 +01:00
mewmew 7ba02f64d5 frame: Create dedicated file for frame header code. 2013-01-15 03:42:42 +01:00
mewmew 436a318c9f frame: go fmt * 2012-11-16 16:24:02 +01:00
mewmew 1ae68c3ce4 meta: Handle invalid characters in CueSheet. 2012-11-13 00:43:03 +01:00
mewmew b41407fa4e frame: Implemented parsing of frame headers. More details below:
- Renamed Decode to NewHeader and modified it so it only parses the frame header data.
	- Implemented decoding of "UTF-8" coded integers.
	- Use CRC-8 to verify the header data (hashutil/crc8).
	- Removed CRC field from Header structure, since it should be enough to only return an error if the verification fails.
	- Renamed BlockSizeInterChannelSamples to BlockSize, err on the side of brevity.
	- Renamed ChannelAssignment to ChannelOrder and add corresponding iota constants.
rsf: Decode frame header using NewHeader.
2012-11-12 00:04:14 +01:00
mewmew 019c1a34d2 meta: the NewCueSheet function now uses a io.Reader. 2012-11-07 22:21:50 +01:00
forsoki 61d28bcf08 Changed NewApplication to utilizing io.Reader, changed frame package 2012-11-07 00:12:25 +01:00
mewmew debfe1fcd3 rsf: Added readme. Updated import paths. 2012-11-01 21:27:51 +01:00
forsoki c540818b3f Initial commit 2012-11-01 21:15:38 +01:00