Add connection speed property to libmms. Fixes #464678.
Original commit message from CVS: Patch by: Josep Torre Valles <josep@fluendo.com> * docs/plugins/gst-plugins-bad-plugins.args: * ext/libmms/gstmms.c: (gst_mms_class_init), (gst_mms_init), (gst_mms_start), (gst_mms_set_property), (gst_mms_get_property): * ext/libmms/gstmms.h: Add connection speed property to libmms. Fixes #464678.
This commit is contained in:
parent
966bbca4bc
commit
47b3e2452d
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
|||||||
|
2007-08-08 Wim Taymans <wim.taymans@gmail.com>
|
||||||
|
|
||||||
|
Patch by: Josep Torre Valles <josep@fluendo.com>
|
||||||
|
|
||||||
|
* docs/plugins/gst-plugins-bad-plugins.args:
|
||||||
|
* ext/libmms/gstmms.c: (gst_mms_class_init), (gst_mms_init),
|
||||||
|
(gst_mms_start), (gst_mms_set_property), (gst_mms_get_property):
|
||||||
|
* ext/libmms/gstmms.h:
|
||||||
|
Add connection speed property to libmms. Fixes #464678.
|
||||||
|
|
||||||
2007-08-07 Wim Taymans <wim.taymans@gmail.com>
|
2007-08-07 Wim Taymans <wim.taymans@gmail.com>
|
||||||
|
|
||||||
* gst/real/gstrealvideodec.c: (gst_real_video_dec_chain),
|
* gst/real/gstrealvideodec.c: (gst_real_video_dec_chain),
|
||||||
|
@ -1038,6 +1038,16 @@
|
|||||||
<DEFAULT>NULL</DEFAULT>
|
<DEFAULT>NULL</DEFAULT>
|
||||||
</ARG>
|
</ARG>
|
||||||
|
|
||||||
|
<ARG>
|
||||||
|
<NAME>GstMMS::connection-speed</NAME>
|
||||||
|
<TYPE>guint</TYPE>
|
||||||
|
<RANGE></RANGE>
|
||||||
|
<FLAGS>rw</FLAGS>
|
||||||
|
<NICK>Connection Speed</NICK>
|
||||||
|
<BLURB>Network connection speed in kbps (0 = unknown).</BLURB>
|
||||||
|
<DEFAULT>0</DEFAULT>
|
||||||
|
</ARG>
|
||||||
|
|
||||||
<ARG>
|
<ARG>
|
||||||
<NAME>GstFaac::bitrate</NAME>
|
<NAME>GstFaac::bitrate</NAME>
|
||||||
<TYPE>gint</TYPE>
|
<TYPE>gint</TYPE>
|
||||||
|
@ -27,10 +27,13 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "gstmms.h"
|
#include "gstmms.h"
|
||||||
|
|
||||||
|
#define DEFAULT_CONNECTION_SPEED 0
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
ARG_0,
|
ARG_0,
|
||||||
ARG_LOCATION
|
ARG_LOCATION,
|
||||||
|
ARG_CONNECTION_SPEED
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -113,6 +116,12 @@ gst_mms_class_init (GstMMSClass * klass)
|
|||||||
"Host URL to connect to. Accepted are mms://, mmsu://, mmst:// URL types",
|
"Host URL to connect to. Accepted are mms://, mmsu://, mmst:// URL types",
|
||||||
NULL, G_PARAM_READWRITE));
|
NULL, G_PARAM_READWRITE));
|
||||||
|
|
||||||
|
g_object_class_install_property (gobject_class, ARG_CONNECTION_SPEED,
|
||||||
|
g_param_spec_uint ("connection-speed", "Connection Speed",
|
||||||
|
"Network connection speed in kbps (0 = unknown)",
|
||||||
|
0, G_MAXINT / 1000, DEFAULT_CONNECTION_SPEED, G_PARAM_READWRITE));
|
||||||
|
/* Note: connection-speed is intentionaly limited to G_MAXINT as libmms use int for it */
|
||||||
|
|
||||||
gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_mms_start);
|
gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_mms_start);
|
||||||
gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_mms_stop);
|
gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_mms_stop);
|
||||||
|
|
||||||
@ -136,6 +145,7 @@ gst_mms_init (GstMMS * mmssrc, GstMMSClass * g_class)
|
|||||||
mmssrc->uri_name = NULL;
|
mmssrc->uri_name = NULL;
|
||||||
mmssrc->connection = NULL;
|
mmssrc->connection = NULL;
|
||||||
mmssrc->connection_h = NULL;
|
mmssrc->connection_h = NULL;
|
||||||
|
mmssrc->connection_speed = DEFAULT_CONNECTION_SPEED;
|
||||||
GST_BASE_SRC (mmssrc)->blocksize = 2048;
|
GST_BASE_SRC (mmssrc)->blocksize = 2048;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -279,20 +289,30 @@ static gboolean
|
|||||||
gst_mms_start (GstBaseSrc * bsrc)
|
gst_mms_start (GstBaseSrc * bsrc)
|
||||||
{
|
{
|
||||||
GstMMS *mms;
|
GstMMS *mms;
|
||||||
|
guint bandwidth_avail;
|
||||||
|
|
||||||
mms = GST_MMS (bsrc);
|
mms = GST_MMS (bsrc);
|
||||||
|
|
||||||
if (!mms->uri_name || *mms->uri_name == '\0')
|
if (!mms->uri_name || *mms->uri_name == '\0')
|
||||||
goto no_uri;
|
goto no_uri;
|
||||||
|
|
||||||
|
if (mms->connection_speed)
|
||||||
|
bandwidth_avail = mms->connection_speed;
|
||||||
|
else
|
||||||
|
bandwidth_avail = G_MAXINT;
|
||||||
|
|
||||||
/* FIXME: pass some sane arguments here */
|
/* FIXME: pass some sane arguments here */
|
||||||
GST_DEBUG_OBJECT (mms, "Trying mms_connect (%s)", mms->uri_name);
|
GST_DEBUG_OBJECT (mms,
|
||||||
mms->connection = mms_connect (NULL, NULL, mms->uri_name, 128 * 1024);
|
"Trying mms_connect (%s) with bandwidth constraint of %d bps",
|
||||||
|
mms->uri_name, bandwidth_avail);
|
||||||
|
mms->connection = mms_connect (NULL, NULL, mms->uri_name, bandwidth_avail);
|
||||||
if (mms->connection)
|
if (mms->connection)
|
||||||
goto success;
|
goto success;
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (mms, "Trying mmsh_connect (%s)", mms->uri_name);
|
GST_DEBUG_OBJECT (mms,
|
||||||
mms->connection_h = mmsh_connect (NULL, NULL, mms->uri_name, 128 * 1024);
|
"Trying mmsh_connect (%s) with bandwidth constraint of %d bps",
|
||||||
|
mms->uri_name, bandwidth_avail);
|
||||||
|
mms->connection_h = mmsh_connect (NULL, NULL, mms->uri_name, bandwidth_avail);
|
||||||
if (!mms->connection_h)
|
if (!mms->connection_h)
|
||||||
goto no_connect;
|
goto no_connect;
|
||||||
|
|
||||||
@ -353,6 +373,9 @@ gst_mms_set_property (GObject * object, guint prop_id,
|
|||||||
}
|
}
|
||||||
mmssrc->uri_name = g_value_dup_string (value);
|
mmssrc->uri_name = g_value_dup_string (value);
|
||||||
break;
|
break;
|
||||||
|
case ARG_CONNECTION_SPEED:
|
||||||
|
mmssrc->connection_speed = g_value_get_uint (value) * 1000;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
@ -374,6 +397,9 @@ gst_mms_get_property (GObject * object, guint prop_id,
|
|||||||
if (mmssrc->uri_name)
|
if (mmssrc->uri_name)
|
||||||
g_value_set_string (value, mmssrc->uri_name);
|
g_value_set_string (value, mmssrc->uri_name);
|
||||||
break;
|
break;
|
||||||
|
case ARG_CONNECTION_SPEED:
|
||||||
|
g_value_set_uint (value, mmssrc->connection_speed / 1000);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
|
@ -32,6 +32,8 @@ struct _GstMMS
|
|||||||
GstPushSrc parent;
|
GstPushSrc parent;
|
||||||
|
|
||||||
gchar *uri_name;
|
gchar *uri_name;
|
||||||
|
guint connection_speed;
|
||||||
|
|
||||||
mms_t *connection;
|
mms_t *connection;
|
||||||
mmsh_t *connection_h;
|
mmsh_t *connection_h;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user