LCOV - code coverage report
Current view: top level - media/libstagefright/binding - BufferStream.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 0 29 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 10 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* This Source Code Form is subject to the terms of the Mozilla Public
       2             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       3             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       4             : 
       5             : #include "mp4_demuxer/BufferStream.h"
       6             : #include "MediaData.h"
       7             : #include "MediaResource.h"
       8             : #include <algorithm>
       9             : 
      10             : using namespace mozilla;
      11             : 
      12             : namespace mp4_demuxer {
      13             : 
      14           0 : BufferStream::BufferStream()
      15             :   : mStartOffset(0)
      16           0 :   , mData(new mozilla::MediaByteBuffer)
      17             : {
      18           0 : }
      19             : 
      20           0 : BufferStream::BufferStream(mozilla::MediaByteBuffer* aBuffer)
      21             :   : mStartOffset(0)
      22           0 :   , mData(aBuffer)
      23             : {
      24           0 : }
      25             : 
      26           0 : BufferStream::~BufferStream()
      27             : {
      28           0 : }
      29             : 
      30             : /*virtual*/ bool
      31           0 : BufferStream::ReadAt(int64_t aOffset, void* aData, size_t aLength,
      32             :                      size_t* aBytesRead)
      33             : {
      34           0 :   if (aOffset < mStartOffset || aOffset > mStartOffset + mData->Length()) {
      35           0 :     return false;
      36             :   }
      37           0 :   *aBytesRead =
      38           0 :     std::min(aLength, size_t(mStartOffset + mData->Length() - aOffset));
      39           0 :   memcpy(aData, mData->Elements() + aOffset - mStartOffset, *aBytesRead);
      40           0 :   return true;
      41             : }
      42             : 
      43             : /*virtual*/ bool
      44           0 : BufferStream::CachedReadAt(int64_t aOffset, void* aData, size_t aLength,
      45             :                            size_t* aBytesRead)
      46             : {
      47           0 :   return ReadAt(aOffset, aData, aLength, aBytesRead);
      48             : }
      49             : 
      50             : /*virtual*/ bool
      51           0 : BufferStream::Length(int64_t* aLength)
      52             : {
      53           0 :   *aLength = mStartOffset + mData->Length();
      54           0 :   return true;
      55             : }
      56             : 
      57             : /* virtual */ void
      58           0 : BufferStream::DiscardBefore(int64_t aOffset)
      59             : {
      60           0 :   if (aOffset > mStartOffset) {
      61           0 :     mData->RemoveElementsAt(0, aOffset - mStartOffset);
      62           0 :     mStartOffset = aOffset;
      63             :   }
      64           0 : }
      65             : 
      66             : bool
      67           0 : BufferStream::AppendBytes(const uint8_t* aData, size_t aLength)
      68             : {
      69           0 :   return mData->AppendElements(aData, aLength, fallible);
      70             : }
      71             : 
      72             : MediaByteRange
      73           0 : BufferStream::GetByteRange()
      74             : {
      75           0 :   return MediaByteRange(mStartOffset, mStartOffset + mData->Length());
      76             : }
      77             : }

Generated by: LCOV version 1.13