Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

H.264 decoder help

bcisrd
Beginner
945 Views

I have a bit of a weird problem, and I’m wondering if anyone could help. My company has written an application that connects to IP cameras on the network (using RTSP) and decodes H.264 streams based on Intel’s IPP samples.  To support this, there are multiple UMC::H264VideoDecoder objects created per IP camera connection. Each time a video view is dropped its associated H264 decoder is freed, and a new instance will be created on next selected camera view.  The weird problem is, when closing a view and releasing associated H.264 decoder 1 of the other active stream’s image freezes on 1 frame, while other active stream’s images continue working without issue.  Then if a new camera view is connected the frozen image picks back up displaying current time images, meaning the frozen image does not unfreeze, but skips a head to current time and continues to play without issue.

While in this weird state, I captured the raw compress data, by writing it to files, just before passing it to decoder, and captured the resulting YUY2 frame returned by the decoder.  Playing the captured data back, the location where the image is frozen in the application plays properly from the raw compressed data, but the YUY2 data demonstrates like the application, proving that the problem is somehow related to the decoder.  Furthermore, this state only happens with 1 particular network camera. It does not matter the order or when a camera view is dropped. This 1 camera view always freezes on 1 frame.

 I edited the application where the UMC::H264VideoDecoder instance is not freed, and this problem does to happen.  Why would closing a one instance effect another instance? I’m unsure what more information I can provide to the Forum.  Any thoughts or advice is appreciated.

Visual studio 2008

IPP version 7.0.4.196_ia32.

samples used are w_ipp-samples_p_7.0.4.054

////////////////////////////////////////////////////////////////////////

UMC::H264VideoDecoder       *m_pvidDecoder;

if(m_pvidDecoder)

{

  m_pvidDecoder->Reset ();

  m_pvidDecoder->Close ();

  delete m_pvidDecoder;

}

m_pvidDecoder  = NULL;

0 Kudos
2 Replies
bcisrd
Beginner
945 Views
I upgraded to lattest IPP version and used samples w_ipp-samples_p_7.1.0.011 and the problem does not occur.
0 Kudos
Ying_H_Intel
Employee
945 Views

Hi Bcisrd,

Thanks a lot for the updating. Just guess, some bug fix in H.264 happen to fix your problem too.

Here is IPP 7.0 bug list, http://software.intel.com/en-us/articles/intel-ipp-70-library-bug-fixes,

the related bug is like DPD200215155 UMC H.264 codec hangs when closing  (many iteration of open and close)  A race condition causes a wrong attempt to signal and use Event Objects before event initialization is completed when the H264 thread initialization is called.

Best Regards,

Ying

0 Kudos
Reply