View Issue Details

IDProjectCategoryView StatusLast Update
0002173NoesisGUIC# SDKpublic2021-12-16 12:29
ReporterDavidYawCSpeed Assigned Tohcpizzi  
PrioritynormalSeveritymajor 
Status resolvedResolutionfixed 
Product Version3.1.1 
Target Version3.1.3Fixed in Version3.1.2 
Summary0002173: MediaPlayer: Unable to detect corrupt/invalid files
Description

When a corrupt file is loaded, the MediaFailed event is not fired. MediaOpened is fired instead.

I think that after setting the Source of a MediaElement, it should be a hard requirement that either MediaOpened or MediaFailed events be fired (this might already be the case). Also, detecting files that cannot be handled should be enhanced, and MediaOpened should only be raised if successfully read and it contains valid data.

Steps To Reproduce

I did my testing with a zero-byte file. ("touch empty.mp4".) When I attempt to play it back, here's the result I get. Note that this is a mix of the Noesis logger, my logger (I'm logging all the events that MediaElement raises), and raw console output from 'mp'. Also note that MediaOpened event is raised, but MediaFailed is not.

2021-10-27 17:00:21.2142|TRACE|VideoPlaybackViewModel|MediaElementInitialized()
2021-10-27 17:00:21.2557|TRACE|VideoPlaybackViewModel|Initialize(empty.mp4) <--- This method sets MediaElement.Source
2021-10-27 17:00:21.2845|TRACE|VideoPlaybackViewModel|MediaElementHasLoaded() <--- This method calls my Play() method.
2021-10-27 17:00:21.2893|TRACE|VideoPlaybackViewModel|Play() <-- This method calls MediaElement.Play.
2021-10-27 17:00:21.3167|INFO|Noesis|'media/Internal/empty.mp4' loaded
(mp:10719): GLib-GObject-CRITICAL : 17:00:21.419: g_object_set: assertion 'G_IS_OBJECT (object)' failed
(mp:10719): GLib-GObject-WARNING
: 17:00:21.421: invalid (NULL) pointer instance
(mp:10719): GLib-GObject-CRITICAL : 17:00:21.421: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(mp:10719): GLib-GObject-WARNING
: 17:00:21.421: invalid (NULL) pointer instance
(mp:10719): GLib-GObject-CRITICAL : 17:00:21.421: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(mp:10719): GStreamer-CRITICAL
: 17:00:21.421: gst_object_unref: assertion 'object != NULL' failed
(mp:10719): GStreamer-CRITICAL : 17:00:21.421: gst_pad_get_current_caps: assertion 'GST_IS_PAD (pad)' failed
(mp:10719): GStreamer-CRITICAL
: 17:00:21.421: gst_object_unref: assertion 'object != NULL' failed
2021-10-27 17:00:21.4732|TRACE|VideoPlaybackViewModel|MediaElement_MediaOpened()
ERROR Stream contains no data.
ERROR debug information: ../../../git/plugins/elements/gsttypefindelement.c(1132): gst_type_find_element_loop (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind:
Can't typefind empty stream

PlatformLinux

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2021-10-29 04:04 DavidYawCSpeed New Issue
2021-10-29 10:31 sfernandez Assigned To => hcpizzi
2021-10-29 10:31 sfernandez Status new => assigned
2021-10-29 10:31 sfernandez Target Version => 3.1.3
2021-12-16 12:29 hcpizzi Status assigned => resolved
2021-12-16 12:29 hcpizzi Resolution open => fixed
2021-12-16 12:29 hcpizzi Fixed in Version => 3.1.2