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 750669 - vtenc: always enqueue frames, even on error
vtenc: always enqueue frames, even on error
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Mac OS
: Normal normal
: 1.5.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-06-09 21:03 UTC by Ilya Konstantinov
Modified: 2015-06-10 20:23 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
vtenc: always enqueue frames, even on error (3.23 KB, patch)
2015-06-09 21:07 UTC, Ilya Konstantinov
none Details | Review
vtenc: always enqueue frames, even on error (4.33 KB, patch)
2015-06-10 17:13 UTC, Ilya Konstantinov
committed Details | Review

Description Ilya Konstantinov 2015-06-09 21:03:38 UTC
Even when we fail to encode frame, we should still enqueue it so it could be passed into handle_frame (with output_buffer == NULL). Otherwise, we risk GstVideoEncoder's queue of frames growing unbounded.
Comment 1 Ilya Konstantinov 2015-06-09 21:07:24 UTC
Created attachment 304895 [details] [review]
vtenc: always enqueue frames, even on error

Note: We're slightly changing the renegotiation code to accommodate for frames without output buffers, but this commit takes no ownership over the way negotiation is being done.
Comment 2 Sebastian Dröge (slomo) 2015-06-10 08:31:37 UTC
Comment on attachment 304895 [details] [review]
vtenc: always enqueue frames, even on error

Does not apply against latest GIT master, not even with patch --merge :)
Comment 3 Ilya Konstantinov 2015-06-10 17:13:19 UTC
Created attachment 305000 [details] [review]
vtenc: always enqueue frames, even on error

Sorry for that. Actually it's a good thing, cause it brought to my attention that I forgot a dependent commit (which is squashed into this now).

Basically, we need to get 'frame' (using sourceFrameRefCon) even if we have error status, since we need to submit the unencoded frame for completion.

Admittedly now that bug 750671 has landed, there aren't many resources remaining to free...