14 Commits

Author SHA1 Message Date
Qiu Jianlin
abadbce1fa Update is_first_packet_in_frame flag in H.265 depacketizer
Follow H.265 spec section 7.4.2.4.4 to set is_first_packet_in_frame flag
in rtp header, to make sure we only set it to true when corresponding
NALU can be the first NALU in a frame.

Bug: chromium:384391181
Change-Id: I082c38513d9d213f8d354633539028b57777368f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/372742
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43651}
2025-01-03 05:07:21 -08:00
Florent Castelli
8037fc6ffa Migrate absl::optional to std::optional
Bug: webrtc:342905193
No-Try: True
Change-Id: Icc968be43b8830038ea9a1f5f604307220457807
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361021
Auto-Submit: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42911}
2024-09-02 12:16:47 +00:00
Qiu Jianlin
fd98638726 Check empty slice in H.265 bitstream parser.
This is cherry-picked from WebKit's PR by youenn@apple.com. The original
PR: https://github.com/WebKit/WebKit/pull/31525

Bug: chromium:41480904
Change-Id: I69c7c8d5842a576fa18432fb9f85c6890b47f3ed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/358200
Commit-Queue: Jianlin Qiu <jianlin.qiu@intel.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42708}
2024-08-01 08:57:39 +00:00
Sergio Garcia Murillo
45e5e385f3 Use ArrayView on H264 bitstream parsing
No-Try: true
Bug: webrtc:42225170
Change-Id: I4682f400054fee5c86ea24bebf6d703fb90074da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/354722
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42650}
2024-07-19 08:16:11 +00:00
Qiu Jianlin
d9c1b335b7 Remove wrong range check for CurrRpsIdx and fix its naming.
CurrRpsIdx value is specified in spec section 7.4.7.1. CurrRpsIdx can be
non-zero and the check here makes no sense.

Bug: webrtc:13485
Change-Id: Ie7b7fab3286fdb812fca7aaf6f68bb5a8df81386
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/347764
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42122}
2024-04-19 13:56:24 +00:00
Qiu Jianlin
c32a509da0 Export h.265 bitstream parser APIs.
This exports neccessary API as dependency for h.265 parameter sets tracker to be submitted at CL:5307256.

Bug: webrtc:13485
Change-Id: I042599472f17d12ece4fa862c3715497502a5d76
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/340004
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Jianlin Qiu <jianlin.qiu@intel.com>
Cr-Commit-Position: refs/heads/main@{#41814}
2024-02-27 01:36:42 +00:00
Qiu Jianlin
cc83e32cdb Fix H.265 bitstream parser incorrect PPS reference.
H.265 bitstream parser currently always assume pps id to be 0 when
calculating the last slice QP. This assumption is incorrect.

Bug: webrtc:13485
Change-Id: I06918df035e8e4a8e68eb3002a49b824ffd5f516
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/337080
Commit-Queue: Jianlin Qiu <jianlin.qiu@intel.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41636}
2024-01-31 06:54:00 +00:00
qwu16
f43e8ebab9 Add RTP depacketizer for H265
1. Depacketize single nalu packet/AP/FU

2. Insert start code before each nalu

Bug: webrtc:13485
Change-Id: I8346f9c31e61e5d3c2c7e1bf5fdaae4018a1ff78
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325660
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41628}
2024-01-29 12:00:19 +00:00
qwu16
a9ef127f6f Fix fuzzing issue for h265 bitstream parser
Bug: chromium:1513102
Change-Id: Ib78ecd349d4353f5729188ab2d16b9cf81043cad
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/333942
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41579}
2024-01-19 16:34:15 +00:00
qwu16
bd396fdffa Add rtp packetizer for H265
Bug: webrtc:13485
Change-Id: I4e7e29a7661d51e12bb2ee12e319f6cef49482d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/318005
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41107}
2023-11-08 15:49:37 +00:00
qwu16
8db8824536 Fix use-of-uninitialized-value and integer-overflow issues reported by chromium fuzz testing
Bug: chromium:1485906,chromium:1486414
Change-Id: Ia976926fb08405c1cb03bbcfde07d2076bd6f4c2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/321545
Reviewed-by: Erik Språng <sprang@google.com>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40861}
2023-10-03 14:17:06 +00:00
qwu16
8be04f459b Fix fuzzing issue reported by Chromium fuzzing test
Bug: chromium:1475195, chromium:1475944, chromium:1475909
Change-Id: Iaa9dc6570a8b70ec58efe0a64d468e1cae4cb484
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/317504
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40696}
2023-09-05 09:29:27 +00:00
qwu16
a586d4eccc Fix fuzzing test issues reported by Chromium fuzzing test
Bug: chromium:1474155,chromium:1474156
Change-Id: I382bdcc0a70f1e5c5f5b0b76206cabf8c37502e8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/317126
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40596}
2023-08-22 13:08:39 +00:00
qwu16
972f28335a Added HEVC parser for WebRTC
This is part of effort to enable HEVC for WebRTC. Parser added here to support parsing of QP/picture size for bitstream, for dynamic adaptation and stream metadata abstraction.

Bug: webrtc:13485
Change-Id: I2fbdf210e72e77989ca87ce285da174df5bedd5c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/298421
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40572}
2023-08-18 17:48:11 +00:00