Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement YUVToARGBScaleClip() for PepperMediaStreamVideoTrackHost::ConvertFromMediaVideoFrame() #471

Open
GoogleCodeExporter opened this issue Dec 31, 2015 · 4 comments

Comments

@GoogleCodeExporter
Copy link

https://code.google.com/p/chromium/codesearch#chromium/src/content/renderer/pepp
er/pepper_media_stream_video_track_host.cc&l=113

Only requires YV12, I420 no rotation -- using bilinear.

Should be covered by tests in:
https://code.google.com/p/chromium/codesearch#chromium/src/ppapi/tests/test_medi
a_stream_video_track.cc

Contact bbudge@ or other content/renderer/pepper/OWNERS for actual application 
usage.

Original issue reported on code.google.com by [email protected] on 24 Jul 2015 at 9:36

@GoogleCodeExporter
Copy link
Author

Need both RGBA and BGRA.

Original comment by [email protected] on 24 Jul 2015 at 9:56

@GoogleCodeExporter
Copy link
Author

The following revision refers to this bug:
  https://chromium.googlesource.com/libyuv/libyuv.git/+/60adcbaf323cfa6b7a2ea408f3c904341a1998c7

commit 60adcbaf323cfa6b7a2ea408f3c904341a1998c7
Author: Frank Barchard <[email protected]>
Date: Fri Nov 13 19:25:56 2015

scale with conversion using 2 steps with unittest

a prototype function to implement the yuv to rgb with conversion and scale.
replace with 1 step function in future version, using same API.

[email protected]
BUG=libyuv:471

Review URL: https://codereview.chromium.org/1421553016 .

[modify] 
http://crrev.com/60adcbaf323cfa6b7a2ea408f3c904341a1998c7/README.chromium
[modify] 
http://crrev.com/60adcbaf323cfa6b7a2ea408f3c904341a1998c7/include/libyuv/scale_a
rgb.h
[modify] 
http://crrev.com/60adcbaf323cfa6b7a2ea408f3c904341a1998c7/include/libyuv/version
.h
[modify] 
http://crrev.com/60adcbaf323cfa6b7a2ea408f3c904341a1998c7/source/scale_argb.cc
[modify] 
http://crrev.com/60adcbaf323cfa6b7a2ea408f3c904341a1998c7/unit_test/scale_argb_t
est.cc

Original comment by [email protected] on 13 Nov 2015 at 7:26

@GoogleCodeExporter
Copy link
Author

LIBYUV_FLAGS=-1 LIBYUV_WIDTH=1280 LIBYUV_HEIGHT=720 LIBYUV_REPEAT=999 perf 
record out/Release/libyuv_unittest --gtest_filter=*YUVToRGBScale* && perf report

Samples: 15K of event 'cycles', Event count (approx.): 13708890586
 54.21%  libyuv_unittest  libyuv_unittest      [.] ScaleARGBFilterCols_SSSE3
 25.87%  libyuv_unittest  libyuv_unittest      [.] I422ToARGBRow_AVX2
 18.78%  libyuv_unittest  libyuv_unittest      [.] InterpolateRow_AVX2
  0.43%  libyuv_unittest  libyuv_unittest      [.] libyuv::YUVToARGBTestFilter(int, int, int, int, libyuv::FilterMode, int, int, int) [clone .isra.28] [clone .constprop.3
  0.27%  libyuv_unittest  [kernel.kallsyms]    [k] 0xffffffff8104f45a
  0.18%  libyuv_unittest  libyuv_unittest      [.] ScaleARGB
  0.11%  libyuv_unittest  libyuv_unittest      [.] I420ToARGBMatrix
  0.03%  libyuv_unittest  libc-2.19.so         [.] memset
  0.03%  libyuv_unittest  libc-2.19.so         [.] _int_malloc
  0.03%  libyuv_unittest  libc-2.19.so         [.] _int_free
  0.03%  libyuv_unittest  libc-2.19.so         [.] malloc
  0.01%  libyuv_unittest  libyuv_unittest      [.] testing::internal::UnitTestOptions::PatternMatchesString(char const*, char const*)
  0.01%  libyuv_unittest  libc-2.19.so         [.] free
  0.01%  libyuv_unittest  libyuv_unittest      [.] FixedDiv1_X86
  0.01%  libyuv_unittest  libyuv_unittest      [.] I420ToARGB
  0.00%  libyuv_unittest  libyuv_unittest      [.] testing::internal::UnitTestImpl::FilterTests(testing::internal::UnitTestImpl::ReactionToSharding)
  0.00%  libyuv_unittest  libstdc++.so.6.0.19  [.] std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)
  0.00%  libyuv_unittest  libc-2.19.so         [.] __strchr_sse2
  0.00%  libyuv_unittest  libstdc++.so.6.0.19  [.] std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostr
  0.00%  libyuv_unittest  libstdc++.so.6.0.19  [.] operator new(unsigned long)
  0.00%  libyuv_unittest  libyuv_unittest      [.] testing::internal::MakeAndRegisterTestInfo(char const*, char const*, char const*, char const*, testing::internal::CodeL

Original comment by [email protected] on 14 Nov 2015 at 3:07

  • Changed state: Started

@GoogleCodeExporter
Copy link
Author

LIBYUV_FLAGS=-1 LIBYUV_WIDTH=1280 LIBYUV_HEIGHT=720 LIBYUV_REPEAT=999 perf 
record out/Release/libyuv_unittest --gtest_filter=*YUVToRGBScale*
Note: Google Test filter = *YUVToRGBScale*
[==========] Running 2 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 2 tests from LibYUVScaleTest
[ RUN      ] LibYUVScaleTest.YUVToRGBScaleUp
[       OK ] LibYUVScaleTest.YUVToRGBScaleUp (2008 ms)
[ RUN      ] LibYUVScaleTest.YUVToRGBScaleDown
[       OK ] LibYUVScaleTest.YUVToRGBScaleDown (1782 ms)
[----------] 2 tests from LibYUVScaleTest (3791 ms total)

Original comment by [email protected] on 16 Nov 2015 at 10:05

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant