[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