[vlc-commits] packetizer: hevc: check before replacing xps
Francois Cartegnie
git at videolan.org
Fri Feb 2 15:50:24 CET 2018
vlc/vlc-3.0 | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Tue Jan 30 14:14:00 2018 +0100| [be9603be709348c60cdd66d7b6362bc2143d33e9] | committer: Jean-Baptiste Kempf
packetizer: hevc: check before replacing xps
(cherry picked from commit b6ebaba1a1f0c80392170124e94f63eccb7ddfd8)
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=be9603be709348c60cdd66d7b6362bc2143d33e9
---
modules/packetizer/hevc.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/modules/packetizer/hevc.c b/modules/packetizer/hevc.c
index d5c6b11f14..ec8873af7c 100644
--- a/modules/packetizer/hevc.c
+++ b/modules/packetizer/hevc.c
@@ -375,6 +375,19 @@ static bool InsertXPS(decoder_t *p_dec, uint8_t i_nal_type, uint8_t i_id,
return false;
}
+ /* Check if we really need to re-decode/replace */
+ if(*pp_nal)
+ {
+ const uint8_t *p_stored = (*pp_nal)->p_buffer;
+ size_t i_stored = (*pp_nal)->i_buffer;
+ hxxx_strip_AnnexB_startcode(&p_stored, &i_stored);
+ const uint8_t *p_new = p_nalb->p_buffer;
+ size_t i_new = p_nalb->i_buffer;
+ hxxx_strip_AnnexB_startcode(&p_new, &i_new);
+ if(i_stored == i_new && !memcmp(p_stored, p_new, i_new))
+ return true;
+ }
+
/* Free associated decoded version */
if(*pp_decoded)
{
More information about the vlc-commits
mailing list