Chromium Code Reviews| 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 691678ce81ebd49fb9b3a099c306de3412f11e99..a290f86e2e11553b44762a1ba5d389f0bf65b1e2 100644 |
| --- a/media/formats/mp2t/es_parser_h264.cc |
| +++ b/media/formats/mp2t/es_parser_h264.cc |
| @@ -12,6 +12,7 @@ |
| #include "media/base/video_frame.h" |
| #include "media/filters/h264_parser.h" |
| #include "media/formats/common/offset_byte_queue.h" |
| +#include "media/formats/mp2t/es_adapter_video.h" |
| #include "media/formats/mp2t/mp2t_common.h" |
| #include "ui/gfx/rect.h" |
| #include "ui/gfx/size.h" |
| @@ -28,6 +29,8 @@ EsParserH264::EsParserH264( |
| const EmitBufferCB& emit_buffer_cb) |
| : new_video_config_cb_(new_video_config_cb), |
| emit_buffer_cb_(emit_buffer_cb), |
|
acolwell GONE FROM CHROMIUM
2014/07/09 20:01:11
remove this and new_video_config_cb_ ?
damienv1
2014/07/10 16:00:54
Done.
|
| + es_adapter_(new EsAdapterVideo( |
| + new_video_config_cb_, emit_buffer_cb_)), |
| es_queue_(new media::OffsetByteQueue()), |
| h264_parser_(new H264Parser()), |
| current_access_unit_pos_(0), |
| @@ -75,6 +78,8 @@ void EsParserH264::Flush() { |
| uint8 aud[] = { 0x00, 0x00, 0x01, 0x09 }; |
| es_queue_->Push(aud, sizeof(aud)); |
| ParseInternal(); |
| + |
| + es_adapter_->Flush(); |
| } |
| void EsParserH264::Reset() { |
| @@ -85,6 +90,8 @@ void EsParserH264::Reset() { |
| next_access_unit_pos_ = 0; |
| timing_desc_list_.clear(); |
| last_video_decoder_config_ = VideoDecoderConfig(); |
| + es_adapter_.reset( |
|
acolwell GONE FROM CHROMIUM
2014/07/09 20:01:11
Add a Reset/Clear method on the adapter so you don
damienv1
2014/07/10 16:00:54
Done.
|
| + new EsAdapterVideo(new_video_config_cb_, emit_buffer_cb_)); |
| } |
| bool EsParserH264::FindAUD(int64* stream_pos) { |
| @@ -273,7 +280,7 @@ bool EsParserH264::EmitFrame(int64 access_unit_pos, int access_unit_size, |
| 0); |
| stream_parser_buffer->SetDecodeTimestamp(current_timing_desc.dts); |
| stream_parser_buffer->set_timestamp(current_timing_desc.pts); |
| - emit_buffer_cb_.Run(stream_parser_buffer); |
| + es_adapter_->OnNewBuffer(stream_parser_buffer); |
| return true; |
| } |
| @@ -321,7 +328,7 @@ bool EsParserH264::UpdateVideoDecoderConfig(const H264SPS* sps) { |
| DVLOG(1) << "SAR: width=" << sps->sar_width |
| << " height=" << sps->sar_height; |
| last_video_decoder_config_ = video_decoder_config; |
| - new_video_config_cb_.Run(video_decoder_config); |
| + es_adapter_->OnConfigChanged(video_decoder_config); |
| } |
| return true; |