| 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 793e2aa993a88d64957215ca41262c2da8c0a707..dc8315c27d2dd596d08d0205fd4fdc54559875b0 100644
|
| --- a/media/formats/mp2t/es_parser_h264.cc
|
| +++ b/media/formats/mp2t/es_parser_h264.cc
|
| @@ -18,6 +18,37 @@
|
| namespace media {
|
| namespace mp2t {
|
|
|
| +namespace {
|
| +
|
| +VideoCodecProfile ProfileIDCToVideoCodecProfile(int profile_idc) {
|
| + switch (profile_idc) {
|
| + case H264SPS::kProfileIDCBaseline:
|
| + return H264PROFILE_BASELINE;
|
| + case H264SPS::kProfileIDCMain:
|
| + return H264PROFILE_MAIN;
|
| + case H264SPS::kProfileIDCHigh:
|
| + return H264PROFILE_HIGH;
|
| + case H264SPS::kProfileIDHigh10:
|
| + return H264PROFILE_HIGH10PROFILE;
|
| + case H264SPS::kProfileIDHigh422:
|
| + return H264PROFILE_HIGH422PROFILE;
|
| + case H264SPS::kProfileIDHigh444Predictive:
|
| + return H264PROFILE_HIGH444PREDICTIVEPROFILE;
|
| + case H264SPS::kProfileIDScalableBaseline:
|
| + return H264PROFILE_SCALABLEBASELINE;
|
| + case H264SPS::kProfileIDScalableHigh:
|
| + return H264PROFILE_SCALABLEHIGH;
|
| + case H264SPS::kProfileIDStereoHigh:
|
| + return H264PROFILE_STEREOHIGH;
|
| + case H264SPS::kProfileIDSMultiviewHigh:
|
| + return H264PROFILE_MULTIVIEWHIGH;
|
| + }
|
| + NOTREACHED() << "unknown video profile: " << profile_idc;
|
| + return VIDEO_CODEC_PROFILE_UNKNOWN;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| // An AUD NALU is at least 4 bytes:
|
| // 3 bytes for the start code + 1 byte for the NALU type.
|
| const int kMinAUDSize = 4;
|
| @@ -281,9 +312,9 @@ bool EsParserH264::UpdateVideoDecoderConfig(const H264SPS* sps) {
|
| return false;
|
|
|
| VideoDecoderConfig video_decoder_config(
|
| - kCodecH264, VIDEO_CODEC_PROFILE_UNKNOWN, PIXEL_FORMAT_YV12,
|
| - COLOR_SPACE_HD_REC709, coded_size, visible_rect, natural_size,
|
| - std::vector<uint8_t>(), false);
|
| + kCodecH264, ProfileIDCToVideoCodecProfile(sps->profile_idc),
|
| + PIXEL_FORMAT_YV12, COLOR_SPACE_HD_REC709, coded_size, visible_rect,
|
| + natural_size, std::vector<uint8_t>(), false);
|
|
|
| if (!video_decoder_config.Matches(last_video_decoder_config_)) {
|
| DVLOG(1) << "Profile IDC: " << sps->profile_idc;
|
|
|