Merge branch 'rr1-maint'

Conflicts:
	include/core/movie.hpp
	src/core/movie.cpp
This commit is contained in:
Ilari Liusvaara 2013-04-16 03:45:00 +03:00
commit a85619270d
2 changed files with 15 additions and 2 deletions

View file

@ -268,11 +268,11 @@ public:
/**
* Recount frames.
*/
void recount_frames() { frames_in_movie = movie_data.count_frames(); }
void recount_frames() { adjust_frame_count(movie_data.count_frames() - frames_in_movie); }
/**
* Adjust frame count.
*/
void adjust_frame_count(int64_t adjust) { frames_in_movie += adjust; }
void adjust_frame_count(int64_t adjust);
private:
//Sequence number.
uint64_t seqno;

View file

@ -455,6 +455,19 @@ movie& movie::operator=(const movie& m)
return *this;
}
void movie::adjust_frame_count(int64_t adjust)
{
uint64_t old_frames = frames_in_movie;
frames_in_movie += adjust;
//If current_frame_first_subframe is in part extended, recompute it.
if(current_frame > old_frames + 1) {
current_frame_first_subframe = 0;
if(current_frame > 0)
for(uint64_t i = 0; i < current_frame - 1; i++)
current_frame_first_subframe += count_changes(current_frame_first_subframe);
}
}
void movie::set_pflag_handler(poll_flag* handler)
{
pflag_handler = handler;