Community
cancel
Showing results for
Did you mean:
New Contributor I
50 Views

## H264 encoding

Dear all,

two questions regarding H264 decoding.

1. We are testing a h264 decoder that we originally took from IPP 6.0 (including sample code) and it works very well. Now I came accross this article http://software.intel.com/en-us/articles/intel-ipp-library-61-fixes-list/ with the issue DPD200134487 described as UMC H264 parser memory leak. Does it mean, that every h264 decoder based on Ipp 6.0 is leaking memory? We have not observed this behaviour so far,where can we find more information about this issue?

2. Question to Vladimir. There is an old thread http://software.intel.com/en-us/forums/showthread.php?t=63540&o=a&s=lr regarding an issue we had in the past with H264 decoding whichwas finally tracked down by an intel expert to a corrupted h264 stream. We inspected the attached H264 frame (attached to the original thread) but could not find any problem with the stream (SPS header and VUI). Is it possible to describe in more detail what exactly is corrupted in the stream?

Best regards
Alex
3 Replies
Employee
50 Views
Hello Alex,

Regards,

Paul

- - - - DPD200134487 detailed description - - - -

This bug was identified in IPP 6.0 and corrected in the initial release of IPP 6.1.

There is a memory leak in the UMC H264 parser implementation. The parsing structures overwrite their std::vector's base class with zeros, thus preventing std::vector from freeing its memory. The fix follows. It simply avoids overwriting the STL vector which has already been initialized by its own constructor.

--- audio-video-codecs\codec\h264_spl\include\umc_h264_parse_def.h +++ audio-video-codecs\codec\h264_spl\include\umc_h264_parse_def.h @@ -93,7 +93,7 @@ H264SequenceSetParse() { - memset(this, 0, sizeof(H264SequenceSetParse)); + memset(this, 0, sizeof(*this) - sizeof(buffer)); } }; @@ -112,7 +112,7 @@ H264PictureSetParse() { - memset(this, 0, sizeof(H264PictureSetParse)); + memset(this, 0, sizeof(*this) - sizeof(buffer)); } }; @@ -138,8 +138,7 @@ H264SliceHeaderParse() { - memset(this, 0, sizeof(H264SliceHeaderParse)); - is_valid = false; + memset(this, 0, sizeof(*this)); } }; } // namespace UMC
Employee
50 Views
Hello Alex,