Cannot decode RTSP h264 with profile_idc = 244
Summary
(Summarize the bug encountered concisely) A capture on packet from RTSP server created using GStreamer using H264 profile_idc 244 was no decoded properly. The profile-idc was shown as unknown and the subsequent bits were interpret incorrectly
Steps to reproduce
(How one can reproduce the issue - this is very important) Create a RTSP server using the GStreamer RTSP server example application (test_appsrc2) and use it to stream the test sample. GStreamer default to use H264 profile_idc 244.
What is the current bug behavior?
(What actually happens) Here is the dissector output: Media format specific parameters: sprop-parameter-sets=Z/QAH5GWgPATficBagICAoAAAAMAgAAACkeMGVA=,aM4xkg== NAL unit 1 string: Z/QAH5GWgPATficBagICAoAAAAMAgAAACkeMGVA= NAL unit: 67f4001f919680f0137e27016a02020280000003008000000a478c1950 0... .... = Forbidden_zero_bit: 0 .11. .... = Nal_ref_idc: 3 ...0 0111 = Nal_unit_type: Sequence parameter set (7) 1111 0100 = Profile_idc: Unknown (244) 0... .... = Constraint_set0_flag: 0 .0.. .... = Constraint_set1_flag: 0 ..0. .... = Constraint_set2_flag: 0 ...0 .... = Constraint_set3_flag: 0 .... 0... = Constraint_set4_flag: 0 .... .0.. = Constraint_set5_flag: 0 .... ..00 = Reserved_zero_2bits: 0 0001 1111 = Level_id: 31 [Level 3.1 14 Mb/s] 1... .... = seq_parameter_set_id: 0 .001 00.. = log2_max_frame_num_minus4: 3 .... ..01 1... .... = pic_order_cnt_type: 2 .001 01.. = num_ref_frames: 4 .... ..1. = gaps_in_frame_num_value_allowed_flag: 1 .... ...0 10.. .... = pic_width_in_mbs_minus1: 1 ..00 0000 1111 000. = pic_height_in_map_units_minus1: 119 .... ...0 = frame_mbs_only_flag: 0 0... .... = mb_adaptive_frame_field_flag: 0 .0.. .... = direct_8x8_inference_flag: 0 ..0. .... = frame_cropping_flag: 0 ...1 .... = vui_parameters_present_flag: 1
As a result, the remaining bits are interpreted incorrectly.
What is the expected correct behavior?
(What you should see instead) The dissector should be able to identify the profile_idc and decode the remaining bits correctly.
Sample capture file
(If possible attach a sample capture file showing this issue)
Relevant logs and/or screenshots
(Paste any relevant logs)
Build information
(In Wireshark, select Help->About Wireshark from the main menu and use the button "Copy To Clipboard". Please paste the complete output here. Or from the command line, run `tshark -v` or `wireshark -v`)
3.4.4 (v3.4.4-0-gc33f6306)
Compiled (64-bit) with Qt 5.15.1, with libpcap, with GLib 2.52.3, with zlib 1.2.11, with SMI 0.4.8, with c-ares 1.15.0, with Lua 5.2.4, with GnuTLS 3.6.3 and PKCS #11 (closed) support, with Gcrypt 1.8.3, with MIT Kerberos, with MaxMind DB resolver, with nghttp2 1.39.2, with brotli, with LZ4, with Zstandard, with Snappy, with libxml2 2.9.9, with QtMultimedia, with automatic updates using WinSparkle 0.5.7, with AirPcap, with SpeexDSP (using bundled resampler), with Minizip.
Running on 64-bit Windows 10 (2004), build 19041, with Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz (with SSE4.2), with 16258 MB of physical memory, with locale English_Canada.utf8, with light display mode, without HiDPI, with Npcap version 1.10, based on libpcap version 1.9.1, with GnuTLS 3.6.3, with Gcrypt 1.8.3, with brotli 1.0.2, without AirPcap, binary plugins supported (21 loaded).
Built using Microsoft Visual Studio 2019 (VC++ 14.28, build 29910). profile_idc1.pcapng