[Bug 765615] New: Setting avdec_h264's (which is in a uridecodebin) parameter max-threads sometime been ignored
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Tue Apr 26 14:36:07 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=765615
Bug ID: 765615
Summary: Setting avdec_h264's (which is in a uridecodebin)
parameter max-threads sometime been ignored
Classification: Platform
Product: GStreamer
Version: 1.6.2
OS: Linux
Status: NEW
Severity: major
Priority: Normal
Component: gst-plugins-base
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: alexbolotsin at gmail.com
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Hello.
I'm using urideocdebin and trying to set max-threads variable on avdec_h264.
But sometimes after a bunch of restarts it spawns threads ignoring max-threads
value. Especially it happens when a server has serious load - around 80%.
What should I do about it?
My pipeline looks like that:
uridecodebin name=uridecodebin0
souphttpsrc name=source
typefind name=typefindelement0
decodebin name=decodebin0
typefind name=typefind
hlsdemux name=hlsdemux0
multiqueue name=multiqueue0
tsdemux name=tsdemux0
multiqueue name=multiqueue1
h264parse name=h264parse0
capsfilter name=capsfilter0
aacparse name=aacparse0
avdec_h264 name=avdec_h264-0
avdec_aac name=avdec_aac0
here uridecodebin ends
videoconvert name=videoconvert0
x264enc name=x264enc0
audioconvert name=audioconvert0
faac name=faac0
flvmux name=flvmux0
rtmpsink name=rtmpsink0
I'm setting max-threads in bus-watch-callback like this:
static bool avdec_settings = false;
if (!avdec_settings && args_has_argument(job->args,
"avdec_h264.max-threads")) {
GstElement* element = (GstElement*)GST_MESSAGE_SRC(message);
if (element && GST_IS_ELEMENT(element)) {
std::string factoryType =
gst_plugin_feature_get_name(GST_PLUGIN_FEATURE
(gst_element_get_factory(element)));
if (factoryType == "avdec_h264") {
avdec_settings = true;
GstObject* avdec = GST_MESSAGE_SRC(message);
int threads = args_to_int(args_get_value(job->args,
"avdec_h264.max-threads"));
g_object_set(avdec, "max-threads", threads, NULL);
}
}
}
So what it does - waits for a avdec_h264 to appear in pipeline and sets it with
value from arguments.
I have gst 1.6.2 running under ubuntu 14.04.3 lts.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list