dec = GST_SPEEX_DEC (gst_pad_get_parent (pad));
+ /* FIXME: why not just pass position/duration queries upstream to demuxer? */
switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_POSITION:{
GstSegment segment;
break;
}
case GST_QUERY_DURATION:{
- GstFormat format = GST_FORMAT_TIME;
+ GstFormat format;
gint64 dur;
/* get duration from demuxer */
- if (!gst_pad_query_peer_duration (dec->sinkpad, &format, &dur))
+ if (!gst_pad_query_peer_duration (dec->sinkpad, GST_FORMAT_TIME, &dur))
break;
gst_query_parse_duration (query, &format, NULL);
static gboolean
gst_speex_enc_convert_src (GstPad * pad, GstFormat src_format, gint64 src_value,
- GstFormat * dest_format, gint64 * dest_value)
+ GstFormat dest_format, gint64 * dest_value)
{
gboolean res = TRUE;
GstSpeexEnc *enc;
switch (src_format) {
case GST_FORMAT_BYTES:
- switch (*dest_format) {
+ switch (dest_format) {
case GST_FORMAT_TIME:
*dest_value = src_value * GST_SECOND / avg;
break;
}
break;
case GST_FORMAT_TIME:
- switch (*dest_format) {
+ switch (dest_format) {
case GST_FORMAT_BYTES:
*dest_value = src_value * avg / GST_SECOND;
break;
switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_POSITION:
{
- GstFormat fmt, req_fmt;
+ GstFormat req_fmt;
gint64 pos, val;
gst_query_parse_position (query, &req_fmt, NULL);
- if ((res = gst_pad_query_peer_position (enc->sinkpad, &req_fmt, &val))) {
+ if ((res = gst_pad_query_peer_position (enc->sinkpad, req_fmt, &val))) {
gst_query_set_position (query, req_fmt, val);
break;
}
- fmt = GST_FORMAT_TIME;
- if (!(res = gst_pad_query_peer_position (enc->sinkpad, &fmt, &pos)))
+ res = gst_pad_query_peer_position (enc->sinkpad, GST_FORMAT_TIME, &pos);
+ if (!res)
break;
if ((res =
- gst_pad_query_peer_convert (enc->sinkpad, fmt, pos, &req_fmt,
- &val)))
+ gst_pad_query_peer_convert (enc->sinkpad, GST_FORMAT_TIME, pos,
+ req_fmt, &val))) {
gst_query_set_position (query, req_fmt, val);
-
+ }
break;
}
case GST_QUERY_DURATION:
{
- GstFormat fmt, req_fmt;
+ GstFormat req_fmt;
gint64 dur, val;
gst_query_parse_duration (query, &req_fmt, NULL);
- if ((res = gst_pad_query_peer_duration (enc->sinkpad, &req_fmt, &val))) {
+ if ((res = gst_pad_query_peer_duration (enc->sinkpad, req_fmt, &val))) {
gst_query_set_duration (query, req_fmt, val);
break;
}
- fmt = GST_FORMAT_TIME;
- if (!(res = gst_pad_query_peer_duration (enc->sinkpad, &fmt, &dur)))
+ res = gst_pad_query_peer_duration (enc->sinkpad, GST_FORMAT_TIME, &dur);
+ if (!res)
break;
if ((res =
- gst_pad_query_peer_convert (enc->sinkpad, fmt, dur, &req_fmt,
- &val))) {
+ gst_pad_query_peer_convert (enc->sinkpad, GST_FORMAT_TIME, dur,
+ req_fmt, &val))) {
gst_query_set_duration (query, req_fmt, val);
}
break;
gint64 src_val, dest_val;
gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
- if (!(res = gst_speex_enc_convert_src (pad, src_fmt, src_val, &dest_fmt,
+ if (!(res = gst_speex_enc_convert_src (pad, src_fmt, src_val, dest_fmt,
&dest_val)))
goto error;
gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);