View | Details | Raw Unified | Return to bug 251125 | Differences between
and this patch

Collapse All | Expand All

(-)b/solaris/oss/JackOSSAdapter.cpp (+16 lines)
Lines 44-52 static inline void CopyAndConvertIn(jack_sample_t *dst, void *src, size_t nframe Link Here
44
			break;
44
			break;
45
        }
45
        }
46
		case 24: {
46
		case 24: {
47
#ifdef __FreeBSD__
48
			char *s24src = (char*)src;
49
			s24src += channel * 3;
50
			sample_move_dS_s24(dst, s24src, nframes, chcount*3);
51
#else
47
			signed int *s32src = (signed int*)src;
52
			signed int *s32src = (signed int*)src;
48
            s32src += channel;
53
            s32src += channel;
49
            sample_move_dS_s24(dst, (char*)s32src, nframes, chcount<<2);
54
            sample_move_dS_s24(dst, (char*)s32src, nframes, chcount<<2);
55
#endif
50
			break;
56
			break;
51
        }
57
        }
52
		case 32: {
58
		case 32: {
Lines 69-77 static inline void CopyAndConvertOut(void *dst, jack_sample_t *src, size_t nfram Link Here
69
			break;
75
			break;
70
        }
76
        }
71
		case 24: {
77
		case 24: {
78
#ifdef __FreeBSD__
79
			char *s24dst = (char*)dst;
80
			s24dst += channel * 3;
81
			sample_move_d24_sS(s24dst, src, nframes, chcount*3, NULL);
82
#else
72
			signed int *s32dst = (signed int*)dst;
83
			signed int *s32dst = (signed int*)dst;
73
            s32dst += channel;
84
            s32dst += channel;
74
            sample_move_d24_sS((char*)s32dst, src, nframes, chcount<<2, NULL); // No dithering for now...
85
            sample_move_d24_sS((char*)s32dst, src, nframes, chcount<<2, NULL); // No dithering for now...
86
#endif
75
			break;
87
			break;
76
        }
88
        }
77
		case 32: {
89
		case 32: {
Lines 89-95 void JackOSSAdapter::SetSampleFormat() Link Here
89
101
90
	    case 24:	/* native-endian LSB aligned 24-bits in 32-bits  integer */
102
	    case 24:	/* native-endian LSB aligned 24-bits in 32-bits  integer */
91
            fSampleFormat = AFMT_S24_NE;
103
            fSampleFormat = AFMT_S24_NE;
104
#ifdef __FreeBSD__
105
	    fSampleSize = 3;
106
#else
92
            fSampleSize = sizeof(int);
107
            fSampleSize = sizeof(int);
108
#endif
93
			break;
109
			break;
94
		case 32:	/* native-endian 32-bit integer */
110
		case 32:	/* native-endian 32-bit integer */
95
            fSampleFormat = AFMT_S32_NE;
111
            fSampleFormat = AFMT_S32_NE;
(-)b/solaris/oss/JackOSSDriver.cpp (+16 lines)
Lines 78-86 static inline void CopyAndConvertIn(jack_sample_t *dst, void *src, size_t nframe Link Here
78
			break;
78
			break;
79
        }
79
        }
80
		case 24: {
80
		case 24: {
81
#ifdef __FreeBSD__
82
			char *s24src = (char*)src;
83
			s24src += channel * 3;
84
			sample_move_dS_s24(dst, s24src, nframes, chcount*3);
85
#else
81
			signed int *s32src = (signed int*)src;
86
			signed int *s32src = (signed int*)src;
82
            s32src += channel;
87
            s32src += channel;
83
            sample_move_dS_s24(dst, (char*)s32src, nframes, chcount<<2);
88
            sample_move_dS_s24(dst, (char*)s32src, nframes, chcount<<2);
89
#endif
84
			break;
90
			break;
85
        }
91
        }
86
		case 32: {
92
		case 32: {
Lines 103-111 static inline void CopyAndConvertOut(void *dst, jack_sample_t *src, size_t nfram Link Here
103
			break;
109
			break;
104
        }
110
        }
105
		case 24: {
111
		case 24: {
112
#ifdef __FreeBSD__
113
			char *s24dst = (char*)dst;
114
			s24dst += channel * 3;
115
			sample_move_d24_sS(s24dst, src, nframes, chcount*3, NULL);
116
#else
106
			signed int *s32dst = (signed int*)dst;
117
			signed int *s32dst = (signed int*)dst;
107
            s32dst += channel;
118
            s32dst += channel;
108
            sample_move_d24_sS((char*)s32dst, src, nframes, chcount<<2, NULL); // No dithering for now...
119
            sample_move_d24_sS((char*)s32dst, src, nframes, chcount<<2, NULL); // No dithering for now...
120
#endif
109
			break;
121
			break;
110
        }
122
        }
111
		case 32: {
123
		case 32: {
Lines 123-129 void JackOSSDriver::SetSampleFormat() Link Here
123
135
124
	    case 24:	/* native-endian LSB aligned 24-bits in 32-bits integer */
136
	    case 24:	/* native-endian LSB aligned 24-bits in 32-bits integer */
125
            fSampleFormat = AFMT_S24_NE;
137
            fSampleFormat = AFMT_S24_NE;
138
#ifdef __FreeBSD__
139
	    fSampleSize = 3;
140
#else
126
            fSampleSize = sizeof(int);
141
            fSampleSize = sizeof(int);
142
#endif
127
			break;
143
			break;
128
		case 32:	/* native-endian 32-bit integer */
144
		case 32:	/* native-endian 32-bit integer */
129
            fSampleFormat = AFMT_S32_NE;
145
            fSampleFormat = AFMT_S32_NE;

Return to bug 251125