예제 #1
0
C_RESULT video_decode_picture( video_controller_t* controller, vp_api_picture_t* picture, video_stream_t* ex_stream, bool_t* got_image )
{
  vp_api_picture_t blockline = { 0 };

  controller->mode  = VIDEO_DECODE; // mandatory because of video_cache_stream

  blockline                   = *picture;
  blockline.height            = MB_HEIGHT_Y;
  blockline.complete          = 1;
  blockline.vision_complete   = 0;

  while( VP_SUCCEEDED(video_cache_stream( controller, ex_stream )) )
  {
    video_codec_type_select(controller,ex_stream); // to be verified
    video_decode_blockline( controller, &blockline, got_image );
  }

  return C_OK;
}
예제 #2
0
C_RESULT video_decode_blockline( video_controller_t* controller, vp_api_picture_t* blockline, bool_t* got_image )
{
  video_codec_type_select(controller,&controller->in_stream);
  // TODO: choix dynamique de codec, avant de décoder on devrait vérifier la nature de l'image (codec type)
  return controller->video_codec->decode_blockline( controller, blockline, got_image );
}
예제 #3
0
C_RESULT video_decode_blockline( video_controller_t* controller, vp_api_picture_t* blockline, bool_t* got_image )
{
  video_codec_type_select(controller,&controller->in_stream);
  return controller->video_codec->decode_blockline( controller, blockline, got_image );
}