Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Difference between openavnu[avtppipeline] and libavtp #43

Open
Jayanth-kb opened this issue Aug 7, 2023 · 1 comment
Open

Difference between openavnu[avtppipeline] and libavtp #43

Jayanth-kb opened this issue Aug 7, 2023 · 1 comment

Comments

@Jayanth-kb
Copy link

Jayanth-kb commented Aug 7, 2023

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

@vcgomes
Copy link
Collaborator

vcgomes commented Aug 7, 2023

1)What is the difference between libavtp and openavnu [avtp pipeline] ?

I was never a contributor to avtp_pipeline, and it's been a long time (and my memory is not perfect), so take everything with a grain of salt.

The way I see things, the main difference is the philosophy, avtp_pipeline is more a "one stop shop" solution and avtp is more of a building blocks solution. I.e. you can implement a good part of your media distribution using avtp_pipeline, and libavtp is only one component of the solution.

The other difference is that avtp_pipeline is kind of dependent on the out-of-tree igb_avb kernel module. libavtp was written to make use of the TSN support that was introduced in the upstream Linux kernel (no out of tree modules).

I think that a more direct comparison would be comparing avtp_pipeline with the avtp plugin in gstreamer.

2)Does avtp pipeline use internally again libavtp api's?

No, they are separate projects.

3)When to use libavtp and when to use openavnu[avtp pipeline] ?

avtp_pipeline is more plug and play, libavtp is more useful when you want to add support for avtp protocol into an media library.

4)As I know in gstreamer there plugin which uses libavtp API's ?

Yes, the avtp plugin uses libavtp.

5)libavtp is not fully compliant with IEEE 1722-2016 std?

We never applied for compliance tests, so we don't know. But libavtp follows our understanding of the standard, and I would consider most of the non compliance issues bugs.

i) Does CVF Format support : MJPEG Video Format, MJPEG Video Format, Compressed video stream data ?

Not yet. But should not be too complicated.

ii) Does AVTP Control Format support : Time synchronous control format & Non-time synchronous control format ?

I have to check, but I don't think so.

iii) Does it support media clock recovery ?

There's basic support for the protocol.

iv) Does it use gptp for hardware timestamping, SRP and traffic shaper?

As libavtp only handle the protocol bits, these are out of the scope, and more appropriate to the gstreamer plugin and other parts of the network/media stack.

6)Does openavnu [avtp pipeline] fully compliant with IEEE-2016 std?

I am not sure.

Hope this helps.

@edersondisouza feel free to correct and/or add anything you feel I missed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants