From a331228eccfb8c66493fa3c8c49338c79cf4642c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 15 Apr 2010 21:26:45 +0200 Subject: [PATCH] mpegpsdemux: Workaround new gcc 4.5 compiler warning gcc 4.5 warns when comparing some integer with an enum value, in the case of GstFlowReturn this is valid though. We should later add GST_FLOW_CUSTOM_OK1, GST_FLOW_CUSTOM_OK2, etc. after new core is released. --- gst/mpegdemux/gstmpegdemux.c | 54 ++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/gst/mpegdemux/gstmpegdemux.c b/gst/mpegdemux/gstmpegdemux.c index d62fbd00f7..2c118e4beb 100644 --- a/gst/mpegdemux/gstmpegdemux.c +++ b/gst/mpegdemux/gstmpegdemux.c @@ -2839,17 +2839,20 @@ gst_flups_demux_chain (GstPad * pad, GstBuffer * buffer) } switch (ret) { - case GST_FLOW_NEED_MORE_DATA: - /* Go and get more data */ - ret = GST_FLOW_OK; - goto done; - case GST_FLOW_LOST_SYNC: - /* for FLOW_OK or lost-sync, carry onto resync */ - ret = GST_FLOW_OK; - break; case GST_FLOW_OK: break; default: + /* FIXME: gcc 4.5 warns if comparing some integer with + * an enum value! */ + if ((gint) ret == GST_FLOW_NEED_MORE_DATA) { + /* Go and get more data */ + ret = GST_FLOW_OK; + goto done; + } else if ((gint) ret == GST_FLOW_LOST_SYNC) { + /* for FLOW_OK or lost-sync, carry onto resync */ + ret = GST_FLOW_OK; + break; + } /* Any other return value should be sent upstream immediately */ goto done; } @@ -2895,23 +2898,26 @@ gst_flups_demux_chain (GstPad * pad, GstBuffer * buffer) save = FALSE; switch (ret) { - case GST_FLOW_NEED_MORE_DATA: - GST_DEBUG_OBJECT (demux, "need more data"); - ret = GST_FLOW_OK; - goto done; - case GST_FLOW_LOST_SYNC: - if (!save || demux->sink_segment.rate >= 0.0) { - GST_DEBUG_OBJECT (demux, "flushing 3 bytes"); - gst_adapter_flush (demux->adapter, 3); - ADAPTER_OFFSET_FLUSH (3); - } else { - GST_DEBUG_OBJECT (demux, "saving 3 bytes"); - gst_adapter_push (demux->rev_adapter, - gst_adapter_take_buffer (demux->adapter, 3)); - } - ret = GST_FLOW_OK; - break; default: + /* FIXME: gcc 4.5 warns if comparing some integer with + * an enum value! */ + if ((gint) ret == GST_FLOW_NEED_MORE_DATA) { + GST_DEBUG_OBJECT (demux, "need more data"); + ret = GST_FLOW_OK; + goto done; + } else if ((gint) ret == GST_FLOW_LOST_SYNC) { + if (!save || demux->sink_segment.rate >= 0.0) { + GST_DEBUG_OBJECT (demux, "flushing 3 bytes"); + gst_adapter_flush (demux->adapter, 3); + ADAPTER_OFFSET_FLUSH (3); + } else { + GST_DEBUG_OBJECT (demux, "saving 3 bytes"); + gst_adapter_push (demux->rev_adapter, + gst_adapter_take_buffer (demux->adapter, 3)); + } + ret = GST_FLOW_OK; + break; + } break; } }