Hello everyone
Because Opus is a totally open audio codec and very useful, I want to make WireShark support Opus so that the WireShark can play Opus audio RTP stream and save. I had some attempts. Put the Opus into the plugins/codecs. Now WireShark can play and save Opus audio RTP stream like the g711, g722. To support Opus and FEC(Forward Error Correction), I changed some code:
Here is the change:
1、Change a function with C++ default parameters
Origin version: size_t convert_payload_to_samples(unsigned int payload_type, QTemporaryFile *tempfile, uint8_t *pd_out, size_t expected_nchars, struct _GHashTable *decoders_hash );
MyChanged version: size_t convert_payload_to_samples(unsigned int payload_type, QTemporaryFile *tempfile, uint8_t *pd_out, size_t expected_nchars, struct _GHashTable *decoders_hash , size_t fecflag = 0);
2、Add some codes to support OPus fec、play and save.In my opinion these codes don't affect other functions.(In the files: rtp_audio_stream.cpp rtp_audio_stream.cpp )
I don't know whether the change is useful and meets specifications.
The other question: In the RTP protocol, Opus don't have a fixed payload type. Now I write the payload type into macro. Does it have a good way to let user choose the Opus payload type? Although tried ,I failed~~ I don't know how to realize it.
It is my first time to participate in a open source project. And I want to make a contribution. I don't know whether it is a good way to plugin Opus into WireShark or not. If not , is there a better way? I want to know and try it!
Best regards,