Wireshark-dev: [Wireshark-dev] Support Opus in WireShark

Date: Sun, 19 Jan 2020 15:08:10 +0800 (GMT+08:00)
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,

    Ryan Lee