Properly set size based on actual buffer layout
VP9FrameSizeTestsLarge.OneByOneVideo has been causing a failure in jenkins libvpx__unit_tests-valgrind_long for "using of uninitialized memory", the root cause was that the input image for this test was not initialized with proper size, therefore plan U and V were not initialized at all. This commit fixes the size initialization, and resolves the issue. Change-Id: Ic4dd1542b7bb0cb260a1e0aeeb505db21ae5edc8
This commit is contained in:
parent
f5d574c566
commit
32d88c2209
@ -64,8 +64,7 @@ void Encoder::EncodeFrameInternal(const VideoSource &video,
|
|||||||
|
|
||||||
// Encode the frame
|
// Encode the frame
|
||||||
API_REGISTER_STATE_CHECK(
|
API_REGISTER_STATE_CHECK(
|
||||||
res = vpx_codec_encode(&encoder_,
|
res = vpx_codec_encode(&encoder_, img, video.pts(), video.duration(),
|
||||||
video.img(), video.pts(), video.duration(),
|
|
||||||
frame_flags, deadline_));
|
frame_flags, deadline_));
|
||||||
ASSERT_EQ(VPX_CODEC_OK, res) << EncoderError();
|
ASSERT_EQ(VPX_CODEC_OK, res) << EncoderError();
|
||||||
}
|
}
|
||||||
|
@ -175,8 +175,8 @@ class DummyVideoSource : public VideoSource {
|
|||||||
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_);
|
||||||
raw_sz_ = ((width + 31)&~31) * height * 3 / 2;
|
|
||||||
img_ = vpx_img_alloc(NULL, VPX_IMG_FMT_I420, width, height, 32);
|
img_ = vpx_img_alloc(NULL, VPX_IMG_FMT_I420, width, height, 32);
|
||||||
|
raw_sz_ = ((img_->w + 31) & ~31) * img_->h * 3 / 2;
|
||||||
width_ = width;
|
width_ = width;
|
||||||
height_ = height;
|
height_ = height;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user