From: Xavi Artigas Date: Wed, 7 Nov 2012 10:55:45 +0000 (+0100) Subject: Handle media with no position or duration correctly (pictures, for example) X-Git-Tag: 1.19.3~489^2~562^2~75 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=36d03232e1c593e8d590333cbae73e9f8d7394f3;p=platform%2Fupstream%2Fgstreamer.git Handle media with no position or duration correctly (pictures, for example) --- diff --git a/gst-sdk/tutorials/android-tutorial-5/jni/tutorial-5.c b/gst-sdk/tutorials/android-tutorial-5/jni/tutorial-5.c index 2bf1d57..33d4bc0 100755 --- a/gst-sdk/tutorials/android-tutorial-5/jni/tutorial-5.c +++ b/gst-sdk/tutorials/android-tutorial-5/jni/tutorial-5.c @@ -135,14 +135,18 @@ static gboolean refresh_ui (CustomData *data) { /* If we didn't know it yet, query the stream duration */ if (!GST_CLOCK_TIME_IS_VALID (data->duration)) { if (!gst_element_query_duration (data->pipeline, &fmt, &data->duration)) { - GST_WARNING ("Could not query current duration"); + GST_WARNING ("Could not query current duration (normal for still pictures)"); + data->duration = 0; } } - if (gst_element_query_position (data->pipeline, &fmt, &position)) { - /* Java expects these values in milliseconds, and GStreamer provides nanoseconds */ - set_current_ui_position (position / GST_MSECOND, data->duration / GST_MSECOND, data); + if (!gst_element_query_position (data->pipeline, &fmt, &position)) { + GST_WARNING ("Could not query current position (normal for still pictures)"); + position = 0; } + + /* Java expects these values in milliseconds, and GStreamer provides nanoseconds */ + set_current_ui_position (position / GST_MSECOND, data->duration / GST_MSECOND, data); return TRUE; }