mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 01:00:37 +00:00
omxvideodec: earlier return if downstream_flow_ret is not OK
There is no point to (re)start the src thread if, for example, we are flushing. https://bugzilla.gnome.org/show_bug.cgi?id=785967
This commit is contained in:
parent
352184dd09
commit
7916bd53ab
1 changed files with 5 additions and 5 deletions
|
@ -2394,6 +2394,11 @@ gst_omx_video_dec_handle_frame (GstVideoDecoder * decoder,
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (self, "Handling frame");
|
GST_DEBUG_OBJECT (self, "Handling frame");
|
||||||
|
|
||||||
|
if (self->downstream_flow_ret != GST_FLOW_OK) {
|
||||||
|
gst_video_codec_frame_unref (frame);
|
||||||
|
return self->downstream_flow_ret;
|
||||||
|
}
|
||||||
|
|
||||||
if (!self->started) {
|
if (!self->started) {
|
||||||
if (!GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (frame)) {
|
if (!GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (frame)) {
|
||||||
gst_video_decoder_drop_frame (GST_VIDEO_DECODER (self), frame);
|
gst_video_decoder_drop_frame (GST_VIDEO_DECODER (self), frame);
|
||||||
|
@ -2407,11 +2412,6 @@ gst_omx_video_dec_handle_frame (GstVideoDecoder * decoder,
|
||||||
timestamp = frame->pts;
|
timestamp = frame->pts;
|
||||||
duration = frame->duration;
|
duration = frame->duration;
|
||||||
|
|
||||||
if (self->downstream_flow_ret != GST_FLOW_OK) {
|
|
||||||
gst_video_codec_frame_unref (frame);
|
|
||||||
return self->downstream_flow_ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (klass->prepare_frame) {
|
if (klass->prepare_frame) {
|
||||||
GstFlowReturn ret;
|
GstFlowReturn ret;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue