mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 10:11:08 +00:00
msdkenc: break out of flush frames loop on error
In general, we should assume any unhandled error is non-recoverable. In the flush frames loop, some error states can cause us to never increment the task and therefore we get stuck in an infinite loop and generate GST_ELEMENT_ERROR over and over again. This eventually consumes all system memory and triggers OOM. Thus, assume the worst and break out of the loop upon the first "unhandled" error. https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/859
This commit is contained in:
parent
8249763f6c
commit
e91a53f693
1 changed files with 1 additions and 0 deletions
|
@ -830,6 +830,7 @@ gst_msdkenc_flush_frames (GstMsdkEnc * thiz, gboolean discard)
|
|||
if (status != MFX_ERR_NONE && status != MFX_ERR_MORE_DATA) {
|
||||
GST_ELEMENT_ERROR (thiz, STREAM, ENCODE, ("Encode frame failed."),
|
||||
("MSDK encode error (%s)", msdk_status_to_string (status)));
|
||||
break;
|
||||
}
|
||||
|
||||
if (task->sync_point) {
|
||||
|
|
Loading…
Reference in a new issue