From: Thomas Vander Stichele Date: Wed, 26 Jul 2006 10:59:35 +0000 (+0000) Subject: gst/tcp/gstmultifdsink.c: debug a little more understandably do not use goto as a... X-Git-Tag: 1.19.3~511^2~11717 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3ed1d62d9a8328e1f226c08feeb963441da41eeb;p=platform%2Fupstream%2Fgstreamer.git gst/tcp/gstmultifdsink.c: debug a little more understandably do not use goto as a substitute for break, especially if... Original commit message from CVS: * gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_add_full), (gst_multi_fd_sink_new_client): debug a little more understandably do not use goto as a substitute for break, especially if break is also being used --- diff --git a/ChangeLog b/ChangeLog index 2ffa79ad72..788da86e34 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-07-26 Thomas Vander Stichele + + * gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_add_full), + (gst_multi_fd_sink_new_client): + debug a little more understandably + do not use goto as a substitute for break, especially if + break is also being used + 2006-07-26 Tim-Philipp Müller * gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_property): diff --git a/gst/tcp/gstmultifdsink.c b/gst/tcp/gstmultifdsink.c index 950d44b258..11cb0f2034 100644 --- a/gst/tcp/gstmultifdsink.c +++ b/gst/tcp/gstmultifdsink.c @@ -638,7 +638,7 @@ gst_multi_fd_sink_finalize (GObject * object) G_OBJECT_CLASS (parent_class)->finalize (object); } -/* "add-full" signal implemntation */ +/* "add-full" signal implementation */ void gst_multi_fd_sink_add_full (GstMultiFdSink * sink, int fd, GstSyncMethod sync_method, GstUnitType min_unit, guint64 min_value, @@ -650,7 +650,10 @@ gst_multi_fd_sink_add_full (GstMultiFdSink * sink, int fd, gint flags, res; struct stat statbuf; - GST_DEBUG_OBJECT (sink, "[fd %5d] adding client", fd); + GST_DEBUG_OBJECT (sink, "[fd %5d] adding client, sync_method %d, " + "min_unit %d, min_value %" G_GUINT64_FORMAT + ", max_unit %d, max_value %" G_GUINT64_FORMAT, fd, sync_method, + min_unit, min_value, max_unit, max_value); /* do limits check if we can */ if (min_unit == max_unit) { @@ -1401,7 +1404,7 @@ assign_value (GstUnitType unit, guint64 value, gint * bytes, gint * buffers, /* count the index in the buffer queue to satisfy the given unit * and value pair starting from buffer at index 0. * - * Returns: TRUE if there was enuough data in the queue to satisfy the + * Returns: TRUE if there was enough data in the queue to satisfy the * burst values. @idx contains the index in the buffer that contains enough * data to satisfy the limits or the last buffer in the queue when the * function returns FALSE. @@ -1434,11 +1437,14 @@ gst_multi_fd_sink_new_client (GstMultiFdSink * sink, GstTCPClient * client) { gint result; + GST_DEBUG_OBJECT (sink, + "[fd %5d] new client, deciding where to start in queue", client->fd.fd); switch (client->sync_method) { case GST_SYNC_METHOD_LATEST: /* no syncing, we are happy with whatever the client is going to get */ - GST_LOG_OBJECT (sink, "no client sync needed"); result = client->bufpos; + GST_DEBUG_OBJECT (sink, + "[fd %5d] SYNC_METHOD_LATEST, position %d", client->fd.fd, result); break; case GST_SYNC_METHOD_NEXT_KEYFRAME: { @@ -1455,7 +1461,7 @@ gst_multi_fd_sink_new_client (GstMultiFdSink * sink, GstTCPClient * client) if (is_sync_frame (sink, buf)) { GST_LOG_OBJECT (sink, "[fd %5d] new client, found sync", client->fd.fd); result = 0; - goto done; + break; } /* client is not on a syncbuffer, need to skip this buffer and * wait some more */ @@ -1467,19 +1473,25 @@ gst_multi_fd_sink_new_client (GstMultiFdSink * sink, GstTCPClient * client) } case GST_SYNC_METHOD_LATEST_KEYFRAME: { - GST_LOG_OBJECT (sink, "[fd %5d] new client, bufpos %d, bursting keyframe", - client->fd.fd, client->bufpos); + GST_DEBUG_OBJECT (sink, + "[fd %5d] SYNC_METHOD_LATEST_KEYFRAME", client->fd.fd); - /* for new clients we initially scan the complete buffer queue for + /* for new clients we initially scan the complete buffer queue for * a sync point when a buffer is added. If we don't find a keyframe, * we need to wait for the next keyframe and so we change the client's * sync method to GST_SYNC_METHOD_NEXT_KEYFRAME. */ result = find_next_syncframe (sink, 0); - if (result != -1) - goto done; + if (result != -1) { + GST_DEBUG_OBJECT (sink, + "[fd %5d] SYNC_METHOD_LATEST_KEYFRAME: result %d", client->fd.fd, + result); + break; + } - GST_LOG_OBJECT (sink, "no keyframe found"); + GST_DEBUG_OBJECT (sink, + "[fd %5d] SYNC_METHOD_LATEST_KEYFRAME: no keyframe found, " + "switching to SYNC_METHOD_NEXT_KEYFRAME", client->fd.fd); /* throw client to the waiting state */ client->bufpos = -1; /* and make client sync to next keyframe */ @@ -1494,17 +1506,23 @@ gst_multi_fd_sink_new_client (GstMultiFdSink * sink, GstTCPClient * client) /* move to the position where we satisfy the client's burst * parameters. If we could not satisfy the parameters because there * is not enough data, we just send what we have (which is in result). - * We use the max value to limit the search + * We use the max value to limit the search */ ok = count_burst_unit (sink, &result, client->burst_min_unit, client->burst_min_value, &max, client->burst_max_unit, client->burst_max_value); + GST_DEBUG_OBJECT (sink, + "[fd %5d] SYNC_METHOD_BURST: burst_unit returned %d, result %d", + client->fd.fd, ok, result); GST_LOG_OBJECT (sink, "min %d, max %d", result, max); /* we hit the max and it is below the min, use that then */ if (max != -1 && max <= result) { result = MAX (max - 1, 0); + GST_DEBUG_OBJECT (sink, + "[fd %5d] SYNC_METHOD_BURST: result above max, taken down to %d", + client->fd.fd, result); } break; } @@ -1602,7 +1620,6 @@ gst_multi_fd_sink_new_client (GstMultiFdSink * sink, GstTCPClient * client) result = client->bufpos; break; } -done: return result; }