Bug 1332585 - Make VP8TrackEncoderTest's buffer generator more explicit. r?jesup draft
authorAndreas Pehrson <pehrsons@gmail.com>
Fri, 20 Jan 2017 11:48:59 +0100
changeset 464233 41debe52a3e32820eb33a18ad86e794a3efdc6c6
parent 464232 ea6b4f40dcbeaec6f81f26ec95483f844a37b2ca
child 464234 d3480dc22e30c6a0aa28a9122b9289bf50703985
push id42309
push userbmo:pehrson@telenordigital.com
push dateFri, 20 Jan 2017 18:13:48 +0000
reviewersjesup
bugs1332585
milestone53.0a1
Bug 1332585 - Make VP8TrackEncoderTest's buffer generator more explicit. r?jesup MozReview-Commit-ID: DZbF6vRMug6
dom/media/gtest/TestVideoTrackEncoder.cpp
--- a/dom/media/gtest/TestVideoTrackEncoder.cpp
+++ b/dom/media/gtest/TestVideoTrackEncoder.cpp
@@ -41,21 +41,29 @@ public:
     memset(mSourceBuffer.Elements() + yPlaneLen, 0x80, cbcrPlaneLen);
   }
 
   mozilla::gfx::IntSize GetSize() const
   {
     return mImageSize;
   }
 
-  void Generate(nsTArray<RefPtr<Image> > &aImages)
+  already_AddRefed<Image> GenerateI420Image()
+  {
+    return do_AddRef(CreateI420Image());
+  }
+
+  already_AddRefed<Image> GenerateNV12Image()
   {
-    aImages.AppendElement(CreateI420Image());
-    aImages.AppendElement(CreateNV12Image());
-    aImages.AppendElement(CreateNV21Image());
+    return do_AddRef(CreateNV12Image());
+  }
+
+  already_AddRefed<Image> GenerateNV21Image()
+  {
+    return do_AddRef(CreateNV21Image());
   }
 
 private:
   Image *CreateI420Image()
   {
     PlanarYCbCrImage *image = new RecyclingPlanarYCbCrImage(new BufferRecycleBin());
     PlanarYCbCrData data;
     data.mPicSize = mImageSize;
@@ -255,17 +263,19 @@ TEST(VP8VideoTrackEncoder, FrameEncode)
   TestVP8TrackEncoder encoder;
   InitParam param = {true, 640, 480};
   encoder.TestInit(param);
 
   // Create YUV images as source.
   nsTArray<RefPtr<Image>> images;
   YUVBufferGenerator generator;
   generator.Init(mozilla::gfx::IntSize(640, 480));
-  generator.Generate(images);
+  images.AppendElement(generator.GenerateI420Image());
+  images.AppendElement(generator.GenerateNV12Image());
+  images.AppendElement(generator.GenerateNV21Image());
 
   // Put generated YUV frame into video segment.
   // Duration of each frame is 1 second.
   VideoSegment segment;
   TimeStamp now = TimeStamp::Now();
   for (nsTArray<RefPtr<Image>>::size_type i = 0; i < images.Length(); i++)
   {
     RefPtr<Image> image = images[i];