Plain text file causes CRITICAL error in playbin on macos.
On macos with gstreamer 1.18.0:
$ printf '%s' 'This is probably not a valid wav file.' > error.wav
$ G_DEBUG=fatal-criticals gst-launch-1.0 --gst-debug='*:3,GST_EVENT:4' playbin uri=file://$PWD/error.wav
Setting pipeline to PAUSED ...
0:00:09.494153000 1919 0x7f8dce025180 WARN basesrc gstbasesrc.c:3688:gst_base_src_start_complete:<source> pad not activated yet
0:00:09.494432000 1919 0x7f8dce025180 INFO GST_EVENT gstevent.c:1610:gst_event_new_reconfigure: creating reconfigure event
0:00:09.494540000 1919 0x7f8dce025180 INFO GST_EVENT gstevent.c:1610:gst_event_new_reconfigure: creating reconfigure event
0:00:09.494568000 1919 0x7f8dce025180 INFO GST_EVENT gstpad.c:5891:gst_pad_send_event_unchecked:<source:src> Received event on flushing pad. Discarding
0:00:09.494649000 1919 0x7f8dce025180 WARN basesrc gstbasesrc.c:3688:gst_base_src_start_complete:<source> pad not activated yet
Pipeline is PREROLLING ...
0:00:09.506749000 1919 0x7f8dcd033180 WARN structure gststructure.c:330:gst_structure_validate_name: Invalid character '*' at offset 5 in structure name: text/*
(gst-launch-1.0:1919): GStreamer-CRITICAL **: 01:44:13.679: gst_structure_new_valist: assertion 'gst_structure_validate_name (name)' failed
That didn't seem to happen with previous versions of gstreamer, and it doesn't happen on linux. It looks like the file is detected as text/plain
on linux, but text/*
on macos. I wasn't sure whether to file this as a bug against gstreamer
for the gst_structure_validate_name
function, or against gst-plugins-base
(or somewhere else?) for the result from typefind. Feel free to move this bug if I got it wrong.
P.S. I know trying to play a text file is a bit strange, but I use it to test how my application handles errors from gstreamer.