Files
FFmpeg/libavcodec
bnnm c61b28e042 avcodec/atrac3: Add multichannel joint stereo ATRAC3
Multichannel joint stereo simply interleaves stereo pairs (6ch: 2ch + 2ch + 2ch), so each pair is decoded separatedly.

***

To test my changes, I converted examples to wav with ffmpeg.exe (old and new), and compared them to see they are byte-exact.

Regular 2ch files (JS and normal) were straightforward to test.

For multichannel, to check each JS pair is correctly decoded separatedly I did:
- manually demux 6ch.msf into 3 pairs and convert them (2ch_1.wav + 2ch_2.wav + 2ch_3.wav)
- convert the 6ch.msf file to wav (with my changes)
- manually demux the 6ch.wav into 3 pairs (6ch_d1.wav + 6ch_d2.wav + 6ch_d3.wav)
- compare each pair (ex. 2ch_3.wav vs 6ch_d3.wav): all pairs are byte-exact.

The new code just processes each JS pair separatedly, there are no algorithm changes.
It could be improved a bit but I'm not sure about typical styles.
I've only seen 6ch .MSF (probably the AT3 spec only supports 2ch audio).

Signed-off-by: bnnm <bananaman255@gmail.com>
2017-02-01 19:14:12 +01:00
..
2016-10-29 20:43:15 +02:00
2016-02-27 16:31:46 -06:00
2016-10-21 23:58:47 +02:00
2016-05-04 18:16:21 +02:00
2016-05-31 01:08:25 +01:00
2016-05-04 18:16:21 +02:00
2016-06-06 12:03:20 -04:00
2017-01-31 10:49:40 +01:00
2017-01-20 13:58:41 +01:00
2016-09-26 21:42:17 +02:00
2016-03-28 14:13:17 -08:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-10-09 20:09:00 +02:00
2016-05-04 18:16:21 +02:00
2016-06-06 14:32:48 +02:00
2016-10-21 23:58:47 +02:00
2016-01-30 17:44:13 +00:00
2016-03-28 14:13:17 -08:00
2016-07-11 23:30:11 +01:00
2016-07-11 23:30:11 +01:00
2016-11-14 00:33:12 +01:00
2016-01-28 10:31:41 +01:00
2016-11-09 21:10:59 +01:00
2016-04-02 22:48:15 +01:00
2016-04-02 22:48:15 +01:00
2016-10-21 23:58:47 +02:00
2016-03-04 13:51:42 +01:00
2017-01-21 18:08:08 +01:00
2017-01-11 16:02:10 +01:00
2016-01-31 15:44:11 -08:00
2016-09-15 21:48:28 +02:00
2016-09-15 21:48:28 +02:00
2016-09-09 16:35:37 +02:00
2016-08-19 14:24:13 +02:00
2016-11-16 02:39:57 +01:00
2016-03-07 11:17:31 +01:00
2016-07-27 10:19:40 +03:00
2016-07-27 10:19:40 +03:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-07-12 23:19:50 -07:00
2016-03-12 02:08:45 +01:00
2016-08-28 11:18:16 +02:00
2016-08-28 11:18:16 +02:00
2016-11-05 18:56:26 +01:00
2017-01-20 13:58:41 +01:00
2016-05-05 10:48:34 +02:00
2016-11-27 14:34:57 +01:00
2016-10-21 23:58:47 +02:00
2016-05-04 18:16:21 +02:00
2016-05-03 15:45:10 +02:00
2016-09-17 13:23:56 +01:00
2016-09-17 13:23:56 +01:00
2016-09-17 13:23:56 +01:00
2016-11-15 22:01:08 +01:00
2016-06-11 17:27:19 +02:00
2017-01-11 16:02:10 +01:00
2017-01-11 16:02:10 +01:00
2016-02-28 13:32:01 +01:00
2016-03-23 09:25:30 +01:00
2016-11-12 01:36:47 +01:00
2016-10-21 23:58:47 +02:00
2017-01-09 18:43:19 +01:00
2017-01-06 22:05:45 +01:00
2017-01-13 21:19:17 +01:00
2016-12-06 13:21:08 -08:00
2016-10-31 19:23:40 +00:00
2016-10-31 19:23:40 +00:00
2016-04-14 22:31:57 +02:00
2016-11-29 11:23:20 +01:00
2016-05-04 18:16:21 +02:00
2016-06-23 00:42:16 +02:00
2016-05-04 18:16:21 +02:00
2017-01-16 10:24:01 +01:00
2016-06-17 21:48:34 +02:00
2016-08-06 18:27:01 -03:00
2016-08-06 18:27:01 -03:00
2016-08-06 18:27:01 -03:00
2016-01-30 13:31:44 +01:00
2016-05-04 18:16:21 +02:00
2017-01-20 13:58:41 +01:00
2017-01-11 16:02:10 +01:00
2016-01-20 16:41:19 -03:00
2017-01-03 00:52:55 +01:00
2016-01-28 19:49:48 -08:00
2017-01-20 13:58:41 +01:00