avnu / libavtp Goto Github PK
View Code? Open in Web Editor NEWOpen source implementation of Audio Video Transport Protocol (AVTP) specified in IEEE 1722-2016 spec.
License: BSD 3-Clause "New" or "Revised" License
Open source implementation of Audio Video Transport Protocol (AVTP) specified in IEEE 1722-2016 spec.
License: BSD 3-Clause "New" or "Revised" License
Running the test applications shows a lot of error messages like:
“dbc mismpatch: expected .., got ..”
Sequence number mismatch
The test app stopps after some seconds.
In addition the delta t of the class a audio / video stream have a much too small time.
Expected 125 or 250 ys . Wireshark shows: round about one microsend.
Setup:
Ptp4l and phy2sys
Two linux pcs with two i210 plugin cards
Fedora 30 with latest kernel: 5.1.11-300.fc30.x86_64
Test app: ieciidc-listener and – talker
Parameter –d 91:E0:F0:00:00:01
-i ens1
-m 2
-p 3
Full command line (run as root):
./ieciidc-listener -d 91:e0:f0:00:00:01 -i ens1 | gst-launch1-0 -e -q filesrc location=/dev/stdin ! tsdemux ! decodebin ! videoconvert ! autovideosink
Hi all, so I'm working on project to port libavtp to my qnx setup, as I'm new to this domain I would like some things to be clarified.
First Is libavtp POSIX-compliant?
Can libavtp be ported to QNX?
In my project, I am considering using QNX as the operating system. I would like to know if libavtp can be successfully ported to QNX without any major obstacles.
Assuming libavtp can be ported to QNX, I would like to understand if there are any specific modifications or adaptations that need to be made. Any advice on the necessary changes or potential challenges would be invaluable in ensuring a smooth integration.
All I could find about libavtp for some presentation slides on the website of anyone could direct me to good documentation on this answers all my above questions that would be of great help. Thank you
Send ts video file stream from talker to Listener.
Talker- AVB enabled device via an AVB aware Ethernet switch, using ptp4l and switch acting as PTP grandmaster
Listener - Linux PC
force linux PC to act as a slave -> daemon_cl eth -V -E -INITSYNC 0 -F gptp_cfg.ini
gst is enabled -> AVB_FEATURE_GSTREAMER ?= 1
gst-launch-1.0 filesrc location=/input_1280x720.ts ! video/mpegts, systemstream=true ! v4l2sink sync=true device=
device
show-preroll-frame=false
./openavb_harness -I enp2s0 mpeg2ts_gst_listener.ini
I am able to capture the ts file contents at Linux PC.
We are currently facing packet loss and also noticed the following info upon execution.
[1626196957:919975666 OPENAVB Raw Socket] INFO: Using atl implementation
[1626196961:248332140 OPENAVB AVTP] INFO: AVTP sequence mismatch: expected: 1, got: 0, lost 255
[1626196961:248817954 OPENAVB AVTP] INFO: AVTP sequence mismatch: expected: 2, got: 1, lost 255
Is there any start offset to be defined for configuring the AVTP sequence start?
Based on the above message it appears that there is always a difference of 1 sequence number, between expected and got value.
Any hint to resolve this issue would be of great help.
Thanks & Regards,
Shanmathi P
What is the pull request policy for this repo? ie what branch should pull requests be made to?
We should add something to the top level readme describing how to contribute to the repo.
Hi,
i made a simple AVB audio listener derived from the aaf-listener.c example.
This small tool is working on some machines (e.g. my RPI3).
static int new_packet(int sk_fd, int timer_fd)
{
...
n = recv(sk_fd, pdu, PDU_SIZE, 0);
...
On some other machines (e.g. my RPI3+), it simply doesn't receive any packets.
I can solve this issue by starting a "tcpdump -i vlan.201" on a second terminal.
Any idea about the reason or how i can solve that?
Is suppport for the raw video format (RVF) planned to be added soon?
Hello!
Mosen.build set the unit-test programs to build_by_default: false
, but the test
section made them must to be build.
Would you please add something, so that I could ignore them by command line?
I don't know how to modify the meson.build to do this. And there is no cmocka in my target-sdk (for cross-compile).
Hi! I know this repository hasn't been around for super long, but it seems, that libavtp can already be integrated into ALSA and gstreamer.
It would be great, if a release was tagged, so this software could be packaged (I'd like to add it for Arch Linux).
The commands listed in the README produce a /usr/lib64/libavtp.so
which has:
# readelf -d libavtp.so | grep SONAME
0x000000000000000e (SONAME) Library soname: [libavtp.so]
Please give it a proper version number and create the necessary symlinks, like any Linux library.
Hi,
I am trying to run AVB Audio Talker/Listener Examples.
I have configured all the system setup required for the experiment.
While running the command, sudo speaker-test -p 25000 -F S16_BE -c 2 -r 48000 -D aaf0 on the talker host, I am getting the below mentioned error :
speaker-test 1.1.9
Playback device is aaf0
Stream parameters are 48000Hz, S16_BE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 1 to 206158430
Period size range from 0 to 206158431
Requested period time 25000 us
Periods = 4
was set period_size = 1200
was set buffer_size = 4800
0 - Front Left
Write error: -32,Broken pipe
Write error: -32,Broken pipe
ALSA lib pcm_aaf.c:670:(aaf_tx_pdu) Failed to send AAF PDU
Write error: -5,Input/output error
xrun_recovery failed: -5,Input/output error
Transfer failed: Input/output error
listener end is working fine
sudo arecord -F 25000 -t raw -f S16_BE -c 2 -r 48000 -D aaf0 | aplay -F 25000 -t raw -f S16_BE -c 2 -r 48000 -D default
Recording raw data 'stdin' : Signed 16 bit Big Endian, Rate 48000 Hz, Stereo
Playing raw data 'stdin' : Signed 16 bit Big Endian, Rate 48000 Hz, Stereo
Any help would be highly appreciated.
Hi ,
i'am new here and i want to run one talker and one listener, need help
Thanks
I'm trying to cross-compile the release version under Yocto, and the Meson build step is failing with a dependency on cmocka. Installing cmocka on the host system (Ubuntu 18.04) didn't seem to help, so I'm assuming it's looking for it in the cross tools. Unfortunately, there's no recipe for cmocka in Yocto that I've found.
"Run-time dependency cmocka found: NO (tried pkgconfig and cmake)"
Is the dependency recent? Postings from 5/24/2021 giving instructions on how to build under Yocto don't mention cmocka.
Hello,
I would like to know if the avtp plugin is available for Windows. I'm trying to rebuild gstreamer with avtp include but i can not.
Thank you.
Hi all,
I noticed, there's a bug in the CVF talker. The CVF listener application checks if AVTP_CVF_FIELD_FORMAT is set to 0x2 and if that's not the case it'll drop the packet. CVF talker is never setting this field, so it's 0x0 on default, causing all frames to get dropped at the listener.
Regards,
Adriaan
Hi.
#1. I have install the libavtp, log is like below.
#2. But, I'm fail to use the gstreamer to test with avtp.
root@ubuntu-vm:/opt/libavtp# sudo ninja -C build install
ninja: Entering directory `build'
ninja: warning: bad deps log signature or version; starting over
[24/25] Installing files.
Installing libavtp.so.0.1.0 to /usr/local/lib/x86_64-linux-gnu
Installing symlink pointing to libavtp.so.0.1.0 to /usr/local/lib/x86_64-linux-gnu/libavtp.so.0
Installing symlink pointing to libavtp.so.0 to /usr/local/lib/x86_64-linux-gnu/libavtp.so
Installing /opt/libavtp/include/avtp.h to /usr/local/include
Installing /opt/libavtp/include/avtp_aaf.h to /usr/local/include
Installing /opt/libavtp/include/avtp_crf.h to /usr/local/include
Installing /opt/libavtp/include/avtp_cvf.h to /usr/local/include
Installing /opt/libavtp/include/avtp_rvf.h to /usr/local/include
Installing /opt/libavtp/include/avtp_ieciidc.h to /usr/local/include
Installing /opt/libavtp/build/meson-private/avtp.pc to /usr/local/lib/x86_64-linux-gnu/pkgconfig
NOTICE: You are using Python 3.6 which is EOL. Starting with v0.62.0, Meson will require Python 3.7 or newer
root@ubuntu-vm:/opt/libavtp# cd ..
#3. This is my error, may you guide me how to solve it?
root@ubuntu-vm:/opt# cd gstreamer/
root@ubuntu-vm:/opt/gstreamer# gst-inspect-1.0 avtp
No such element or plugin 'avtp'
Thanks.
BR Rio
ALSA community folks have reported the unit test is failing on 32-bit x86 environment. Here is a link to the report: http://mailman.alsa-project.org/pipermail/alsa-devel/2018-December/142772.html.
The log shows:
[ 64s] [ FAILED ] 4 test(s), listed below:
[ 64s] [ FAILED ] crf_get_field_pull
[ 64s] [ FAILED ] crf_get_field_base_freq
[ 64s] [ FAILED ] crf_set_field_pull
[ 64s] [ FAILED ] crf_set_field_base_freq
Hello,
my host:
Linux ubuntu 5.4.0-66-generic #74~18.04.2-Ubuntu SMP Fri Feb 5 11:17:31 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
meson --version 0.57.1
ninja --version 1.10.0
I run:
pip3 install --user meson
sudo apt install ninja-build
then I try to install libavtp
as reportes in readme.md
file
git clone --recursive https://github.com/AVnu/libavtp.git
cd libavtp
meson build
ninja -C build
sudo ninja -C build install
but it exits on error at meson build
ModuleNotFoundError No module named 'mesonbuild' FAILED: meson-install
Then I tried following, with always same error:
pip3 install meson
...
meson build
...
ModuleNotFoundError No module named 'mesonbuild' FAILED: meson-install
sudo pip3 install meson
...
meson build
...
ModuleNotFoundError No module named 'mesonbuild' FAILED: meson-install
Then I tried
sudo pip3 install meson
...
sudo meson build
sudo ninja -C build
sudo ninja -C build install
This worked about libavtp install.
I think it is a bad workaround, with potential failure about GStreamer.
Any idea?
Many thanks
Hi,
I have been reading the IEEE1722 document and have also been experimenting with this implementation of AVTP.
I had also been going through the TC components of the Linux kernel and came across Byte Queue Limit(BQL)(Section 4.10).
I stumbled upon the following thought after reading about BQL:
I request all of you to share your thoughts regarding the same.
Thank you in advance!
Dear All,
I'm new to AVB domain. while searching came across two open-source repository openavnu and libavtp.
I have few doubts which needs some clarification.
Could someone please clarify few of the query I mentioned below. thanks in advance
1)What is the difference between libavtp and openavnu [avtp pipeline] ?
2)Does avtp pipeline use internally again libavtp api's?
3)When to use libavtp and when to use openavnu[avtp pipeline] ?
4)As I know in gstreamer there plugin which uses libavtp API's ?
5)libavtp is not fully compliant with IEEE 1722-2016 std?
i) Does CVF Format support : MJPEG Video Format, MJPEG Video Format, Compressed video stream data ?
ii) Does AVTP Control Format support : Time synchronous control format & Non-time synchronous control format ?
iii) Does it support media clock recovery ?
iv) Does it use gptp for hardware timestamping, SRP and traffic shaper?
6)Does openavnu [avtp pipeline] fully compliant with IEEE-2016 std?
Thank you & regards
Hello.
After completing the build to use AVTP, I am unable to find the AVTP element in GStreamer.
$gst-inspect-1.0 avtp
No such element or plugin 'avtp'
No errors occurred during the installation process. and I can find avtp.pc in /usr/local/lib/x86_64-linux-gun/pkgconfig.
Please let me know what went wrong or if there are any specific areas that I need to check.
I have proceeded with the build as follows.
build libavtp
$git clone https://github.com/Avnu/libavtp
$ cd libavtp
$ meson build
$ ninja -C build
$ ninja -C build install
build Gstreamer
$git clone https://github.com/GStreamer/gstreamer.git
$meson build-gst-full
--buildtype=release
--strip
--default-library=static
--wrap-mode=forcefallback
-Dauto_features=disabled
-Dgst-full-libraries=app,video,player
-Dbase=enabled
-Dgood=enabled
-Dbad=enabled
-Dgst-plugins-base:typefind=enabled
-Dgst-plugins-base:app=enabled
-Dgst-plugins-base:playback=enabled
-Dgst-plugins-base:volume=enabled
*-Dgst-plugins-bad:avtp=enabled *
-Dgst-plugins-base:audioconvert=enabled
-Dgst-plugins-good:audioparsers=enabled
-Dgst-plugins-good:isomp4=enabled
-Dgst-plugins-good:deinterlace=enabled
-Dgst-plugins-good:audiofx=enabled
-Dgst-plugins-bad:videoparsers=enabled
$ninja -C build-gst-full
$sudo ninja -C build-gst-full install
Thanks.
They're missing:
#ifdef __cplusplus
extern "C" {
#endif
....
#ifdef __cplusplus
}
#endif
So C++ source code can #include
the headers.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.