#if 1
static gboolean
-gst_qtdemux_src_convert (GstPad * pad, GstFormat src_format, gint64 src_value,
- GstFormat dest_format, gint64 * dest_value)
+gst_qtdemux_src_convert (GstQTDemux * qtdemux, GstPad * pad,
+ GstFormat src_format, gint64 src_value, GstFormat dest_format,
+ gint64 * dest_value)
{
gboolean res = TRUE;
QtDemuxStream *stream = gst_pad_get_element_private (pad);
- GstQTDemux *qtdemux = GST_QTDEMUX (gst_pad_get_parent (pad));
gint32 index;
if (stream->subtype != FOURCC_vide) {
switch (dest_format) {
case GST_FORMAT_BYTES:{
index = gst_qtdemux_find_index_linear (qtdemux, stream, src_value);
- if (-1 == index)
- return FALSE;
+ if (-1 == index) {
+ res = FALSE;
+ goto done;
+ }
*dest_value = stream->samples[index].offset;
gst_qtdemux_find_index_for_given_media_offset_linear (qtdemux,
stream, src_value);
- if (-1 == index)
- return FALSE;
+ if (-1 == index) {
+ res = FALSE;
+ goto done;
+ }
*dest_value =
QTSTREAMTIME_TO_GSTTIME (stream,
break;
default:
res = FALSE;
+ break;
}
done:
- gst_object_unref (qtdemux);
-
return res;
}
#endif
gst_query_parse_convert (query, &src_fmt, &src_value, &dest_fmt, NULL);
- res = gst_qtdemux_src_convert (pad,
+ res = gst_qtdemux_src_convert (qtdemux, pad,
src_fmt, src_value, dest_fmt, &dest_value);
if (res) {
gst_query_set_convert (query, src_fmt, src_value, dest_fmt, dest_value);