OSUOSL/Nero are experiencing Internet connectivity problems. This affects us as we're hosted with OSUOSL. We apologize for the inconvenience.

Commit f651bcb2 authored by James Zern's avatar James Zern

y4m_video_source: fix memory leak

Begin() will be called twice with 2-pass encodes, invoking
y4m_input_open which allocates memory; close the old instance first.

Change-Id: Id252a21d286ca9ae998bd87599d43aeb8d7d77aa
parent 104d8ec0
......@@ -35,14 +35,11 @@ class Y4mVideoSource : public VideoSource {
virtual ~Y4mVideoSource() {
vpx_img_free(img_.get());
y4m_input_close(&y4m_);
if (input_file_)
fclose(input_file_);
CloseSource();
}
virtual void Begin() {
if (input_file_)
fclose(input_file_);
CloseSource();
input_file_ = OpenTestDataFile(file_name_);
ASSERT_TRUE(input_file_ != NULL) << "Input file open failed. Filename: "
<< file_name_;
......@@ -89,6 +86,15 @@ class Y4mVideoSource : public VideoSource {
}
protected:
void CloseSource() {
y4m_input_close(&y4m_);
y4m_ = y4m_input();
if (input_file_ != NULL) {
fclose(input_file_);
input_file_ = NULL;
}
}
std::string file_name_;
FILE *input_file_;
testing::internal::scoped_ptr<vpx_image_t> 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