Skip to content

Commit

Permalink
dvbmediasink: pass all events to basesink
Browse files Browse the repository at this point in the history
There is no reason to not to pass all events to basesink.
Only exception is when handling EOS event, where we
should pass EOS event only when decoder signals us that
it's buffer is empty

(cherry picked from commit 1bb0d44)
Signed-off-by: Erik Slagter <erik@openpli.org>
  • Loading branch information
mx3L authored and eriksl committed Jan 28, 2016
1 parent 0853f31 commit edd3823
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 8 deletions.
6 changes: 2 additions & 4 deletions gstdvbaudiosink.c
Expand Up @@ -820,7 +820,6 @@ static gboolean gst_dvbaudiosink_event(GstBaseSink *sink, GstEvent *event)
self->flushing = TRUE;
/* wakeup the poll */
write(self->unlockfd[1], "\x01", 1);
if(self->paused) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event);
break;
case GST_EVENT_FLUSH_STOP:
if (self->fd >= 0) ioctl(self->fd, AUDIO_CLEAR_BUFFER);
Expand All @@ -838,7 +837,6 @@ static gboolean gst_dvbaudiosink_event(GstBaseSink *sink, GstEvent *event)
self->cache = NULL;
}
GST_OBJECT_UNLOCK(self);
if(self->paused) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event);
break;
case GST_EVENT_EOS:
{
Expand Down Expand Up @@ -888,7 +886,6 @@ static gboolean gst_dvbaudiosink_event(GstBaseSink *sink, GstEvent *event)
#else
GST_BASE_SINK_PREROLL_LOCK(sink);
#endif
if (ret) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event);
break;
}
#if GST_VERSION_MAJOR < 1
Expand Down Expand Up @@ -944,9 +941,10 @@ static gboolean gst_dvbaudiosink_event(GstBaseSink *sink, GstEvent *event)
break;
}
default:
ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event);
break;
}
if (ret) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event);
else gst_event_unref(event);

return ret;
}
Expand Down
6 changes: 2 additions & 4 deletions gstdvbvideosink.c
Expand Up @@ -452,7 +452,6 @@ static gboolean gst_dvbvideosink_event(GstBaseSink *sink, GstEvent *event)
self->flushing = TRUE;
/* wakeup the poll */
write(self->unlockfd[1], "\x01", 1);
if(self->paused) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event);
break;
case GST_EVENT_FLUSH_STOP:
if (self->fd >= 0) ioctl(self->fd, VIDEO_CLEAR_BUFFER);
Expand All @@ -464,7 +463,6 @@ static gboolean gst_dvbvideosink_event(GstBaseSink *sink, GstEvent *event)
}
self->flushing = FALSE;
GST_OBJECT_UNLOCK(self);
if(self->paused) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event);
break;
case GST_EVENT_EOS:
{
Expand Down Expand Up @@ -514,7 +512,6 @@ static gboolean gst_dvbvideosink_event(GstBaseSink *sink, GstEvent *event)
#else
GST_BASE_SINK_PREROLL_LOCK(sink);
#endif
if (ret) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event);
break;
}
#if GST_VERSION_MAJOR < 1
Expand Down Expand Up @@ -563,9 +560,10 @@ static gboolean gst_dvbvideosink_event(GstBaseSink *sink, GstEvent *event)
break;
}
default:
ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event);
break;
}
if (ret) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event);
else gst_event_unref(event);

return ret;
}
Expand Down

0 comments on commit edd3823

Please sign in to comment.