I'm not entirely sure about the folder thing, although I can't think of a scenario right now. I do think this seems slightly better:

if (!HasVideoInfoTag() || !GetVideoInfoTag()->HasStreamDetails()) // no stream details
{
  if ((HasVideoInfoTag() && GetVideoInfoTag()->m_iFileId >= 0) // file (or maybe folder) is in the database
  || (IsVideo(true)) // some other video file for which we haven't yet got any database details
    // grab them there streamdetails from the db.
}

Agreed?