Ravenports generated: 18 Jan 2021 12:16
[ravenports.git] / bucket_14 / gstreamer1-plugins-good
1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
2
3 NAMEBASE=               gstreamer1-plugins-good
4 VERSION=                1.18.3
5 REVISION=               1
6 KEYWORDS=               multimedia
7 VARIANTS=               standard
8 SDESC[standard]=        GStreamer Multimedia Framework "Good" Plugins
9 HOMEPAGE=               https://gstreamer.freedesktop.org/
10 CONTACT=                nobody
11
12 DOWNLOAD_GROUPS=        main
13 SITES[main]=            https://gstreamer.freedesktop.org/src/gst-plugins-good/
14 DISTFILE[1]=            gst-plugins-good-1.18.3.tar.xz:main
15 DF_INDEX=               1
16 SPKGS[standard]=        complete
17                         primary
18                         nls
19
20 OPTIONS_AVAILABLE=      none
21 OPTIONS_STANDARD=       none
22
23 BUILD_DEPENDS=          autoselect-python:single:standard
24 BUILDRUN_DEPENDS=       gstreamer1:primary:standard
25                         gstreamer1-plugins-base:primary:standard
26
27 USES=                   gmake pkgconfig zlib bz2 meson gettext-runtime
28                         gettext-tools
29 GNOME_COMPONENTS=       glib
30
31 DISTNAME=               gst-plugins-good-1.18.3
32
33 LICENSE=                LGPL20+:primary
34 LICENSE_TERMS=          primary:{{WRKDIR}}/TERMS
35 LICENSE_FILE=           LGPL20+:{{WRKSRC}}/COPYING
36 LICENSE_AWK=            TERMS:"^$$"
37 LICENSE_SOURCE=         TERMS:{{WRKSRC}}/gst/alpha/gstalpha.h
38 LICENSE_SCHEME=         solo
39
40 FPC_EQUIVALENT=         multimedia/gstreamer1-plugins-good
41 MESON_ARGS=             -Dalpha=enabled
42                         -Dapetag=enabled
43                         -Daudiofx=enabled
44                         -Daudioparsers=enabled
45                         -Dauparse=enabled
46                         -Dautodetect=enabled
47                         -Davi=enabled
48                         -Dcutter=enabled
49                         -Ddebugutils=enabled
50                         -Ddeinterlace=enabled
51                         -Ddtmf=enabled
52                         -Deffectv=enabled
53                         -Dequalizer=enabled
54                         -Dflv=enabled
55                         -Dflx=enabled
56                         -Dgoom=enabled
57                         -Dgoom2k1=enabled
58                         -Dicydemux=enabled
59                         -Did3demux=enabled
60                         -Dimagefreeze=enabled
61                         -Dinterleave=enabled
62                         -Disomp4=enabled
63                         -Dlaw=enabled
64                         -Dlevel=enabled
65                         -Dmatroska=enabled
66                         -Dmonoscope=enabled
67                         -Dmultifile=enabled
68                         -Dmultipart=enabled
69                         -Dreplaygain=enabled
70                         -Drtp=enabled
71                         -Drtpmanager=enabled
72                         -Drtsp=enabled
73                         -Dshapewipe=enabled
74                         -Dsmpte=enabled
75                         -Dspectrum=enabled
76                         -Dudp=enabled
77                         -Dvideobox=enabled
78                         -Dvideocrop=enabled
79                         -Dvideofilter=enabled
80                         -Dvideomixer=enabled
81                         -Dwavenc=enabled
82                         -Dwavparse=enabled
83                         -Dy4m=enabled
84                         -Daalib=disabled
85                         -Dbz2=enabled
86                         -Dcairo=disabled
87                         -Ddirectsound=disabled
88                         -Ddv=disabled
89                         -Ddv1394=disabled
90                         -Dflac=disabled
91                         -Dgdk-pixbuf=disabled
92                         -Dgtk3=disabled
93                         -Djack=disabled
94                         -Djpeg=disabled
95                         -Dlame=disabled
96                         -Dlibcaca=disabled
97                         -Dmpg123=disabled
98                         -Doss=enabled
99                         -Doss4=enabled
100                         -Dosxaudio=disabled
101                         -Dosxvideo=disabled
102                         -Dpng=disabled
103                         -Dpulse=disabled
104                         -Dqt5=disabled
105                         -Dshout2=disabled
106                         -Dsoup=disabled
107                         -Dspeex=disabled
108                         -Dtaglib=disabled
109                         -Dtwolame=disabled
110                         -Dvpx=disabled
111                         -Dwaveform=disabled
112                         -Dwavpack=disabled
113                         -Drpicamsrc=disabled
114                         -Drpi-header-dir=disabled
115                         -Drpi-lib-dir=disabled
116                         -Dximagesrc=disabled
117                         -Dximagesrc-xshm=disabled
118                         -Dximagesrc-xfixes=disabled
119                         -Dximagesrc-xdamage=disabled
120                         -Dv4l2=disabled
121                         -Dv4l2-probe=false
122                         -Dv4l2-libv4l2=disabled
123                         -Dv4l2-gudev=disabled
124                         -Ddoc=disabled
125                         -Dnls=enabled
126                         -Dexamples=disabled
127                         -Dtests=disabled
128                         -Dorc=disabled
129
130 SOVERSION=              0.1803.0
131 PLIST_SUB=              GSTVER=1.0
132
133 [FILE:91:descriptions/desc.primary]
134 This package contains self-contained plugins from the "good" plugin set
135 for GStreamer (1).
136
137
138 [FILE:109:distinfo]
139 9b3b8e05d4d6073bf929fb33e2d8f74dd81ff21fa5b50c3273c78dfa2ab9c5cb      3274940 gst-plugins-good-1.18.3.tar.xz
140
141
142 [FILE:1167:manifests/plist.primary]
143 %%ONLY-DRAGONFLY%%lib/gstreamer-%%GSTVER%%/libgstossaudio.so
144 %%ONLY-FREEBSD%%lib/gstreamer-%%GSTVER%%/libgstossaudio.so
145 %%ONLY-LINUX%%lib/gstreamer-%%GSTVER%%/libgstossaudio.so
146 lib/gstreamer-%%GSTVER%%/
147  libgstalaw.so
148  libgstalpha.so
149  libgstalphacolor.so
150  libgstapetag.so
151  libgstaudiofx.so
152  libgstaudioparsers.so
153  libgstauparse.so
154  libgstautodetect.so
155  libgstavi.so
156  libgstcutter.so
157  libgstdebug.so
158  libgstdeinterlace.so
159  libgstdtmf.so
160  libgsteffectv.so
161  libgstequalizer.so
162  libgstflv.so
163  libgstflxdec.so
164  libgstgoom.so
165  libgstgoom2k1.so
166  libgsticydemux.so
167  libgstid3demux.so
168  libgstimagefreeze.so
169  libgstinterleave.so
170  libgstisomp4.so
171  libgstlevel.so
172  libgstmatroska.so
173  libgstmonoscope.so
174  libgstmulaw.so
175  libgstmultifile.so
176  libgstmultipart.so
177  libgstnavigationtest.so
178  libgstoss4.so
179  libgstreplaygain.so
180  libgstrtp.so
181  libgstrtpmanager.so
182  libgstrtsp.so
183  libgstshapewipe.so
184  libgstsmpte.so
185  libgstspectrum.so
186  libgstudp.so
187  libgstvideobox.so
188  libgstvideocrop.so
189  libgstvideofilter.so
190  libgstvideomixer.so
191  libgstwavenc.so
192  libgstwavparse.so
193  libgsty4menc.so
194 share/gstreamer-%%GSTVER%%/presets/
195  GstIirEqualizer10Bands.prs
196  GstIirEqualizer3Bands.prs
197  GstQTMux.prs
198
199
200 [FILE:2553:manifests/plist.nls]
201 share/locale/af/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
202 share/locale/az/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
203 share/locale/bg/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
204 share/locale/ca/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
205 share/locale/cs/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
206 share/locale/da/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
207 share/locale/de/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
208 share/locale/el/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
209 share/locale/en_GB/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
210 share/locale/eo/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
211 share/locale/es/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
212 share/locale/eu/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
213 share/locale/fi/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
214 share/locale/fr/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
215 share/locale/fur/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
216 share/locale/gl/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
217 share/locale/hr/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
218 share/locale/hu/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
219 share/locale/id/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
220 share/locale/it/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
221 share/locale/ja/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
222 share/locale/ky/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
223 share/locale/lt/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
224 share/locale/lv/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
225 share/locale/mt/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
226 share/locale/nb/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
227 share/locale/nl/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
228 share/locale/or/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
229 share/locale/pl/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
230 share/locale/pt_BR/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
231 share/locale/ro/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
232 share/locale/ru/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
233 share/locale/sk/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
234 share/locale/sl/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
235 share/locale/sq/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
236 share/locale/sr/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
237 share/locale/sv/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
238 share/locale/tr/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
239 share/locale/uk/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
240 share/locale/vi/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
241 share/locale/zh_CN/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
242 share/locale/zh_HK/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
243 share/locale/zh_TW/LC_MESSAGES/gst-plugins-good-%%GSTVER%%.mo
244
245
246 [FILE:2373:dragonfly/patch-sys_oss_gstosshelper.c]
247 --- sys/oss/gstosshelper.c.orig 2020-09-07 23:05:16 UTC
248 +++ sys/oss/gstosshelper.c
249 @@ -82,9 +82,9 @@ GstCaps *
250  gst_oss_helper_probe_caps (gint fd)
251  {
252  #if G_BYTE_ORDER == G_LITTLE_ENDIAN
253 -  const guint probe_formats[] = { AFMT_S16_LE, AFMT_U16_LE, AFMT_U8, AFMT_S8 };
254 +  const guint probe_formats[] = { AFMT_U32_LE, AFMT_S32_LE, AFMT_U24_LE, AFMT_S24_LE, AFMT_S16_LE, AFMT_U16_LE, AFMT_U8, AFMT_S8 };
255  #else
256 -  const guint probe_formats[] = { AFMT_S16_BE, AFMT_U16_BE, AFMT_U8, AFMT_S8 };
257 +  const guint probe_formats[] = { AFMT_U32_BE, AFMT_S32_BE, AFMT_U24_BE, AFMT_S24_BE, AFMT_S16_BE, AFMT_U16_BE, AFMT_U8, AFMT_S8 };
258  #endif
259    GstOssProbe *probe;
260    int i, f;
261 @@ -165,6 +165,9 @@ gst_oss_helper_get_format_structure (uns
262    const gchar *format;
263  
264    switch (format_bit) {
265 +    case AFMT_S8:
266 +      format = "S8";
267 +      break;
268      case AFMT_U8:
269        format = "U8";
270        break;
271 @@ -174,15 +177,36 @@ gst_oss_helper_get_format_structure (uns
272      case AFMT_S16_BE:
273        format = "S16BE";
274        break;
275 -    case AFMT_S8:
276 -      format = "S8";
277 -      break;
278      case AFMT_U16_LE:
279        format = "U16LE";
280        break;
281      case AFMT_U16_BE:
282        format = "U16BE";
283        break;
284 +    case AFMT_S24_LE:
285 +      format = "S24LE";
286 +      break;
287 +    case AFMT_S24_BE:
288 +      format = "S24BE";
289 +      break;
290 +    case AFMT_U24_LE:
291 +      format = "U24LE";
292 +      break;
293 +    case AFMT_U24_BE:
294 +      format = "U24BE";
295 +      break;
296 +    case AFMT_S32_LE:
297 +      format = "S32LE";
298 +      break;
299 +    case AFMT_S32_BE:
300 +      format = "S32BE";
301 +      break;
302 +    case AFMT_U32_LE:
303 +      format = "U32LE";
304 +      break;
305 +    case AFMT_U32_BE:
306 +      format = "U32BE";
307 +      break;
308      default:
309        g_assert_not_reached ();
310        return NULL;
311 @@ -320,13 +344,17 @@ gst_oss_helper_rate_check_rate (GstOssPr
312    int format;
313    int n_channels;
314    int ret;
315 +  int rst;
316  
317    rate = irate;
318    format = probe->format;
319    n_channels = probe->n_channels;
320 +  rst = 4000; /* XXX Lowest supported rate for FreeBSD. */
321  
322    GST_LOG ("checking format %d, channels %d, rate %d",
323        format, n_channels, rate);
324 +  /* Reset rate to lowest supported rate. */
325 +  ioctl (probe->fd, SNDCTL_DSP_SPEED, &rst);
326    ret = ioctl (probe->fd, SNDCTL_DSP_SETFMT, &format);
327    if (ret < 0 || format != probe->format) {
328      GST_DEBUG ("unsupported format: %d (%d)", probe->format, format);
329
330
331 [FILE:2339:dragonfly/patch-sys_oss_gstosssink.c]
332 --- sys/oss/gstosssink.c.orig   2020-09-07 23:05:16 UTC
333 +++ sys/oss/gstosssink.c
334 @@ -106,7 +106,10 @@ enum
335    PROP_DEVICE,
336  };
337  
338 -#define FORMATS "{" GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)", S8, U8 }"
339 +#define FORMATS "{" GST_AUDIO_NE(S32)","GST_AUDIO_NE(U32)"," \
340 +                    GST_AUDIO_NE(S24)","GST_AUDIO_NE(U24)"," \
341 +                    GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)"," \
342 +                    "S8, U8 }"
343  
344  static GstStaticPadTemplate osssink_sink_factory =
345      GST_STATIC_PAD_TEMPLATE ("sink",
346 @@ -321,6 +324,9 @@ gst_oss_sink_get_format (GstAudioRingBuf
347      case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW:
348      {
349        switch (rfmt) {
350 +        case GST_AUDIO_FORMAT_S8:
351 +          result = AFMT_S8;
352 +          break;
353          case GST_AUDIO_FORMAT_U8:
354            result = AFMT_U8;
355            break;
356 @@ -330,15 +336,36 @@ gst_oss_sink_get_format (GstAudioRingBuf
357          case GST_AUDIO_FORMAT_S16BE:
358            result = AFMT_S16_BE;
359            break;
360 -        case GST_AUDIO_FORMAT_S8:
361 -          result = AFMT_S8;
362 -          break;
363          case GST_AUDIO_FORMAT_U16LE:
364            result = AFMT_U16_LE;
365            break;
366          case GST_AUDIO_FORMAT_U16BE:
367            result = AFMT_U16_BE;
368            break;
369 +        case GST_AUDIO_FORMAT_S24LE:
370 +          result = AFMT_S24_LE;
371 +          break;
372 +        case GST_AUDIO_FORMAT_S24BE:
373 +          result = AFMT_S24_BE;
374 +          break;
375 +        case GST_AUDIO_FORMAT_U24LE:
376 +          result = AFMT_U24_LE;
377 +          break;
378 +        case GST_AUDIO_FORMAT_U24BE:
379 +          result = AFMT_U24_BE;
380 +          break;
381 +        case GST_AUDIO_FORMAT_S32LE:
382 +          result = AFMT_S32_LE;
383 +          break;
384 +        case GST_AUDIO_FORMAT_S32BE:
385 +          result = AFMT_S32_BE;
386 +          break;
387 +        case GST_AUDIO_FORMAT_U32LE:
388 +          result = AFMT_U32_LE;
389 +          break;
390 +        case GST_AUDIO_FORMAT_U32BE:
391 +          result = AFMT_U32_BE;
392 +          break;
393          default:
394            result = 0;
395            break;
396 @@ -441,7 +468,7 @@ gst_oss_sink_prepare (GstAudioSink * asi
397    rate = GST_AUDIO_INFO_RATE (&spec->info);
398    channels = GST_AUDIO_INFO_CHANNELS (&spec->info);
399  
400 -  if (width != 16 && width != 8)
401 +  if (width != 32 && width != 24 && width != 16 && width != 8)
402      goto dodgy_width;
403  
404    SET_PARAM (oss, SNDCTL_DSP_SETFMT, tmp, "SETFMT");
405
406
407 [FILE:2448:dragonfly/patch-sys_oss_gstosssrc.c]
408 --- sys/oss/gstosssrc.c.orig    2020-09-07 23:05:16 UTC
409 +++ sys/oss/gstosssrc.c
410 @@ -100,7 +100,10 @@ static guint gst_oss_src_read (GstAudioS
411  static guint gst_oss_src_delay (GstAudioSrc * asrc);
412  static void gst_oss_src_reset (GstAudioSrc * asrc);
413  
414 -#define FORMATS "{" GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)", S8, U8 }"
415 +#define FORMATS "{" GST_AUDIO_NE(S32)","GST_AUDIO_NE(U32)"," \
416 +                    GST_AUDIO_NE(S24)","GST_AUDIO_NE(U24)"," \
417 +                    GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)"," \
418 +                    "S8, U8 }"
419  
420  static GstStaticPadTemplate osssrc_src_factory = GST_STATIC_PAD_TEMPLATE ("src",
421      GST_PAD_SRC,
422 @@ -313,6 +316,9 @@ gst_oss_src_get_format (GstAudioRingBuff
423      case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW:
424      {
425        switch (rfmt) {
426 +        case GST_AUDIO_FORMAT_S8:
427 +          result = AFMT_S8;
428 +          break;
429          case GST_AUDIO_FORMAT_U8:
430            result = AFMT_U8;
431            break;
432 @@ -322,15 +328,36 @@ gst_oss_src_get_format (GstAudioRingBuff
433          case GST_AUDIO_FORMAT_S16BE:
434            result = AFMT_S16_BE;
435            break;
436 -        case GST_AUDIO_FORMAT_S8:
437 -          result = AFMT_S8;
438 -          break;
439          case GST_AUDIO_FORMAT_U16LE:
440            result = AFMT_U16_LE;
441            break;
442          case GST_AUDIO_FORMAT_U16BE:
443            result = AFMT_U16_BE;
444            break;
445 +        case GST_AUDIO_FORMAT_S24LE:
446 +          result = AFMT_S24_LE;
447 +          break;
448 +        case GST_AUDIO_FORMAT_S24BE:
449 +          result = AFMT_S24_BE;
450 +          break;
451 +        case GST_AUDIO_FORMAT_U24LE:
452 +          result = AFMT_U24_LE;
453 +          break;
454 +        case GST_AUDIO_FORMAT_U24BE:
455 +          result = AFMT_U24_BE;
456 +          break;
457 +        case GST_AUDIO_FORMAT_S32LE:
458 +          result = AFMT_S32_LE;
459 +          break;
460 +        case GST_AUDIO_FORMAT_S32BE:
461 +          result = AFMT_S32_BE;
462 +          break;
463 +        case GST_AUDIO_FORMAT_U32LE:
464 +          result = AFMT_U32_LE;
465 +          break;
466 +        case GST_AUDIO_FORMAT_U32BE:
467 +          result = AFMT_U32_BE;
468 +          break;
469          default:
470            result = 0;
471            break;
472 @@ -427,7 +454,7 @@ gst_oss_src_prepare (GstAudioSrc * asrc,
473    rate = GST_AUDIO_INFO_RATE (&spec->info);
474    channels = GST_AUDIO_INFO_CHANNELS (&spec->info);
475  
476 -  if (width != 16 && width != 8)
477 +  if (width != 32 && width != 24 && width != 16 && width != 8)
478      goto dodgy_width;
479  
480    tmp = ilog2 (spec->segsize);
481
482
483 [FILE:2373:freebsd/patch-sys_oss_gstosshelper.c]
484 --- sys/oss/gstosshelper.c.orig 2020-09-07 23:05:16 UTC
485 +++ sys/oss/gstosshelper.c
486 @@ -82,9 +82,9 @@ GstCaps *
487  gst_oss_helper_probe_caps (gint fd)
488  {
489  #if G_BYTE_ORDER == G_LITTLE_ENDIAN
490 -  const guint probe_formats[] = { AFMT_S16_LE, AFMT_U16_LE, AFMT_U8, AFMT_S8 };
491 +  const guint probe_formats[] = { AFMT_U32_LE, AFMT_S32_LE, AFMT_U24_LE, AFMT_S24_LE, AFMT_S16_LE, AFMT_U16_LE, AFMT_U8, AFMT_S8 };
492  #else
493 -  const guint probe_formats[] = { AFMT_S16_BE, AFMT_U16_BE, AFMT_U8, AFMT_S8 };
494 +  const guint probe_formats[] = { AFMT_U32_BE, AFMT_S32_BE, AFMT_U24_BE, AFMT_S24_BE, AFMT_S16_BE, AFMT_U16_BE, AFMT_U8, AFMT_S8 };
495  #endif
496    GstOssProbe *probe;
497    int i, f;
498 @@ -165,6 +165,9 @@ gst_oss_helper_get_format_structure (uns
499    const gchar *format;
500  
501    switch (format_bit) {
502 +    case AFMT_S8:
503 +      format = "S8";
504 +      break;
505      case AFMT_U8:
506        format = "U8";
507        break;
508 @@ -174,15 +177,36 @@ gst_oss_helper_get_format_structure (uns
509      case AFMT_S16_BE:
510        format = "S16BE";
511        break;
512 -    case AFMT_S8:
513 -      format = "S8";
514 -      break;
515      case AFMT_U16_LE:
516        format = "U16LE";
517        break;
518      case AFMT_U16_BE:
519        format = "U16BE";
520        break;
521 +    case AFMT_S24_LE:
522 +      format = "S24LE";
523 +      break;
524 +    case AFMT_S24_BE:
525 +      format = "S24BE";
526 +      break;
527 +    case AFMT_U24_LE:
528 +      format = "U24LE";
529 +      break;
530 +    case AFMT_U24_BE:
531 +      format = "U24BE";
532 +      break;
533 +    case AFMT_S32_LE:
534 +      format = "S32LE";
535 +      break;
536 +    case AFMT_S32_BE:
537 +      format = "S32BE";
538 +      break;
539 +    case AFMT_U32_LE:
540 +      format = "U32LE";
541 +      break;
542 +    case AFMT_U32_BE:
543 +      format = "U32BE";
544 +      break;
545      default:
546        g_assert_not_reached ();
547        return NULL;
548 @@ -320,13 +344,17 @@ gst_oss_helper_rate_check_rate (GstOssPr
549    int format;
550    int n_channels;
551    int ret;
552 +  int rst;
553  
554    rate = irate;
555    format = probe->format;
556    n_channels = probe->n_channels;
557 +  rst = 4000; /* XXX Lowest supported rate for FreeBSD. */
558  
559    GST_LOG ("checking format %d, channels %d, rate %d",
560        format, n_channels, rate);
561 +  /* Reset rate to lowest supported rate. */
562 +  ioctl (probe->fd, SNDCTL_DSP_SPEED, &rst);
563    ret = ioctl (probe->fd, SNDCTL_DSP_SETFMT, &format);
564    if (ret < 0 || format != probe->format) {
565      GST_DEBUG ("unsupported format: %d (%d)", probe->format, format);
566
567
568 [FILE:2339:freebsd/patch-sys_oss_gstosssink.c]
569 --- sys/oss/gstosssink.c.orig   2020-09-07 23:05:16 UTC
570 +++ sys/oss/gstosssink.c
571 @@ -106,7 +106,10 @@ enum
572    PROP_DEVICE,
573  };
574  
575 -#define FORMATS "{" GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)", S8, U8 }"
576 +#define FORMATS "{" GST_AUDIO_NE(S32)","GST_AUDIO_NE(U32)"," \
577 +                    GST_AUDIO_NE(S24)","GST_AUDIO_NE(U24)"," \
578 +                    GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)"," \
579 +                    "S8, U8 }"
580  
581  static GstStaticPadTemplate osssink_sink_factory =
582      GST_STATIC_PAD_TEMPLATE ("sink",
583 @@ -321,6 +324,9 @@ gst_oss_sink_get_format (GstAudioRingBuf
584      case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW:
585      {
586        switch (rfmt) {
587 +        case GST_AUDIO_FORMAT_S8:
588 +          result = AFMT_S8;
589 +          break;
590          case GST_AUDIO_FORMAT_U8:
591            result = AFMT_U8;
592            break;
593 @@ -330,15 +336,36 @@ gst_oss_sink_get_format (GstAudioRingBuf
594          case GST_AUDIO_FORMAT_S16BE:
595            result = AFMT_S16_BE;
596            break;
597 -        case GST_AUDIO_FORMAT_S8:
598 -          result = AFMT_S8;
599 -          break;
600          case GST_AUDIO_FORMAT_U16LE:
601            result = AFMT_U16_LE;
602            break;
603          case GST_AUDIO_FORMAT_U16BE:
604            result = AFMT_U16_BE;
605            break;
606 +        case GST_AUDIO_FORMAT_S24LE:
607 +          result = AFMT_S24_LE;
608 +          break;
609 +        case GST_AUDIO_FORMAT_S24BE:
610 +          result = AFMT_S24_BE;
611 +          break;
612 +        case GST_AUDIO_FORMAT_U24LE:
613 +          result = AFMT_U24_LE;
614 +          break;
615 +        case GST_AUDIO_FORMAT_U24BE:
616 +          result = AFMT_U24_BE;
617 +          break;
618 +        case GST_AUDIO_FORMAT_S32LE:
619 +          result = AFMT_S32_LE;
620 +          break;
621 +        case GST_AUDIO_FORMAT_S32BE:
622 +          result = AFMT_S32_BE;
623 +          break;
624 +        case GST_AUDIO_FORMAT_U32LE:
625 +          result = AFMT_U32_LE;
626 +          break;
627 +        case GST_AUDIO_FORMAT_U32BE:
628 +          result = AFMT_U32_BE;
629 +          break;
630          default:
631            result = 0;
632            break;
633 @@ -441,7 +468,7 @@ gst_oss_sink_prepare (GstAudioSink * asi
634    rate = GST_AUDIO_INFO_RATE (&spec->info);
635    channels = GST_AUDIO_INFO_CHANNELS (&spec->info);
636  
637 -  if (width != 16 && width != 8)
638 +  if (width != 32 && width != 24 && width != 16 && width != 8)
639      goto dodgy_width;
640  
641    SET_PARAM (oss, SNDCTL_DSP_SETFMT, tmp, "SETFMT");
642
643
644 [FILE:2448:freebsd/patch-sys_oss_gstosssrc.c]
645 --- sys/oss/gstosssrc.c.orig    2020-09-07 23:05:16 UTC
646 +++ sys/oss/gstosssrc.c
647 @@ -100,7 +100,10 @@ static guint gst_oss_src_read (GstAudioS
648  static guint gst_oss_src_delay (GstAudioSrc * asrc);
649  static void gst_oss_src_reset (GstAudioSrc * asrc);
650  
651 -#define FORMATS "{" GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)", S8, U8 }"
652 +#define FORMATS "{" GST_AUDIO_NE(S32)","GST_AUDIO_NE(U32)"," \
653 +                    GST_AUDIO_NE(S24)","GST_AUDIO_NE(U24)"," \
654 +                    GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)"," \
655 +                    "S8, U8 }"
656  
657  static GstStaticPadTemplate osssrc_src_factory = GST_STATIC_PAD_TEMPLATE ("src",
658      GST_PAD_SRC,
659 @@ -313,6 +316,9 @@ gst_oss_src_get_format (GstAudioRingBuff
660      case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW:
661      {
662        switch (rfmt) {
663 +        case GST_AUDIO_FORMAT_S8:
664 +          result = AFMT_S8;
665 +          break;
666          case GST_AUDIO_FORMAT_U8:
667            result = AFMT_U8;
668            break;
669 @@ -322,15 +328,36 @@ gst_oss_src_get_format (GstAudioRingBuff
670          case GST_AUDIO_FORMAT_S16BE:
671            result = AFMT_S16_BE;
672            break;
673 -        case GST_AUDIO_FORMAT_S8:
674 -          result = AFMT_S8;
675 -          break;
676          case GST_AUDIO_FORMAT_U16LE:
677            result = AFMT_U16_LE;
678            break;
679          case GST_AUDIO_FORMAT_U16BE:
680            result = AFMT_U16_BE;
681            break;
682 +        case GST_AUDIO_FORMAT_S24LE:
683 +          result = AFMT_S24_LE;
684 +          break;
685 +        case GST_AUDIO_FORMAT_S24BE:
686 +          result = AFMT_S24_BE;
687 +          break;
688 +        case GST_AUDIO_FORMAT_U24LE:
689 +          result = AFMT_U24_LE;
690 +          break;
691 +        case GST_AUDIO_FORMAT_U24BE:
692 +          result = AFMT_U24_BE;
693 +          break;
694 +        case GST_AUDIO_FORMAT_S32LE:
695 +          result = AFMT_S32_LE;
696 +          break;
697 +        case GST_AUDIO_FORMAT_S32BE:
698 +          result = AFMT_S32_BE;
699 +          break;
700 +        case GST_AUDIO_FORMAT_U32LE:
701 +          result = AFMT_U32_LE;
702 +          break;
703 +        case GST_AUDIO_FORMAT_U32BE:
704 +          result = AFMT_U32_BE;
705 +          break;
706          default:
707            result = 0;
708            break;
709 @@ -427,7 +454,7 @@ gst_oss_src_prepare (GstAudioSrc * asrc,
710    rate = GST_AUDIO_INFO_RATE (&spec->info);
711    channels = GST_AUDIO_INFO_CHANNELS (&spec->info);
712  
713 -  if (width != 16 && width != 8)
714 +  if (width != 32 && width != 24 && width != 16 && width != 8)
715      goto dodgy_width;
716  
717    tmp = ilog2 (spec->segsize);
718