[Libva] problem with encoding with vaapi

Xiang, Haihao haihao.xiang at intel.com
Thu Feb 28 22:56:57 PST 2013


You can encode a stream with I frame only by avcenc.  could you give a
try ? 

Thanks
Haihao 


> I am trying to encode bitstreams from a YUV file same way as avcenc
> does, I followed pretty much all the steps in my code except I am
> forcing I-frame only, but my file won't play on mplayer and error out
> with messages like : 
> 
> FPS forced to be 30.000  (ftime: 0.033).
> Starting playback...
> [h264 @ 0x7ffff1591a80]top block unavailable for requested intra4x4
> mode -1 at 0 0
> [h264 @ 0x7ffff1591a80]error while decoding MB 0 0, bytestream (60613)
> [h264 @ 0x7ffff1591a80]concealing 1584 DC, 1584 AC, 1584 MV errors
> VDec: vo config request - 704 x 576 (preferred colorspace: Planar
> YV12)
> VDec: using Planar YV12 as output csp (no 0)
> Movie-Aspect is undefined - no prescaling applied.
> VO: [xv] 704x576 => 704x576 Planar YV12 
> [h264 @ 0x7ffff1591a80]top block unavailable for requested intra4x4
> mode -1 at 0 0
> [h264 @ 0x7ffff1591a80]error while decoding MB 0 0, bytestream (59875)
> [h264 @ 0x7ffff1591a80]mmco: unref short failure
> [h264 @ 0x7ffff1591a80]concealing 1584 DC, 1584 AC, 1584 MV errors
> [h264 @ 0x7ffff1591a80]number of reference frames exceeds max
> (probably corrupt input), discarding one
> [h264 @ 0x7ffff1591a80]top block unavailable for requested intra4x4
> mode -1 at 0 0
> [h264 @ 0x7ffff1591a80]error while decoding MB 0 0, bytestream (59896)
> 
> 
> 
> I stepped thru the libav code to find where its having issues and
> problem is in this function: 
> 
> int ff_h264_check_intra4x4_pred_mode(H264Context *h){
>     MpegEncContext * const s = &h->s;
>     static const int8_t top [12]= {-1, 0,LEFT_DC_PRED,-1,-1,-1,-1,-1,
> 0};
>     static const int8_t left[12]= { 0,-1, TOP_DC_PRED, 0,-1,-1,-1,
> 0,-1,DC_128_PRED};
>     int i;
> 
>     if(!(h->top_samples_available&0x8000)){
>         for(i=0; i<4; i++){
>             int status= top[ h->intra4x4_pred_mode_cache[scan8[0] + i]
> ];
>             if(status<0){
>                 av_log(h->s.avctx, AV_LOG_ERROR, "top block
> unavailable for requested intra4x4 mode %d at %d %d\n", status,
> s->mb_x, s->mb_y);
>                 return -1;
>             } else if(status){
>                 h->intra4x4_pred_mode_cache[scan8[0] + i]= status;
>             }
>         }
>     }
> 
> 
> > p i
> > 2
> 
> > p  status 
> > -1 
> 
> > p   h->intra4x4_pred_mode_cache[scan8[0] + i]
> > 6
> 
> 
> My question is what would cause something like this? When I look at
> the bitstream, it all looks normal, the headers look ok.
> 
> 
> Ratin
> 
> 
> 
> _______________________________________________
> Libva mailing list
> Libva at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/libva




More information about the Libva mailing list