I think this could be improved slightly as follows:
```
if (fileId < 0)
  fileId = GetFileId(item);

if (fileId < 0)
  return false;

// have a file id, get stream details if available (creates tag either way)
item.GetVideoInfoTag()->m_iFileId = fileId;
return GetStreamDetails(*item.GetVideoInfoTag());
```