I don't mean to be rude, but can somebody confirm my impression please?
In my organization we use IPP for tv broadcast stuff and I've been fighting with MPEG2Muxer to get it to produce something that works. I've been on this task for more than a month (part time) and so far my only colcnlusion that it was very wrond decision to use IPP for this task.
I'll give more info on what I'm trying to do. I simply need to generate Mpeg2 TS (Transport Stream) with H264 video and AAC audio. For all these tasks we use IPP. The problem was that some hardware receivers after some playback time start to choke. At first I started to fix some stuff, writing new code to properly stuff the TS stream with NULL packets to acchieve constant bitrate, but still we have problems. So, I started to go more into bitstream looking for problems. The problem that I'm seeing now is that after a few minutes of muxing PCR time-stamp runs aways from PTS stamps of audio or video streams. I tried to step through the code, but it's pretty messy to understand and I didn't want to bother with that. Then I tried to set muxrate to 0, to make it simply mux whatever I pass and what I see inside the code is complete disaster, complete assumption that there has to be some bitrate for TS stream (and if I specify 0, then it randomly sets 100kpbs and 1mbp for audio and video respectively). Probably, with som state of the art codecs (like x264) I can select constant bitrate and trust the encoder and tell the muxer about bitrate, but it just doesn't work that well with H264.
I've used libs from ffmpeg/x264 and so far IPP stuff seems to be pretty inferior to these libs. TS muxer code is broken (or, it's just sample code, as it's called), performance of the encoder is uncomparable to x264 (It just happened that my dev box runs AMD is that the reason for very bad performance?, customers use intel-based servers, anyways, so it's not a big deal).
So, anybody from IPP team can comment on TSMuxer code, is it usable, or it was just made for some constant video bitrate scenario where it worked and ... that's it? The thing is that it's much bigger than relevant ts-muxer code from ffmpeg or other libs, but it doesn't do simplest tasks properly. After fighting it for a long time I turned to ffmpeg muxer code, ripped it from there, tried it... and right away it works and produces stream that plays on my reference HW box. Also, the tsMuxeR from VideoHelp does the job right.
I guess, i'm not he only one compalining about tsmuxer code, perhaps somebody could direct me to similar posts with suggestions or, maybe, some other code samples that do it properly.