From 3f909fa55117f2cc38308605475370fbe91150eb Mon Sep 17 00:00:00 2001 From: KongQun Yang Date: Sun, 22 Sep 2019 23:24:33 -0700 Subject: [PATCH] [HLS] Support HDR signaling, i.e. VIDEO-RANGE attribute - Parse and extract transfer_characteristics from H264/H265 VUI parameters. - Set VIDEO-RANGE attribute in HLS according to HLS specification: https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-02#section-4.4.4.2 - Also added an end to end test. Fixes #632. Change-Id: Iadf557d967b42ade321fb0b152e8e7b64fe9ff3e --- packager/app/test/packager_test.py | 9 ++ .../bear-640x360-hevc-hdr10-video.mp4 | Bin 0 -> 116410 bytes .../hdr10-with-encryption/output.m3u8 | 5 ++ .../testdata/hdr10-with-encryption/output.mpd | 18 ++++ .../hdr10-with-encryption/stream_0.m3u8 | 10 +++ packager/hls/base/master_playlist.cc | 3 + packager/hls/base/media_playlist.cc | 16 ++++ packager/hls/base/media_playlist.h | 3 + .../media/base/media_handler_test_base.cc | 5 +- packager/media/base/video_stream_info.cc | 2 + packager/media/base/video_stream_info.h | 6 ++ .../avc_decoder_configuration_record.cc | 2 + ...c_decoder_configuration_record_unittest.cc | 83 ++++++++++++++++-- .../codecs/decoder_configuration_record.cc | 5 +- .../codecs/decoder_configuration_record.h | 15 +++- packager/media/codecs/h264_parser.cc | 7 +- packager/media/codecs/h264_parser.h | 2 + packager/media/codecs/h264_parser_unittest.cc | 41 +++++++++ packager/media/codecs/h265_parser.cc | 5 +- packager/media/codecs/h265_parser.h | 1 + packager/media/codecs/h265_parser_unittest.cc | 34 ++++++- .../hevc_decoder_configuration_record.cc | 19 ++-- .../hevc_decoder_configuration_record.h | 12 +-- ...c_decoder_configuration_record_unittest.cc | 63 +++++++++++-- .../crypto/subsample_generator_unittest.cc | 11 +-- packager/media/event/media_event.gyp | 1 + .../media/event/muxer_listener_internal.cc | 4 + .../event/muxer_listener_internal_unittest.cc | 77 ++++++++++++++++ .../media/event/muxer_listener_test_helper.cc | 3 +- .../media/event/muxer_listener_test_helper.h | 2 +- packager/media/formats/mp2t/es_parser_h264.cc | 4 +- packager/media/formats/mp2t/es_parser_h265.cc | 5 +- .../mp2t/pes_packet_generator_unittest.cc | 7 +- .../formats/mp2t/ts_segmenter_unittest.cc | 19 ++-- .../media/formats/mp4/mp4_media_parser.cc | 4 + .../media/formats/webm/segmenter_test_base.cc | 5 +- .../webm/webm_cluster_parser_unittest.cc | 2 + .../media/formats/webm/webm_video_client.cc | 2 +- .../media/formats/wvm/wvm_media_parser.cc | 6 +- packager/media/test/data/README | 5 ++ .../test/data/bear-640x360-hevc-hdr10.mp4 | Bin 0 -> 161529 bytes packager/mpd/base/media_info.proto | 4 + 42 files changed, 464 insertions(+), 63 deletions(-) create mode 100644 packager/app/test/testdata/hdr10-with-encryption/bear-640x360-hevc-hdr10-video.mp4 create mode 100644 packager/app/test/testdata/hdr10-with-encryption/output.m3u8 create mode 100644 packager/app/test/testdata/hdr10-with-encryption/output.mpd create mode 100644 packager/app/test/testdata/hdr10-with-encryption/stream_0.m3u8 create mode 100644 packager/media/event/muxer_listener_internal_unittest.cc create mode 100644 packager/media/test/data/bear-640x360-hevc-hdr10.mp4 diff --git a/packager/app/test/packager_test.py b/packager/app/test/packager_test.py index a215ea44f3..6dc4e7f3bc 100755 --- a/packager/app/test/packager_test.py +++ b/packager/app/test/packager_test.py @@ -1203,6 +1203,15 @@ class PackagerFunctionalTest(PackagerAppTest): self.assertPackageSuccess(streams, flags) self._CheckTestResults('hevc-with-encryption', verify_decryption=True) + def testHdr10WithEncryption(self): + streams = [ + self._GetStream('video', test_file='bear-640x360-hevc-hdr10.mp4') + ] + flags = self._GetFlags(encryption=True, output_dash=True, output_hls=True) + + self.assertPackageSuccess(streams, flags) + self._CheckTestResults('hdr10-with-encryption') + def testDolbyVisionWithEncryption(self): streams = [ self._GetStream('video', test_file='426x240-dvh1.mp4') diff --git a/packager/app/test/testdata/hdr10-with-encryption/bear-640x360-hevc-hdr10-video.mp4 b/packager/app/test/testdata/hdr10-with-encryption/bear-640x360-hevc-hdr10-video.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..63e0042f295ca5ff00057cdef882c4b3c0064f34 GIT binary patch literal 116410 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�y&H=<1XfBoAi?P$o4l$` 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

