[pjsip] Bug in H264 decode buffer size

Bill Gardner billg at wavearts.com
Thu May 22 14:58:40 EDT 2014

It worked for me. I've set the default at 720x576 and I'm able to 
connect to a 4CIF endpoint at level 3.0. Note that find_highest_res 
calculates the maximum picture size in macroblocks not by reading a 
constant from a table (which it probably should do) but by reading the 
max macroblocks per second and dividing it by the frame rate in the 
codec table. So if you set the frame rate too high for the profile level 
it would use a smaller picture size than maximum.

Easiest way to debug is to put a break in find_highest_res and see how 
it calculates the frame size.



On 5/22/2014 1:36 PM, Eeri Kask wrote:
> On Wed, 21 May 2014 13:54:36 -0400, Bill Gardner:
>> So to safely connect to other H264 endpoints at level 3.0,
>> I think the ffmpeg table should use 720x576. I will try that.
> Did you succeed in trying that?  I failed.
> I tested levels 42000a, 42000b, 420016 and all of them fail to transmit
> the maximum number of macroblocks (99, 396, 1620 respctively); in pixels:
>      176x144
>      352x288
>      720x576
> by reporting errors about "... not enough buffer for decoded frame
> (supplied=XXXX, required=YYYY)".
> For the smallest size, 42000a with 99 macroblocks as maximum I could
> successfully transfer 75x1 macroblock video (1200x16 pixel), which is
> 75% of the "theoretical" limit of 99x1 (1584x16 pixel).
> Whats wrong with the memory management? :-)
>      Eeri Kask
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

More information about the pjsip mailing list