Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

Multi-channel transcoding questions

Robby_S
New Contributor I
229 Views

Greetings,

So I got my multi-channel video surveillance system running. Below is what it looks like, where each channel is an MSDKThread and an MFX session. 

                             stage 0           stage 1                  stage 2                       stage 3                     stage 4                         stage 5
Channel 0:        Bit-stream file -> Decode -> Video Pre-processing -> Activity detection -> (if detected) Encode -> Output bit-stream file
                ...
Channel (N-1):  Bit-stream file -> Decode -> Video Pre-processing -> Activity detection -> (if detected) Encode -> Output bit-stream file

Both the decoders and encoders are MFX_CODEC_AVC and implemented with MSDK calls. Each channel has its own surface frame buffers.

There is one bug that puzzles me. 

In single channel tests, if I test with channel 0, which has activities, the output bit-stream file records the scenes where activities happen, as expected. If I test with channel 1, which has no activity, the output bit-stream file is empty, as expected. 

However, if I test with two channels simultaneously, channel 0's output bit-stream is not identical to that generated in the single channel test. Moreover, channel 1's output-stream file is no longer empty, but contains some seemingly random background.

Unfortunately, the two channels have the same background, so I can't easily tell whether channel 1 falsely records some frames from its own, or from channel 0.

Obviously, I need to test with two channels that have different backgrounds to confirm. But for saving time's sake, I am also posting my questions here: Is it possible, that after stage 1, channel 0's surface frame buffers could somehow get sent to channel 1, or vice versa? If so, what I need to do to prevent this from happening?

Thanks,

Robby

0 Kudos
1 Reply
Sravanthi_K_Intel
229 Views

Hello Robby - If each of your channel is implemented as a separate session, such pollution should not occur. To ensure that, can you remove the activity detection stage from your pipeline and ensure each channel's output is correct when run concurrently? 

0 Kudos
Reply