SampleTable.cpp: Prevent corrupted stts block from causing
excessive memory allocation.

Details:

DataSource.h
- Added function getVector() for reading from a data source into
  a Vector object, whose capacity grows only as much as needed
  (in case of EOS or reading error).
SampleTable.h
- Changed the type of mTimeToSample from uint32_t* to
  Vector<uint32_t>.
SampleTable.cpp
- In setTimeToSample, modified the code to use getVector()
  instead of readAt(). If the input source has a corrupt
  time-to-sample table size that is too big, EOS will be reached
  before the whole table is read, and the return value from
  getVector() will be false.
- Also, tightened the bound for the provided time-to-sample table
  size to guarantee that the table does not take more than
  UINT_MAX32 bytes in memory.

Bug: 28076789
Change-Id: Id207f369ab7b27787d83f5d8fc48dc53ed9fcdc9
3 files changed