1833{
1839 uint32_t actual_size = rtype == 2 ? n*2 : n;
1841 uint32_t limit_r_end = (r->
end < actual_size ? r->
end : actual_size);
1842 int32_t n_read = limit_r_end - limit_r_begin;
1845 #ifndef FL_STB_VORBIS_DIVIDES_IN_RESIDUE
1847 #else
1849 #endif
1850
1852
1853 for (i=0; i < ch; ++i)
1854 if (!do_not_decode[i])
1855 memset(residue_buffers[i], 0,
sizeof(
float) * n);
1856
1857 if (rtype == 2 && ch != 1) {
1858 for (j=0; j < ch; ++j)
1859 if (!do_not_decode[j])
1860 break;
1861 if (j == ch)
1863
1864 for (pass=0; pass < 8; ++pass) {
1866 if (ch == 2) {
1867 while (
pcount < part_read) {
1869 int32_t c_inter = (
z & 1), p_inter =
z>>1;
1870 if (pass == 0) {
1875 #ifndef FL_STB_VORBIS_DIVIDES_IN_RESIDUE
1876 part_classdata[0][class_set] = r->
classdata[q];
1877 #else
1878 for (i=classwords-1; i >= 0; --i) {
1881 }
1882 #endif
1883 }
1884 for (i=0; i < classwords &&
pcount < part_read; ++i, ++
pcount) {
1886 #ifndef FL_STB_VORBIS_DIVIDES_IN_RESIDUE
1887 int32_t c = part_classdata[0][class_set][i];
1888 #else
1890 #endif
1892 if (b >= 0) {
1894 #ifdef FL_STB_VORBIS_DIVIDES_IN_CODEBOOK
1897 #else
1898
1901 #endif
1902 } else {
1906 }
1907 }
1908 #ifndef FL_STB_VORBIS_DIVIDES_IN_RESIDUE
1909 ++class_set;
1910 #endif
1911 }
1912 } else if (ch > 2) {
1913 while (
pcount < part_read) {
1915 int32_t c_inter =
z % ch, p_inter =
z/ch;
1916 if (pass == 0) {
1921 #ifndef FL_STB_VORBIS_DIVIDES_IN_RESIDUE
1922 part_classdata[0][class_set] = r->
classdata[q];
1923 #else
1924 for (i=classwords-1; i >= 0; --i) {
1927 }
1928 #endif
1929 }
1930 for (i=0; i < classwords &&
pcount < part_read; ++i, ++
pcount) {
1932 #ifndef FL_STB_VORBIS_DIVIDES_IN_RESIDUE
1933 int32_t c = part_classdata[0][class_set][i];
1934 #else
1936 #endif
1938 if (b >= 0) {
1942 } else {
1946 }
1947 }
1948 #ifndef FL_STB_VORBIS_DIVIDES_IN_RESIDUE
1949 ++class_set;
1950 #endif
1951 }
1952 }
1953 }
1955 }
1957
1958 for (pass=0; pass < 8; ++pass) {
1960 while (
pcount < part_read) {
1961 if (pass == 0) {
1962 for (j=0; j < ch; ++j) {
1963 if (!do_not_decode[j]) {
1968 #ifndef FL_STB_VORBIS_DIVIDES_IN_RESIDUE
1969 part_classdata[j][class_set] = r->
classdata[temp];
1970 #else
1971 for (i=classwords-1; i >= 0; --i) {
1974 }
1975 #endif
1976 }
1977 }
1978 }
1979 for (i=0; i < classwords &&
pcount < part_read; ++i, ++
pcount) {
1980 for (j=0; j < ch; ++j) {
1981 if (!do_not_decode[j]) {
1982 #ifndef FL_STB_VORBIS_DIVIDES_IN_RESIDUE
1983 int32_t c = part_classdata[j][class_set][i];
1984 #else
1986 #endif
1988 if (b >= 0) {
1989 float *target = residue_buffers[j];
1995 }
1996 }
1997 }
1998 }
1999 #ifndef FL_STB_VORBIS_DIVIDES_IN_RESIDUE
2000 ++class_set;
2001 #endif
2002 }
2003 }
2006 #ifndef FL_STB_VORBIS_DIVIDES_IN_RESIDUE
2008 #else
2010 #endif
2012}
fl::UISlider offset("Offset", 0.0f, 0.0f, 1.0f, 0.01f)
static int32_t residue_decode(vorb *f, Codebook *book, float *target, int32_t offset, int32_t n, int32_t rtype) FL_NOEXCEPT
void * memset(void *s, int c, size_t n) FL_NOEXCEPT
static constexpr int32_t EOP
static int32_t codebook_decode_deinterleave_repeat(vorb *f, Codebook *c, float **outputs, int32_t ch, int32_t *c_inter_p, int32_t *p_inter_p, int32_t len, int32_t total_decode) FL_NOEXCEPT
int16(* residue_books)[8]
#define fl_stbv_temp_free(f, p)
#define FL_STBV_DECODE(var, f, c)
#define fl_stbv_temp_alloc_save(f)
#define fl_stbv_temp_block_array(f, count, size)
#define fl_stbv_temp_alloc_restore(f, p)