diff --git a/packager/app/packager_main.cc b/packager/app/packager_main.cc
index fd3fd28965..9d92983fd1 100644
--- a/packager/app/packager_main.cc
+++ b/packager/app/packager_main.cc
@@ -358,11 +358,11 @@ bool CreateRemuxJobs(const StreamDescriptorList& stream_descriptors,
// Create a new trick_play_handler. Note that the stream_decriptors
// are sorted so that for the same input and stream_selector, the main
// stream is always the last one following the trick play streams.
- if (stream_iter->trick_play_rate > 0) {
+ if (stream_iter->trick_play_factor > 0) {
if (!trick_play_handler) {
trick_play_handler.reset(new TrickPlayHandler());
}
- trick_play_handler->SetHandlerForTrickPlay(stream_iter->trick_play_rate,
+ trick_play_handler->SetHandlerForTrickPlay(stream_iter->trick_play_factor,
std::move(muxer));
if (trick_play_handler->IsConnected())
continue;
diff --git a/packager/app/stream_descriptor.cc b/packager/app/stream_descriptor.cc
index a8bbea6de2..af25a93eed 100644
--- a/packager/app/stream_descriptor.cc
+++ b/packager/app/stream_descriptor.cc
@@ -30,7 +30,7 @@ enum FieldType {
kHlsNameField,
kHlsGroupIdField,
kHlsPlaylistNameField,
- kTrickPlayRateField,
+ kTrickPlayFactorField,
};
struct FieldNameToTypeMapping {
@@ -58,7 +58,8 @@ const FieldNameToTypeMapping kFieldNameTypeMappings[] = {
{"hls_name", kHlsNameField},
{"hls_group_id", kHlsGroupIdField},
{"playlist_name", kHlsPlaylistNameField},
- {"trick_play_rate", kTrickPlayRateField},
+ {"trick_play_factor", kTrickPlayFactorField},
+ {"tpf", kTrickPlayFactorField},
};
FieldType GetFieldType(const std::string& field_name) {
@@ -143,18 +144,18 @@ bool InsertStreamDescriptor(const std::string& descriptor_string,
descriptor.hls_playlist_name = iter->second;
break;
}
- case kTrickPlayRateField: {
- unsigned rate;
- if (!base::StringToUint(iter->second, &rate)) {
- LOG(ERROR) << "Non-numeric trick play rate " << iter->second
+ case kTrickPlayFactorField: {
+ unsigned factor;
+ if (!base::StringToUint(iter->second, &factor)) {
+ LOG(ERROR) << "Non-numeric trick play factor " << iter->second
<< " specified.";
return false;
}
- if (rate == 0) {
- LOG(ERROR) << "Stream trick_play_rate should be > 0.";
+ if (factor == 0) {
+ LOG(ERROR) << "Stream trick_play_factor should be > 0.";
return false;
}
- descriptor.trick_play_rate = rate;
+ descriptor.trick_play_factor = factor;
break;
}
default:
diff --git a/packager/app/stream_descriptor.h b/packager/app/stream_descriptor.h
index 5cb6c80489..5389efbbe2 100644
--- a/packager/app/stream_descriptor.h
+++ b/packager/app/stream_descriptor.h
@@ -33,7 +33,7 @@ struct StreamDescriptor {
std::string hls_name;
std::string hls_group_id;
std::string hls_playlist_name;
- uint32_t trick_play_rate = 0;
+ uint32_t trick_play_factor = 0;
};
class StreamDescriptorCompareFn {
@@ -41,8 +41,8 @@ class StreamDescriptorCompareFn {
bool operator()(const StreamDescriptor& a, const StreamDescriptor& b) {
if (a.input == b.input) {
if (a.stream_selector == b.stream_selector)
- // Stream with high trick_play_rate is at the beginning.
- return a.trick_play_rate > b.trick_play_rate;
+ // Stream with high trick_play_factor is at the beginning.
+ return a.trick_play_factor > b.trick_play_factor;
else
return a.stream_selector < b.stream_selector;
}
diff --git a/packager/app/test/packager_test.py b/packager/app/test/packager_test.py
index 0bd7f0d566..7d12acf832 100755
--- a/packager/app/test/packager_test.py
+++ b/packager/app/test/packager_test.py
@@ -64,7 +64,7 @@ class PackagerAppTest(unittest.TestCase):
' width: 640\n'
' height: 360\n'
' pixel_aspect_ratio: 1:1\n'
- ' trick_play_rate: 0\n'
+ ' trick_play_factor: 0\n'
' nalu_length_size: 4\n\n'
'Stream [1] type: Audio\n'
' codec_string: mp4a.40.2\n'
@@ -103,7 +103,7 @@ class PackagerAppTest(unittest.TestCase):
def testPackageAudioVideoWithTrickPlay(self):
self.packager.Package(
- self._GetStreams(['audio', 'video', 'video,trick_play_rate=1']),
+ self._GetStreams(['audio', 'video', 'video,trick_play_factor=1']),
self._GetFlags())
self._DiffGold(self.output[0], 'bear-640x360-a-golden.mp4')
self._DiffGold(self.output[1], 'bear-640x360-v-golden.mp4')
@@ -112,8 +112,8 @@ class PackagerAppTest(unittest.TestCase):
def testPackageAudioVideoWithTwoTrickPlay(self):
self.packager.Package(
- self._GetStreams(['audio', 'video', 'video,trick_play_rate=1',
- 'video,trick_play_rate=2']),
+ self._GetStreams(['audio', 'video', 'video,trick_play_factor=1',
+ 'video,trick_play_factor=2']),
self._GetFlags())
self._DiffGold(self.output[0], 'bear-640x360-a-golden.mp4')
self._DiffGold(self.output[1], 'bear-640x360-v-golden.mp4')
@@ -124,15 +124,15 @@ class PackagerAppTest(unittest.TestCase):
def testPackageAudioVideoWithTwoTrickPlayDecreasingRate(self):
self.packager.Package(
- self._GetStreams(['audio', 'video', 'video,trick_play_rate=2',
- 'video,trick_play_rate=1']),
+ self._GetStreams(['audio', 'video', 'video,trick_play_factor=2',
+ 'video,trick_play_factor=1']),
self._GetFlags())
self._DiffGold(self.output[0], 'bear-640x360-a-golden.mp4')
self._DiffGold(self.output[1], 'bear-640x360-v-golden.mp4')
self._DiffGold(self.output[2], 'bear-640x360-v-trick-2-golden.mp4')
self._DiffGold(self.output[3], 'bear-640x360-v-trick-1-golden.mp4')
# Since the stream descriptors are sorted in packager app, a different
- # order of trick play rates gets the same mpd.
+ # order of trick play factors gets the same mpd.
self._DiffGold(self.mpd_output,
'bear-640x360-av-trick-1-trick-2-golden.mpd')
@@ -242,7 +242,7 @@ class PackagerAppTest(unittest.TestCase):
def testPackageWithEncryptionAndTrickPlay(self):
self.packager.Package(
- self._GetStreams(['audio', 'video', 'video,trick_play_rate=1']),
+ self._GetStreams(['audio', 'video', 'video,trick_play_factor=1']),
self._GetFlags(encryption=True))
self._DiffGold(self.output[0], 'bear-640x360-a-cenc-golden.mp4')
self._DiffGold(self.output[1], 'bear-640x360-v-cenc-golden.mp4')
@@ -256,8 +256,8 @@ class PackagerAppTest(unittest.TestCase):
# play stream.
def testPackageWithEncryptionAndTwoTrickPlays(self):
self.packager.Package(
- self._GetStreams(['audio', 'video', 'video,trick_play_rate=1',
- 'video,trick_play_rate=2']),
+ self._GetStreams(['audio', 'video', 'video,trick_play_factor=1',
+ 'video,trick_play_factor=2']),
self._GetFlags(encryption=True))
self._DiffGold(self.output[0], 'bear-640x360-a-cenc-golden.mp4')
self._DiffGold(self.output[1], 'bear-640x360-v-cenc-golden.mp4')
diff --git a/packager/app/test/testdata/bear-640x360-av-trick-1-cenc-golden.mpd b/packager/app/test/testdata/bear-640x360-av-trick-1-cenc-golden.mpd
index 8262361526..982928a4b7 100644
--- a/packager/app/test/testdata/bear-640x360-av-trick-1-cenc-golden.mpd
+++ b/packager/app/test/testdata/bear-640x360-av-trick-1-cenc-golden.mpd
@@ -21,7 +21,7 @@
- output_video_trick_play_rate_1.mp4
+ output_video_trick_play_factor_1.mp4
diff --git a/packager/app/test/testdata/bear-640x360-av-trick-1-golden.mpd b/packager/app/test/testdata/bear-640x360-av-trick-1-golden.mpd
index c4f46e2ca7..beb72c7c51 100644
--- a/packager/app/test/testdata/bear-640x360-av-trick-1-golden.mpd
+++ b/packager/app/test/testdata/bear-640x360-av-trick-1-golden.mpd
@@ -13,7 +13,7 @@
- output_video_trick_play_rate_1.mp4
+ output_video_trick_play_factor_1.mp4
diff --git a/packager/app/test/testdata/bear-640x360-av-trick-1-trick-2-cenc-golden.mpd b/packager/app/test/testdata/bear-640x360-av-trick-1-trick-2-cenc-golden.mpd
index f021e58096..e382bd7c26 100644
--- a/packager/app/test/testdata/bear-640x360-av-trick-1-trick-2-cenc-golden.mpd
+++ b/packager/app/test/testdata/bear-640x360-av-trick-1-trick-2-cenc-golden.mpd
@@ -21,13 +21,13 @@
- output_video_trick_play_rate_2.mp4
+ output_video_trick_play_factor_2.mp4
- output_video_trick_play_rate_1.mp4
+ output_video_trick_play_factor_1.mp4
diff --git a/packager/app/test/testdata/bear-640x360-av-trick-1-trick-2-golden.mpd b/packager/app/test/testdata/bear-640x360-av-trick-1-trick-2-golden.mpd
index 59d55b7be2..8e9c3b7415 100644
--- a/packager/app/test/testdata/bear-640x360-av-trick-1-trick-2-golden.mpd
+++ b/packager/app/test/testdata/bear-640x360-av-trick-1-trick-2-golden.mpd
@@ -13,13 +13,13 @@
- output_video_trick_play_rate_2.mp4
+ output_video_trick_play_factor_2.mp4
- output_video_trick_play_rate_1.mp4
+ output_video_trick_play_factor_1.mp4
diff --git a/packager/media/base/media_handler_test_base.cc b/packager/media/base/media_handler_test_base.cc
index fe25ab6024..6192f8a8c3 100644
--- a/packager/media/base/media_handler_test_base.cc
+++ b/packager/media/base/media_handler_test_base.cc
@@ -27,7 +27,7 @@ const uint16_t kWidth = 10u;
const uint16_t kHeight = 20u;
const uint32_t kPixelWidth = 2u;
const uint32_t kPixelHeight = 3u;
-const int16_t kTrickPlayRate = 0;
+const int16_t kTrickPlayFactor = 0;
const uint8_t kNaluLengthSize = 1u;
const bool kEncrypted = true;
@@ -156,7 +156,7 @@ std::shared_ptr MediaHandlerTestBase::GetMockStreamInfo(
return std::shared_ptr(new VideoStreamInfo(
kTrackId, time_scale, kDuration, codec, H26xStreamFormat::kUnSpecified,
kCodecString, kCodecConfig, sizeof(kCodecConfig), kWidth, kHeight,
- kPixelWidth, kPixelHeight, kTrickPlayRate, kNaluLengthSize, kLanguage,
+ kPixelWidth, kPixelHeight, kTrickPlayFactor, kNaluLengthSize, kLanguage,
!kEncrypted));
}
return nullptr;
diff --git a/packager/media/base/video_stream_info.cc b/packager/media/base/video_stream_info.cc
index 704970ad74..34dc0ec9ed 100644
--- a/packager/media/base/video_stream_info.cc
+++ b/packager/media/base/video_stream_info.cc
@@ -48,7 +48,7 @@ VideoStreamInfo::VideoStreamInfo(int track_id,
uint16_t height,
uint32_t pixel_width,
uint32_t pixel_height,
- uint32_t trick_play_rate,
+ uint32_t trick_play_factor,
uint8_t nalu_length_size,
const std::string& language,
bool is_encrypted)
@@ -67,7 +67,7 @@ VideoStreamInfo::VideoStreamInfo(int track_id,
height_(height),
pixel_width_(pixel_width),
pixel_height_(pixel_height),
- trick_play_rate_(trick_play_rate),
+ trick_play_factor_(trick_play_factor),
nalu_length_size_(nalu_length_size) {}
VideoStreamInfo::~VideoStreamInfo() {}
@@ -82,9 +82,9 @@ bool VideoStreamInfo::IsValidConfig() const {
std::string VideoStreamInfo::ToString() const {
return base::StringPrintf(
"%s codec: %s\n width: %d\n height: %d\n pixel_aspect_ratio: %d:%d\n "
- "trick_play_rate: %d\n nalu_length_size: %d\n",
+ "trick_play_factor: %d\n nalu_length_size: %d\n",
StreamInfo::ToString().c_str(), VideoCodecToString(codec()).c_str(),
- width_, height_, pixel_width_, pixel_height_, trick_play_rate_,
+ width_, height_, pixel_width_, pixel_height_, trick_play_factor_,
nalu_length_size_);
}
diff --git a/packager/media/base/video_stream_info.h b/packager/media/base/video_stream_info.h
index a837990c16..59609c7ff6 100644
--- a/packager/media/base/video_stream_info.h
+++ b/packager/media/base/video_stream_info.h
@@ -39,7 +39,7 @@ class VideoStreamInfo : public StreamInfo {
uint16_t height,
uint32_t pixel_width,
uint32_t pixel_height,
- uint32_t trick_play_rate,
+ uint32_t trick_play_factor,
uint8_t nalu_length_size,
const std::string& language,
bool is_encrypted);
@@ -62,7 +62,7 @@ class VideoStreamInfo : public StreamInfo {
/// @return 0 if unknown.
uint32_t pixel_height() const { return pixel_height_; }
uint8_t nalu_length_size() const { return nalu_length_size_; }
- uint32_t trick_play_rate() const { return trick_play_rate_; }
+ uint32_t trick_play_factor() const { return trick_play_factor_; }
uint32_t playback_rate() const { return playback_rate_; }
const std::vector& eme_init_data() const { return eme_init_data_; }
@@ -70,8 +70,8 @@ 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_trick_play_rate(uint32_t trick_play_rate) {
- trick_play_rate_ = trick_play_rate;
+ void set_trick_play_factor(uint32_t trick_play_factor) {
+ trick_play_factor_ = trick_play_factor;
}
void set_playback_rate(uint32_t playback_rate) {
playback_rate_ = playback_rate;
@@ -90,7 +90,7 @@ class VideoStreamInfo : public StreamInfo {
// 0 means unknown.
uint32_t pixel_width_;
uint32_t pixel_height_;
- uint32_t trick_play_rate_ = 0; // Non-zero for trick-play streams.
+ uint32_t trick_play_factor_ = 0; // Non-zero for trick-play streams.
// Playback rate is the attribute for trick play stream, which signals the
// playout capabilities
@@ -99,8 +99,8 @@ class VideoStreamInfo : public StreamInfo {
// frame rate. If the time scale and frame duration are not modified after
// trick play handler processing, the playback_rate equals to the number of
// frames between consecutive key frames selected for trick play stream. For
- // example, if the video stream has GOP size of 10 and the trick play rate is
- // 3, the key frames are in this trick play stream are [frame_0, frame_30,
+ // example, if the video stream has GOP size of 10 and the trick play factor
+ // is 3, the key frames are in this trick play stream are [frame_0, frame_30,
// frame_60, ...]. Then the playback_rate is 30.
uint32_t playback_rate_;
diff --git a/packager/media/event/muxer_listener_internal.cc b/packager/media/event/muxer_listener_internal.cc
index 3a2349bcba..fb2283c62d 100644
--- a/packager/media/event/muxer_listener_internal.cc
+++ b/packager/media/event/muxer_listener_internal.cc
@@ -102,8 +102,8 @@ void AddVideoInfo(const VideoStreamInfo* video_stream_info,
video_info->set_decoder_config(&codec_config[0], codec_config.size());
}
- if (video_stream_info->trick_play_rate() > 0) {
- video_info->set_trick_play_rate(video_stream_info->trick_play_rate());
+ if (video_stream_info->trick_play_factor() > 0) {
+ video_info->set_trick_play_factor(video_stream_info->trick_play_factor());
CHECK_GT(video_stream_info->playback_rate(), 0u)
<< "Max playout rate should be > 0 for trick play streams.";
video_info->set_playback_rate(video_stream_info->playback_rate());
diff --git a/packager/media/event/muxer_listener_test_helper.cc b/packager/media/event/muxer_listener_test_helper.cc
index 718b1feb4c..4c79c33223 100644
--- a/packager/media/event/muxer_listener_test_helper.cc
+++ b/packager/media/event/muxer_listener_test_helper.cc
@@ -21,7 +21,7 @@ std::shared_ptr CreateVideoStreamInfo(
H26xStreamFormat::kUnSpecified, param.codec_string,
param.codec_config.data(), param.codec_config.size(), param.width,
param.height, param.pixel_width, param.pixel_height,
- 0, // trick_play_rate
+ 0, // trick_play_factor
param.nalu_length_size, param.language, param.is_encrypted);
}
diff --git a/packager/media/formats/mp2t/pes_packet_generator_unittest.cc b/packager/media/formats/mp2t/pes_packet_generator_unittest.cc
index 6b2d458577..db6d79ecdd 100644
--- a/packager/media/formats/mp2t/pes_packet_generator_unittest.cc
+++ b/packager/media/formats/mp2t/pes_packet_generator_unittest.cc
@@ -81,7 +81,7 @@ const uint32_t kWidth = 1280;
const uint32_t kHeight = 720;
const uint32_t kPixelWidth = 1;
const uint32_t kPixelHeight = 1;
-const uint16_t kTrickPlayRate = 1;
+const uint16_t kTrickPlayFactor = 1;
const uint8_t kNaluLengthSize = 1;
const bool kIsEncrypted = false;
@@ -118,7 +118,7 @@ std::shared_ptr CreateVideoStreamInfo(Codec codec) {
kTrackId, kTimeScale, kDuration, codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kVideoExtraData,
arraysize(kVideoExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
return stream_info;
}
@@ -348,7 +348,7 @@ TEST_F(PesPacketGeneratorTest, TimeStampScaling) {
kTrackId, kTestTimescale, kDuration, kH264Codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kVideoExtraData,
arraysize(kVideoExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ 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 f128fdfcde..088eb51b80 100644
--- a/packager/media/formats/mp2t/ts_segmenter_unittest.cc
+++ b/packager/media/formats/mp2t/ts_segmenter_unittest.cc
@@ -41,7 +41,7 @@ const uint32_t kWidth = 1280;
const uint32_t kHeight = 720;
const uint32_t kPixelWidth = 1;
const uint32_t kPixelHeight = 1;
-const uint16_t kTrickPlayRate = 1;
+const uint16_t kTrickPlayFactor = 1;
const uint8_t kNaluLengthSize = 1;
const bool kIsEncrypted = false;
@@ -100,7 +100,7 @@ TEST_F(TsSegmenterTest, Initialize) {
kTrackId, kTimeScale, kDuration, kH264Codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData,
arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
MuxerOptions options;
options.segment_template = "file$Number$.ts";
TsSegmenter segmenter(options, nullptr);
@@ -121,7 +121,7 @@ TEST_F(TsSegmenterTest, AddSample) {
kTrackId, kTimeScale, kDuration, kH264Codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData,
arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
MuxerOptions options;
options.segment_template = "file$Number$.ts";
TsSegmenter segmenter(options, nullptr);
@@ -173,7 +173,7 @@ TEST_F(TsSegmenterTest, PassedSegmentDuration) {
kTrackId, kInputTimescale, kDuration, kH264Codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData,
arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
MuxerOptions options;
options.segment_template = "file$Number$.ts";
@@ -268,7 +268,7 @@ TEST_F(TsSegmenterTest, InitializeThenFinalize) {
kTrackId, kTimeScale, kDuration, kH264Codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData,
arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
MuxerOptions options;
options.segment_template = "file$Number$.ts";
TsSegmenter segmenter(options, nullptr);
@@ -297,7 +297,7 @@ TEST_F(TsSegmenterTest, FinalizeSegment) {
kTrackId, kTimeScale, kDuration, kH264Codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData,
arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
MuxerOptions options;
options.segment_template = "file$Number$.ts";
TsSegmenter segmenter(options, nullptr);
@@ -325,7 +325,7 @@ TEST_F(TsSegmenterTest, EncryptedSample) {
kTrackId, kTimeScale, kDuration, kH264Codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData,
arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
MuxerOptions options;
options.segment_template = "file$Number$.ts";
diff --git a/packager/media/formats/mp2t/ts_writer_unittest.cc b/packager/media/formats/mp2t/ts_writer_unittest.cc
index ff5672adca..67eab7a8f3 100644
--- a/packager/media/formats/mp2t/ts_writer_unittest.cc
+++ b/packager/media/formats/mp2t/ts_writer_unittest.cc
@@ -39,7 +39,7 @@ const uint32_t kWidth = 1280;
const uint32_t kHeight = 720;
const uint32_t kPixelWidth = 1;
const uint32_t kPixelHeight = 1;
-const uint16_t kTrickPlayRate = 1;
+const uint16_t kTrickPlayFactor = 1;
const uint8_t kNaluLengthSize = 1;
const bool kIsEncrypted = false;
@@ -161,7 +161,7 @@ TEST_F(TsWriterTest, InitializeVideoH264) {
kTrackId, kTimeScale, kDuration, kH264Codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData,
arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
EXPECT_TRUE(ts_writer_.Initialize(*stream_info));
}
@@ -170,7 +170,7 @@ TEST_F(TsWriterTest, InitializeVideoNonH264) {
kTrackId, kTimeScale, kDuration, Codec::kCodecVP9,
H26xStreamFormat::kUnSpecified, kCodecString, kExtraData,
arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
EXPECT_FALSE(ts_writer_.Initialize(*stream_info));
}
@@ -204,7 +204,7 @@ TEST_F(TsWriterTest, ClearH264Psi) {
kTrackId, kTimeScale, kDuration, kH264Codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData,
arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
EXPECT_TRUE(ts_writer_.Initialize(*stream_info));
ts_writer_.SetProgramMapTableWriterForTesting(std::move(mock_pmt_writer));
@@ -287,7 +287,7 @@ TEST_F(TsWriterTest, ClearLeadH264Pmt) {
kTrackId, kTimeScale, kDuration, kH264Codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData,
arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
EXPECT_TRUE(ts_writer_.Initialize(*stream_info));
ts_writer_.SetProgramMapTableWriterForTesting(std::move(mock_pmt_writer));
@@ -317,7 +317,7 @@ TEST_F(TsWriterTest, EncryptedSegmentsH264Pmt) {
kTrackId, kTimeScale, kDuration, kH264Codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData,
arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
EXPECT_TRUE(ts_writer_.Initialize(*stream_info));
ts_writer_.SetProgramMapTableWriterForTesting(std::move(mock_pmt_writer));
@@ -406,7 +406,7 @@ TEST_F(TsWriterTest, AddPesPacket) {
kTrackId, kTimeScale, kDuration, kH264Codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData,
arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
EXPECT_TRUE(ts_writer_.Initialize(*stream_info));
EXPECT_TRUE(ts_writer_.NewSegment(test_file_name_));
@@ -472,7 +472,7 @@ TEST_F(TsWriterTest, BigPesPacket) {
kTrackId, kTimeScale, kDuration, kH264Codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData,
arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
EXPECT_TRUE(ts_writer_.Initialize(*stream_info));
EXPECT_TRUE(ts_writer_.NewSegment(test_file_name_));
@@ -509,7 +509,7 @@ TEST_F(TsWriterTest, PesPtsZeroNoDts) {
kTrackId, kTimeScale, kDuration, kH264Codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData,
arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
EXPECT_TRUE(ts_writer_.Initialize(*stream_info));
EXPECT_TRUE(ts_writer_.NewSegment(test_file_name_));
@@ -570,7 +570,7 @@ TEST_F(TsWriterTest, TsPacketPayload183Bytes) {
kTrackId, kTimeScale, kDuration, kH264Codec,
H26xStreamFormat::kAnnexbByteStream, kCodecString, kExtraData,
arraysize(kExtraData), kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, kIsEncrypted));
+ kTrickPlayFactor, kNaluLengthSize, kLanguage, kIsEncrypted));
EXPECT_TRUE(ts_writer_.Initialize(*stream_info));
EXPECT_TRUE(ts_writer_.NewSegment(test_file_name_));
diff --git a/packager/media/formats/mp4/mp4_media_parser.cc b/packager/media/formats/mp4/mp4_media_parser.cc
index 2ee1676aae..c3a2f08182 100644
--- a/packager/media/formats/mp4/mp4_media_parser.cc
+++ b/packager/media/formats/mp4/mp4_media_parser.cc
@@ -590,7 +590,7 @@ bool MP4MediaParser::ParseMoov(BoxReader* reader) {
entry.codec_configuration.data.data(),
entry.codec_configuration.data.size(), coded_width, coded_height,
pixel_width, pixel_height,
- 0, // trick_play_rate
+ 0, // trick_play_factor
nalu_length_size, track->media.header.language.code, is_encrypted));
// Set pssh raw data if it has.
diff --git a/packager/media/formats/webm/segmenter_test_base.cc b/packager/media/formats/webm/segmenter_test_base.cc
index ac876fb83f..651f90ce72 100644
--- a/packager/media/formats/webm/segmenter_test_base.cc
+++ b/packager/media/formats/webm/segmenter_test_base.cc
@@ -31,7 +31,7 @@ const uint16_t kWidth = 100;
const uint16_t kHeight = 100;
const uint16_t kPixelWidth = 100;
const uint16_t kPixelHeight = 100;
-const int16_t kTrickPlayRate = 1;
+const int16_t kTrickPlayFactor = 1;
const uint8_t kNaluLengthSize = 0;
} // namespace
@@ -82,10 +82,10 @@ MuxerOptions SegmentTestBase::CreateMuxerOptions() const {
}
VideoStreamInfo* SegmentTestBase::CreateVideoStreamInfo() const {
- return new VideoStreamInfo(kTrackId, kTimeScale, kDuration, kCodec,
- H26xStreamFormat::kUnSpecified, kCodecString, NULL,
- 0, kWidth, kHeight, kPixelWidth, kPixelHeight,
- kTrickPlayRate, kNaluLengthSize, kLanguage, false);
+ return new VideoStreamInfo(
+ kTrackId, kTimeScale, kDuration, kCodec, H26xStreamFormat::kUnSpecified,
+ kCodecString, NULL, 0, kWidth, kHeight, kPixelWidth, kPixelHeight,
+ 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 65694f7427..4f3567c403 100644
--- a/packager/media/formats/webm/webm_cluster_parser_unittest.cc
+++ b/packager/media/formats/webm/webm_cluster_parser_unittest.cc
@@ -91,7 +91,7 @@ const uint16_t kWidth = 320u;
const uint16_t kHeight = 180u;
const uint32_t kPixelWidth = 1u;
const uint32_t kPixelHeight = 1u;
-const int16_t kTrickPlayRate = 0u;
+const int16_t kTrickPlayFactor = 0u;
const uint8_t kNaluLengthSize = 0u;
// Test duration defaults must differ from parser estimation defaults to know
@@ -350,7 +350,7 @@ class WebMClusterParserTest : public testing::Test {
kHeight,
kPixelWidth,
kPixelHeight,
- kTrickPlayRate,
+ kTrickPlayFactor,
kNaluLengthSize,
kLanguage,
!kEncrypted)),
diff --git a/packager/media/formats/wvm/wvm_media_parser.cc b/packager/media/formats/wvm/wvm_media_parser.cc
index 252f76bb4c..5d13b3ff1e 100644
--- a/packager/media/formats/wvm/wvm_media_parser.cc
+++ b/packager/media/formats/wvm/wvm_media_parser.cc
@@ -574,7 +574,7 @@ bool WvmMediaParser::ParseIndexEntry() {
}
uint64_t track_duration = 0;
- uint32_t trick_play_rate = 0;
+ uint32_t trick_play_factor = 0;
uint32_t sampling_frequency = kDefaultSamplingFrequency;
uint32_t time_scale = kMpeg2ClockRate;
uint16_t video_width = 0;
@@ -680,8 +680,8 @@ bool WvmMediaParser::ParseIndexEntry() {
case TrackDuration:
track_duration = value;
break;
- case TrackTrickPlayRate:
- trick_play_rate = value;
+ case TrackTrickPlayFactor:
+ trick_play_factor = value;
break;
case VideoStreamId:
video_pes_stream_id = value;
@@ -743,7 +743,7 @@ 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_rate,
+ video_height, pixel_width, pixel_height, trick_play_factor,
nalu_length_size, std::string(),
decryption_key_source_ ? false : true));
program_demux_stream_map_[base::UintToString(index_program_id_) + ":" +
diff --git a/packager/media/formats/wvm/wvm_media_parser.h b/packager/media/formats/wvm/wvm_media_parser.h
index 87200cb929..4242625168 100644
--- a/packager/media/formats/wvm/wvm_media_parser.h
+++ b/packager/media/formats/wvm/wvm_media_parser.h
@@ -69,7 +69,7 @@ class WvmMediaParser : public MediaParser {
TrackSize = 2,
TrackDuration = 3,
TrackBitRate = 4,
- TrackTrickPlayRate = 5,
+ TrackTrickPlayFactor = 5,
TrackAdaptationInterval = 6,
TrackFlags = 7,
VideoType = 8,
diff --git a/packager/media/trick_play/trick_play_handler.cc b/packager/media/trick_play/trick_play_handler.cc
index 677e779933..49d858c76e 100644
--- a/packager/media/trick_play/trick_play_handler.cc
+++ b/packager/media/trick_play/trick_play_handler.cc
@@ -26,11 +26,11 @@ void TrickPlayHandler::SetHandlerForMainStream(
}
void TrickPlayHandler::SetHandlerForTrickPlay(
- uint32_t trick_play_rate,
+ uint32_t trick_play_factor,
std::shared_ptr handler) {
- trick_play_rates_.push_back(trick_play_rate);
+ trick_play_factors_.push_back(trick_play_factor);
// Trick play streams start from index 1.
- SetHandler(trick_play_rates_.size(), std::move(handler));
+ SetHandler(trick_play_factors_.size(), std::move(handler));
}
Status TrickPlayHandler::InitializeInternal() {
@@ -38,13 +38,13 @@ Status TrickPlayHandler::InitializeInternal() {
return Status(error::TRICK_PLAY_ERROR,
"Trick play does not have main stream");
}
- if (trick_play_rates_.empty()) {
+ if (trick_play_factors_.empty()) {
return Status(error::TRICK_PLAY_ERROR,
- "Trick play rates are not specified.");
+ "Trick play factors are not specified.");
}
- size_t num_trick_play_rates = trick_play_rates_.size();
- cached_stream_data_.resize(num_trick_play_rates);
- playback_rates_.resize(num_trick_play_rates, 0);
+ size_t num_trick_play_factors = trick_play_factors_.size();
+ cached_stream_data_.resize(num_trick_play_factors);
+ playback_rates_.resize(num_trick_play_factors, 0);
return Status::OK;
}
@@ -70,7 +70,7 @@ Status TrickPlayHandler::Process(
}
const VideoStreamInfo& video_stream_info =
static_cast(*stream_data->stream_info);
- if (video_stream_info.trick_play_rate() > 0) {
+ if (video_stream_info.trick_play_factor() > 0) {
status.SetError(error::TRICK_PLAY_ERROR,
"This stream is alreay a trick play stream.");
return status;
@@ -101,10 +101,10 @@ Status TrickPlayHandler::Process(
if (stream_data->media_sample->is_key_frame()) {
// For a new key frame, some of the trick play streams may include it.
// The cached data in those trick play streams will be processed.
- DCHECK_EQ(trick_play_rates_.size(), cached_stream_data_.size());
+ DCHECK_EQ(trick_play_factors_.size(), cached_stream_data_.size());
for (size_t i = 0; i < cached_stream_data_.size(); ++i) {
- uint32_t rate = trick_play_rates_[i];
- if (total_key_frames_ % rate == 0) {
+ uint32_t factor = trick_play_factors_[i];
+ if (total_key_frames_ % factor == 0) {
// Delay processing cached stream data until receiving the second key
// frame so that the GOP size could be derived.
if (!cached_stream_data_[i].empty() && total_key_frames_ > 0) {
@@ -135,7 +135,7 @@ Status TrickPlayHandler::Process(
bool TrickPlayHandler::ValidateOutputStreamIndex(size_t stream_index) const {
// Output stream index should be less than the number of trick play
// streams + one original stream.
- return stream_index <= trick_play_rates_.size();
+ return stream_index <= trick_play_factors_.size();
};
Status TrickPlayHandler::OnFlushRequest(size_t input_stream_index) {
@@ -143,7 +143,7 @@ Status TrickPlayHandler::OnFlushRequest(size_t input_stream_index) {
<< "Trick Play Handler should only have single input.";
for (size_t i = 0; i < cached_stream_data_.size(); ++i) {
LOG_IF(WARNING, playback_rates_[i] == 0)
- << "Max playout rate for trick play rate " << trick_play_rates_[i]
+ << "Max playout rate for trick play factor " << trick_play_factors_[i]
<< " is not determined. "
<< "Specify it as total number of frames: " << total_frames_ << ".";
playback_rates_[i] = total_frames_;
@@ -179,16 +179,16 @@ Status TrickPlayHandler::ProcessOneStreamData(
size_t output_stream_index,
const std::shared_ptr& stream_data) {
size_t trick_play_index = output_stream_index - 1;
- uint32_t trick_play_rate = trick_play_rates_[trick_play_index];
+ uint32_t trick_play_factor = trick_play_factors_[trick_play_index];
Status status;
switch (stream_data->stream_data_type) {
- // trick_play_rate in StreamInfo should be modified.
+ // trick_play_factor in StreamInfo should be modified.
case StreamDataType::kStreamInfo: {
const VideoStreamInfo& video_stream_info =
static_cast(*stream_data->stream_info);
std::shared_ptr trick_play_video_stream_info(
new VideoStreamInfo(video_stream_info));
- trick_play_video_stream_info->set_trick_play_rate(trick_play_rate);
+ trick_play_video_stream_info->set_trick_play_factor(trick_play_factor);
DCHECK_GT(playback_rates_[trick_play_index], 0u);
trick_play_video_stream_info->set_playback_rate(
playback_rates_[trick_play_index]);
diff --git a/packager/media/trick_play/trick_play_handler.h b/packager/media/trick_play/trick_play_handler.h
index 5af28b0b57..f2486f1a3c 100644
--- a/packager/media/trick_play/trick_play_handler.h
+++ b/packager/media/trick_play/trick_play_handler.h
@@ -15,7 +15,7 @@ namespace media {
/// TrickPlayHandler is a single-input-multiple-output media handler. It creates
/// trick play streams from the input.
// The stream data in trick play stream is not a simple duplicate. Some
-// information need to be updated, including trick_play_rate in
+// information need to be updated, including trick_play_factor in
// VideoStreamInfo, the duration in MediaSample (which makes sure there is no
// gap between the media sample dts). Since the duration information can be
// determined after getting the next media sample, a queue is used to cache the
@@ -26,7 +26,7 @@ class TrickPlayHandler : public MediaHandler {
~TrickPlayHandler() override;
void SetHandlerForMainStream(std::shared_ptr handler);
- void SetHandlerForTrickPlay(uint32_t trick_play_rate,
+ void SetHandlerForTrickPlay(uint32_t trick_play_factor,
std::shared_ptr handler);
protected:
@@ -59,14 +59,14 @@ class TrickPlayHandler : public MediaHandler {
Status ProcessOneStreamData(size_t output_stream_index,
const std::shared_ptr& stream_data);
- // Trick play rates. Note that there can be multiple trick play rates,
+ // Trick play factors. Note that there can be multiple trick play factors,
// e.g., 2, 4 and 8. That means, one input video stream will generate 3
// output trick play streams and original stream. Three trick play streams
// are:
// [key_frame_0, key_frame_2, key_frame_4, ...]
// [key_frame_0, key_frame_4, key_frame_8,...]
// [key_frame_0, key_frame_8, key_frame_16, ...].
- std::vector trick_play_rates_;
+ std::vector trick_play_factors_;
TrickPlayHandler(const TrickPlayHandler&) = delete;
TrickPlayHandler& operator=(const TrickPlayHandler&) = delete;
diff --git a/packager/media/trick_play/trick_play_handler_unittest.cc b/packager/media/trick_play/trick_play_handler_unittest.cc
index 871b1eed02..17be948fe3 100644
--- a/packager/media/trick_play/trick_play_handler_unittest.cc
+++ b/packager/media/trick_play/trick_play_handler_unittest.cc
@@ -24,8 +24,8 @@ const size_t kStreamIndex1 = 1;
const size_t kStreamIndex2 = 2;
const uint32_t kTimeScale = 800;
const uint32_t kDuration = 200;
-const uint32_t kTrickPlayRates[]{1, 2};
-const uint32_t kTrickPlayRatesDecreasing[]{2, 1};
+const uint32_t kTrickPlayFactors[]{1, 2};
+const uint32_t kTrickPlayFactorsDecreasing[]{2, 1};
const bool kEncrypted = true;
} // namespace
@@ -33,7 +33,7 @@ MATCHER_P5(IsTrickPlayVideoStreamInfo,
stream_index,
time_scale,
encrypted,
- trick_play_rate,
+ trick_play_factor,
playback_rate,
"") {
return arg->stream_index == stream_index &&
@@ -42,7 +42,7 @@ MATCHER_P5(IsTrickPlayVideoStreamInfo,
arg->stream_info->is_encrypted() == encrypted &&
arg->stream_info->stream_type() == kStreamVideo &&
static_cast(arg->stream_info.get())
- ->trick_play_rate() == trick_play_rate &&
+ ->trick_play_factor() == trick_play_factor &&
static_cast(arg->stream_info.get())
->playback_rate() == playback_rate;
}
@@ -57,14 +57,14 @@ MATCHER_P3(IsKeyFrameMediaSample, stream_index, timestamp, duration, "") {
class TrickPlayHandlerTest : public MediaHandlerTestBase {
public:
- void SetUpTrickPlayHandler(const std::vector& trick_play_rates) {
+ void SetUpTrickPlayHandler(const std::vector& trick_play_factors) {
trick_play_handler_.reset(new TrickPlayHandler());
// Use SetUpGraph to set only input handler, and use
// SetHandlerForMainStream and SetHandlerForTrickPlay for the output
// handlers.
SetUpGraph(1, 0, trick_play_handler_);
trick_play_handler_->SetHandlerForMainStream(next_handler());
- for (uint32_t rate : trick_play_rates) {
+ for (uint32_t rate : trick_play_factors) {
trick_play_handler_->SetHandlerForTrickPlay(rate, next_handler());
}
ASSERT_OK(trick_play_handler_->Initialize());
@@ -84,9 +84,9 @@ class TrickPlayHandlerTest : public MediaHandlerTestBase {
// This test makes sure the audio stream is rejected by the trick play handler.
TEST_F(TrickPlayHandlerTest, AudioStream) {
- const std::vector trick_play_rates(std::begin(kTrickPlayRates),
- std::end(kTrickPlayRates));
- SetUpTrickPlayHandler(trick_play_rates);
+ const std::vector trick_play_factors(std::begin(kTrickPlayFactors),
+ std::end(kTrickPlayFactors));
+ SetUpTrickPlayHandler(trick_play_factors);
Status status =
Process(GetAudioStreamInfoStreamData(kStreamIndex0, kTimeScale));
@@ -97,9 +97,9 @@ TEST_F(TrickPlayHandlerTest, AudioStream) {
// This test makes sure the trick play handler can process stream data
// correctly.
TEST_F(TrickPlayHandlerTest, VideoStreamWithTrickPlay) {
- const std::vector trick_play_rates(std::begin(kTrickPlayRates),
- std::end(kTrickPlayRates));
- SetUpTrickPlayHandler(trick_play_rates);
+ const std::vector trick_play_factors(std::begin(kTrickPlayFactors),
+ std::end(kTrickPlayFactors));
+ SetUpTrickPlayHandler(trick_play_factors);
ASSERT_OK(Process(GetVideoStreamInfoStreamData(kStreamIndex0, kTimeScale)));
// The stream info is cached, so the output is empty.
@@ -147,11 +147,11 @@ TEST_F(TrickPlayHandlerTest, VideoStreamWithTrickPlay) {
// Frame 3, key frame.
IsKeyFrameMediaSample(
kStreamIndex0, kVideoStartTimestamp + kDuration * 3, kDuration),
- // Stream info, TrickPlayRate = 1.
+ // Stream info, TrickPlayFactor = 1.
IsTrickPlayVideoStreamInfo(
- kStreamIndex1, kTimeScale, !kEncrypted, kTrickPlayRates[0],
- static_cast(kGOPSize) * kTrickPlayRates[0]),
- // Frame 0, TrickPlayRate = 1.
+ kStreamIndex1, kTimeScale, !kEncrypted, kTrickPlayFactors[0],
+ static_cast(kGOPSize) * kTrickPlayFactors[0]),
+ // Frame 0, TrickPlayFactor = 1.
IsKeyFrameMediaSample(kStreamIndex1, kVideoStartTimestamp,
kDuration * 3),
// Frame 4.
@@ -177,15 +177,15 @@ TEST_F(TrickPlayHandlerTest, VideoStreamWithTrickPlay) {
// Frame 6, key frame.
IsKeyFrameMediaSample(
kStreamIndex0, kVideoStartTimestamp + kDuration * 6, kDuration),
- // Frame 3, TrickPlayRate = 1.
+ // Frame 3, TrickPlayFactor = 1.
IsKeyFrameMediaSample(kStreamIndex1,
kVideoStartTimestamp + kDuration * 3,
kDuration * 3),
- // Stream info, TrickPlayRate = 2.
+ // Stream info, TrickPlayFactor = 2.
IsTrickPlayVideoStreamInfo(
- kStreamIndex2, kTimeScale, !kEncrypted, kTrickPlayRates[1],
- static_cast(kGOPSize) * kTrickPlayRates[1]),
- // Frame 0, TrickPlayRate = 2.
+ kStreamIndex2, kTimeScale, !kEncrypted, kTrickPlayFactors[1],
+ static_cast(kGOPSize) * kTrickPlayFactors[1]),
+ // Frame 0, TrickPlayFactor = 2.
IsKeyFrameMediaSample(kStreamIndex2, kVideoStartTimestamp,
kDuration * 6),
// Frame 7.
@@ -196,11 +196,11 @@ TEST_F(TrickPlayHandlerTest, VideoStreamWithTrickPlay) {
ASSERT_OK(FlushStream(0));
EXPECT_THAT(GetOutputStreamDataVector(),
ElementsAre(
- // Frame 6, TrickPlayRate = 1.
+ // Frame 6, TrickPlayFactor = 1.
IsKeyFrameMediaSample(kStreamIndex1,
kVideoStartTimestamp + kDuration * 6,
kDuration * 2),
- // Frame 6, TrickPlayRate = 2.
+ // Frame 6, TrickPlayFactor = 2.
IsKeyFrameMediaSample(kStreamIndex2,
kVideoStartTimestamp + kDuration * 6,
kDuration * 2)));
@@ -212,12 +212,12 @@ TEST_F(TrickPlayHandlerTest, VideoStreamWithTrickPlay) {
}
// This test makes sure the trick play handler can process stream data
-// correctly with a decreasing order of trick play rates.
-TEST_F(TrickPlayHandlerTest, VideoStreamWithDecreasingTrickPlayRates) {
- const std::vector trick_play_rates(
- std::begin(kTrickPlayRatesDecreasing),
- std::end(kTrickPlayRatesDecreasing));
- SetUpTrickPlayHandler(trick_play_rates);
+// correctly with a decreasing order of trick play factors.
+TEST_F(TrickPlayHandlerTest, VideoStreamWithDecreasingTrickPlayFactors) {
+ const std::vector trick_play_factors(
+ std::begin(kTrickPlayFactorsDecreasing),
+ std::end(kTrickPlayFactorsDecreasing));
+ SetUpTrickPlayHandler(trick_play_factors);
ASSERT_OK(Process(GetVideoStreamInfoStreamData(kStreamIndex0, kTimeScale)));
// The stream info is cached, so the output is empty.
@@ -265,12 +265,12 @@ TEST_F(TrickPlayHandlerTest, VideoStreamWithDecreasingTrickPlayRates) {
// Frame 3, key frame.
IsKeyFrameMediaSample(
kStreamIndex0, kVideoStartTimestamp + kDuration * 3, kDuration),
- // Stream info, TrickPlayRate = 1.
+ // Stream info, TrickPlayFactor = 1.
IsTrickPlayVideoStreamInfo(
kStreamIndex2, kTimeScale, !kEncrypted,
- kTrickPlayRatesDecreasing[1],
- static_cast(kGOPSize) * kTrickPlayRatesDecreasing[1]),
- // Frame 0, TrickPlayRate = 1.
+ kTrickPlayFactorsDecreasing[1],
+ static_cast(kGOPSize) * kTrickPlayFactorsDecreasing[1]),
+ // Frame 0, TrickPlayFactor = 1.
IsKeyFrameMediaSample(kStreamIndex2, kVideoStartTimestamp,
kDuration * 3),
// Frame 4.
@@ -296,15 +296,15 @@ TEST_F(TrickPlayHandlerTest, VideoStreamWithDecreasingTrickPlayRates) {
// Frame 6, key frame.
IsKeyFrameMediaSample(
kStreamIndex0, kVideoStartTimestamp + kDuration * 6, kDuration),
- // Stream info, TrickPlayRate = 2.
+ // Stream info, TrickPlayFactor = 2.
IsTrickPlayVideoStreamInfo(
kStreamIndex1, kTimeScale, !kEncrypted,
- kTrickPlayRatesDecreasing[0],
- static_cast(kGOPSize) * kTrickPlayRatesDecreasing[0]),
- // Frame 0, TrickPlayRate = 2.
+ kTrickPlayFactorsDecreasing[0],
+ static_cast(kGOPSize) * kTrickPlayFactorsDecreasing[0]),
+ // Frame 0, TrickPlayFactor = 2.
IsKeyFrameMediaSample(kStreamIndex1, kVideoStartTimestamp,
kDuration * 6),
- // Frame 3, TrickPlayRate = 1.
+ // Frame 3, TrickPlayFactor = 1.
IsKeyFrameMediaSample(kStreamIndex2,
kVideoStartTimestamp + kDuration * 3,
kDuration * 3),
@@ -316,11 +316,11 @@ TEST_F(TrickPlayHandlerTest, VideoStreamWithDecreasingTrickPlayRates) {
ASSERT_OK(FlushStream(0));
EXPECT_THAT(GetOutputStreamDataVector(),
ElementsAre(
- // Frame 6, TrickPlayRate = 2.
+ // Frame 6, TrickPlayFactor = 2.
IsKeyFrameMediaSample(kStreamIndex1,
kVideoStartTimestamp + kDuration * 6,
kDuration * 2),
- // Frame 6, TrickPlayRate = 1.
+ // Frame 6, TrickPlayFactor = 1.
IsKeyFrameMediaSample(kStreamIndex2,
kVideoStartTimestamp + kDuration * 6,
kDuration * 2)));
diff --git a/packager/mpd/base/dash_iop_mpd_notifier.cc b/packager/mpd/base/dash_iop_mpd_notifier.cc
index 48fb53f702..06474d7152 100644
--- a/packager/mpd/base/dash_iop_mpd_notifier.cc
+++ b/packager/mpd/base/dash_iop_mpd_notifier.cc
@@ -276,7 +276,7 @@ AdaptationSet* DashIopMpdNotifier::NewAdaptationSet(
new_adaptation_set->AddRole(AdaptationSet::kRoleMain);
}
- if (media_info.video_info().trick_play_rate() > 0) {
+ if (media_info.video_info().trick_play_factor() > 0) {
uint32_t trick_play_reference_id = 0;
if (!FindOriginalAdaptationSetForTrickPlay(media_info,
&trick_play_reference_id)) {
@@ -294,7 +294,7 @@ bool DashIopMpdNotifier::FindOriginalAdaptationSetForTrickPlay(
const MediaInfo& media_info,
uint32_t* main_adaptation_set_id) {
MediaInfo media_info_no_trickplay = media_info;
- media_info_no_trickplay.mutable_video_info()->clear_trick_play_rate();
+ media_info_no_trickplay.mutable_video_info()->clear_trick_play_factor();
std::string key = GetAdaptationSetKey(media_info_no_trickplay);
const std::list& adaptation_sets =
adaptation_set_list_map_[key];
diff --git a/packager/mpd/base/dash_iop_mpd_notifier_unittest.cc b/packager/mpd/base/dash_iop_mpd_notifier_unittest.cc
index d802f91937..1087b6f924 100644
--- a/packager/mpd/base/dash_iop_mpd_notifier_unittest.cc
+++ b/packager/mpd/base/dash_iop_mpd_notifier_unittest.cc
@@ -167,7 +167,7 @@ TEST_F(DashIopMpdNotifierTest, NotifyNewContainerForTrickPlay) {
" frame_duration: 100\n"
" pixel_width: 1\n"
" pixel_height: 1\n"
- " trick_play_rate: 2\n"
+ " trick_play_factor: 2\n"
" playback_rate: 10\n"
"}\n"
"container_type: 1\n";
diff --git a/packager/mpd/base/media_info.proto b/packager/mpd/base/media_info.proto
index 5a629e9b17..988264a83c 100644
--- a/packager/mpd/base/media_info.proto
+++ b/packager/mpd/base/media_info.proto
@@ -41,9 +41,9 @@ message MediaInfo {
optional uint32 pixel_width = 7;
optional uint32 pixel_height = 8;
- // trick_play_rate: sample rate of the key frame from the original stream.
+ // trick_play_factor: sample rate of the key frame from the original stream.
// e.g., 1 means every key frame, 2 means every two key frames.
- optional uint32 trick_play_rate = 9;
+ optional uint32 trick_play_factor = 9;
// playback_rate: the playout capability (e.g., 4x, 8x, 16x fast foward) of
// the trick play stream.
optional uint32 playback_rate = 10;
diff --git a/packager/mpd/base/mpd_utils.cc b/packager/mpd/base/mpd_utils.cc
index 7baf484402..cf9d2eb283 100644
--- a/packager/mpd/base/mpd_utils.cc
+++ b/packager/mpd/base/mpd_utils.cc
@@ -137,9 +137,9 @@ std::string GetAdaptationSetKey(const MediaInfo& media_info) {
key.append(GetLanguage(media_info));
// Trick play streams of the same original stream, but possibly with
- // different trick_play_rates, belong to the same trick play AdaptationSet.
+ // different trick_play_factors, belong to the same trick play AdaptationSet.
if (media_info.has_video_info() &&
- media_info.video_info().trick_play_rate() > 0) {
+ media_info.video_info().trick_play_factor() > 0) {
key.append(":trick_play");
}