Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(414)

Unified Diff: media/formats/mp2t/es_parser_h264.cc

Issue 447963003: Introduce DecodeTimestamp class to make it easier to distiguish presentation and decode timestamps. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/formats/mp2t/es_parser_h264.cc
diff --git a/media/formats/mp2t/es_parser_h264.cc b/media/formats/mp2t/es_parser_h264.cc
index f2c166cf8cc6e632c9c06d254e8b90daae747925..f5b87e6284b49d0ed5a97083be2545da29a06a13 100644
--- a/media/formats/mp2t/es_parser_h264.cc
+++ b/media/formats/mp2t/es_parser_h264.cc
@@ -39,7 +39,7 @@ EsParserH264::~EsParserH264() {
bool EsParserH264::Parse(const uint8* buf, int size,
base::TimeDelta pts,
- base::TimeDelta dts) {
+ DecodeTimestamp dts) {
// Note: Parse is invoked each time a PES packet has been reassembled.
// Unfortunately, a PES packet does not necessarily map
// to an h264 access unit, although the HLS recommendation is to use one PES
@@ -53,7 +53,8 @@ bool EsParserH264::Parse(const uint8* buf, int size,
if (pts != kNoTimestamp()) {
TimingDesc timing_desc;
timing_desc.pts = pts;
- timing_desc.dts = (dts != kNoTimestamp()) ? dts : pts;
+ timing_desc.dts = (dts != kNoDecodeTimestamp()) ? dts :
+ DecodeTimestamp::FromPresentationTime(pts);
// Link the end of the byte queue with the incoming timing descriptor.
timing_desc_list_.push_back(
@@ -231,7 +232,7 @@ bool EsParserH264::ParseInternal() {
bool EsParserH264::EmitFrame(int64 access_unit_pos, int access_unit_size,
bool is_key_frame, int pps_id) {
// Get the access unit timing info.
- TimingDesc current_timing_desc = {kNoTimestamp(), kNoTimestamp()};
+ TimingDesc current_timing_desc = {kNoDecodeTimestamp(), kNoTimestamp()};
while (!timing_desc_list_.empty() &&
timing_desc_list_.front().first <= access_unit_pos) {
current_timing_desc = timing_desc_list_.front().second;
@@ -332,4 +333,3 @@ bool EsParserH264::UpdateVideoDecoderConfig(const H264SPS* sps) {
} // namespace mp2t
} // namespace media
-

Powered by Google App Engine
This is Rietveld 408576698