mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
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
4 changed files with 53 additions and 5 deletions
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>
|
||||
|
||||
* gst/real/gstrealvideodec.c: (gst_real_video_dec_chain),
|
||||
|
|
|
@ -1038,6 +1038,16 @@
|
|||
<DEFAULT>NULL</DEFAULT>
|
||||
</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>
|
||||
<NAME>GstFaac::bitrate</NAME>
|
||||
<TYPE>gint</TYPE>
|
||||
|
|
|
@ -27,10 +27,13 @@
|
|||
#include <string.h>
|
||||
#include "gstmms.h"
|
||||
|
||||
#define DEFAULT_CONNECTION_SPEED 0
|
||||
|
||||
enum
|
||||
{
|
||||
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",
|
||||
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->stop = GST_DEBUG_FUNCPTR (gst_mms_stop);
|
||||
|
||||
|
@ -136,6 +145,7 @@ gst_mms_init (GstMMS * mmssrc, GstMMSClass * g_class)
|
|||
mmssrc->uri_name = NULL;
|
||||
mmssrc->connection = NULL;
|
||||
mmssrc->connection_h = NULL;
|
||||
mmssrc->connection_speed = DEFAULT_CONNECTION_SPEED;
|
||||
GST_BASE_SRC (mmssrc)->blocksize = 2048;
|
||||
}
|
||||
|
||||
|
@ -279,20 +289,30 @@ static gboolean
|
|||
gst_mms_start (GstBaseSrc * bsrc)
|
||||
{
|
||||
GstMMS *mms;
|
||||
guint bandwidth_avail;
|
||||
|
||||
mms = GST_MMS (bsrc);
|
||||
|
||||
if (!mms->uri_name || *mms->uri_name == '\0')
|
||||
goto no_uri;
|
||||
|
||||
if (mms->connection_speed)
|
||||
bandwidth_avail = mms->connection_speed;
|
||||
else
|
||||
bandwidth_avail = G_MAXINT;
|
||||
|
||||
/* FIXME: pass some sane arguments here */
|
||||
GST_DEBUG_OBJECT (mms, "Trying mms_connect (%s)", mms->uri_name);
|
||||
mms->connection = mms_connect (NULL, NULL, mms->uri_name, 128 * 1024);
|
||||
GST_DEBUG_OBJECT (mms,
|
||||
"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)
|
||||
goto success;
|
||||
|
||||
GST_DEBUG_OBJECT (mms, "Trying mmsh_connect (%s)", mms->uri_name);
|
||||
mms->connection_h = mmsh_connect (NULL, NULL, mms->uri_name, 128 * 1024);
|
||||
GST_DEBUG_OBJECT (mms,
|
||||
"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)
|
||||
goto no_connect;
|
||||
|
||||
|
@ -353,6 +373,9 @@ gst_mms_set_property (GObject * object, guint prop_id,
|
|||
}
|
||||
mmssrc->uri_name = g_value_dup_string (value);
|
||||
break;
|
||||
case ARG_CONNECTION_SPEED:
|
||||
mmssrc->connection_speed = g_value_get_uint (value) * 1000;
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
|
@ -374,6 +397,9 @@ gst_mms_get_property (GObject * object, guint prop_id,
|
|||
if (mmssrc->uri_name)
|
||||
g_value_set_string (value, mmssrc->uri_name);
|
||||
break;
|
||||
case ARG_CONNECTION_SPEED:
|
||||
g_value_set_uint (value, mmssrc->connection_speed / 1000);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
|
|
|
@ -32,6 +32,8 @@ struct _GstMMS
|
|||
GstPushSrc parent;
|
||||
|
||||
gchar *uri_name;
|
||||
guint connection_speed;
|
||||
|
||||
mms_t *connection;
|
||||
mmsh_t *connection_h;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue