View | Details | Raw Unified | Return to bug 181655
Collapse All | Expand All

(-)sys/oss/gstosshelper.c (-5 / +33 lines)
Lines 95-103 gst_oss_helper_probe_caps (gint fd) Link Here
95
  format_mask = AFMT_U8 | AFMT_S8;
95
  format_mask = AFMT_U8 | AFMT_S8;
96
96
97
  if (G_BYTE_ORDER == G_LITTLE_ENDIAN)
97
  if (G_BYTE_ORDER == G_LITTLE_ENDIAN)
98
    format_mask |= AFMT_S16_LE | AFMT_U16_LE;
98
    format_mask |= AFMT_S16_LE | AFMT_U16_LE
99
      | AFMT_S24_LE | AFMT_U24_LE
100
      | AFMT_S32_LE | AFMT_U32_LE;
99
  else
101
  else
100
    format_mask |= AFMT_S16_BE | AFMT_U16_BE;
102
    format_mask |= AFMT_S16_BE | AFMT_U16_BE
103
      | AFMT_S24_BE | AFMT_U24_BE
104
      | AFMT_S32_BE | AFMT_U32_BE;
101
105
102
  caps = gst_caps_new_empty ();
106
  caps = gst_caps_new_empty ();
103
107
Lines 169-174 gst_oss_helper_get_format_structure (uns Link Here
169
  const gchar *format;
173
  const gchar *format;
170
174
171
  switch (format_bit) {
175
  switch (format_bit) {
176
    case AFMT_S8:
177
      format = "S8";
178
      break;
172
    case AFMT_U8:
179
    case AFMT_U8:
173
      format = "U8";
180
      format = "U8";
174
      break;
181
      break;
Lines 178-192 gst_oss_helper_get_format_structure (uns Link Here
178
    case AFMT_S16_BE:
185
    case AFMT_S16_BE:
179
      format = "S16BE";
186
      format = "S16BE";
180
      break;
187
      break;
181
    case AFMT_S8:
182
      format = "S8";
183
      break;
184
    case AFMT_U16_LE:
188
    case AFMT_U16_LE:
185
      format = "U16LE";
189
      format = "U16LE";
186
      break;
190
      break;
187
    case AFMT_U16_BE:
191
    case AFMT_U16_BE:
188
      format = "U16BE";
192
      format = "U16BE";
189
      break;
193
      break;
194
    case AFMT_S24_LE:
195
      format = "S24LE";
196
      break;
197
    case AFMT_S24_BE:
198
      format = "S24BE";
199
      break;
200
    case AFMT_U24_LE:
201
      format = "U24LE";
202
      break;
203
    case AFMT_U24_BE:
204
      format = "U24BE";
205
      break;
206
    case AFMT_S32_LE:
207
      format = "S32LE";
208
      break;
209
    case AFMT_S32_BE:
210
      format = "S32BE";
211
      break;
212
    case AFMT_U32_LE:
213
      format = "U32LE";
214
      break;
215
    case AFMT_U32_BE:
216
      format = "U32BE";
217
      break;
190
    default:
218
    default:
191
      g_assert_not_reached ();
219
      g_assert_not_reached ();
192
      return NULL;
220
      return NULL;
(-)sys/oss/gstosssink.c (-5 / +32 lines)
Lines 106-112 enum Link Here
106
  PROP_DEVICE,
106
  PROP_DEVICE,
107
};
107
};
108
108
109
#define FORMATS "{" GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)", S8, U8 }"
109
#define FORMATS "{" GST_AUDIO_NE(S32)","GST_AUDIO_NE(U32)"," \
110
                    GST_AUDIO_NE(S24)","GST_AUDIO_NE(U24)"," \
111
                    GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)"," \
112
                    "S8, U8 }"
110
113
111
static GstStaticPadTemplate osssink_sink_factory =
114
static GstStaticPadTemplate osssink_sink_factory =
112
    GST_STATIC_PAD_TEMPLATE ("sink",
115
    GST_STATIC_PAD_TEMPLATE ("sink",
Lines 321-326 gst_oss_sink_get_format (GstAudioRingBuf Link Here
321
    case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW:
324
    case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW:
322
    {
325
    {
323
      switch (rfmt) {
326
      switch (rfmt) {
327
        case GST_AUDIO_FORMAT_S8:
328
          result = AFMT_S8;
329
          break;
324
        case GST_AUDIO_FORMAT_U8:
330
        case GST_AUDIO_FORMAT_U8:
325
          result = AFMT_U8;
331
          result = AFMT_U8;
326
          break;
332
          break;
Lines 330-344 gst_oss_sink_get_format (GstAudioRingBuf Link Here
330
        case GST_AUDIO_FORMAT_S16BE:
336
        case GST_AUDIO_FORMAT_S16BE:
331
          result = AFMT_S16_BE;
337
          result = AFMT_S16_BE;
332
          break;
338
          break;
333
        case GST_AUDIO_FORMAT_S8:
334
          result = AFMT_S8;
335
          break;
336
        case GST_AUDIO_FORMAT_U16LE:
339
        case GST_AUDIO_FORMAT_U16LE:
337
          result = AFMT_U16_LE;
340
          result = AFMT_U16_LE;
338
          break;
341
          break;
339
        case GST_AUDIO_FORMAT_U16BE:
342
        case GST_AUDIO_FORMAT_U16BE:
340
          result = AFMT_U16_BE;
343
          result = AFMT_U16_BE;
341
          break;
344
          break;
345
        case GST_AUDIO_FORMAT_S24LE:
346
          result = AFMT_S24_LE;
347
          break;
348
        case GST_AUDIO_FORMAT_S24BE:
349
          result = AFMT_S24_BE;
350
          break;
351
        case GST_AUDIO_FORMAT_U24LE:
352
          result = AFMT_U24_LE;
353
          break;
354
        case GST_AUDIO_FORMAT_U24BE:
355
          result = AFMT_U24_BE;
356
          break;
357
        case GST_AUDIO_FORMAT_S32LE:
358
          result = AFMT_S32_LE;
359
          break;
360
        case GST_AUDIO_FORMAT_S32BE:
361
          result = AFMT_S32_BE;
362
          break;
363
        case GST_AUDIO_FORMAT_U32LE:
364
          result = AFMT_U32_LE;
365
          break;
366
        case GST_AUDIO_FORMAT_U32BE:
367
          result = AFMT_U32_BE;
368
          break;
342
        default:
369
        default:
343
          result = 0;
370
          result = 0;
344
          break;
371
          break;
Lines 441-447 gst_oss_sink_prepare (GstAudioSink * asi Link Here
441
  rate = GST_AUDIO_INFO_RATE (&spec->info);
468
  rate = GST_AUDIO_INFO_RATE (&spec->info);
442
  channels = GST_AUDIO_INFO_CHANNELS (&spec->info);
469
  channels = GST_AUDIO_INFO_CHANNELS (&spec->info);
443
470
444
  if (width != 16 && width != 8)
471
  if (width != 32 && width != 24 && width != 16 && width != 8)
445
    goto dodgy_width;
472
    goto dodgy_width;
446
473
447
  SET_PARAM (oss, SNDCTL_DSP_SETFMT, tmp, "SETFMT");
474
  SET_PARAM (oss, SNDCTL_DSP_SETFMT, tmp, "SETFMT");
(-)sys/oss/gstosssrc.c (-5 / +32 lines)
Lines 100-106 static guint gst_oss_src_read (GstAudioS Link Here
100
static guint gst_oss_src_delay (GstAudioSrc * asrc);
100
static guint gst_oss_src_delay (GstAudioSrc * asrc);
101
static void gst_oss_src_reset (GstAudioSrc * asrc);
101
static void gst_oss_src_reset (GstAudioSrc * asrc);
102
102
103
#define FORMATS "{" GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)", S8, U8 }"
103
#define FORMATS "{" GST_AUDIO_NE(S32)","GST_AUDIO_NE(U32)"," \
104
                    GST_AUDIO_NE(S24)","GST_AUDIO_NE(U24)"," \
105
                    GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)"," \
106
                    "S8, U8 }"
104
107
105
static GstStaticPadTemplate osssrc_src_factory = GST_STATIC_PAD_TEMPLATE ("src",
108
static GstStaticPadTemplate osssrc_src_factory = GST_STATIC_PAD_TEMPLATE ("src",
106
    GST_PAD_SRC,
109
    GST_PAD_SRC,
Lines 314-319 gst_oss_src_get_format (GstAudioRingBuff Link Here
314
    case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW:
317
    case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW:
315
    {
318
    {
316
      switch (rfmt) {
319
      switch (rfmt) {
320
        case GST_AUDIO_FORMAT_S8:
321
          result = AFMT_S8;
322
          break;
317
        case GST_AUDIO_FORMAT_U8:
323
        case GST_AUDIO_FORMAT_U8:
318
          result = AFMT_U8;
324
          result = AFMT_U8;
319
          break;
325
          break;
Lines 323-337 gst_oss_src_get_format (GstAudioRingBuff Link Here
323
        case GST_AUDIO_FORMAT_S16BE:
329
        case GST_AUDIO_FORMAT_S16BE:
324
          result = AFMT_S16_BE;
330
          result = AFMT_S16_BE;
325
          break;
331
          break;
326
        case GST_AUDIO_FORMAT_S8:
327
          result = AFMT_S8;
328
          break;
329
        case GST_AUDIO_FORMAT_U16LE:
332
        case GST_AUDIO_FORMAT_U16LE:
330
          result = AFMT_U16_LE;
333
          result = AFMT_U16_LE;
331
          break;
334
          break;
332
        case GST_AUDIO_FORMAT_U16BE:
335
        case GST_AUDIO_FORMAT_U16BE:
333
          result = AFMT_U16_BE;
336
          result = AFMT_U16_BE;
334
          break;
337
          break;
338
        case GST_AUDIO_FORMAT_S24LE:
339
          result = AFMT_S24_LE;
340
          break;
341
        case GST_AUDIO_FORMAT_S24BE:
342
          result = AFMT_S24_BE;
343
          break;
344
        case GST_AUDIO_FORMAT_U24LE:
345
          result = AFMT_U24_LE;
346
          break;
347
        case GST_AUDIO_FORMAT_U24BE:
348
          result = AFMT_U24_BE;
349
          break;
350
        case GST_AUDIO_FORMAT_S32LE:
351
          result = AFMT_S32_LE;
352
          break;
353
        case GST_AUDIO_FORMAT_S32BE:
354
          result = AFMT_S32_BE;
355
          break;
356
        case GST_AUDIO_FORMAT_U32LE:
357
          result = AFMT_U32_LE;
358
          break;
359
        case GST_AUDIO_FORMAT_U32BE:
360
          result = AFMT_U32_BE;
361
          break;
335
        default:
362
        default:
336
          result = 0;
363
          result = 0;
337
          break;
364
          break;
Lines 428-434 gst_oss_src_prepare (GstAudioSrc * asrc, Link Here
428
  rate = GST_AUDIO_INFO_RATE (&spec->info);
455
  rate = GST_AUDIO_INFO_RATE (&spec->info);
429
  channels = GST_AUDIO_INFO_CHANNELS (&spec->info);
456
  channels = GST_AUDIO_INFO_CHANNELS (&spec->info);
430
457
431
  if (width != 16 && width != 8)
458
  if (width != 32 && width != 24 && width != 16 && width != 8)
432
    goto dodgy_width;
459
    goto dodgy_width;
433
460
434
  tmp = ilog2 (spec->segsize);
461
  tmp = ilog2 (spec->segsize);

Return to bug 181655