Last active
August 29, 2015 14:18
-
-
Save msg7086/d4067485f4e3d798a082 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# HG changeset patch | |
# User Xinyue Lu <[email protected]> | |
# Date 1428359964 25200 | |
# Mon Apr 06 15:39:24 2015 -0700 | |
# Branch Yuuki | |
# Node ID 6de8cdf3795b7fbdfc2df5ae34cbc211676a561a | |
# Parent ebe5e57c4b45b45338035a1009b64585f21d66d5 | |
cli: rewrite pts_queue to use new/delete, not to confuse the leak tool | |
diff -r ebe5e57c4b45 -r 6de8cdf3795b source/x265.cpp | |
--- a/source/x265.cpp Sat Apr 04 15:11:39 2015 -0500 | |
+++ b/source/x265.cpp Mon Apr 06 15:39:24 2015 -0700 | |
@@ -507,8 +507,8 @@ | |
x265_picture pic_orig, pic_out; | |
x265_picture *pic_in = &pic_orig; | |
/* Allocate recon picture if analysisMode is enabled */ | |
- bool usePTS = cliopt.output->needPTS(); | |
- x265_picture *pic_recon = (cliopt.recon || !!param->analysisMode || usePTS) ? &pic_out : NULL; | |
+ std::priority_queue<int64_t>* pts_queue = cliopt.output->needPTS() ? new std::priority_queue<int64_t>() : NULL; | |
+ x265_picture *pic_recon = (cliopt.recon || !!param->analysisMode || pts_queue) ? &pic_out : NULL; | |
uint32_t inFrameCount = 0; | |
uint32_t outFrameCount = 0; | |
x265_nal *p_nal; | |
@@ -516,7 +516,6 @@ | |
uint32_t nal; | |
int16_t *errorBuf = NULL; | |
int ret = 0; | |
- std::priority_queue<int64_t> pts_queue; | |
if (!param->bRepeatHeaders) | |
{ | |
@@ -590,11 +589,11 @@ | |
if (nal) | |
{ | |
cliopt.totalbytes += cliopt.output->writeFrame(p_nal, nal, pic_out); | |
- if (usePTS) | |
+ if (pts_queue) | |
{ | |
- pts_queue.push(-pic_out.pts); | |
- if (pts_queue.size() > 2) | |
- pts_queue.pop(); | |
+ pts_queue->push(-pic_out.pts); | |
+ if (pts_queue->size() > 2) | |
+ pts_queue->pop(); | |
} | |
} | |
@@ -616,11 +615,11 @@ | |
if (nal) | |
{ | |
cliopt.totalbytes += cliopt.output->writeFrame(p_nal, nal, pic_out); | |
- if (usePTS) | |
+ if (pts_queue) | |
{ | |
- pts_queue.push(-pic_out.pts); | |
- if (pts_queue.size() > 2) | |
- pts_queue.pop(); | |
+ pts_queue->push(-pic_out.pts); | |
+ if (pts_queue->size() > 2) | |
+ pts_queue->pop(); | |
} | |
} | |
@@ -642,12 +641,14 @@ | |
int64_t second_largest_pts = 0; | |
int64_t largest_pts = 0; | |
- if (usePTS && pts_queue.size() >= 2) | |
+ if (pts_queue && pts_queue->size() >= 2) | |
{ | |
- second_largest_pts = -pts_queue.top(); | |
- pts_queue.pop(); | |
- largest_pts = -pts_queue.top(); | |
- pts_queue.pop(); | |
+ second_largest_pts = -pts_queue->top(); | |
+ pts_queue->pop(); | |
+ largest_pts = -pts_queue->top(); | |
+ pts_queue->pop(); | |
+ delete pts_queue; | |
+ pts_queue = NULL; | |
} | |
cliopt.output->closeFile(largest_pts, second_largest_pts); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment