Commit 65d73881 authored by Jim Bankoski's avatar Jim Bankoski

Minor tweaks to video source frameworks

Fix the video source to close if file is open already and add a limit.

Change-Id: I36ada4c609d027b6eaa9b447fe9ad4115532edc1
parent 1fc3cc8e
...@@ -25,6 +25,7 @@ class I420VideoSource : public VideoSource { ...@@ -25,6 +25,7 @@ class I420VideoSource : public VideoSource {
int rate_numerator, int rate_denominator, int rate_numerator, int rate_denominator,
unsigned int start, int limit) unsigned int start, int limit)
: file_name_(file_name), : file_name_(file_name),
input_file_(NULL),
img_(NULL), img_(NULL),
start_(start), start_(start),
limit_(limit), limit_(limit),
...@@ -45,10 +46,11 @@ class I420VideoSource : public VideoSource { ...@@ -45,10 +46,11 @@ class I420VideoSource : public VideoSource {
} }
virtual void Begin() { virtual void Begin() {
if (input_file_)
fclose(input_file_);
input_file_ = OpenTestDataFile(file_name_); input_file_ = OpenTestDataFile(file_name_);
ASSERT_TRUE(input_file_) << "Input file open failed. Filename: " ASSERT_TRUE(input_file_) << "Input file open failed. Filename: "
<< file_name_; << file_name_;
if (start_) { if (start_) {
fseek(input_file_, raw_sz_ * start_, SEEK_SET); fseek(input_file_, raw_sz_ * start_, SEEK_SET);
} }
...@@ -76,6 +78,8 @@ class I420VideoSource : public VideoSource { ...@@ -76,6 +78,8 @@ class I420VideoSource : public VideoSource {
virtual unsigned int frame() const { return frame_; } virtual unsigned int frame() const { return frame_; }
virtual unsigned int limit() const { return limit_; }
void SetSize(unsigned int width, unsigned int height) { void SetSize(unsigned int width, unsigned int height) {
if (width != width_ || height != height_) { if (width != width_ || height != height_) {
vpx_img_free(img_); vpx_img_free(img_);
......
...@@ -57,6 +57,9 @@ class VideoSource { ...@@ -57,6 +57,9 @@ class VideoSource {
// Get the current frame counter, starting at 0. // Get the current frame counter, starting at 0.
virtual unsigned int frame() const = 0; virtual unsigned int frame() const = 0;
// Get the current file limit.
virtual unsigned int limit() const = 0;
}; };
...@@ -94,6 +97,8 @@ class DummyVideoSource : public VideoSource { ...@@ -94,6 +97,8 @@ class DummyVideoSource : public VideoSource {
virtual unsigned int frame() const { return frame_; } virtual unsigned int frame() const { return frame_; }
virtual unsigned int limit() const { return limit_; }
void SetSize(unsigned int width, unsigned int height) { void SetSize(unsigned int width, unsigned int height) {
if (width != width_ || height != height_) { if (width != width_ || height != height_) {
vpx_img_free(img_); vpx_img_free(img_);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment