gst-launch bogus 'no element "udpsrc"' error - udp

The command: gst-launch udpsrc port=5000
returns: ERROR: pipeline could not be constructed: no element "udpsrc".
The command: gst-launch-1.0 udpsrc uri=udp://239.194.0.177:1026 does not, and executes (presumably) correctly.
The first command is from many streaming tutorials, e.g. this one.
The second command was taken from here. it's just to show that udpsrc is present.
They were cut down to just the offending part.
I have everything gstreamer1.0 - related up-to-date (for Ubuntu 16.04.6):
gstreamer1.0-clutter-3.0 is already the newest version (3.0.18-1).
gstreamer1.0-clutter is already the newest version (2.0.18-1).
gstreamer1.0-crystalhd is already the newest version (1:0.0~git20110715.fdd2f19-11build1).
gstreamer1.0-dvswitch is already the newest version (0.1.1-1).
gstreamer1.0-espeak is already the newest version (0.4.0-1).
gstreamer1.0-fluendo-mp3 is already the newest version (0.10.32.debian-1).
gstreamer1.0-nice is already the newest version (0.1.13-0ubuntu2).
gstreamer1.0-pocketsphinx is already the newest version (0.8.0+real5prealpha-1ubuntu2).
gstreamer1.0-alsa is already the newest version (1.8.3-1ubuntu0.3).
gstreamer1.0-doc is already the newest version (1.8.3-1~ubuntu0.1).
gstreamer1.0-plugins-base is already the newest version (1.8.3-1ubuntu0.3).
gstreamer1.0-plugins-base-apps is already the newest version (1.8.3-1ubuntu0.3).
gstreamer1.0-plugins-base-dbg is already the newest version (1.8.3-1ubuntu0.3).
gstreamer1.0-plugins-base-doc is already the newest version (1.8.3-1ubuntu0.3).
gstreamer1.0-plugins-good is already the newest version (1.8.3-1ubuntu0.4).
gstreamer1.0-plugins-good-dbg is already the newest version (1.8.3-1ubuntu0.4).
gstreamer1.0-plugins-good-doc is already the newest version (1.8.3-1ubuntu0.4).
gstreamer1.0-pulseaudio is already the newest version (1.8.3-1ubuntu0.4).
gstreamer1.0-tools is already the newest version (1.8.3-1~ubuntu0.1).
gstreamer1.0-x is already the newest version (1.8.3-1ubuntu0.3).
libgstreamer1.0-0 is already the newest version (1.8.3-1~ubuntu0.1).
libgstreamer1.0-0-dbg is already the newest version (1.8.3-1~ubuntu0.1).
libgstreamer1.0-dev is already the newest version (1.8.3-1~ubuntu0.1).
gstreamer1.0-libav is already the newest version (1.8.3-1ubuntu0.2).
gstreamer1.0-libav-dbg is already the newest version (1.8.3-1ubuntu0.2).
gstreamer1.0-packagekit is already the newest version (0.8.17-4ubuntu6~gcc5.4ubuntu1.4).
gstreamer1.0-plugins-bad is already the newest version (1.8.3-1ubuntu0.2).
gstreamer1.0-plugins-bad-dbg is already the newest version (1.8.3-1ubuntu0.2).
gstreamer1.0-plugins-bad-doc is already the newest version (1.8.3-1ubuntu0.2).
gstreamer1.0-plugins-bad-faad is already the newest version (1.8.3-1ubuntu0.2).
gstreamer1.0-plugins-bad-videoparsers is already the newest version (1.8.3-1ubuntu0.2).
gstreamer1.0-plugins-ugly is already the newest version (1.8.3-1ubuntu0.1).
gstreamer1.0-plugins-ugly-amr is already the newest version (1.8.3-1ubuntu0.1).
gstreamer1.0-plugins-ugly-dbg is already the newest version (1.8.3-1ubuntu0.1).
gstreamer1.0-plugins-ugly-doc is already the newest version (1.8.3-1ubuntu0.1).
gstreamer1.0-vaapi is already the newest version (1.8.3-1~ubuntu0.1).
gstreamer1.0-vaapi-doc is already the newest version (1.8.3-1~ubuntu0.1).
gstreamer1.0-hybris:i386 is already the newest version (1.8.3-1ubuntu0.2).
$ gst-inspect-1.0 udpsrc
Factory Details:
Rank none (0)
Long-name UDP packet receiver
Klass Source/Network
Description Receive data over the network via UDP
Author Wim Taymans <wim#fluendo.com>, Thijs Vermeir <thijs.vermeir#barco.com>
Plugin Details:
Name udp
Description transfer data via UDP
Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstudp.so
Version 1.8.3
License LGPL
Source module gst-plugins-good
Source release date 2016-08-19
Binary package GStreamer Good Plugins (Ubuntu)
Origin URL https://launchpad.net/distros/ubuntu/+source/gst-plugins-good1.0
GObject
+----GInitiallyUnowned
+----GstObject
+----GstElement
+----GstBaseSrc
+----GstPushSrc
+----GstUDPSrc
Implemented Interfaces:
GstURIHandler
Pad Templates:
SRC template: 'src'
Availability: Always
Capabilities:
ANY
Element Flags:
no flags set
Element Implementation:
Has change_state() function: 0x7f38aa386e10
Element has no clocking capabilities.
URI handling capabilities:
Element can act as source.
Supported URI protocols:
udp
Pads:
SRC: 'src'
Pad Template: 'src'
Element Properties:
name : The name of the object
flags: readable, writable
String. Default: "udpsrc0"
parent : The parent of the object
flags: readable, writable
Object of type "GstObject"
blocksize : Size in bytes to read per buffer (-1 = default)
flags: readable, writable
Unsigned Integer. Range: 0 - 4294967295 Default: 4096
num-buffers : Number of buffers to output before sending EOS (-1 = unlimited)
flags: readable, writable
Integer. Range: -1 - 2147483647 Default: -1
typefind : Run typefind before negotiating
flags: readable, writable
Boolean. Default: false
do-timestamp : Apply current stream time to buffers
flags: readable, writable
Boolean. Default: true
port : The port to receive the packets from, 0=allocate
flags: readable, writable
Integer. Range: 0 - 65535 Default: 5004
multicast-group : The Address of multicast group to join. (DEPRECATED: Use address property instead)
flags: readable, writable, deprecated
String. Default: "0.0.0.0"
multicast-iface : The network interface on which to join the multicast group
flags: readable, writable
String. Default: null
uri : URI in the form of udp://multicast_group:port
flags: readable, writable
String. Default: "udp://0.0.0.0:5004"
caps : The caps of the source pad
flags: readable, writable
Caps (NULL)
socket : Socket to use for UDP reception. (NULL == allocate)
flags: readable, writable
Object of type "GSocket"
buffer-size : Size of the kernel receive buffer in bytes, 0=default
flags: readable, writable
Integer. Range: 0 - 2147483647 Default: 0
timeout : Post a message after timeout nanoseconds (0 = disabled)
flags: readable, writable
Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0
skip-first-bytes : number of bytes to skip for each udp packet
flags: readable, writable
Integer. Range: 0 - 2147483647 Default: 0
close-socket : Close socket if passed as property on state change
flags: readable, writable
Boolean. Default: true
used-socket : Socket currently in use for UDP reception. (NULL = no socket)
flags: readable
Object of type "GSocket"
auto-multicast : Automatically join/leave multicast groups
flags: readable, writable
Boolean. Default: true
reuse : Enable reuse of the port
flags: readable, writable
Boolean. Default: true
address : Address to receive packets for. This is equivalent to the multicast-group property for now
flags: readable, writable
String. Default: "0.0.0.0"
loop : Used for setting the multicast loop parameter. TRUE = enable, FALSE = disable
flags: readable, writable
Boolean. Default: true
What the hell?
Or, if it's "unclear what I'm asking": what do I need to do / reorder / adjust / reconfigure / recompile / etc to receive a stream coming in at port 5000? Most examples I've seen start with "gst-launch udpsrc port=...".

In first command you use gst-launch but in second gst-launch-1.0 - it's the reason of your problem. You should always use gst-launch-1.0. gst-launch is related to GStreamer 0.1

I had this error today as well, but for a different reason. I'm posting this answer just in case anyone else happens to come across it as well.
It turns out I did not have all the development packages for GStreamer installed, specifically gstreamer-1.0-msvc-x86_64-1.16.0.msi (it should be noted this is on my Windows machine). After I installed that, GStreamer was able to locate udpsrc.

Related

Line in Wxmaxima not high enough to show exponent of exponent [solved]

when I type: in Wxmaxima:
exp(-x^2/2);
the result shown then in Wxmaxima cuts off the exponent of x, i.e. from 2 I see only the base line.
I am running on Lubuntu 20.4:
_wxMaxima version: 19.07.0
using wxWidgets version: wxWidgets 3.0.4
Maxima version: 5.43.2
Maxima build date: 2020-02-21 05:22:38
Host type: x86_64-pc-linux-gnu
System type: BSD BSD NIL
Lisp implementation type: GNU Common Lisp (GCL)
Lisp implementation version: GCL 2.6.12_
Is there anything I can do to get the whole expression shown in Wxmaxima?
I have asked the same question at:
https://github.com/wxMaxima-developers/wxmaxima/discussions/1521
but it looks as if there is not much traffic.
Thanks
Karl
Edit: added picture.
Edit: works ok with wxmaxima 21.02.0-DevelopmentSnapshot from
ppa:peterpall/wxmaxima-nightlies
The bug should now be resolved in wxMaxima's code and the bugfix is included in the installer that can be found at https://wolfgang.dautermann.at/maxima/nightlybuild/. If you install both the Nightly build and a release on the same system make sure you start the right wxMaxima, though.

