[mythtv] Typo in ffmpeg h264 parser?

John Pilkington johnpilk222 at gmail.com
Wed Apr 25 19:14:54 UTC 2018


Hello:  When I feed h264 from UK DVB-T2 recordings into ffmpeg I almost 
always get error reports of 'illegal reordering of pic_nums_idc' or 
'reference count overflow.' I'm running 30-pre-579

These reports apparently come from libavcodec/h264_parser.c, lines 186 
and 194, and the if/else if combination at lines 182/184 looks very strange.

                    unsigned int reordering_of_pic_nums_idc = 
get_ue_golomb_31(gb);

                     if (reordering_of_pic_nums_idc < 3)
                         get_ue_golomb_long(gb);
                     else if (reordering_of_pic_nums_idc > 3) {

while libavcodec/golomb.h has this at line 82:

/**
  * read unsigned exp golomb code, constraint to a max of 31.
  * the return value is undefined if the stored value exceeds 31.
  */
static inline int get_ue_golomb_31(GetBitContext *gb)
{

I think that the '3' in the 'else if' line in the parser should be 31; 
any comments?  Suggested action?  I haven't yet tried a patch.

John P






More information about the mythtv-dev mailing list