RFC2190 encapsulated H.263 bitfields masked wrong in Mode A
Summary
The RFC2190 dissector gets the wrong values for several bits fields for Mode A, because the bitmasks have the wrong bit ordering.
Steps to reproduce
Open the h263-over-rtp.pcap Look at any of the H263 packets, starting with packet 5 and the RFC2190 part of the tree.
What is the current bug behavior?
The fields rfc2190.picture_coding_type, rfc2190.unrestricted_motion_vector, rfc2190.syntax_based_arithmetic, rfc2190.advanced_prediction, and rfc2190.r have overlapping bits with other fields and get the wrong values. Also, this is particularly noticeable in the packet diagram (with the patch from !959 (merged)).
What is the expected correct behavior?
The fields should not overlap, and get the proper bits.
Sample capture file
Build information
3.5.0 (v3.5.0rc0-162-g3f3227a2)
Compiled (64-bit) with Qt 5.15.1, with libpcap, with POSIX capabilities (Linux), with libnl 3, with GLib 2.66.2, with zlib 1.2.11, with SMI 0.4.8, with c-ares 1.16.1, with Lua 5.1.5, with GnuTLS 3.6.15 and PKCS #11 (closed) support, with Gcrypt 1.8.6, with MIT Kerberos, with MaxMind DB resolver, with nghttp2 1.41.0, with brotli, with LZ4, with Zstandard, with Snappy, with libxml2 2.9.10, with QtMultimedia, without automatic updates, with SpeexDSP (using system library).
Running on Linux 5.8.18-300.fc33.x86_64, with Intel(R) Core(TM) i5-4670K CPU @ 3.40GHz (with SSE4.2), with 15943 MB of physical memory, with locale en_US.utf8, with light display mode, without HiDPI, with libpcap version 1.9.1 (with TPACKET_V3), with GnuTLS 3.6.15, with Gcrypt 1.8.6, with brotli 1.0.9, with zlib 1.2.11, binary plugins supported (21 loaded).
Built using gcc 10.2.1 20201016 (Red Hat 10.2.1-6).