{VafmP|sod1iibbm(=cn2f|4(dJbg{x1Kk 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 literal 0 HcmV?d00001 diff --git a/packager/app/test/testdata/hdr10-with-encryption/output.m3u8 b/packager/app/test/testdata/hdr10-with-encryption/output.m3u8 new file mode 100644 index 0000000000..172e574684 --- /dev/null +++ b/packager/app/test/testdata/hdr10-with-encryption/output.m3u8 @@ -0,0 +1,5 @@ +#EXTM3U +## Generated with https://github.com/google/shaka-packager version -- + +#EXT-X-STREAM-INF:BANDWIDTH=317223,AVERAGE-BANDWIDTH=317223,CODECS="hvc1.2.4.L63.90",RESOLUTION=640x360,VIDEO-RANGE=PQ +stream_0.m3u8 diff --git a/packager/app/test/testdata/hdr10-with-encryption/output.mpd b/packager/app/test/testdata/hdr10-with-encryption/output.mpd new file mode 100644 index 0000000000..4a76f34309 --- /dev/null +++ b/packager/app/test/testdata/hdr10-with-encryption/output.mpd @@ -0,0 +1,18 @@ + + + + + + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + + + bear-640x360-hevc-hdr10-video.mp4 + + + + + + + diff --git a/packager/app/test/testdata/hdr10-with-encryption/stream_0.m3u8 b/packager/app/test/testdata/hdr10-with-encryption/stream_0.m3u8 new file mode 100644 index 0000000000..63762cbc6b --- /dev/null +++ b/packager/app/test/testdata/hdr10-with-encryption/stream_0.m3u8 @@ -0,0 +1,10 @@ +#EXTM3U +#EXT-X-VERSION:6 +## Generated with https://github.com/google/shaka-packager version -- +#EXT-X-TARGETDURATION:3 +#EXT-X-PLAYLIST-TYPE:VOD +#EXT-X-MAP:URI="bear-640x360-hevc-hdr10-video.mp4",BYTERANGE="5227@0" +#EXTINF:2.803, +#EXT-X-BYTERANGE:111139@5271 +bear-640x360-hevc-hdr10-video.mp4 +#EXT-X-ENDLIST diff --git a/packager/hls/base/master_playlist.cc b/packager/hls/base/master_playlist.cc index b885066617..8856007e37 100644 --- a/packager/hls/base/master_playlist.cc +++ b/packager/hls/base/master_playlist.cc @@ -222,6 +222,9 @@ void BuildStreamInfTag(const MediaPlaylist& playlist, uint32_t height; if (playlist.GetDisplayResolution(&width, &height)) { tag.AddNumberPair("RESOLUTION", width, 'x', height); + const std::string video_range = playlist.GetVideoRange(); + if (!video_range.empty()) + tag.AddString("VIDEO-RANGE", video_range); } if (variant.audio_group_id) { diff --git a/packager/hls/base/media_playlist.cc b/packager/hls/base/media_playlist.cc index 7544cca7d6..2b3166794d 100644 --- a/packager/hls/base/media_playlist.cc +++ b/packager/hls/base/media_playlist.cc @@ -527,6 +527,22 @@ bool MediaPlaylist::GetDisplayResolution(uint32_t* width, return false; } +std::string MediaPlaylist::GetVideoRange() const { + // HLS specification: + // https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-02#section-4.4.4.2 + switch (media_info_.video_info().transfer_characteristics()) { + case 1: + return "SDR"; + case 16: + case 18: + return "PQ"; + default: + // Leave it empty if we do not have the transfer characteristics + // information. + return ""; + } +} + void MediaPlaylist::AddSegmentInfoEntry(const std::string& segment_file_name, int64_t start_time, int64_t duration, diff --git a/packager/hls/base/media_playlist.h b/packager/hls/base/media_playlist.h index b0a0823f8e..fef00baad0 100644 --- a/packager/hls/base/media_playlist.h +++ b/packager/hls/base/media_playlist.h @@ -186,6 +186,9 @@ class MediaPlaylist { /// resolution values. virtual bool GetDisplayResolution(uint32_t* width, uint32_t* height) const; + /// @return The video range of the stream. + virtual std::string GetVideoRange() const; + /// @return the language of the media, as an ISO language tag in its shortest /// form. May be an empty string for video. const std::string& language() const { return language_; } diff --git a/packager/media/base/media_handler_test_base.cc b/packager/media/base/media_handler_test_base.cc index 69444c9d87..87e42aa400 100644 --- a/packager/media/base/media_handler_test_base.cc +++ b/packager/media/base/media_handler_test_base.cc @@ -28,6 +28,7 @@ const uint16_t kWidth = 10u; const uint16_t kHeight = 20u; const uint32_t kPixelWidth = 2u; const uint32_t kPixelHeight = 3u; +const uint8_t kTransferCharacteristics = 0; const int16_t kTrickPlayFactor = 0; const uint8_t kNaluLengthSize = 1u; const bool kEncrypted = true; @@ -199,8 +200,8 @@ std::unique_ptr MediaHandlerTestBase::GetVideoStreamInfo( return std::unique_ptr(new VideoStreamInfo( kTrackId, time_scale, kDuration, codec, H26xStreamFormat::kUnSpecified, kCodecString, kCodecConfig, sizeof(kCodecConfig), width, height, - kPixelWidth, kPixelHeight, kTrickPlayFactor, kNaluLengthSize, kLanguage, - !kEncrypted)); + kPixelWidth, kPixelHeight, kTransferCharacteristics, kTrickPlayFactor, + kNaluLengthSize, kLanguage, !kEncrypted)); } std::unique_ptr MediaHandlerTestBase::GetAudioStreamInfo( diff --git a/packager/media/base/video_stream_info.cc b/packager/media/base/video_stream_info.cc index 1e58f0f578..d927f6a1ff 100644 --- a/packager/media/base/video_stream_info.cc +++ b/packager/media/base/video_stream_info.cc @@ -50,6 +50,7 @@ VideoStreamInfo::VideoStreamInfo(int track_id, uint16_t height, uint32_t pixel_width, uint32_t pixel_height, + uint8_t transfer_characteristics, uint32_t trick_play_factor, uint8_t nalu_length_size, const std::string& language, @@ -69,6 +70,7 @@ VideoStreamInfo::VideoStreamInfo(int track_id, height_(height), pixel_width_(pixel_width), pixel_height_(pixel_height), + transfer_characteristics_(transfer_characteristics), trick_play_factor_(trick_play_factor), nalu_length_size_(nalu_length_size) {} diff --git a/packager/media/base/video_stream_info.h b/packager/media/base/video_stream_info.h index 5c6a49a063..76d518fc8d 100644 --- a/packager/media/base/video_stream_info.h +++ b/packager/media/base/video_stream_info.h @@ -39,6 +39,7 @@ class VideoStreamInfo : public StreamInfo { uint16_t height, uint32_t pixel_width, uint32_t pixel_height, + uint8_t transfer_characteristics, uint32_t trick_play_factor, uint8_t nalu_length_size, const std::string& language, @@ -63,6 +64,7 @@ class VideoStreamInfo : public StreamInfo { /// Returns the pixel height. /// @return 0 if unknown. uint32_t pixel_height() const { return pixel_height_; } + uint8_t transfer_characteristics() const { return transfer_characteristics_; } uint8_t nalu_length_size() const { return nalu_length_size_; } uint32_t trick_play_factor() const { return trick_play_factor_; } uint32_t playback_rate() const { return playback_rate_; } @@ -75,6 +77,9 @@ class VideoStreamInfo : public StreamInfo { void set_height(uint32_t height) { height_ = height; } void set_pixel_width(uint32_t pixel_width) { pixel_width_ = pixel_width; } void set_pixel_height(uint32_t pixel_height) { pixel_height_ = pixel_height; } + void set_transfer_characteristics(uint8_t transfer_characteristics) { + transfer_characteristics_ = transfer_characteristics; + } void set_trick_play_factor(uint32_t trick_play_factor) { trick_play_factor_ = trick_play_factor; } @@ -98,6 +103,7 @@ class VideoStreamInfo : public StreamInfo { // 0 means unknown. uint32_t pixel_width_; uint32_t pixel_height_; + uint8_t transfer_characteristics_ = 0; uint32_t trick_play_factor_ = 0; // Non-zero for trick-play streams. // Playback rate is the attribute for trick play stream, which signals the diff --git a/packager/media/codecs/avc_decoder_configuration_record.cc b/packager/media/codecs/avc_decoder_configuration_record.cc index 580c0b9638..1a0d7b9a66 100644 --- a/packager/media/codecs/avc_decoder_configuration_record.cc +++ b/packager/media/codecs/avc_decoder_configuration_record.cc @@ -64,6 +64,8 @@ bool AVCDecoderConfigurationRecord::ParseInternal() { int sps_id = 0; H264Parser parser; RCHECK(parser.ParseSps(nalu, &sps_id) == H264Parser::kOk); + set_transfer_characteristics( + parser.GetSps(sps_id)->transfer_characteristics); RCHECK(ExtractResolutionFromSps(*parser.GetSps(sps_id), &coded_width_, &coded_height_, &pixel_width_, &pixel_height_)); diff --git a/packager/media/codecs/avc_decoder_configuration_record_unittest.cc b/packager/media/codecs/avc_decoder_configuration_record_unittest.cc index 4816aad618..635353b302 100644 --- a/packager/media/codecs/avc_decoder_configuration_record_unittest.cc +++ b/packager/media/codecs/avc_decoder_configuration_record_unittest.cc @@ -12,11 +12,24 @@ namespace shaka { namespace media { TEST(AVCDecoderConfigurationRecordTest, Success) { + // clang-format off const uint8_t kAvcDecoderConfigurationData[] = { - 0x01, 0x64, 0x00, 0x1E, 0xFF, 0xE1, 0x00, 0x1D, 0x67, 0x64, 0x00, 0x1E, - 0xAC, 0xD9, 0x40, 0xB4, 0x2F, 0xF9, 0x7F, 0xF0, 0x00, 0x80, 0x00, 0x91, - 0x00, 0x00, 0x03, 0x03, 0xE9, 0x00, 0x00, 0xEA, 0x60, 0x0F, 0x16, 0x2D, - 0x96, 0x01, 0x00, 0x06, 0x68, 0xEB, 0xE3, 0xCB, 0x22, 0xC0}; + 0x01, // version + 0x64, // profile_indication + 0x00, // profile_compatibility + 0x1E, // avc_level + 0xFF, // Least significant 3 bits is length_size_minus_one + 0xE1, // Least significant 5 bits is num_sps + // sps 1 + 0x00, 0x1D, // size + 0x67, 0x64, 0x00, 0x1E, 0xAC, 0xD9, 0x40, 0xB4, 0x2F, 0xF9, 0x7F, 0xF0, + 0x00, 0x80, 0x00, 0x91, 0x00, 0x00, 0x03, 0x03, 0xE9, 0x00, 0x00, 0xEA, + 0x60, 0x0F, 0x16, 0x2D, 0x96, + 0x01, // num_pps + 0x00, 0x06, // size + 0x68, 0xEB, 0xE3, 0xCB, 0x22, 0xC0, + }; + // clang-format on AVCDecoderConfigurationRecord avc_config; ASSERT_TRUE(avc_config.Parse(kAvcDecoderConfigurationData, @@ -31,17 +44,71 @@ TEST(AVCDecoderConfigurationRecordTest, Success) { EXPECT_EQ(360u, avc_config.coded_height()); EXPECT_EQ(8u, avc_config.pixel_width()); EXPECT_EQ(9u, avc_config.pixel_height()); + EXPECT_EQ(0u, avc_config.transfer_characteristics()); + + EXPECT_EQ("avc1.64001e", avc_config.GetCodecString(FOURCC_avc1)); + EXPECT_EQ("avc3.64001e", avc_config.GetCodecString(FOURCC_avc3)); +} + +TEST(AVCDecoderConfigurationRecordTest, SuccessWithTransferCharacteristics) { + // clang-format off + const uint8_t kAvcDecoderConfigurationData[] = { + 0x01, // version + 0x64, // profile_indication + 0x00, // profile_compatibility + 0x1E, // avc_level + 0xFF, // Least significant 3 bits is length_size_minus_one + 0xE1, // Least significant 5 bits is num_sps + // sps 1 + 0x00, 0x22, // size + 0x67, 0x64, 0x00, 0x1E, 0xAC, 0xD9, 0x40, 0xB4, 0x2F, 0xF9, 0x7F, 0xF0, + 0x00, 0x80, 0x00, 0x96, 0xA1, 0x22, 0x01, 0x28, 0x00, 0x00, 0x03, 0x00, + 0x08, 0x00, 0x00, 0x03, 0x01, 0x80, 0x78, 0xB1, 0x6C, 0xB0, + 0x01, // num_pps + // pps 1 + 0x00, 0x06, // size + 0x68, 0xEB, 0xE1, 0x32, 0xC8, 0xB0, + }; + // clang-format on + + AVCDecoderConfigurationRecord avc_config; + ASSERT_TRUE(avc_config.Parse(kAvcDecoderConfigurationData, + arraysize(kAvcDecoderConfigurationData))); + + EXPECT_EQ(1u, avc_config.version()); + EXPECT_EQ(0x64, avc_config.profile_indication()); + EXPECT_EQ(0u, avc_config.profile_compatibility()); + EXPECT_EQ(0x1E, avc_config.avc_level()); + EXPECT_EQ(4u, avc_config.nalu_length_size()); + EXPECT_EQ(720u, avc_config.coded_width()); + EXPECT_EQ(360u, avc_config.coded_height()); + EXPECT_EQ(8u, avc_config.pixel_width()); + EXPECT_EQ(9u, avc_config.pixel_height()); + EXPECT_EQ(16u, avc_config.transfer_characteristics()); EXPECT_EQ("avc1.64001e", avc_config.GetCodecString(FOURCC_avc1)); EXPECT_EQ("avc3.64001e", avc_config.GetCodecString(FOURCC_avc3)); } TEST(AVCDecoderConfigurationRecordTest, FailsOnInvalidNaluLengthSize) { + // clang-format off const uint8_t kAvcDecoderConfigurationData[] = { - 0x01, 0x64, 0x00, 0x1E, 0xFE, 0xE1, 0x00, 0x1D, 0x67, 0x64, 0x00, 0x1E, - 0xAC, 0xD9, 0x40, 0xB4, 0x2F, 0xF9, 0x7F, 0xF0, 0x00, 0x80, 0x00, 0x91, - 0x00, 0x00, 0x03, 0x03, 0xE9, 0x00, 0x00, 0xEA, 0x60, 0x0F, 0x16, 0x2D, - 0x96, 0x01, 0x00, 0x06, 0x68, 0xEB, 0xE3, 0xCB, 0x22, 0xC0}; + 0x01, // version + 0x64, // profile_indication + 0x00, // profile_compatibility + 0x1E, // avc_level + 0xFE, // Least significant 3 bits is length_size_minus_one + 0xE1, // Least significant 5 bits is num_sps + // sps 1 + 0x00, 0x1D, // size + 0x67, 0x64, 0x00, 0x1E, 0xAC, 0xD9, 0x40, 0xB4, 0x2F, 0xF9, 0x7F, 0xF0, + 0x00, 0x80, 0x00, 0x91, 0x00, 0x00, 0x03, 0x03, 0xE9, 0x00, 0x00, 0xEA, + 0x60, 0x0F, 0x16, 0x2D, 0x96, + 0x01, // num_pps + 0x00, 0x06, // size + 0x68, 0xEB, 0xE3, 0xCB, 0x22, 0xC0, + }; + // clang-format on AVCDecoderConfigurationRecord avc_config; ASSERT_FALSE(avc_config.Parse(kAvcDecoderConfigurationData, diff --git a/packager/media/codecs/decoder_configuration_record.cc b/packager/media/codecs/decoder_configuration_record.cc index 7e437c26d5..ff99b1790b 100644 --- a/packager/media/codecs/decoder_configuration_record.cc +++ b/packager/media/codecs/decoder_configuration_record.cc @@ -9,9 +9,8 @@ namespace shaka { namespace media { -DecoderConfigurationRecord::DecoderConfigurationRecord() - : nalu_length_size_(0) {} -DecoderConfigurationRecord::~DecoderConfigurationRecord() {} +DecoderConfigurationRecord::DecoderConfigurationRecord() = default; +DecoderConfigurationRecord::~DecoderConfigurationRecord() = default; bool DecoderConfigurationRecord::Parse(const uint8_t* data, size_t data_size) { data_.assign(data, data + data_size); diff --git a/packager/media/codecs/decoder_configuration_record.h b/packager/media/codecs/decoder_configuration_record.h index 7d1018b1fd..cb06d966ab 100644 --- a/packager/media/codecs/decoder_configuration_record.h +++ b/packager/media/codecs/decoder_configuration_record.h @@ -43,6 +43,9 @@ class DecoderConfigurationRecord { /// lifetime of this object, even if copied. const Nalu& nalu(size_t i) const { return nalu_[i]; } + /// @return Transfer characteristics of the config. + uint8_t transfer_characteristics() const { return transfer_characteristics_; } + protected: DecoderConfigurationRecord(); @@ -61,6 +64,11 @@ class DecoderConfigurationRecord { nalu_length_size_ = nalu_length_size; } + /// Sets the transfer characteristics. + void set_transfer_characteristics(uint8_t transfer_characteristics) { + transfer_characteristics_ = transfer_characteristics; + } + private: // Performs the actual parsing of the data. virtual bool ParseInternal() = 0; @@ -69,7 +77,12 @@ class DecoderConfigurationRecord { // extracted Nalu can accessed. std::vector data_; std::vector nalu_; - uint8_t nalu_length_size_; + uint8_t nalu_length_size_ = 0; + + // Indicates the opto-electronic transfer characteristics of the source + // picture, which can be used to determine whether the video is HDR or SDR. + // The parameter is extracted from SPS. + uint8_t transfer_characteristics_ = 0; DISALLOW_COPY_AND_ASSIGN(DecoderConfigurationRecord); }; diff --git a/packager/media/codecs/h264_parser.cc b/packager/media/codecs/h264_parser.cc index aa45d039ed..05ac28324f 100644 --- a/packager/media/codecs/h264_parser.cc +++ b/packager/media/codecs/h264_parser.cc @@ -527,8 +527,11 @@ H264Parser::Result H264Parser::ParseVUIParameters(H26xBitReader* br, READ_BITS_OR_RETURN(3, &data); // video_format READ_BOOL_OR_RETURN(&data); // video_full_range_flag READ_BOOL_OR_RETURN(&data); // colour_description_present_flag - if (data) - READ_BITS_OR_RETURN(24, &data); // color description syntax elements + if (data) { + READ_BITS_OR_RETURN(8, &data); // colour primaries + READ_BITS_OR_RETURN(8, &sps->transfer_characteristics); + READ_BITS_OR_RETURN(8, &data); // matrix coeffs + } } READ_BOOL_OR_RETURN(&data); // chroma_loc_info_present_flag diff --git a/packager/media/codecs/h264_parser.h b/packager/media/codecs/h264_parser.h index f1b470c66d..52118b7c66 100644 --- a/packager/media/codecs/h264_parser.h +++ b/packager/media/codecs/h264_parser.h @@ -82,6 +82,8 @@ struct H264Sps { bool vui_parameters_present_flag; int sar_width; // Set to 0 when not specified. int sar_height; // Set to 0 when not specified. + int transfer_characteristics; + bool bitstream_restriction_flag; int max_num_reorder_frames; int max_dec_frame_buffering; diff --git a/packager/media/codecs/h264_parser_unittest.cc b/packager/media/codecs/h264_parser_unittest.cc index 5211109c8b..625703572a 100644 --- a/packager/media/codecs/h264_parser_unittest.cc +++ b/packager/media/codecs/h264_parser_unittest.cc @@ -187,6 +187,47 @@ TEST(H264ParserTest, PredWeightTable) { EXPECT_EQ(0, pred_weight_table.chroma_offset[3][1]); } +TEST(H264ParserTest, ParseSps) { + const uint8_t kSps[] = {0x67, 0x64, 0x00, 0x1E, 0xAC, 0xD9, 0x40, 0xB4, + 0x2F, 0xF9, 0x7F, 0xF0, 0x00, 0x80, 0x00, 0x91, + 0x00, 0x00, 0x03, 0x03, 0xE9, 0x00, 0x00, 0xEA, + 0x60, 0x0F, 0x16, 0x2D, 0x96}; + + H264Parser parser; + int sps_id = 0; + Nalu nalu; + ASSERT_TRUE(nalu.Initialize(Nalu::kH264, kSps, arraysize(kSps))); + ASSERT_EQ(H264Parser::kOk, parser.ParseSps(nalu, &sps_id)); + + const H264Sps* sps = parser.GetSps(sps_id); + ASSERT_TRUE(sps); + + EXPECT_EQ(100, sps->profile_idc); + EXPECT_EQ(30, sps->level_idc); + EXPECT_EQ(0, sps->transfer_characteristics); +} + +TEST(H264ParserTest, ParseSpsWithTransferCharacteristics) { + const uint8_t kSps[] = { + 0x67, 0x64, 0x00, 0x1E, 0xAC, 0xD9, 0x40, 0xB4, 0x2F, 0xF9, 0x7F, 0xF0, + 0x00, 0x80, 0x00, 0x96, 0xA1, 0x22, 0x01, 0x28, 0x00, 0x00, 0x03, 0x00, + 0x08, 0x00, 0x00, 0x03, 0x01, 0x80, 0x78, 0xB1, 0x6C, 0xB0, + }; + + H264Parser parser; + int sps_id = 0; + Nalu nalu; + ASSERT_TRUE(nalu.Initialize(Nalu::kH264, kSps, arraysize(kSps))); + ASSERT_EQ(H264Parser::kOk, parser.ParseSps(nalu, &sps_id)); + + const H264Sps* sps = parser.GetSps(sps_id); + ASSERT_TRUE(sps); + + EXPECT_EQ(100, sps->profile_idc); + EXPECT_EQ(30, sps->level_idc); + EXPECT_EQ(16, sps->transfer_characteristics); +} + TEST(H264ParserTest, ExtractResolutionFromSpsData) { const uint8_t kSps[] = {0x67, 0x64, 0x00, 0x1E, 0xAC, 0xD9, 0x40, 0xB4, 0x2F, 0xF9, 0x7F, 0xF0, 0x00, 0x80, 0x00, 0x91, diff --git a/packager/media/codecs/h265_parser.cc b/packager/media/codecs/h265_parser.cc index b1b68663dd..d238572dab 100644 --- a/packager/media/codecs/h265_parser.cc +++ b/packager/media/codecs/h265_parser.cc @@ -661,8 +661,9 @@ H265Parser::Result H265Parser::ParseVuiParameters(int max_num_sub_layers_minus1, bool colour_description_present_flag; TRUE_OR_RETURN(br->ReadBool(&colour_description_present_flag)); if (colour_description_present_flag) { - // colour_primaries, transfer_characteristics, matrix_coeffs - TRUE_OR_RETURN(br->SkipBits(8 + 8 + 8)); + TRUE_OR_RETURN(br->SkipBits(8)); // colour_primaries + TRUE_OR_RETURN(br->ReadBits(8, &vui->transfer_characteristics)); + TRUE_OR_RETURN(br->SkipBits(8)); // matrix_coeffs } } diff --git a/packager/media/codecs/h265_parser.h b/packager/media/codecs/h265_parser.h index 6eae120d1a..779fc80a28 100644 --- a/packager/media/codecs/h265_parser.h +++ b/packager/media/codecs/h265_parser.h @@ -50,6 +50,7 @@ struct H265VuiParameters { int aspect_ratio_idc = 0; int sar_width = 0; int sar_height = 0; + int transfer_characteristics = 0; bool bitstream_restriction_flag = false; int min_spatial_segmentation_idc = 0; diff --git a/packager/media/codecs/h265_parser_unittest.cc b/packager/media/codecs/h265_parser_unittest.cc index 063f2f5a8b..771f0427b0 100644 --- a/packager/media/codecs/h265_parser_unittest.cc +++ b/packager/media/codecs/h265_parser_unittest.cc @@ -15,11 +15,17 @@ namespace H265 { namespace { -// Data taken from bear-640x360-hevc.mp4 +// Data taken from bear-640x360-hevc.mp4 and bear-640x360-hevc-hdr10.mp4. const uint8_t kSpsData[] = { 0x42, 0x01, 0x01, 0x01, 0x60, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xa0, 0x05, 0x02, 0x01, 0x69, 0x65, 0x95, 0xe4, 0x93, 0x2b, 0xc0, 0x40, 0x40, 0x00, 0x00, 0xfa, 0x40, 0x00, 0x1d, 0x4c, 0x02}; +const uint8_t kSpsDataWithTransferCharacteristics[] = { + 0x42, 0x01, 0x01, 0x02, 0x20, 0x00, 0x00, 0x03, 0x00, 0x90, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x03, 0x00, 0x78, 0xA0, 0x03, 0xC0, 0x80, 0x10, 0xE4, + 0xD9, 0x65, 0x66, 0x92, 0x4C, 0xAF, 0x01, 0x6A, 0x12, 0x20, 0x13, 0x6C, + 0x20, 0x00, 0x00, 0x7D, 0x20, 0x00, 0x0B, 0xB8, 0x0C, 0x25, 0x9A, 0x4B, + 0xC0, 0x01, 0xE8, 0x48, 0x00, 0x3D, 0x09, 0x10}; const uint8_t kPpsData[] = {0x44, 0x01, 0xc1, 0x73, 0xd1, 0x89}; const uint8_t kSliceData[] = { // Incomplete segment data. @@ -105,6 +111,32 @@ TEST(H265ParserTest, ParseSps) { EXPECT_EQ(4, sps->log2_max_pic_order_cnt_lsb_minus4); EXPECT_EQ(3, sps->log2_diff_max_min_luma_transform_block_size); EXPECT_EQ(0, sps->max_transform_hierarchy_depth_intra); + EXPECT_EQ(0, sps->vui_parameters.transfer_characteristics); +} + +TEST(H265ParserTest, ParseSpsWithTransferCharacteristics) { + Nalu nalu; + ASSERT_TRUE(nalu.Initialize(Nalu::kH265, kSpsDataWithTransferCharacteristics, + arraysize(kSpsDataWithTransferCharacteristics))); + ASSERT_EQ(Nalu::H265_SPS, nalu.type()); + + int id = 12; + H265Parser parser; + ASSERT_EQ(H265Parser::kOk, parser.ParseSps(nalu, &id)); + ASSERT_EQ(0, id); + + const H265Sps* sps = parser.GetSps(id); + ASSERT_TRUE(sps); + + EXPECT_EQ(0, sps->video_parameter_set_id); + EXPECT_EQ(0, sps->max_sub_layers_minus1); + EXPECT_EQ(0, sps->seq_parameter_set_id); + EXPECT_EQ(1, sps->chroma_format_idc); + EXPECT_EQ(1080, sps->pic_height_in_luma_samples); + EXPECT_EQ(4, sps->log2_max_pic_order_cnt_lsb_minus4); + EXPECT_EQ(3, sps->log2_diff_max_min_luma_transform_block_size); + EXPECT_EQ(0, sps->max_transform_hierarchy_depth_intra); + EXPECT_EQ(16, sps->vui_parameters.transfer_characteristics); } TEST(H265ParserTest, ParsePps) { diff --git a/packager/media/codecs/hevc_decoder_configuration_record.cc b/packager/media/codecs/hevc_decoder_configuration_record.cc index c6037a4f43..15f2b8bcfd 100644 --- a/packager/media/codecs/hevc_decoder_configuration_record.cc +++ b/packager/media/codecs/hevc_decoder_configuration_record.cc @@ -10,6 +10,7 @@ #include "packager/base/strings/string_util.h" #include "packager/media/base/buffer_reader.h" #include "packager/media/base/rcheck.h" +#include "packager/media/codecs/h265_parser.h" namespace shaka { namespace media { @@ -61,15 +62,9 @@ std::string ReverseBitsAndHexEncode(uint32_t x) { } // namespace -HEVCDecoderConfigurationRecord::HEVCDecoderConfigurationRecord() - : version_(0), - general_profile_space_(0), - general_tier_flag_(false), - general_profile_idc_(0), - general_profile_compatibility_flags_(0), - general_level_idc_(0) {} +HEVCDecoderConfigurationRecord::HEVCDecoderConfigurationRecord() = default; -HEVCDecoderConfigurationRecord::~HEVCDecoderConfigurationRecord() {} +HEVCDecoderConfigurationRecord::~HEVCDecoderConfigurationRecord() = default; bool HEVCDecoderConfigurationRecord::ParseInternal() { BufferReader reader(data(), data_size()); @@ -113,6 +108,14 @@ bool HEVCDecoderConfigurationRecord::ParseInternal() { RCHECK(nalu.Initialize(Nalu::kH265, data() + nalu_offset, nalu_length)); RCHECK(nalu.type() == nal_unit_type); AddNalu(nalu); + + if (nalu.type() == Nalu::H265_SPS) { + H265Parser parser; + int sps_id = 0; + RCHECK(parser.ParseSps(nalu, &sps_id) == H265Parser::kOk); + set_transfer_characteristics( + parser.GetSps(sps_id)->vui_parameters.transfer_characteristics); + } } } diff --git a/packager/media/codecs/hevc_decoder_configuration_record.h b/packager/media/codecs/hevc_decoder_configuration_record.h index 188f1342d0..da349f9c1c 100644 --- a/packager/media/codecs/hevc_decoder_configuration_record.h +++ b/packager/media/codecs/hevc_decoder_configuration_record.h @@ -31,13 +31,13 @@ class HEVCDecoderConfigurationRecord : public DecoderConfigurationRecord { private: bool ParseInternal() override; - uint8_t version_; - uint8_t general_profile_space_; - bool general_tier_flag_; - uint8_t general_profile_idc_; - uint32_t general_profile_compatibility_flags_; + uint8_t version_ = 0; + uint8_t general_profile_space_ = 0; + bool general_tier_flag_ = false; + uint8_t general_profile_idc_ = 0; + uint32_t general_profile_compatibility_flags_ = 0; std::vector general_constraint_indicator_flags_; - uint8_t general_level_idc_; + uint8_t general_level_idc_ = 0; DISALLOW_COPY_AND_ASSIGN(HEVCDecoderConfigurationRecord); }; diff --git a/packager/media/codecs/hevc_decoder_configuration_record_unittest.cc b/packager/media/codecs/hevc_decoder_configuration_record_unittest.cc index fededbca84..fc6a84920e 100644 --- a/packager/media/codecs/hevc_decoder_configuration_record_unittest.cc +++ b/packager/media/codecs/hevc_decoder_configuration_record_unittest.cc @@ -12,6 +12,7 @@ namespace shaka { namespace media { TEST(HEVCDecoderConfigurationRecordTest, Success) { + // clang-format off const uint8_t kHevcDecoderConfigurationData[] = { 0x01, // Version 0x02, // profile_indication @@ -33,11 +34,61 @@ TEST(HEVCDecoderConfigurationRecordTest, Success) { // array 2 0x21, // nal type 0x00, 0x01, // num nalus - // Nalu 1 - 0x00, 0x0f, // nal unit length - 0x42, 0x01, 0x01, 0x02, 0x20, 0x00, 0x00, 0x03, 0x00, 0x90, - 0x00, 0x00, 0x03, 0x00, 0x00, + // nalu 1 + 0x00, 0x24, // nal unit length + 0x42, 0x01, 0x01, 0x01, 0x60, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3f, 0xa0, 0x05, 0x02, 0x01, 0x69, 0x65, 0x95, + 0xe4, 0x93, 0x2b, 0xc0, 0x40, 0x40, 0x00, 0x00, 0xfa, 0x40, 0x00, + 0x1d, 0x4c, 0x02, }; + // clang-format on + HEVCDecoderConfigurationRecord hevc_config; + ASSERT_TRUE(hevc_config.Parse(kHevcDecoderConfigurationData, + arraysize(kHevcDecoderConfigurationData))); + EXPECT_EQ(4u, hevc_config.nalu_length_size()); + EXPECT_EQ("hev1.2.4.L63.90", hevc_config.GetCodecString(FOURCC_hev1)); + EXPECT_EQ("hvc1.2.4.L63.90", hevc_config.GetCodecString(FOURCC_hvc1)); + EXPECT_EQ(2u, hevc_config.nalu_count()); + EXPECT_EQ(0x16u, hevc_config.nalu(0).payload_size()); + EXPECT_EQ(0x40, hevc_config.nalu(0).data()[0]); +} + +TEST(HEVCDecoderConfigurationRecordTest, SuccessWithTransferCharacteristics) { + // clang-format off + const uint8_t kHevcDecoderConfigurationData[] = { + 0x01, // Version + 0x02, // profile_indication + 0x20, 0x00, 0x00, 0x00, // general_profile_compatibility_flags + // general_constraint_indicator_flags + 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3F, // general_level_idc + 0xF0, 0x00, 0xFC, 0xFD, 0xFA, 0xFA, 0x00, 0x00, + 0x0F, // length_size_minus_one + 0x03, // num_of_arrays + // array 1 + 0xA0, // nal type + 0x00, 0x01, // num nalus + 0x00, 0x18, // nal unit length + 0x40, 0x01, 0x0C, 0x01, 0xFF, 0xFF, 0x02, 0x20, 0x00, 0x00, 0x03, + 0x00, 0x90, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x78, 0x95, + 0x98, 0x09, + // array 2 + 0xA1, // nal type + 0x00, 0x01, // num nalus + 0x00, 0x38, // nal unit length + 0x42, 0x01, 0x01, 0x02, 0x20, 0x00, 0x00, 0x03, 0x00, 0x90, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x78, 0xA0, 0x03, 0xC0, 0x80, + 0x10, 0xE4, 0xD9, 0x65, 0x66, 0x92, 0x4C, 0xAF, 0x01, 0x6A, 0x12, + 0x20, 0x13, 0x6C, 0x20, 0x00, 0x00, 0x7D, 0x20, 0x00, 0x0B, 0xB8, + 0x0C, 0x25, 0x9A, 0x4B, 0xC0, 0x01, 0xE8, 0x48, 0x00, 0x3D, 0x09, + 0x10, + // array 3 + 0xA2, // nal type + 0x00, 0x01, // num nalus + 0x00, 0x07, // nal unit length + 0x44, 0x01, 0xC1, 0x72, 0xA6, 0x46, 0x24, + }; + // clang-format on HEVCDecoderConfigurationRecord hevc_config; ASSERT_TRUE(hevc_config.Parse(kHevcDecoderConfigurationData, @@ -48,9 +99,11 @@ TEST(HEVCDecoderConfigurationRecordTest, Success) { EXPECT_EQ("hev1.2.4.L63.90", hevc_config.GetCodecString(FOURCC_hev1)); EXPECT_EQ("hvc1.2.4.L63.90", hevc_config.GetCodecString(FOURCC_hvc1)); - EXPECT_EQ(2u, hevc_config.nalu_count()); + EXPECT_EQ(3u, hevc_config.nalu_count()); EXPECT_EQ(0x16u, hevc_config.nalu(0).payload_size()); EXPECT_EQ(0x40, hevc_config.nalu(0).data()[0]); + + EXPECT_EQ(16, hevc_config.transfer_characteristics()); } TEST(HEVCDecoderConfigurationRecordTest, FailOnInsufficientData) { diff --git a/packager/media/crypto/subsample_generator_unittest.cc b/packager/media/crypto/subsample_generator_unittest.cc index 5f89ffb98c..ea94edd92c 100644 --- a/packager/media/crypto/subsample_generator_unittest.cc +++ b/packager/media/crypto/subsample_generator_unittest.cc @@ -63,6 +63,7 @@ VideoStreamInfo GetVideoStreamInfo(Codec codec) { const uint16_t kHeight = 20u; const uint32_t kPixelWidth = 2u; const uint32_t kPixelHeight = 3u; + const uint8_t kTransferCharacteristics = 0; const int16_t kTrickPlayFactor = 0; const uint8_t kNaluLengthSize = 1u; @@ -81,11 +82,11 @@ VideoStreamInfo GetVideoStreamInfo(Codec codec) { // We do not care about the codec configs for other codecs in this file. break; } - return VideoStreamInfo(kTrackId, kTimeScale, kDuration, codec, - H26xStreamFormat::kUnSpecified, kCodecString, - codec_config, codec_config_size, kWidth, kHeight, - kPixelWidth, kPixelHeight, kTrickPlayFactor, - kNaluLengthSize, kLanguage, !kEncrypted); + return VideoStreamInfo( + kTrackId, kTimeScale, kDuration, codec, H26xStreamFormat::kUnSpecified, + kCodecString, codec_config, codec_config_size, kWidth, kHeight, + kPixelWidth, kPixelHeight, kTransferCharacteristics, kTrickPlayFactor, + kNaluLengthSize, kLanguage, !kEncrypted); } AudioStreamInfo GetAudioStreamInfo(Codec codec) { diff --git a/packager/media/event/media_event.gyp b/packager/media/event/media_event.gyp index 13086b0cc5..5206c82ab4 100644 --- a/packager/media/event/media_event.gyp +++ b/packager/media/event/media_event.gyp @@ -54,6 +54,7 @@ 'type': '<(gtest_target_type)', 'sources': [ 'hls_notify_muxer_listener_unittest.cc', + 'muxer_listener_internal_unittest.cc', 'mpd_notify_muxer_listener_unittest.cc', 'muxer_listener_test_helper.cc', 'muxer_listener_test_helper.h', diff --git a/packager/media/event/muxer_listener_internal.cc b/packager/media/event/muxer_listener_internal.cc index 54928b306c..8681c07dc9 100644 --- a/packager/media/event/muxer_listener_internal.cc +++ b/packager/media/event/muxer_listener_internal.cc @@ -87,6 +87,10 @@ void AddVideoInfo(const VideoStreamInfo* video_stream_info, if (video_stream_info->playback_rate() > 0) { video_info->set_playback_rate(video_stream_info->playback_rate()); } + if (video_stream_info->transfer_characteristics() > 0) { + video_info->set_transfer_characteristics( + video_stream_info->transfer_characteristics()); + } } void AddAudioInfo(const AudioStreamInfo* audio_stream_info, diff --git a/packager/media/event/muxer_listener_internal_unittest.cc b/packager/media/event/muxer_listener_internal_unittest.cc new file mode 100644 index 0000000000..143734805f --- /dev/null +++ b/packager/media/event/muxer_listener_internal_unittest.cc @@ -0,0 +1,77 @@ +// Copyright 2019 Google LLC. All rights reserved. +// +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file or at +// https://developers.google.com/open-source/licenses/bsd + +#include "packager/media/event/muxer_listener_internal.h" + +#include + +#include "packager/media/event/muxer_listener_test_helper.h" +#include "packager/mpd/base/media_info.pb.h" + +namespace shaka { +namespace media { +namespace internal { +namespace { +const uint32_t kReferenceTimeScale = 1000; +} // namespace + +class MuxerListenerInternalTest : public ::testing::Test {}; + +class MuxerListenerInternalVideoStreamTest : public MuxerListenerInternalTest { + protected: + std::shared_ptr video_stream_info_ = + CreateVideoStreamInfo(GetDefaultVideoStreamInfoParams()); +}; + +TEST_F(MuxerListenerInternalVideoStreamTest, Basic) { + MediaInfo media_info; + ASSERT_TRUE(GenerateMediaInfo(MuxerOptions(), *video_stream_info_, + kReferenceTimeScale, + MuxerListener::kContainerMp4, &media_info)); + ASSERT_TRUE(media_info.has_video_info()); + const MediaInfo_VideoInfo& video_info = media_info.video_info(); + EXPECT_EQ("avc1.010101", video_info.codec()); + EXPECT_EQ(720u, video_info.width()); + EXPECT_EQ(480u, video_info.height()); + EXPECT_EQ(10u, video_info.time_scale()); + EXPECT_EQ(1u, video_info.pixel_width()); + EXPECT_EQ(1u, video_info.pixel_height()); + EXPECT_EQ(0u, video_info.playback_rate()); + EXPECT_EQ(0u, video_info.transfer_characteristics()); +} + +TEST_F(MuxerListenerInternalVideoStreamTest, PixelWidthHeight) { + MediaInfo media_info; + video_stream_info_->set_pixel_width(100); + video_stream_info_->set_pixel_height(200); + ASSERT_TRUE(GenerateMediaInfo(MuxerOptions(), *video_stream_info_, + kReferenceTimeScale, + MuxerListener::kContainerMp4, &media_info)); + EXPECT_EQ(100u, media_info.video_info().pixel_width()); + EXPECT_EQ(200u, media_info.video_info().pixel_height()); +} + +TEST_F(MuxerListenerInternalVideoStreamTest, PlaybackRate) { + MediaInfo media_info; + video_stream_info_->set_playback_rate(5); + ASSERT_TRUE(GenerateMediaInfo(MuxerOptions(), *video_stream_info_, + kReferenceTimeScale, + MuxerListener::kContainerMp4, &media_info)); + EXPECT_EQ(5u, media_info.video_info().playback_rate()); +} + +TEST_F(MuxerListenerInternalVideoStreamTest, TransferCharacteristics) { + MediaInfo media_info; + video_stream_info_->set_transfer_characteristics(18); + ASSERT_TRUE(GenerateMediaInfo(MuxerOptions(), *video_stream_info_, + kReferenceTimeScale, + MuxerListener::kContainerMp4, &media_info)); + EXPECT_EQ(18u, media_info.video_info().transfer_characteristics()); +} + +} // namespace internal +} // namespace media +} // namespace shaka diff --git a/packager/media/event/muxer_listener_test_helper.cc b/packager/media/event/muxer_listener_test_helper.cc index 2c2703fbd5..3eed87415e 100644 --- a/packager/media/event/muxer_listener_test_helper.cc +++ b/packager/media/event/muxer_listener_test_helper.cc @@ -15,13 +15,14 @@ namespace media { VideoStreamInfoParameters::VideoStreamInfoParameters() {} VideoStreamInfoParameters::~VideoStreamInfoParameters() {} -std::shared_ptr CreateVideoStreamInfo( +std::shared_ptr CreateVideoStreamInfo( const VideoStreamInfoParameters& param) { return std::make_shared( param.track_id, param.time_scale, param.duration, param.codec, H26xStreamFormat::kUnSpecified, param.codec_string, param.codec_config.data(), param.codec_config.size(), param.width, param.height, param.pixel_width, param.pixel_height, + 0, // transfer_characteristics 0, // trick_play_factor param.nalu_length_size, param.language, param.is_encrypted); } diff --git a/packager/media/event/muxer_listener_test_helper.h b/packager/media/event/muxer_listener_test_helper.h index d5678bf52b..ca3a15d872 100644 --- a/packager/media/event/muxer_listener_test_helper.h +++ b/packager/media/event/muxer_listener_test_helper.h @@ -80,7 +80,7 @@ struct OnMediaEndParameters { }; // Creates StreamInfo instance from VideoStreamInfoParameters. -std::shared_ptr CreateVideoStreamInfo( +std::shared_ptr CreateVideoStreamInfo( const VideoStreamInfoParameters& param); // Returns the "default" VideoStreamInfoParameters for testing. diff --git a/packager/media/formats/mp2t/es_parser_h264.cc b/packager/media/formats/mp2t/es_parser_h264.cc index 8a609a7cdd..2bd3d26c11 100644 --- a/packager/media/formats/mp2t/es_parser_h264.cc +++ b/packager/media/formats/mp2t/es_parser_h264.cc @@ -159,8 +159,8 @@ bool EsParserH264::UpdateVideoDecoderConfig(int pps_id) { codec_fourcc, decoder_config_record[1], decoder_config_record[2], decoder_config_record[3]), decoder_config_record.data(), decoder_config_record.size(), coded_width, - coded_height, pixel_width, pixel_height, 0, nalu_length_size, - std::string(), false); + coded_height, pixel_width, pixel_height, sps->transfer_characteristics, 0, + nalu_length_size, std::string(), false); DVLOG(1) << "Profile IDC: " << sps->profile_idc; DVLOG(1) << "Level IDC: " << sps->level_idc; DVLOG(1) << "log2_max_frame_num_minus4: " << sps->log2_max_frame_num_minus4; diff --git a/packager/media/formats/mp2t/es_parser_h265.cc b/packager/media/formats/mp2t/es_parser_h265.cc index 6da887302d..4983392f22 100644 --- a/packager/media/formats/mp2t/es_parser_h265.cc +++ b/packager/media/formats/mp2t/es_parser_h265.cc @@ -39,7 +39,7 @@ EsParserH265::~EsParserH265() {} void EsParserH265::Reset() { DVLOG(1) << "EsParserH265::Reset"; h265_parser_.reset(new H265Parser()); - last_video_decoder_config_ = std::shared_ptr(); + last_video_decoder_config_ = std::shared_ptr(); decoder_config_check_pending_ = false; EsParserH26x::Reset(); } @@ -162,7 +162,8 @@ bool EsParserH265::UpdateVideoDecoderConfig(int pps_id) { pid(), kMpeg2Timescale, kInfiniteDuration, kCodecH265, stream_format, decoder_config.GetCodecString(codec_fourcc), decoder_config_record.data(), decoder_config_record.size(), coded_width, coded_height, pixel_width, - pixel_height, 0, nalu_length_size, std::string(), false); + pixel_height, sps->vui_parameters.transfer_characteristics, 0, + nalu_length_size, std::string(), false); // Video config notification. new_stream_info_cb_.Run(last_video_decoder_config_); diff --git a/packager/media/formats/mp2t/pes_packet_generator_unittest.cc b/packager/media/formats/mp2t/pes_packet_generator_unittest.cc index d0f3bf30dc..05656729ed 100644 --- a/packager/media/formats/mp2t/pes_packet_generator_unittest.cc +++ b/packager/media/formats/mp2t/pes_packet_generator_unittest.cc @@ -83,6 +83,7 @@ const uint32_t kWidth = 1280; const uint32_t kHeight = 720; const uint32_t kPixelWidth = 1; const uint32_t kPixelHeight = 1; +const uint8_t kTransferCharacteristics = 0; const uint16_t kTrickPlayFactor = 1; const uint8_t kNaluLengthSize = 1; const bool kIsEncrypted = false; @@ -123,7 +124,8 @@ std::shared_ptr CreateVideoStreamInfo(Codec codec) { kTrackId, kTimeScale, kDuration, codec, H26xStreamFormat::kAnnexbByteStream, kCodecString, kVideoExtraData, arraysize(kVideoExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight, - kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted)); + kTransferCharacteristics, kTrickPlayFactor, kNaluLengthSize, kLanguage, + kIsEncrypted)); return stream_info; } @@ -355,7 +357,8 @@ TEST_F(PesPacketGeneratorTest, TimeStampScaling) { kTrackId, kTestTimescale, kDuration, kH264Codec, H26xStreamFormat::kAnnexbByteStream, kCodecString, kVideoExtraData, arraysize(kVideoExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight, - kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted)); + kTransferCharacteristics, kTrickPlayFactor, kNaluLengthSize, kLanguage, + kIsEncrypted)); EXPECT_TRUE(generator_.Initialize(*stream_info)); EXPECT_EQ(0u, generator_.NumberOfReadyPesPackets()); diff --git a/packager/media/formats/mp2t/ts_segmenter_unittest.cc b/packager/media/formats/mp2t/ts_segmenter_unittest.cc index 46a990fc17..aa0fd31a9f 100644 --- a/packager/media/formats/mp2t/ts_segmenter_unittest.cc +++ b/packager/media/formats/mp2t/ts_segmenter_unittest.cc @@ -44,6 +44,7 @@ const uint32_t kWidth = 1280; const uint32_t kHeight = 720; const uint32_t kPixelWidth = 1; const uint32_t kPixelHeight = 1; +const uint8_t kTransferCharacteristics = 0; const uint16_t kTrickPlayFactor = 1; const uint8_t kNaluLengthSize = 1; const bool kIsEncrypted = false; @@ -110,7 +111,8 @@ TEST_F(TsSegmenterTest, Initialize) { kTrackId, kTimeScale, kDuration, kH264Codec, H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData, arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight, - kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted)); + kTransferCharacteristics, kTrickPlayFactor, kNaluLengthSize, kLanguage, + kIsEncrypted)); MuxerOptions options; options.segment_template = "file$Number$.ts"; TsSegmenter segmenter(options, nullptr); @@ -129,7 +131,8 @@ TEST_F(TsSegmenterTest, AddSample) { kTrackId, kTimeScale, kDuration, kH264Codec, H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData, arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight, - kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted)); + kTransferCharacteristics, kTrickPlayFactor, kNaluLengthSize, kLanguage, + kIsEncrypted)); MuxerOptions options; options.segment_template = "file$Number$.ts"; TsSegmenter segmenter(options, nullptr); @@ -180,7 +183,8 @@ TEST_F(TsSegmenterTest, PassedSegmentDuration) { kTrackId, kInputTimescale, kDuration, kH264Codec, H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData, arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight, - kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted)); + kTransferCharacteristics, kTrickPlayFactor, kNaluLengthSize, kLanguage, + kIsEncrypted)); MuxerOptions options; options.segment_template = "file$Number$.ts"; @@ -274,7 +278,8 @@ TEST_F(TsSegmenterTest, InitializeThenFinalize) { kTrackId, kTimeScale, kDuration, kH264Codec, H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData, arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight, - kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted)); + kTransferCharacteristics, kTrickPlayFactor, kNaluLengthSize, kLanguage, + kIsEncrypted)); MuxerOptions options; options.segment_template = "file$Number$.ts"; TsSegmenter segmenter(options, nullptr); @@ -301,7 +306,8 @@ TEST_F(TsSegmenterTest, FinalizeSegment) { kTrackId, kTimeScale, kDuration, kH264Codec, H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData, arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight, - kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted)); + kTransferCharacteristics, kTrickPlayFactor, kNaluLengthSize, kLanguage, + kIsEncrypted)); MuxerOptions options; options.segment_template = "file$Number$.ts"; TsSegmenter segmenter(options, nullptr); @@ -328,7 +334,8 @@ TEST_F(TsSegmenterTest, EncryptedSample) { kTrackId, kTimeScale, kDuration, kH264Codec, H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData, arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight, - kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted)); + kTransferCharacteristics, kTrickPlayFactor, kNaluLengthSize, kLanguage, + kIsEncrypted)); MuxerOptions options; options.segment_template = "file$Number$.ts"; diff --git a/packager/media/formats/mp4/mp4_media_parser.cc b/packager/media/formats/mp4/mp4_media_parser.cc index 77371f8c68..4480f4d112 100644 --- a/packager/media/formats/mp4/mp4_media_parser.cc +++ b/packager/media/formats/mp4/mp4_media_parser.cc @@ -555,6 +555,7 @@ bool MP4MediaParser::ParseMoov(BoxReader* reader) { } std::string codec_string; uint8_t nalu_length_size = 0; + uint8_t transfer_characteristics = 0; const FourCC actual_format = entry.GetActualFormat(); const Codec video_codec = FourCCToCodec(actual_format); @@ -577,6 +578,7 @@ bool MP4MediaParser::ParseMoov(BoxReader* reader) { } codec_string = avc_config.GetCodecString(actual_format); nalu_length_size = avc_config.nalu_length_size(); + transfer_characteristics = avc_config.transfer_characteristics(); // Use configurations from |avc_config| if it is valid. if (avc_config.coded_width() != 0) { @@ -624,6 +626,7 @@ bool MP4MediaParser::ParseMoov(BoxReader* reader) { } codec_string = hevc_config.GetCodecString(actual_format); nalu_length_size = hevc_config.nalu_length_size(); + transfer_characteristics = hevc_config.transfer_characteristics(); if (!entry.extra_codec_configs.empty()) { if (!UpdateCodecStringForDolbyVision( @@ -672,6 +675,7 @@ bool MP4MediaParser::ParseMoov(BoxReader* reader) { GetH26xStreamFormat(actual_format), codec_string, codec_configuration_data.data(), codec_configuration_data.size(), coded_width, coded_height, pixel_width, pixel_height, + transfer_characteristics, 0, // trick_play_factor nalu_length_size, track->media.header.language.code, is_encrypted)); video_stream_info->set_extra_config(entry.ExtraCodecConfigsAsVector()); diff --git a/packager/media/formats/webm/segmenter_test_base.cc b/packager/media/formats/webm/segmenter_test_base.cc index 643b0b0fc0..c8a589630a 100644 --- a/packager/media/formats/webm/segmenter_test_base.cc +++ b/packager/media/formats/webm/segmenter_test_base.cc @@ -30,6 +30,7 @@ const uint16_t kWidth = 100; const uint16_t kHeight = 100; const uint16_t kPixelWidth = 100; const uint16_t kPixelHeight = 100; +const uint8_t kTransferCharacteristics = 0; const int16_t kTrickPlayFactor = 1; const uint8_t kNaluLengthSize = 0; @@ -85,8 +86,8 @@ VideoStreamInfo* SegmentTestBase::CreateVideoStreamInfo( return new VideoStreamInfo( kTrackId, time_scale, kDurationInSeconds * time_scale, kCodec, H26xStreamFormat::kUnSpecified, kCodecString, NULL, 0, kWidth, kHeight, - kPixelWidth, kPixelHeight, kTrickPlayFactor, kNaluLengthSize, kLanguage, - false); + kPixelWidth, kPixelHeight, kTransferCharacteristics, kTrickPlayFactor, + kNaluLengthSize, kLanguage, false); } std::string SegmentTestBase::OutputFileName() const { diff --git a/packager/media/formats/webm/webm_cluster_parser_unittest.cc b/packager/media/formats/webm/webm_cluster_parser_unittest.cc index 7b6713b5ea..76d3dc94e2 100644 --- a/packager/media/formats/webm/webm_cluster_parser_unittest.cc +++ b/packager/media/formats/webm/webm_cluster_parser_unittest.cc @@ -91,6 +91,7 @@ const uint16_t kWidth = 320u; const uint16_t kHeight = 180u; const uint32_t kPixelWidth = 1u; const uint32_t kPixelHeight = 1u; +const uint8_t kTransferCharacteristics = 0; const int16_t kTrickPlayFactor = 0u; const uint8_t kNaluLengthSize = 0u; @@ -350,6 +351,7 @@ class WebMClusterParserTest : public testing::Test { kHeight, kPixelWidth, kPixelHeight, + kTransferCharacteristics, kTrickPlayFactor, kNaluLengthSize, kLanguage, diff --git a/packager/media/formats/webm/webm_video_client.cc b/packager/media/formats/webm/webm_video_client.cc index 0298a3e486..4177477def 100644 --- a/packager/media/formats/webm/webm_video_client.cc +++ b/packager/media/formats/webm/webm_video_client.cc @@ -124,7 +124,7 @@ std::shared_ptr WebMVideoClient::GetVideoStreamInfo( track_num, kWebMTimeScale, 0, video_codec, H26xStreamFormat::kUnSpecified, codec_string, codec_private.data(), codec_private.size(), width_after_crop, height_after_crop, pixel_width, pixel_height, 0, 0, - std::string(), is_encrypted); + 0 /* transfer_characteristics */, std::string(), is_encrypted); } VPCodecConfigurationRecord WebMVideoClient::GetVpCodecConfig( diff --git a/packager/media/formats/wvm/wvm_media_parser.cc b/packager/media/formats/wvm/wvm_media_parser.cc index 1d7139cd05..85d353a920 100644 --- a/packager/media/formats/wvm/wvm_media_parser.cc +++ b/packager/media/formats/wvm/wvm_media_parser.cc @@ -744,9 +744,9 @@ bool WvmMediaParser::ParseIndexEntry() { stream_id_count_, time_scale, track_duration, kCodecH264, byte_to_unit_stream_converter_.stream_format(), std::string(), video_codec_config.data(), video_codec_config.size(), video_width, - video_height, pixel_width, pixel_height, trick_play_factor, - nalu_length_size, std::string(), - decryption_key_source_ ? false : true)); + video_height, pixel_width, pixel_height, + 0 /* transfer_characteristics */, trick_play_factor, nalu_length_size, + std::string(), decryption_key_source_ ? false : true)); program_demux_stream_map_[base::UintToString(index_program_id_) + ":" + base::UintToString( video_pes_stream_id diff --git a/packager/media/test/data/README b/packager/media/test/data/README index d4bce77108..b348011794 100644 --- a/packager/media/test/data/README +++ b/packager/media/test/data/README @@ -35,6 +35,11 @@ bear-1280x720.mp4 - AVC + AAC encode, mulitplexed into an ISOBMFF container. bear-640x360.mp4 - Same as above, but in a different resolution. bear-640x360-ec3.mp4 - Same content, but audio encoded with E-AC3. bear-640x360-hevc.mp4 - Same content, but video encoded with HEVC. +bear-640x360-hevc-hdr10.mp4 - Same content, but video encoded with HEVC with HDR10 using the below command: + ffmpeg -i bear-640x360-hevc.mp4 -c:a copy -c:v libx265 -tag:v hvc1 -crf 22 \ + -pix_fmt yuv420p10le \ + -x265-params "colorprim=bt2020:transfer=smpte2084:colormatrix=bt2020nc" \ + bear-640x360-hevc-hdr10.mp4 bear-320x180.mp4 - Same as above, but in a different resolution. bear-640x360-trailing-moov.mp4 - Same content, but with moov box in the end. bear-640x360-trailing-moov-additional-mdat.mp4 - Same content, but with moov box in the end and an additional unused mdat, which should be ignored. diff --git a/packager/media/test/data/bear-640x360-hevc-hdr10.mp4 b/packager/media/test/data/bear-640x360-hevc-hdr10.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..ac3a7960893375e458897cb6af7b8d42a8969d23 GIT binary patch literal 161529 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�y&H=<1XfBoAi?P$o4l$`u;H@p_Lr#2l{ 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


~_d?CNN~7go-tuN_J7Q#a?XM_xn+;Lz*2 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

`2;f?0f^i&ky6(ryG!r#cEV~~vw%~yI- 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