Ethereal-dev: Re: [Ethereal-dev] Building mpeg-4 dissector, help.
manlio wrote:
> Hi all, I'm building (trying :) ) an Mpeg-4 over RTP dissector.
> Mpeg-4 elementary streams have a dynamic payload type, so my problem is to
> detect such stream without a defined payload number.
> What I have done since now is, knowing in advance the payload_type number,
> I've assigned to the rtp_pt.h file an entry for my "custom" dissector and
> using the code sample found in README.developer built succesffully my
> dissector.
>
> Now I would like my protocol to be found in an Heuristic way, maybe
> starting from a payload_type==Unknown.
> I still have a little problem understanding how heuristic dissection
> occours, so how can I (if it's possible) add my dissector to the heuristic
> table?
>
> Any help would be appreciated, thanks!
>
I don't know so much about the details in MPEG-4 and if it is possible to make a heuristic dissector for it,
i.e. if there is something in the RTP payload that is very specific for MPEG-4.
I have started a little to look on how to transfer the information from SDP/H.245 signalling, so that the
RTP dissector could use the information from the SDP/H.245 to know what dynamic payload is used.
There seems to be a lot of cahnges in order to get that to work, so I think you'll have use some other
temporar solution ....
A simple but useful tempoar solution could be as follows:
You could do the payload type configurable from preferences (this is done in rtpevents dissector,
so you could maybve check on packet-rtpevents.c).
When using tethereal it is possible to use the decode-as option "-d rtp.payload==198,mpeg4".
I hope that it should be possible to do similar things with Decode As... in Ethereal some time in the future.
This is probably not so difficult to implement. I have it on my wish-list/to-do-list, but I haven't had time
to look at the details yet.