Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/formats/mp4/mp4_stream_parser.h" | 5 #include "media/formats/mp4/mp4_stream_parser.h" |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/callback_helpers.h" | 8 #include "base/callback_helpers.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
| (...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 545 audio_buffers->clear(); | 545 audio_buffers->clear(); |
| 546 video_buffers->clear(); | 546 video_buffers->clear(); |
| 547 return success; | 547 return success; |
| 548 } | 548 } |
| 549 | 549 |
| 550 bool MP4StreamParser::ReadAndDiscardMDATsUntil(const int64 offset) { | 550 bool MP4StreamParser::ReadAndDiscardMDATsUntil(const int64 offset) { |
| 551 bool err = false; | 551 bool err = false; |
| 552 while (mdat_tail_ < offset) { | 552 while (mdat_tail_ < offset) { |
| 553 const uint8* buf; | 553 const uint8* buf; |
| 554 int size; | 554 int size; |
| 555 queue_.PeekAt(mdat_tail_, &buf, &size); | 555 queue_.PeekAt(mdat_tail_, &buf, &size); |
|
DaleCurtis
2014/06/19 00:58:20
drive-by: the above vars should be zero-initializ
wolenetz
2014/06/19 01:21:31
Good point. Done.
| |
| 556 if (!buf) | |
|
acolwell GONE FROM CHROMIUM
2014/06/19 00:57:03
nit: s/!buf/size == 0/ since all the other PeekAt(
wolenetz
2014/06/19 01:21:31
Done (size <= 0)
| |
| 557 return false; | |
| 556 | 558 |
| 557 FourCC type; | 559 FourCC type; |
| 558 int box_sz; | 560 int box_sz; |
| 559 if (!BoxReader::StartTopLevelBox(buf, size, log_cb_, | 561 if (!BoxReader::StartTopLevelBox(buf, size, log_cb_, |
| 560 &type, &box_sz, &err)) | 562 &type, &box_sz, &err)) |
| 561 break; | 563 break; |
| 562 | 564 |
| 563 if (type != FOURCC_MDAT) { | 565 if (type != FOURCC_MDAT) { |
| 564 MEDIA_LOG(log_cb_) << "Unexpected box type while parsing MDATs: " | 566 MEDIA_LOG(log_cb_) << "Unexpected box type while parsing MDATs: " |
| 565 << FourCCToString(type); | 567 << FourCCToString(type); |
| 566 } | 568 } |
| 567 mdat_tail_ += box_sz; | 569 mdat_tail_ += box_sz; |
| 568 } | 570 } |
| 569 queue_.Trim(std::min(mdat_tail_, offset)); | 571 queue_.Trim(std::min(mdat_tail_, offset)); |
| 570 return !err; | 572 return !err; |
| 571 } | 573 } |
| 572 | 574 |
| 573 void MP4StreamParser::ChangeState(State new_state) { | 575 void MP4StreamParser::ChangeState(State new_state) { |
| 574 DVLOG(2) << "Changing state: " << new_state; | 576 DVLOG(2) << "Changing state: " << new_state; |
| 575 state_ = new_state; | 577 state_ = new_state; |
| 576 } | 578 } |
| 577 | 579 |
| 578 } // namespace mp4 | 580 } // namespace mp4 |
| 579 } // namespace media | 581 } // namespace media |
| OLD | NEW |