[Xfce4-commits] [apps/xfburn] 01/03: Clean up old identification code that is now not used anymore
noreply at xfce.org
noreply at xfce.org
Mon Jul 20 01:47:36 CEST 2015
This is an automated email from the git hooks/post-receive script.
squisher pushed a commit to branch master
in repository apps/xfburn.
commit fa3527ae76093625f1c0ecab5ff04fad17193099
Author: David Mohr <david at mcbf.net>
Date: Sun Jul 19 16:54:06 2015 -0600
Clean up old identification code that is now not used anymore
---
xfburn/xfburn-transcoder-gst.c | 124 +---------------------------------------
1 file changed, 3 insertions(+), 121 deletions(-)
diff --git a/xfburn/xfburn-transcoder-gst.c b/xfburn/xfburn-transcoder-gst.c
index e2ad51b..b7c4d98 100644
--- a/xfburn/xfburn-transcoder-gst.c
+++ b/xfburn/xfburn-transcoder-gst.c
@@ -85,9 +85,6 @@ static void finish (XfburnTranscoder *trans);
static gboolean is_initialized (XfburnTranscoder *trans, GError **error);
-static gboolean signal_identification_done (XfburnTranscoderGst *trans, const char *dbg_res);
-static gboolean query_and_signal_duration (XfburnTranscoderGst *trans);
-
/* gstreamer support functions */
static gboolean bus_call (GstBus *bus, GstMessage *msg, gpointer data);
static void on_pad_added (GstElement *element, GstPad *pad, gpointer data);
@@ -104,7 +101,6 @@ enum {
typedef enum {
XFBURN_TRANSCODER_GST_STATE_IDLE,
- XFBURN_TRANSCODER_GST_STATE_IDENTIFYING,
XFBURN_TRANSCODER_GST_STATE_TRANSCODE_START,
XFBURN_TRANSCODER_GST_STATE_TRANSCODING,
} XfburnTranscoderGstState;
@@ -117,7 +113,6 @@ typedef struct {
GCond gst_cond;
GMutex gst_mutex;
gboolean gst_done;
- gboolean is_audio;
gint64 duration;
GstDiscoverer *discoverer;
@@ -394,82 +389,6 @@ state_to_str (GstState st)
}
#endif
-/*
- * this function expects the result to be in priv->is_audio,
- * dbg_res is only for debugging output
- */
-static gboolean
-signal_identification_done (XfburnTranscoderGst *trans, const char *dbg_res)
-{
- XfburnTranscoderGstPrivate *priv= XFBURN_TRANSCODER_GST_GET_PRIVATE (trans);
-
- int i;
-
-#if DEBUG_GST > 0
- DBG ("Trying to lock mutex (%s)", dbg_res);
-#endif
-
- priv->gst_done = TRUE;
-
- /* There is no g_mutex_lock_timed, so emulate it with a loop.
- * I have never seen this getting hung here, but one never knows! */
- for (i=0; i<SIGNAL_SEND_ITERATIONS; i++) {
- if (g_mutex_trylock (&priv->gst_mutex))
- break;
- g_usleep (SIGNAL_SEND_TIMEOUT_MICROS / SIGNAL_SEND_ITERATIONS);
- g_thread_yield ();
- if (i==9) {
- g_warning ("Noone was there to listen to the result of the identification!");
- /* FIXME: recreate pipeline here? This state is not the fault of gst */
- if (gst_element_set_state (priv->pipeline, GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE) {
- DBG ("Oops, could not reset pipeline to null");
- }
- return FALSE;
- }
- }
-
- g_cond_signal (&priv->gst_cond);
- g_mutex_unlock (&priv->gst_mutex);
-
-#if DEBUG_GST > 0
- #if DEBUG > 0
- DBG ("Releasing mutex (%s)", dbg_res);
- #else
- g_message ("Signaled identification done: %s", dbg_res);
- #endif
-#endif
-
- return TRUE;
-}
-
-
-static gboolean
-query_and_signal_duration (XfburnTranscoderGst *trans)
-{
- XfburnTranscoderGstPrivate *priv= XFBURN_TRANSCODER_GST_GET_PRIVATE (trans);
- GstFormat fmt;
- //guint secs;
-
- fmt = GST_FORMAT_TIME;
- if (!gst_element_query_duration (priv->pipeline, fmt, &priv->duration)) {
- return FALSE;
- }
-
- //secs = priv->duration / 1000000000;
- if (gst_element_set_state (priv->pipeline, GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE) {
- DBG ("Failed to set state!");
- recreate_pipeline (trans);
- }
-
- priv->is_audio = TRUE;
- priv->state = XFBURN_TRANSCODER_GST_STATE_IDLE;
-
- signal_identification_done (trans, "is audio");
-
- return TRUE;
-}
-
-
static gboolean
bus_call (GstBus *bus, GstMessage *msg, gpointer data)
{
@@ -525,16 +444,6 @@ bus_call (GstBus *bus, GstMessage *msg, gpointer data)
recreate_pipeline (trans);
break;
- case XFBURN_TRANSCODER_GST_STATE_IDENTIFYING:
- recreate_pipeline (trans);
-
- g_message ("gstreamer abort: %s\n", error->message);
- priv->is_audio = FALSE;
- priv->error = error;
-
- signal_identification_done (trans, "error");
- break;
-
case XFBURN_TRANSCODER_GST_STATE_TRANSCODE_START:
case XFBURN_TRANSCODER_GST_STATE_TRANSCODING:
g_error ("Gstreamer error while transcoding: %s", error->message);
@@ -549,7 +458,7 @@ bus_call (GstBus *bus, GstMessage *msg, gpointer data)
DBG ("Failed to reset GST state.");
recreate_pipeline (trans);
}
- signal_identification_done (trans, "not audio content");
+ DBG("GST recognized an application, ignoring.");
break;
}
@@ -572,18 +481,6 @@ bus_call (GstBus *bus, GstMessage *msg, gpointer data)
case XFBURN_TRANSCODER_GST_STATE_TRANSCODING:
break;
- case XFBURN_TRANSCODER_GST_STATE_IDENTIFYING:
- if (state != GST_STATE_PAUSED)
- break;
- if (!query_and_signal_duration (trans)) {
- /* this is expected to fail a couple of times,
- * so no output unless we're in debug mode */
-#if DEBUG_GST > 1
- DBG ("could not query stream duration (expected failure)");
-#endif
- }
- break;
-
case XFBURN_TRANSCODER_GST_STATE_TRANSCODE_START:
if (state != GST_STATE_PLAYING)
break;
@@ -617,25 +514,16 @@ bus_call (GstBus *bus, GstMessage *msg, gpointer data)
case XFBURN_TRANSCODER_GST_STATE_TRANSCODE_START:
break;
- case XFBURN_TRANSCODER_GST_STATE_IDENTIFYING:
- if (!query_and_signal_duration (trans)) {
- /* this is expected to work, because we got the duration message on the bus */
-#if DEBUG_GST > 0
- g_warning ("Could not query stream length!");
-#endif
- return TRUE;
- }
- break;
} /* switch of priv->state */
break;
}
case GST_MESSAGE_ELEMENT: {
+ /* TODO: is this code still reachable now that identification uses the discoverer API? */
if (gst_is_missing_plugin_message (msg)) {
recreate_pipeline (trans);
- priv->is_audio = FALSE;
g_set_error (&(priv->error), XFBURN_ERROR, XFBURN_ERROR_MISSING_PLUGIN,
_("%s is missing.\n"
"\n"
@@ -643,8 +531,6 @@ bus_call (GstBus *bus, GstMessage *msg, gpointer data)
"Probably you need to look at the gst-plugins-* packages\n"
"for the necessary plugins.\n"),
gst_missing_plugin_message_get_description (msg));
-
- signal_identification_done (trans, "missing-plugin");
}
}
default:
@@ -695,7 +581,6 @@ on_pad_added (GstElement *element, GstPad *pad, gpointer data)
gst_caps_unref (caps);
gst_object_unref (audiopad);
- priv->is_audio = FALSE;
g_set_error (&(priv->error), XFBURN_ERROR, XFBURN_ERROR_GST_NO_AUDIO,
"%s",
_(error_msg));
@@ -777,13 +662,10 @@ get_audio_track (XfburnTranscoder *trans, XfburnAudioTrack *atrack, GError **err
GstDiscovererResult result;
gchar *uri;
- priv->is_audio = FALSE;
#if DEBUG_GST > 0
DBG ("Querying GST about %s", atrack->inputfile);
#endif
- priv->state = XFBURN_TRANSCODER_GST_STATE_IDENTIFYING;
-
uri = g_strdup_printf("file://%s", atrack->inputfile);
info = gst_discoverer_discover_uri(priv->discoverer, uri, error);
g_free(uri);
@@ -798,7 +680,7 @@ get_audio_track (XfburnTranscoder *trans, XfburnAudioTrack *atrack, GError **err
/* TODO: improve error messages */
//recreate_pipeline (tgst);
g_set_error (error, XFBURN_ERROR, XFBURN_ERROR_GST_DISCOVERER,
- _("Could not identify '%s'with gstreamer"), atrack->inputfile);
+ _("An error occurred while identifying '%s' with gstreamer"), atrack->inputfile);
return FALSE;
}
priv->gst_done = FALSE;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list