Home | History | Annotate | Download | only in base
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef MEDIA_BASE_STREAM_PARSER_BUFFER_H_
      6 #define MEDIA_BASE_STREAM_PARSER_BUFFER_H_
      7 
      8 #include "media/base/decoder_buffer.h"
      9 #include "media/base/media_export.h"
     10 
     11 namespace media {
     12 
     13 class MEDIA_EXPORT StreamParserBuffer : public DecoderBuffer {
     14  public:
     15   // Value used to signal an invalid decoder config ID.
     16   enum { kInvalidConfigId = -1 };
     17 
     18   static scoped_refptr<StreamParserBuffer> CreateEOSBuffer();
     19   static scoped_refptr<StreamParserBuffer> CopyFrom(
     20       const uint8* data, int data_size, bool is_keyframe);
     21   static scoped_refptr<StreamParserBuffer> CopyFrom(
     22       const uint8* data, int data_size,
     23       const uint8* side_data, int side_data_size, bool is_keyframe);
     24   bool IsKeyframe() const { return is_keyframe_; }
     25 
     26   // Decode timestamp. If not explicitly set, or set to kNoTimestamp(), the
     27   // value will be taken from the normal timestamp.
     28   base::TimeDelta GetDecodeTimestamp() const;
     29   void SetDecodeTimestamp(const base::TimeDelta& timestamp);
     30 
     31   // Gets/sets the ID of the decoder config associated with this
     32   // buffer.
     33   int GetConfigId() const;
     34   void SetConfigId(int config_id);
     35 
     36  private:
     37   StreamParserBuffer(const uint8* data, int data_size,
     38                      const uint8* side_data, int side_data_size,
     39                      bool is_keyframe);
     40   virtual ~StreamParserBuffer();
     41 
     42   bool is_keyframe_;
     43   base::TimeDelta decode_timestamp_;
     44   int config_id_;
     45   DISALLOW_COPY_AND_ASSIGN(StreamParserBuffer);
     46 };
     47 
     48 }  // namespace media
     49 
     50 #endif  // MEDIA_BASE_STREAM_PARSER_BUFFER_H_
     51