Change return type of Segment::WriteFramesAll()
Change-Id: I7fb45f1779c384bcc1cdea507f1f2f51c28dd827
This commit is contained in:
64
mkvmuxer.cpp
64
mkvmuxer.cpp
@@ -1482,7 +1482,7 @@ bool Segment::Init(IMkvWriter* ptr_writer) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Segment::Finalize() {
|
bool Segment::Finalize() {
|
||||||
if (!WriteFramesAll())
|
if (WriteFramesAll() < 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (mode_ == kFile) {
|
if (mode_ == kFile) {
|
||||||
@@ -1740,7 +1740,7 @@ bool Segment::AddFrame(const uint8* frame,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Write any audio frames left.
|
// Write any audio frames left.
|
||||||
if (!WriteFramesAll())
|
if (WriteFramesAll() < 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (cluster_list_size_ < 1)
|
if (cluster_list_size_ < 1)
|
||||||
@@ -2054,46 +2054,48 @@ bool Segment::QueueFrame(Frame* frame) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Segment::WriteFramesAll() {
|
int Segment::WriteFramesAll() {
|
||||||
if (frames_) {
|
if (frames_ == NULL)
|
||||||
if (cluster_list_size_ < 1)
|
return 0;
|
||||||
return false;
|
|
||||||
|
|
||||||
Cluster* const cluster = cluster_list_[cluster_list_size_-1];
|
if (cluster_list_size_ < 1)
|
||||||
|
return -1;
|
||||||
|
|
||||||
if (!cluster)
|
Cluster* const cluster = cluster_list_[cluster_list_size_-1];
|
||||||
return false;
|
|
||||||
|
|
||||||
const uint64 timecode_scale = segment_info_.timecode_scale();
|
if (!cluster)
|
||||||
|
return -1;
|
||||||
|
|
||||||
for (int32 i = 0; i < frames_size_; ++i) {
|
const uint64 timecode_scale = segment_info_.timecode_scale();
|
||||||
Frame*& frame = frames_[i];
|
|
||||||
const uint64 frame_timestamp = frame->timestamp(); // ns
|
|
||||||
const uint64 frame_timecode = frame_timestamp / timecode_scale;
|
|
||||||
|
|
||||||
if (!cluster->AddFrame(frame->frame(),
|
for (int32 i = 0; i < frames_size_; ++i) {
|
||||||
frame->length(),
|
Frame*& frame = frames_[i];
|
||||||
frame->track_number(),
|
const uint64 frame_timestamp = frame->timestamp(); // ns
|
||||||
frame_timecode,
|
const uint64 frame_timecode = frame_timestamp / timecode_scale;
|
||||||
frame->is_key()))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (new_cuepoint_ && cues_track_ == frame->track_number()) {
|
if (!cluster->AddFrame(frame->frame(),
|
||||||
if (!AddCuePoint(frame_timestamp))
|
frame->length(),
|
||||||
return false;
|
frame->track_number(),
|
||||||
}
|
frame_timecode,
|
||||||
|
frame->is_key()))
|
||||||
|
return -1;
|
||||||
|
|
||||||
if (frame_timestamp > last_timestamp_)
|
if (new_cuepoint_ && cues_track_ == frame->track_number()) {
|
||||||
last_timestamp_ = frame_timestamp;
|
if (!AddCuePoint(frame_timestamp))
|
||||||
|
return -1;
|
||||||
delete frame;
|
|
||||||
frame = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
frames_size_ = 0;
|
if (frame_timestamp > last_timestamp_)
|
||||||
|
last_timestamp_ = frame_timestamp;
|
||||||
|
|
||||||
|
delete frame;
|
||||||
|
frame = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
const int result = frames_size_;
|
||||||
|
frames_size_ = 0;
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Segment::WriteFramesLessThan(uint64 timestamp) {
|
bool Segment::WriteFramesLessThan(uint64 timestamp) {
|
||||||
|
|||||||
@@ -773,9 +773,9 @@ class Segment {
|
|||||||
// Adds the frame to our frame array.
|
// Adds the frame to our frame array.
|
||||||
bool QueueFrame(Frame* frame);
|
bool QueueFrame(Frame* frame);
|
||||||
|
|
||||||
// Output all frames that are queued. Returns true on success and if there
|
// Output all frames that are queued. Returns -1 on error, otherwise
|
||||||
// are no frames queued.
|
// it returns the number of frames written.
|
||||||
bool WriteFramesAll();
|
int WriteFramesAll();
|
||||||
|
|
||||||
// Output all frames that are queued that have an end time that is less
|
// Output all frames that are queued that have an end time that is less
|
||||||
// then |timestamp|. Returns true on success and if there are no frames
|
// then |timestamp|. Returns true on success and if there are no frames
|
||||||
|
|||||||
Reference in New Issue
Block a user