[Ffmpeg-devel] Parallel mpeg4/h264 decoding in same process
Måns Rullgård
mru
Wed Jun 1 00:52:47 CEST 2005
"Dario Souza" <dario at datscom.com.br> writes:
> I have noticed that when trying to do parallel decoding with MPEG4 decoder
> (meaning simultaneous avcodec_decode_video calls, serialized by a global
> mutex), video decoding corrupts the image.
> Note that I am not talking about using the same codec context of course.
> I mean different streams using different AVCodecContext*.
There should be no need to serialize access to different contexts.
> After looking at the code, I could see that (although AVCodecContext holds
> the priv member with the codec specific context that *should* in thesis
> store the codec state), some static variables are being used and that may
> hold state during the decode process.
> If so, even if I serialize all the decoder operations, one stream's
> operation would corrupt other's state. Note that it wouldn't happen if codec
> code accessed only the data that's in the codec specific
> AVCodecContext::priv data (H264Context for instance).
>
> My question is:
>
> 1) Has anyone succeeded in decoding simultaneous streams in the same
> process?
Hmm, I can't recall doing simultaneous decoding of several video
stream streams off-hand. Decoding several audio streams, and
audio+video is more typical usage.
> 2) If I move the static variables that I suspect to be shared among the
> decoding operations, is there a chance to patch it into repository?
Sure, if there's a bug, it should be fixed. Which are the variables
you are thinking of?
--
M?ns Rullg?rd
mru at inprovide.com
More information about the ffmpeg-devel
mailing list