Ticket #2062: 2062-0.10.patch

File 2062-0.10.patch, 1.5 KB (added by jyavenard, 3 years ago)

Patch for 0.10 (applies for 0.9 with fuzzy)

  • libavcodec/h264.c

    diff --git a/libavcodec/h264.c b/libavcodec/h264.c
    index 805dd06..c9c5e51 100644
    a b static int decode_slice_header(H264Context *h, H264Context *h0){ 
    29892989               h->frame_num != (h->prev_frame_num + 1) % (1 << h->sps.log2_max_frame_num)) { 
    29902990            Picture *prev = h->short_ref_count ? h->short_ref[0] : NULL; 
    29912991            av_log(h->s.avctx, AV_LOG_DEBUG, "Frame num gap %d %d\n", h->frame_num, h->prev_frame_num); 
     2992            if (!h->sps.gaps_in_frame_num_allowed_flag) 
     2993                for(i=0; i<FF_ARRAY_ELEMS(h->last_pocs); i++) 
     2994                    h->last_pocs[i] = INT_MIN; 
    29922995            if (ff_h264_frame_start(h) < 0) 
    29932996                return -1; 
    29942997            h->prev_frame_num++; 
  • libavcodec/h264_refs.c

    diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c
    index 926a6cc..c08c40b 100644
    a b int ff_h264_decode_ref_pic_list_reordering(H264Context *h){ 
    287287    for(list=0; list<h->list_count; list++){ 
    288288        for(index= 0; index < h->ref_count[list]; index++){ 
    289289            if (!h->ref_list[list][index].f.data[0]) { 
     290                int i; 
    290291                av_log(h->s.avctx, AV_LOG_ERROR, "Missing reference picture\n"); 
     292                for (i=0; i<FF_ARRAY_ELEMS(h->last_pocs); i++) 
     293                    h->last_pocs[i] = INT_MIN; 
    291294                if (h->default_ref_list[list][0].f.data[0]) 
    292295                    h->ref_list[list][index]= h->default_ref_list[list][0]; 
    293296                else