Programmatically determine latest Gradle version?

Is there a way to find, via an API or CLI, the latest available version of Gradle?
I'm working on a tool to check versions of dependencies and compare them to the latest versions, and I need a way to determine what the latest version of Gradle that is available.
To be clear, I am not looking for the version of Gradle I already have. I know how to get that any number of ways. I'm just looking for some officially maintained endpoint I can call to determine the latest version available.
Gradle has an API to retrieve all sorts of information:
https://services.gradle.org/
For the current version:
GET https://services.gradle.org/versions/current
{
"version" : "6.8.1",
"buildTime" : "20210122132008+0000",
"current" : true,
"snapshot" : false,
"nightly" : false,
"releaseNightly" : false,
"activeRc" : false,
"rcFor" : "",
"milestoneFor" : "",
"broken" : false,
"downloadUrl" : "https://services.gradle.org/distributions/gradle-6.8.1-bin.zip",
"checksumUrl" : "https://services.gradle.org/distributions/gradle-6.8.1-bin.zip.sha256",
"wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.8.1-wrapper.jar.sha256"
}
You can get the data using curl and then use jq to extract the version key.
Node.js has in-built JSON support so this will be even easier.
CURRENT_GRADLE_VERSION="$(curl -s https://services.gradle.org/versions/current | jq -r '.version')"
echo "${CURRENT_GRADLE_VERSION}" # prints 6.8.1

Using mencoder to record a video

I'm trying to use mencoder to record a video. The following command was taken from an online tutorial:
mencoder tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0:forceaudio:adevice=/dev/dsp -ovc lavc -oac mp3lame -lameopts cbr:br=64:mode=3 -o filename.avi
The output is as follows:
MEncoder SVN-r37379 (C) 2000-2015 MPlayer Team
210 audio & 441 video codecs
success: format: 9 data: 0x0 - 0x0
TV file format detected.
Selected driver: v4l2
name: Video 4 Linux 2 input
author: Martin Olschewski <olschewski#zpr.uni-koeln.de>
comment: first try, more to come ;-)
v4l2: your device driver does not support VIDIOC_G_STD ioctl, VIDIOC_G_PARM was used instead.
Selected device: UVC Camera (046d:0825)
Capabilities: video capture streaming
supported norms:
inputs: 0 = Camera 1;
Current input: 0
Current format: YUYV
tv.c: norm_from_string(pal): Bogus norm parameter, setting default.
v4l2: ioctl enum norm failed: Inappropriate ioctl for device
Error: Cannot set norm!
Selected input hasn't got a tuner!
Unable to open '/dev/dsp': No such file or directory
Unable to open '/dev/dsp': No such file or directory
Unable to open '/dev/dsp': No such file or directory
v4l2: ioctl set mute failed: Invalid argument
v4l2: 0 frames successfully processed, 0 frames dropped.
============ Sorry, this file format is not recognized/supported =============
=== If this file is an AVI, ASF or MPEG stream, please contact the author! ===
Cannot open demuxer.
Exiting...
user#ArchBox:~/Dropbox$ mencoder tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0:forceaudio:ade[15838:17998:0117/045341:ERROR:cert_verify_proc_nss.cc(922)] CERT_PKIXVerifyCert for api.tldr.io failed err=-8181
How do I address these errors?
Some more information about your system would be helpful.
As far as i know, /dev/dsp should be your oss device.
At first you should check the correct device.
ls /dev/dsp*
On my system, it's /dev/dsp0
If you use the alsa sound system, check your cards with
cat /proc/asound/cards
and change the command tosomething like
alsa:adevice=plughw.1,0
This site could also be helpful:
https://wiki.ubuntuusers.de/Videograbbing/

package ‘RMySQL’ is not available (for R version 2.15.3) [duplicate]

This question already has answers here:
How should I deal with "package 'xxx' is not available (for R version x.y.z)" warning?
(18 answers)
Closed 8 years ago.
I have tried installing RMySQL for three versions of R, but I'm running into same warning message, that RMySQL is not available for that version.
Please, help me out.
Thanks.
install.packages("RMySQL",type="source")
Warning in install.packages("RMySQL", type = "source") :
'lib = "C:/Program Files/R/R-2.15.3/library"' is not writable
--- Please select a CRAN mirror for use in this session ---
also installing the dependency ‘DBI’
trying URL 'http://ftp.iitm.ac.in/cran/src/contrib/DBI_0.2-7.tar.gz'
Content type 'application/x-gzip' length 194699 bytes (190 Kb)
opened URL
downloaded 190 Kb
trying URL 'http://ftp.iitm.ac.in/cran/src/contrib/RMySQL_0.9-3.tar.gz'
Content type 'application/x-gzip' length 165363 bytes (161 Kb)
opened URL
downloaded 161 Kb
<some text missing>
* DONE (DBI)
* installing *source* package 'RMySQL' ...
** package 'RMySQL' successfully unpacked and MD5 sums checked
checking for $MYSQL_HOME... C:\Program Files (x86)\MySQL\MySQL Server 5.6
ERROR: compilation failed for package 'RMySQL'
* removing 'C:/Users/Chanchal/Documents/R/win-library/2.15/RMySQL'
1: running command 'C:/PROGRA~1/R/R-215~1.3/bin/i386/R CMD INSTALL -l "C:\Users\Chanchal\Documents/R/win-library/2.15" C:\Users\Chanchal\AppData\Local\Temp\RtmpErKHEX/downloaded_packages/RMySQL_0.9-3.tar.gz' had status 1
2: In install.packages("RMySQL", type = "source") :
installation of package ‘RMySQL’ had non-zero exit status
> install.packages("RMySQL")
Installing package(s) into ‘C:/Users/Chanchal/Documents/R/win-library/2.15’
(as ‘lib’ is unspecified)
package ‘RMySQL’ is available as a source package but not as a binary
Warning message:
package ‘RMySQL’ is not available (for R version 2.15.3)
I have tried to install RMySQL for R version 3.1.0 on Windows platform. It did not work either. I ran into pretty much the same problem as yours. After reading the documentation for RMySQL package and googled around, I realized that installing RMySQL is very difficult on Windows since it does not have a binary file for Windows as stated in your output.
Instead of RMySQL, I installed RODBC package following instructions here: http://passionfordata.blogspot.com/2012/04/how-to-integrate-r-with-mysql-database.html
RODBC also allows you to connect R to MySQL database, with less trouble and much easier to set up. If your purpose is to connect to MySQL and open to using packages not limited to RMySQL, I would recommend RODBC.

Linking Free Pascal programs to include dependencies

I have two Free Pascal units that I would like to use from a C program on linux.
Here is what I do:
$ fpc -fPIC base64.pas queueutils.pas
Warning: Only one source file supported
Free Pascal Compiler version 2.2.2 [2008/11/05] for x86_64
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Linux for x86-64
Compiling queueutils.pas
queueutils.pas(2088,11) Warning: Symbol "Socket" is deprecated
queueutils.pas(2097,10) Warning: Symbol "Connect" is deprecated
queueutils.pas(2104,3) Warning: Symbol "Sock2Text" is deprecated
2432 lines compiled, 0.5 sec
4 warning(s) issued
$ ppumove -o queueutils -e ppl *.ppu
PPU-Mover Version 2.1.1
Copyright (c) 1998-2007 by the Free Pascal Development Team
Processing base64.ppu... Done.
Processing queueutils.ppu... Done.
Linking queueutils.o base64.o
Done.
Seems fine so far, libqueueutils.so is created:
$ file libqueueutils.so
libqueueutils.so: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped
$ ldd libqueueutils.so
ldd: warning: you do not have execution permission for `./libqueueutils.so'
statically linked
However when the C program tries to use the library this way:
libqueue = dlopen("./libqueueutils.so", RTLD_LAZY);
if (!libqueue) {
fprintf (stderr, "%s\n", dlerror());
}
it yields an error message:
$ ./tmbrkr
./libqueueutils.so: undefined symbol: VMT_PROCESS_TPROCESS
This VMT_PROCESS_TPROCESS-related error is resolved if I add process.o and process.ppu to the linking process done by ppumove. However after doing so another unit is missing and after that another... You get it.
Is there a way to somehow link all the necessary units together in one .so file so that the C program can dlopen() the library properly?
Just like a normal binary (exe) is from a "program" source file , a .so/dll is created from a ''library'' sourcefile.
For the rest is the model is the same. You simply build the library mainprogram, and the compiler collects all units necessary and stuffs them in the .so.
With the exports keyword you can define what symbols to export.
library testdll;
uses x,y,z;
// define exportable symbols here
// some examples of symbol exports
exports
P1 index 1, // dll based on index
P2 name 'Proc2', // normal export with alternate external symbol
P3, // just straight export.
P4 resident // for some MCU use
;
begin
// startup code
end.
Also look up $soname $libsuffix and $libprefix in the manual.
Though I would recommend just using most recent 2.6.0, not some 5 year old 2.2.2
It might require recompiling FPC first with PIC though.