Giter Site home page Giter Site logo

libavtp's People

Contributors

adrianf0 avatar avinash-palleti avatar edersondisouza avatar ghindman avatar keerockl avatar rjingar avatar thiblahute avatar vcgomes avatar xclaesse avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libavtp's Issues

tag a release

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).

branches and merging and pull requests

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.

Sequence number mismatch and time schedule is too fast

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

AVTP Sequence number mismatch

Test Setup

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 command from Talker

gst-launch-1.0 filesrc location=/input_1280x720.ts ! video/mpegts, systemstream=true ! v4l2sink sync=true device=device show-preroll-frame=false

Open AVB command

./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

Need option to disable cmocka

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).

Difference between openavnu[avtppipeline] and libavtp

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

Impact of Byte Queue Limit on AVTP

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:

  • Would BQL impact the performance of AVTP?
    • BQL aims to improve the utilisation of the queue by appropriately queuing certain amount of data. AVTP, built on top of TSN(which requires ultra low latency), requires that the latency be bounded and be as low as possible. With BQL, the queuing delay can significantly be reduced as it tries to maintain the queues at the most optimal size, in an attempt to increase the utilisation of the link.

I request all of you to share your thoughts regarding the same.

Thank you in advance!

can't receive AVB audio packets on some machines

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 libavtp posix complaint and porting it to qnx

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.

  1. First Is libavtp POSIX-compliant?

  2. 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.

  3. 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

Failed to send AAF PDU

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.

cmocka dependency?

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.

meson build fails - ModuleNotFoundError No module named 'mesonbuild' FAILED: meson-install

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

Library has unversioned SONAME

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.

No such element or plugin 'avtp'

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.

  • configuration
    Ubuntu 20.04
    kernel 5.4
    meson 1.2.1
  1. build libavtp
    $git clone https://github.com/Avnu/libavtp
    $ cd libavtp
    $ meson build
    $ ninja -C build
    $ ninja -C build install

  2. 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.

Build on Windows

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.

Avtp plugin?

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.