discoverer: Fixup DiscovererResult handling

This was a leftover from the changes from a flag to an enum
This commit is contained in:
Edward Hervey 2010-09-22 12:35:59 +02:00
parent 3912e59488
commit 6ecbdab1fe
2 changed files with 54 additions and 27 deletions

View File

@ -942,6 +942,7 @@ handle_message (GstDiscoverer * dc, GstMessage * msg)
/* We need to stop */ /* We need to stop */
done = TRUE; done = TRUE;
GST_DEBUG ("Setting result to ERROR");
dc->priv->current_info->result = GST_DISCOVERER_ERROR; dc->priv->current_info->result = GST_DISCOVERER_ERROR;
} }
break; break;
@ -965,6 +966,7 @@ handle_message (GstDiscoverer * dc, GstMessage * msg)
GST_DEBUG_OBJECT (GST_MESSAGE_SRC (msg), GST_DEBUG_OBJECT (GST_MESSAGE_SRC (msg),
"structure %" GST_PTR_FORMAT, msg->structure); "structure %" GST_PTR_FORMAT, msg->structure);
if (sttype == _MISSING_PLUGIN_QUARK) { if (sttype == _MISSING_PLUGIN_QUARK) {
GST_DEBUG ("Setting result to MISSING_PLUGINS");
dc->priv->current_info->result = GST_DISCOVERER_MISSING_PLUGINS; dc->priv->current_info->result = GST_DISCOVERER_MISSING_PLUGINS;
dc->priv->current_info->misc = gst_structure_copy (msg->structure); dc->priv->current_info->misc = gst_structure_copy (msg->structure);
} else if (sttype == _STREAM_TOPOLOGY_QUARK) { } else if (sttype == _STREAM_TOPOLOGY_QUARK) {
@ -1018,7 +1020,7 @@ handle_current_sync (GstDiscoverer * dc)
/* return result */ /* return result */
if (!done) { if (!done) {
GST_DEBUG ("we timed out!"); GST_DEBUG ("we timed out! Setting result to TIMEOUT");
dc->priv->current_info->result = GST_DISCOVERER_TIMEOUT; dc->priv->current_info->result = GST_DISCOVERER_TIMEOUT;
} }
@ -1117,6 +1119,7 @@ static gboolean
async_timeout_cb (GstDiscoverer * dc) async_timeout_cb (GstDiscoverer * dc)
{ {
dc->priv->timeoutid = 0; dc->priv->timeoutid = 0;
GST_DEBUG ("Setting result to TIMEOUT");
dc->priv->current_info->result = GST_DISCOVERER_TIMEOUT; dc->priv->current_info->result = GST_DISCOVERER_TIMEOUT;
dc->priv->processing = FALSE; dc->priv->processing = FALSE;
discoverer_collect (dc); discoverer_collect (dc);
@ -1140,14 +1143,14 @@ start_discovering (GstDiscoverer * dc)
DISCO_LOCK (dc); DISCO_LOCK (dc);
if (dc->priv->pending_uris == NULL) { if (dc->priv->pending_uris == NULL) {
GST_WARNING ("No URI to process"); GST_WARNING ("No URI to process");
res |= GST_DISCOVERER_URI_INVALID; res = GST_DISCOVERER_URI_INVALID;
DISCO_UNLOCK (dc); DISCO_UNLOCK (dc);
goto beach; goto beach;
} }
if (dc->priv->current_info != NULL) { if (dc->priv->current_info != NULL) {
GST_WARNING ("Already processing a file"); GST_WARNING ("Already processing a file");
res |= GST_DISCOVERER_BUSY; res = GST_DISCOVERER_BUSY;
DISCO_UNLOCK (dc); DISCO_UNLOCK (dc);
goto beach; goto beach;
} }
@ -1347,7 +1350,11 @@ gst_discoverer_discover_uri (GstDiscoverer * discoverer, const gchar * uri,
*err = g_error_copy (discoverer->priv->current_error); *err = g_error_copy (discoverer->priv->current_error);
else else
*err = NULL; *err = NULL;
if (res != GST_DISCOVERER_OK) {
GST_DEBUG ("Setting result to %d (was %d)", res,
discoverer->priv->current_info->result);
discoverer->priv->current_info->result = res; discoverer->priv->current_info->result = res;
}
info = discoverer->priv->current_info; info = discoverer->priv->current_info;
discoverer_cleanup (discoverer); discoverer_cleanup (discoverer);

View File

@ -245,35 +245,55 @@ static void
print_info (GstDiscovererInfo * info, GError * err) print_info (GstDiscovererInfo * info, GError * err)
{ {
GstDiscovererResult result = gst_discoverer_info_get_result (info); GstDiscovererResult result = gst_discoverer_info_get_result (info);
GstDiscovererStreamInfo *sinfo;
g_print ("Done discovering %s\n", gst_discoverer_info_get_uri (info)); g_print ("Done discovering %s\n", gst_discoverer_info_get_uri (info));
if (result & GST_DISCOVERER_URI_INVALID) switch (result) {
g_print ("URI is not valid\n"); case GST_DISCOVERER_OK:
else if (result & GST_DISCOVERER_TIMEOUT) {
g_print ("Timeout !\n"); sinfo = gst_discoverer_info_get_stream_info (info);
if (result & GST_DISCOVERER_ERROR) {
g_print ("An error was encountered while discovering the file\n");
g_print (" %s\n", err->message);
if (verbose && (result & GST_DISCOVERER_MISSING_PLUGINS)) {
gchar *tmp =
gst_structure_to_string (gst_discoverer_info_get_misc (info));
g_print (" (%s)\n", tmp);
g_free (tmp);
}
return;
}
if (!(result & (GST_DISCOVERER_ERROR | GST_DISCOVERER_TIMEOUT))) {
GstDiscovererStreamInfo *sinfo = gst_discoverer_info_get_stream_info (info);
g_print ("\nTopology:\n"); g_print ("\nTopology:\n");
print_topology (sinfo, 1); print_topology (sinfo, 1);
g_print ("\nDuration:\n"); g_print ("\nDuration:\n");
print_duration (info, 1); print_duration (info, 1);
gst_discoverer_stream_info_unref (sinfo); gst_discoverer_stream_info_unref (sinfo);
break;
}
case GST_DISCOVERER_URI_INVALID:
{
g_print ("URI is not valid\n");
break;
}
case GST_DISCOVERER_ERROR:
{
g_print ("An error was encountered while discovering the file\n");
g_print (" %s\n", err->message);
break;
}
case GST_DISCOVERER_TIMEOUT:
{
g_print ("Analyzing URI timed out\n");
break;
}
case GST_DISCOVERER_BUSY:
{
g_print ("Discoverer was busy\n");
break;
}
case GST_DISCOVERER_MISSING_PLUGINS:
{
g_print ("Missing plugins\n");
if (verbose) {
gchar *tmp =
gst_structure_to_string (gst_discoverer_info_get_misc (info));
g_print (" (%s)\n", tmp);
g_free (tmp);
}
break;
}
} }
g_print ("\n");
g_print ("\n");
} }
static void static void