Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / media / formats / mp4 / mp4_stream_parser.cc
index b5ab62d..809bd82 100644 (file)
@@ -17,6 +17,7 @@
 #include "media/formats/mp4/box_reader.h"
 #include "media/formats/mp4/es_descriptor.h"
 #include "media/formats/mp4/rcheck.h"
+#include "media/formats/mpeg/adts_constants.h"
 
 namespace media {
 namespace mp4 {
@@ -384,11 +385,11 @@ bool MP4StreamParser::PrepareAACBuffer(
   // not required to use subsample encryption, so we may need to add an entry.
   if (subsamples->empty()) {
     SubsampleEntry entry;
-    entry.clear_bytes = AAC::kADTSHeaderSize;
-    entry.cypher_bytes = frame_buf->size() - AAC::kADTSHeaderSize;
+    entry.clear_bytes = kADTSHeaderMinSize;
+    entry.cypher_bytes = frame_buf->size() - kADTSHeaderMinSize;
     subsamples->push_back(entry);
   } else {
-    (*subsamples)[0].clear_bytes += AAC::kADTSHeaderSize;
+    (*subsamples)[0].clear_bytes += kADTSHeaderMinSize;
   }
   return true;
 }
@@ -497,9 +498,15 @@ bool MP4StreamParser::EnqueueSample(BufferQueue* audio_buffers,
         new DecryptConfig("1", "", std::vector<SubsampleEntry>()));
   }
 
+  StreamParserBuffer::Type buffer_type = audio ? DemuxerStream::AUDIO :
+      DemuxerStream::VIDEO;
+
+  // TODO(wolenetz/acolwell): Validate and use a common cross-parser TrackId
+  // type and allow multiple tracks for same media type, if applicable. See
+  // https://crbug.com/341581.
   scoped_refptr<StreamParserBuffer> stream_buf =
-    StreamParserBuffer::CopyFrom(&frame_buf[0], frame_buf.size(),
-                                 runs_->is_keyframe());
+      StreamParserBuffer::CopyFrom(&frame_buf[0], frame_buf.size(),
+                                   runs_->is_keyframe(), buffer_type, 0);
 
   if (decrypt_config)
     stream_buf->set_decrypt_config(decrypt_config.Pass());