Chromium Code Reviews| Index: media/mp2t/es_parser_h264.cc |
| diff --git a/media/mp2t/es_parser_h264.cc b/media/mp2t/es_parser_h264.cc |
| index 48519c786fc46c66202d298726fbab990eefdf0f..643d12aaaa139f4c70c11b9d2ce1a32a3e835540 100644 |
| --- a/media/mp2t/es_parser_h264.cc |
| +++ b/media/mp2t/es_parser_h264.cc |
| @@ -216,7 +216,7 @@ bool EsParserH264::ParseInternal() { |
| // Emit a frame if needed. |
| if (nal_unit_type == kNalUnitTypeAUD) |
| - EmitFrameIfNeeded(es_pos_); |
| + RCHECK(EmitFrameIfNeeded(es_pos_)); |
| // Skip the syncword. |
| es_pos_ += syncword_length; |
| @@ -225,21 +225,25 @@ bool EsParserH264::ParseInternal() { |
| return true; |
| } |
| -void EsParserH264::EmitFrameIfNeeded(int next_aud_pos) { |
| +bool EsParserH264::EmitFrameIfNeeded(int next_aud_pos) { |
| // There is no current frame: start a new frame. |
| if (current_access_unit_pos_ < 0) { |
| StartFrame(next_aud_pos); |
| - return; |
| + return true; |
| } |
| // Get the access unit timing info. |
| - TimingDesc current_timing_desc; |
| + TimingDesc current_timing_desc = {kNoTimestamp(), kNoTimestamp()}; |
| + |
|
damienv1
2014/01/16 01:05:54
nit: blank line not needed (otherwise the previous
|
| while (!timing_desc_list_.empty() && |
| timing_desc_list_.front().first <= current_access_unit_pos_) { |
| current_timing_desc = timing_desc_list_.front().second; |
| timing_desc_list_.pop_front(); |
| } |
| + if (current_timing_desc.pts == kNoTimestamp()) |
| + return false; |
| + |
| // Emit a frame. |
| int raw_es_size; |
| const uint8* raw_es; |
| @@ -256,6 +260,7 @@ void EsParserH264::EmitFrameIfNeeded(int next_aud_pos) { |
| // Set the current frame position to the next AUD position. |
| StartFrame(next_aud_pos); |
| + return true; |
| } |
| void EsParserH264::StartFrame(int aud_pos) { |