I modified example 3 of "mediasdk-tutorials-0.0.3" (simple encode, from the media sdk for clients) to encode frames delivered over ethernet instead of from a file. When I try to run two of them in paralel (i.e. on two different ports), the first one runs perfectly, but the second one prints:
libva info: VA-API version 0.34.0 libva info: va_getDriverName() returns 1 terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc ERROR: Error 1 (Operation not permitted) on pthread_setschedparam ERROR: Error 1 (Operation not permitted) on pthread_setschedparam Abored (core dumped)
I am running Ubuntu 12.04, on a Intel(R) Core(TM) i7-4790S CPU @ 3.20GHz. How do I create multiple encode pipelines?
Hello there - Thanks for the question. Can you give us some more details - follow this article on what information is useful for us: https://software.intel.com/en-us/forums/topic/531083
Here are some suggestions meantime:
- The sample_multi_transcode sample shows how to transcode multiple streams in parallel. You can use that as baseline to encode multiple streams in parallel.
- In your example above, what does the command line look like? Are you firing two separate simple_encode processes from the command line?
Processor Type: Intel(R) Core(TM) i7-4790S CPU @ 3.20GHz
Driver Version: how do i find this?
Operating System:Ubuntu 12.04
Media SDK System Analyzer: this dosn't appear to come with media sdk for servers, where do i find it?
Quick Reproducer Code: N/A
Concise Description of the Issue: Above
Input File: A test pattern.
Tracer log(if required): what is this?
To run two processes I have two shells open, each one runs a *copy* of the exe with a different port specified.
Any ideas as to what would cause this not to work? Can only one process have a handle on the quick sync hardware at a time? I am fairly certain two copies of "simple_encode" are able to run at the same time on my setup.
Thank you very much for replying. Yesterday I was able to make a breakthrough and although I still do not have it working as to separate processes, I was able to get it working with separate threads using MFXCloneSession. This is sufficient for my needs so although I am still curious as to why two processes don't work, it is academic at this point and I suspect you have better things to do.