Hi, I am interested in helping develop and test a rohc gstreamer plugin. I am new in both the gstreamer and rohc communities and I 'd appreciate any comments for the following approach. I think this would involve implementing 2 new gstelements:
- rohccomp: accepts a packet stream and performs the packet compression. The input stream would be either in pcap format or accepted from a virtual interface (tun). Perhaps there are other input possibilities that I am not aware of. - rohcdecomp: accepts a compressed packet, decompresses and passes it on. Some gstreamer properties of both elements would include the rohc profile chosen and the input format chosen (pcap or reading from a tun interface) These 2 gstreamer elements would allow for similar functionality as the applications test/test.c and apps/tunnel/tunnel.c (from the rohc source code tree) to be implemented in a gst-launch command line pipeline. The pcap input file handling could be similar in principle to the pcapparse plugin in gst-plugins-bad. E.g to implement compression/decompression.of pcap packets and pass this rohc flow through udp we could use these pipelines: sender / compressor: gst-launch filesrc location="packets.pcap" ! rohccomp ! udpsink receiver / decompressor: gst-launch udpsrc ! rohcdecomp ! filesink location = "packets_otherside.txt" Rohc_decomp would output raw packets for now, though pcap-output should be possible in theory. Reading from a tun/tap interface (e.g. file /dev/net/tun) happens with a regular unix socket. Is there a gstreamer element that already implements opening and reading from an arbitrary file? If not, could this be implemented inside the rohc elements as a mode of input, or maybe as a separate element? I am basically asking if elements similar to socketsrc, socketsink in the following example exist or if it makes sense to have them: sender / compressor (assuming someone is sending packets to tun0) gst-launch socketsrc location="/dev/net/tun0" ! rohccomp ! udpsink receiver / decompressor (assuming someone is reading packets from tun1) gst-launch udpsrc ! rohcdecomp ! socketsink location = "/dev/net/tun1" Are there currently other ways in which the rohc library can be used? The above discussion only deals with UDP packets for now - if there would be added complexity / issues when using rtp please share. Does the above description look sufficient? Please feel free to make other suggestions or comments. Also let me know if someone else is already working on this off-lists so that development efforts are not duplicated. thanks, - Vasilis On Mon, Jan 18, 2010 at 8:18 AM, Nicolas Hennion <[email protected]> wrote: > Hi all, > it will be very nice to implement the ROHC (RObust Header Compression, RFC > 3095) in a standalone plugin. > IP, UDP and UDP header will be compressed from 40 octets to 3-5 ! A nice > optimization for audio and video streaming. > You can find more informations about the ROHC and its open-source > librairy: https://launchpad.net/rohc/ > The API documentation for compressor and decompressor are available here: > - http://www.tech.viveris.com/docs/rohc/group__rohc__comp.html > - http://www.tech.viveris.com/docs/rohc/group__rohc__decomp.html > Any developper interrested ? > > > ---- > Le sage ne dit pas ce qu'il sait, le sot ne sait pas ce qu'il dit. > ---- > > ------------------------------------------------------------------------------ > Throughout its 18-year history, RSA Conference consistently attracts the > world's best and brightest in the field, creating opportunities for > Conference > attendees to learn about information security's most important issues > through > interactions with peers, luminaries and emerging and established companies. > http://p.sf.net/sfu/rsaconf-dev2dev > _______________________________________________ > gstreamer-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel > > _______________________________________________ Mailing list: https://launchpad.net/~rohc Post to : [email protected] Unsubscribe : https://launchpad.net/~rohc More help : https://help.launchpad.net/ListHelp

