After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 752883 - vtdec: error on returning from iOS background
vtdec: error on returning from iOS background
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
unspecified
Other Mac OS
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-07-26 13:05 UTC by Ilya Konstantinov
Modified: 2018-11-03 13:39 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Ilya Konstantinov 2015-07-26 13:05:16 UTC
Upon returning from iOS background during a running "vtdec" pipeline, we get:

  GST_VIDEO_DECODER_ERROR (vtdec, 1, STREAM, DECODE, (NULL),
      ("VTDecompressionSessionDecodeFrame returned %d", (int) status), ret);

where status == kVTInvalidSessionErr == -12903.

This produces a pipeline error and causes the source to stop. This is highly undesirable everywhere, and in particular in an RTC app where stopping the source task causes data loss.

There's a similar Chromium bug. We can see what they did.
https://code.google.com/p/chromium/issues/detail?id=477895
Comment 2 Nicolas Dufresne (ndufresne) 2015-07-26 22:17:53 UTC
I didn't look in detail, but indeed it seems something we need to do. I believe this is the same for the EAGL issues, would be nice to mention this on the other bug too.
Comment 3 Nick Kallen 2017-02-25 18:23:32 UTC
I'll fix this and the same issue as it arises in VTenc.

The solution I've chosen is to mark the session as needing to be recreated when the vtenc/vtdec goes from PLAYING -> PAUSED. And then when it next goes from PAUSED -> PLAYING recreate the session.

The user is then responsible for calling element_set_state(paused) and element_set_state(playing) in the app delegate.
Comment 4 Jan Schmidt 2018-02-23 08:53:35 UTC
(In reply to Nick Kallen from comment #3)
> I'll fix this and the same issue as it arises in VTenc.
> 
> The solution I've chosen is to mark the session as needing to be recreated
> when the vtenc/vtdec goes from PLAYING -> PAUSED. And then when it next goes
> from PAUSED -> PLAYING recreate the session.
> 
> The user is then responsible for calling element_set_state(paused) and
> element_set_state(playing) in the app delegate.

Did you ever come up with a patch for that?
Comment 5 GStreamer system administrator 2018-11-03 13:39:06 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/288.