Seeking in PAUSED updates the video

This commit is contained in:
Xavi Artigas 2012-09-17 12:53:53 +02:00
parent 206415b27b
commit 425a23ef98

View file

@ -160,12 +160,7 @@ static void state_changed_cb (GstBus *bus, GstMessage *msg, CustomData *data) {
}
}
static void new_buffer (GstElement *sink, CustomData *data) {
GstBuffer *buffer;
/* Retrieve the buffer */
g_signal_emit_by_name (sink, "pull-buffer", &buffer);
if (buffer) {
static void render_buffer (GstBuffer *buffer, CustomData *data) {
if (data->native_window) {
int i;
ANativeWindow_Buffer nbuff;
@ -187,6 +182,26 @@ static void new_buffer (GstElement *sink, CustomData *data) {
ANativeWindow_unlockAndPost (data->native_window);
}
}
}
static void new_buffer (GstElement *sink, CustomData *data) {
GstBuffer *buffer;
/* Retrieve the buffer */
g_signal_emit_by_name (sink, "pull-buffer", &buffer);
if (buffer) {
render_buffer (buffer, data);
gst_buffer_unref (buffer);
}
}
static void new_preroll_buffer (GstElement *sink, CustomData *data) {
GstBuffer *buffer;
/* Retrieve the preroll buffer */
g_signal_emit_by_name (sink, "pull-preroll", &buffer);
if (buffer) {
render_buffer (buffer, data);
gst_buffer_unref (buffer);
}
}
@ -211,6 +226,7 @@ static void *app_function (void *userdata) {
data->vsink = gst_bin_get_by_name (GST_BIN (data->pipeline), "vsink");
g_signal_connect (data->vsink, "new-buffer", G_CALLBACK (new_buffer), data);
g_signal_connect (data->vsink, "new-preroll", G_CALLBACK (new_preroll_buffer), data);
/* Instruct the bus to emit signals for each received message, and connect to the interesting signals */
bus = gst_element_get_bus (data->pipeline);