Hi Didier, > > > > I'm trying to come up with an implementation, using the ROHC library, > > that compresses only the RTP header, and not the UDP and IP headers. > > As far as I know, there is no defined profile for RTP-only compression. > So you have to define the mechanisms and packet formats you want to > use. The ones defined for IP/UDP/RTP are probably not adequate for your > RTP-only profile.
So I take it this means that the packet types defined in [cd]_generic.c wouldn't work, and I'd have to define totally new packet types? I noticed that in the library the IR, IR_DYN, UO, UOR packets contain IP-specific parameters.. > > > > Correct me if I'm on the wrong tack, but I've been trying to base it > > upon modified versions of c_rtp.c, c_rtp.h, d_rtp.c, d_rtp.h files. I > > also added an additional profile in rohc_comp.c, rohc_comp.h, > > rohc_decomp.c and rohc_decomp.h. > > > > However IP-field compression parameters are used in many methods in > > the library. > > > > Could you give me some pointers on how to modify these source files > > (such as c-generic.c) to only compress and decompress using the RTP > > header field-related compression parameters (TS), and not IP-ID or the > > IP fields? > > Depending on the profile you want to define, you may or may not be on > the correct track :) If your profile does not compress IP headers at > all, re-using the c_rtp.[ch] and d_rtp.[ch] source files is probably > not the best choice. They frequently do IP-specific actions that you > don't need at all. > > The shortest path to setup a RTP-only profile is probably starting from > scratch with a new blank profile. To create a new profile, you have to > initialise one instance of the c_profile structure and one instance of > the d_structure structure. The first one is for the compression > profile and the second one for the decompression profile. > > The c_profile structure is described in details here: > http://barvaux.org/~didier/rohc/rohc-doc-latest/structc__profile.html<http://barvaux.org/%7Edidier/rohc/rohc-doc-latest/structc__profile.html> > The d_profile structure is described in details here: > http://barvaux.org/~didier/rohc/rohc-doc-latest/structd__profile.html<http://barvaux.org/%7Edidier/rohc/rohc-doc-latest/structd__profile.html> > > For the profile ID, temporarily choose a free one in the list published > by the IANA: http://www.iana.org/assignments/rohc-pro-ids/ > > > Hereafter is an example for defining a new compression profile: > > /** > * @brief Define the compression part of the RTP-only profile > */ > struct c_profile c_rtponly_profile = > { > IPPROTO_UDP, /* IP protocol */ > rtp_port, /* list of UDP ports for RTP packets */ > ROHC_PROFILE_RTPONLY, /* profile ID for RTP-only profile */ > "0.1", /* profile version */ > "RTP-only / Compressor", /* profile description */ > c_rtponly_create, /* profile handlers */ > c_rtponly_destroy, > c_rtponly_check_context, > c_rtponly_encode, > c_rtponly_feedback, > }; > > You have then to define the 5 functions c_rtponly_* listed above. To > define them, use the API documentation and look at the simplest of all > profiles: the Uncompressed profile defined in c_uncompressed.[ch]. > > You have then to do the same task for the decompression profile. > > Hope it helps! > Thanks a lot Didier, your guidelines are indeed very helpful. Regards, Josephine
_______________________________________________ Mailing list: https://launchpad.net/~rohc Post to : [email protected] Unsubscribe : https://launchpad.net/~rohc More help : https://help.launchpad.net/ListHelp

