I don't understand adj_stereo structure either, but I can probably disable channel coupling by forcing uncoupled mode. Current libvorbis seems to use uncoupled modes (i.e., setup_44u.h) when number of channels is greater than 2 by carefully looking at vorbisenc.c (around lines 636):
while(setup_list[i]){
if(setup_list[i]->coupling_restriction==-1 ||
setup_list[i]->coupling_restriction==ch){
...
}
}
This code fragment means libvorbis tries coupled mode first (e.g., coupling_restriction==2), and then uses uncoupled mode (coupling_restriction==-1). So we can skip coupled mode even when ch==2 by changeing coupling_restriction value. Here's a patch.
--- 1.0.1-official/vorbis/lib/modes/setup_44.h 2002-07-11 04:57:30.000000000 +0900
+++ 1.0.1-uc/vorbis/lib/modes/setup_44.h 2004-02-04 10:01:29.845691200 +0900
@@ -76,7 +76,7 @@
10,
rate_mapping_44_stereo,
quality_mapping_44,
- 2,
+ 0,
40000,
50000,
@@ -127,7 +127,7 @@
1,
rate_mapping_44_stereo_low,
quality_mapping_44_stereo_low,
- 2,
+ 0,
40000,
50000,
And here's a Win32-binary:
http://homepage3.nifty.com/nyaochi/temp/oggencuc.zip
HF boost still exist in uncoupled -q4 (slightly better but not impressive).