Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-users: Re: [Wireshark-users] MPEG2TS over UPD not decoded

From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Wed, 09 Jan 2008 02:12:30 -0800
Kaliwoda, Arkadiusz wrote:
Hi,

I have downloaded the latest revision of WireShark 23910; according to information I found in the history I believe that decoding MPEG2TS over UDP should work �out-of-the-box�:

/Hi,/

/ /

/Committed revision 23743 adding UDP transport for MPEG2TS, both heuristic and "Decode as". ///

/ /

/Thanx,/

/Jaap/

On the latest 0.99.7 23910 it doesn�t work in heuristic mode and I cannot also find it in �Decode As��

SVN revision numbers can be confusing. Each change to the code repository has a revision number assigned to it when the checkin for that change happens. If two given changes to the code repository have numbers N and M, respectively, and N > M, all you can deduce from that is that the checkin for N was done after the checkin for M.

See

	http://subversion.tigris.org/faq.html#changesets

A branch, in Subversion, is a copy of everything in the code base. (It's implemented, as I understand it, with copy-on-write, so it doesn't make a physical copy of the files.) The copy is part of the same repository as the main line ("trunk"), so, for example, if you check a change into the trunk at one point and into a branch after that, the SVN revision number for the change on the branch will be greater than the SVN revision number for the change on the trunk, *even if the branch was created before either of the two changes*.

A branch is part of the *same* code repository as the trunk, so there's a single sequence of SVN revision numbers for changes to the trunk and all branches:

	http://subversion.tigris.org/faq.html#globalrev

This means that a branch is a change to the repository, as it adds a subtree that's a copy of the subtree from which you branched. The branch itself thus gets an SVN revision number.

This all means that, for example, if you:

	branch off a "wireshark-0.9.7" branch;

	check a change into the trunk;

	check another change into the trunk;

	propagate the first of those two changes to the "wireshark-0.9.7" branch;

then the top of the "wireshark-0.9.7" branch will have a higher SVN revision number than the top of the trunk does, *even though the trunk has changes in it that the branch doesn't*.

See

	http://svnbook.red-bean.com/en/1.4/svn-book.html

for the full gory details.

The branch that created the "trunk-0.99.7" branch had an SVN revision number of 23524:

	http://anonsvn.wireshark.org/viewvc/viewvc.py/trunk-0.99.7/epan/dissectors/packet-mp2t.c?view=log&pathrev=23524

The only other change to the MPEG2TS dissector for 0.99.7 was an ex-post-facto copy of the "trunk-0.99.7" branch to "releases/wireshark-0.99.7":
	http://anonsvn.wireshark.org/viewvc/viewvc.py/releases/wireshark-0.99.7/epan/dissectors/packet-mp2t.c?view=log

The change that added support for MPEG2TS-over-UDP was checked into the trunk with an SVN revision number of 23743:

	http://anonsvn.wireshark.org/viewvc/viewvc.py/trunk/epan/dissectors/packet-mp2t.c?view=log

which happened *after* the "trunk-0.99.7" branch was created, and that change was not propagated to that branch, so it's not on that branch.