summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl-Anton Ingmarsson <ca.ingmarsson@gmail.com>2010-09-02 01:04:15 +0200
committerCarl-Anton Ingmarsson <ca.ingmarsson@gmail.com>2010-09-05 13:52:40 +0200
commit5c03466309fa61bba70b1d37c1b7315b193e5ce9 (patch)
treef9556e5232c5e17a68d9e1e9bc1ab65ef53ff59c
parentf2fb66d3769b05f454d3c36684c3045b078ade21 (diff)
vdpau: remove non working unused code from GstBaseVideoDecoder
-rw-r--r--sys/vdpau/basevideodecoder/gstbasevideodecoder.c203
-rw-r--r--sys/vdpau/basevideodecoder/gstbasevideodecoder.h2
2 files changed, 21 insertions, 184 deletions
diff --git a/sys/vdpau/basevideodecoder/gstbasevideodecoder.c b/sys/vdpau/basevideodecoder/gstbasevideodecoder.c
index bb621b40d..a22d8bfc6 100644
--- a/sys/vdpau/basevideodecoder/gstbasevideodecoder.c
+++ b/sys/vdpau/basevideodecoder/gstbasevideodecoder.c
@@ -267,7 +267,7 @@ gst_base_video_decoder_sink_event (GstPad * pad, GstEvent * event)
{
GstBaseVideoDecoder *base_video_decoder;
GstBaseVideoDecoderClass *base_video_decoder_class;
- gboolean ret = FALSE;
+ gboolean res = FALSE;
base_video_decoder = GST_BASE_VIDEO_DECODER (gst_pad_get_parent (pad));
base_video_decoder_class =
@@ -275,15 +275,14 @@ gst_base_video_decoder_sink_event (GstPad * pad, GstEvent * event)
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_EOS:
- {
if (!base_video_decoder->packetized)
gst_base_video_decoder_drain (base_video_decoder, TRUE);
- ret =
+ res =
gst_pad_push_event (GST_BASE_VIDEO_DECODER_SRC_PAD
(base_video_decoder), event);
- }
break;
+
case GST_EVENT_NEWSEGMENT:
{
gboolean update;
@@ -319,149 +318,34 @@ gst_base_video_decoder_sink_event (GstPad * pad, GstEvent * event)
GST_TIME_ARGS (segment->start),
GST_TIME_ARGS (segment->stop), GST_TIME_ARGS (segment->time), update);
- ret =
+ res =
gst_pad_push_event (GST_BASE_VIDEO_DECODER_SRC_PAD
(base_video_decoder), event);
- }
break;
+ }
case GST_EVENT_FLUSH_STOP:
gst_base_video_decoder_flush (base_video_decoder);
gst_segment_init (&base_video_decoder->segment, GST_FORMAT_TIME);
- ret =
+ res =
gst_pad_push_event (GST_BASE_VIDEO_DECODER_SRC_PAD
(base_video_decoder), event);
break;
default:
- /* FIXME this changes the order of events */
- ret =
- gst_pad_push_event (GST_BASE_VIDEO_DECODER_SRC_PAD
- (base_video_decoder), event);
+ res = gst_pad_event_default (pad, event);
break;
}
done:
gst_object_unref (base_video_decoder);
- return ret;
+ return res;
newseg_wrong_format:
- {
- GST_DEBUG_OBJECT (base_video_decoder, "received non TIME newsegment");
- gst_event_unref (event);
- goto done;
- }
-}
-
-#if 0
-static gboolean
-gst_base_video_decoder_sink_convert (GstPad * pad,
- GstFormat src_format, gint64 src_value,
- GstFormat * dest_format, gint64 * dest_value)
-{
- gboolean res = TRUE;
- GstBaseVideoDecoder *enc;
-
- if (src_format == *dest_format) {
- *dest_value = src_value;
- return TRUE;
- }
-
- enc = GST_BASE_VIDEO_DECODER (gst_pad_get_parent (pad));
-
- /* FIXME: check if we are in a decoding state */
-
- switch (src_format) {
- case GST_FORMAT_BYTES:
- switch (*dest_format) {
-#if 0
- case GST_FORMAT_DEFAULT:
- *dest_value = gst_util_uint64_scale_int (src_value, 1,
- enc->bytes_per_picture);
- break;
-#endif
- case GST_FORMAT_TIME:
- /* seems like a rather silly conversion, implement me if you like */
- default:
- res = FALSE;
- }
- break;
- case GST_FORMAT_DEFAULT:
- switch (*dest_format) {
- case GST_FORMAT_TIME:
- *dest_value = gst_util_uint64_scale (src_value,
- GST_SECOND * enc->fps_d, enc->fps_n);
- break;
-#if 0
- case GST_FORMAT_BYTES:
- *dest_value = gst_util_uint64_scale_int (src_value,
- enc->bytes_per_picture, 1);
- break;
-#endif
- default:
- res = FALSE;
- }
- break;
- default:
- res = FALSE;
- break;
- }
-}
-#endif
-
-static gboolean
-gst_base_video_decoder_src_convert (GstPad * pad,
- GstFormat src_format, gint64 src_value,
- GstFormat * dest_format, gint64 * dest_value)
-{
- gboolean res = TRUE;
- GstBaseVideoDecoder *enc;
-
- if (src_format == *dest_format) {
- *dest_value = src_value;
- return TRUE;
- }
-
- enc = GST_BASE_VIDEO_DECODER (gst_pad_get_parent (pad));
-
- /* FIXME: check if we are in a encoding state */
-
- GST_DEBUG ("src convert");
- switch (src_format) {
-#if 0
- case GST_FORMAT_DEFAULT:
- switch (*dest_format) {
- case GST_FORMAT_TIME:
- *dest_value = gst_util_uint64_scale (granulepos_to_frame (src_value),
- enc->fps_d * GST_SECOND, enc->fps_n);
- break;
- default:
- res = FALSE;
- }
- break;
- case GST_FORMAT_TIME:
- switch (*dest_format) {
- case GST_FORMAT_DEFAULT:
- {
- *dest_value = gst_util_uint64_scale (src_value,
- enc->fps_n, enc->fps_d * GST_SECOND);
- break;
- }
- default:
- res = FALSE;
- break;
- }
- break;
-#endif
- default:
- res = FALSE;
- break;
- }
-
- gst_object_unref (enc);
-
- return res;
+ GST_DEBUG_OBJECT (base_video_decoder, "received non TIME newsegment");
+ gst_event_unref (event);
+ goto done;
}
static gboolean
@@ -474,42 +358,14 @@ gst_base_video_decoder_src_event (GstPad * pad, GstEvent * event)
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_SEEK:
- {
- GstFormat format, tformat;
- gdouble rate;
- GstEvent *real_seek;
- GstSeekFlags flags;
- GstSeekType cur_type, stop_type;
- gint64 cur, stop;
- gint64 tcur, tstop;
-
- GST_DEBUG ("seek event");
-
- gst_event_parse_seek (event, &rate, &format, &flags, &cur_type,
- &cur, &stop_type, &stop);
- gst_event_unref (event);
-
- tformat = GST_FORMAT_TIME;
- res =
- gst_base_video_decoder_src_convert (pad, format, cur, &tformat,
- &tcur);
- if (!res)
- goto convert_error;
- res =
- gst_base_video_decoder_src_convert (pad, format, stop, &tformat,
- &tstop);
- if (!res)
- goto convert_error;
-
- real_seek = gst_event_new_seek (rate, GST_FORMAT_TIME,
- flags, cur_type, tcur, stop_type, tstop);
+ /* FIXME: do seek using bitrate incase upstream doesn't handle it */
res =
gst_pad_push_event (GST_BASE_VIDEO_DECODER_SINK_PAD
- (base_video_decoder), real_seek);
+ (base_video_decoder), event);
break;
- }
+
case GST_EVENT_QOS:
{
gdouble proportion;
@@ -548,19 +404,16 @@ gst_base_video_decoder_src_event (GstPad * pad, GstEvent * event)
(base_video_decoder), event);
break;
}
+
default:
res =
gst_pad_push_event (GST_BASE_VIDEO_DECODER_SINK_PAD
(base_video_decoder), event);
break;
}
-done:
+
gst_object_unref (base_video_decoder);
return res;
-
-convert_error:
- GST_DEBUG_OBJECT (base_video_decoder, "could not convert format");
- goto done;
}
static const GstQueryType *
@@ -569,7 +422,6 @@ gst_base_video_decoder_get_query_types (GstPad * pad)
static const GstQueryType query_types[] = {
GST_QUERY_POSITION,
GST_QUERY_DURATION,
- GST_QUERY_CONVERT,
0
};
@@ -604,33 +456,18 @@ gst_base_video_decoder_src_query (GstPad * pad, GstQuery * query)
gst_query_set_position (query, format, time);
res = TRUE;
-
break;
}
+
case GST_QUERY_DURATION:
- {
- res = gst_pad_peer_query (dec->sinkpad, query);
+ /* FIXME: approximate using bitrate if upstream doesn't answear */
+ res = gst_pad_query (dec->sinkpad, query);
break;
- }
- case GST_QUERY_CONVERT:
- {
- GstFormat src_fmt, dest_fmt;
- gint64 src_val, dest_val;
-
- GST_DEBUG ("convert query");
- gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
- res =
- gst_base_video_decoder_src_convert (pad, src_fmt, src_val, &dest_fmt,
- &dest_val);
- if (!res)
- goto error;
- gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
- break;
- }
default:
res = gst_pad_query_default (pad, query);
}
+
gst_object_unref (dec);
return res;
diff --git a/sys/vdpau/basevideodecoder/gstbasevideodecoder.h b/sys/vdpau/basevideodecoder/gstbasevideodecoder.h
index feb7d2872..85fe7675c 100644
--- a/sys/vdpau/basevideodecoder/gstbasevideodecoder.h
+++ b/sys/vdpau/basevideodecoder/gstbasevideodecoder.h
@@ -102,8 +102,8 @@ struct _GstBaseVideoDecoder
GList *timestamps;
guint64 field_index;
- GstClockTime last_timestamp;
GstClockTime timestamp_offset;
+ GstClockTime last_timestamp;
gdouble proportion;
GstClockTime earliest_time;