Issue metadata
Sign in to add a comment
|
chrome.tabCapture API: Color defects on FullHD (1920x1080) recording
Reported by
mxmk...@gmail.com,
Mar 26 2017
|
||||||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36 Steps to reproduce the problem: General case: 1. Get mediaStream by using chrome.tabCapture API with constraints: minWidth and maxWidth = 1920, minHeight and maxHeight = 1080; 2. Record this stream by using MediaRecorder API (webm format); 3. Save result; My sample: 1. Click on the extension's icon to start recording; 2. Click again to stop recording; What is the expected behavior? Clean video without color distortion or defects. What went wrong? It looks like colors on a video are displaced vertically. See test video and screenshot what I have attached. Did this work before? Yes 56.0.2924.87 Does this work in other browsers? N/A Chrome version: 57.0.2987.110 Channel: stable OS Version: 10.0 Flash Version: I'm developing a chrome extension with tab recording function. But with Chrome update 57.0.2987.110 I noticed this bug. What did I find out: 1) This is due to the latest update. On version 56.0.2924.87 it works fine. 2) With smaller resolution (1280×720) it works fine. 3) Desktop FullHD recording works fine (by using chrome.desktopCapture API).
,
Mar 27 2017
Update: I tested this function on MacOS and it works fine, so I guess this bug available only for Windows OS. Parameters of the MacOS what I tested: Chrome: 57.0.2987.110 (64-bit) OS: macOS Sierra 10.12.3
,
Mar 30 2017
Thanks for the report. Able to reproduce the issue on Win 10 using 57.0.2987.110/133 and its regressed in M57 and issue present in Beta 58.0.3029.33 and canary 59.0.3055.0. Bisect info: ============== Good:57.0.2979.0 --443474 Bad :57.0.2980.0 --443121 Getting all good builds from depot-tools even increasing the bad revision and didn't find chromium builds with in the above range. Omahaproxy UI CL: https://chromium.googlesource.com/chromium/src/+log/57.0.2979.0..57.0.2980.0?pretty=fuller&n=10000 Posible suspect: Review-Url: https://codereview.chromium.org/2623353004 mcasas@: Could you please take a look into this if its related to your change. Note: Issue is not seen on Mac and Linux. Have added Releaseblock-stable as its regressed in M57. Mostly there is no stable release for M57, if there is any would be good to fix and merge into M57.
,
Mar 30 2017
,
Mar 30 2017
,
Mar 30 2017
I am seeing this issue on MacOS. Version 57.0.2987.133 (64-bit) As the comments indicate, only when the resolution is larger than a certain threshold. I am also an extension developer,and I am not seeing this for everyone, just myself. I'll try to pin down exactly what circumstances it show's up broken under, just wanted to catch this before it was incorrectly classified as windows only.
,
Mar 30 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/68c20537e9ecd5715ffe280091c37fc6aa0a70f6 commit 68c20537e9ecd5715ffe280091c37fc6aa0a70f6 Author: emircan <emircan@chromium.org> Date: Thu Mar 30 21:51:06 2017 Copy based on coded size in VideoTrackRecorder::VEAEncoder This Cl addresses the below bug making sure that input frame's coded size is compared to VEA's requested and frame is copied when necessary. BUG= 705273 TEST=The given bug is fixed and added unittests. Review-Url: https://codereview.chromium.org/2790443004 Cr-Commit-Position: refs/heads/master@{#460897} [modify] https://crrev.com/68c20537e9ecd5715ffe280091c37fc6aa0a70f6/content/renderer/media_recorder/video_track_recorder.cc [modify] https://crrev.com/68c20537e9ecd5715ffe280091c37fc6aa0a70f6/content/renderer/media_recorder/video_track_recorder_unittest.cc
,
Mar 30 2017
Re 36, please let me know if the fix solves the issue for you. It should be available in tomorrow's canary.
,
Mar 31 2017
Had to revert; the CL broke under msan.
,
Mar 31 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/87a9033a234d53a98dd6f803c192877fd342a2c1 commit 87a9033a234d53a98dd6f803c192877fd342a2c1 Author: avi <avi@chromium.org> Date: Fri Mar 31 01:17:11 2017 Revert of Copy based on coded size in VideoTrackRecorder::VEAEncoder (patchset #2 id:40001 of https://codereview.chromium.org/2790443004/ ) Reason for revert: Fails on msan. https://build.chromium.org/p/chromium.memory.full/builders/Linux%20MSan%20Tests/builds/6793 ==25314==WARNING: MemorySanitizer: use-of-uninitialized-value #0 0x173e79ea in vp8_intra4x4_predict third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.c:64:3 #1 0x17411f49 in vp8_encode_intra4x4block third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.c:55:3 #2 0x17080455 in pick_intra4x4block third_party/libvpx/source/libvpx/vp8/encoder/pickinter.c:283:3 #3 0x17080455 in pick_intra4x4mby_modes third_party/libvpx/source/libvpx/vp8/encoder/pickinter.c:313:0 #4 0x17083a01 in vp8_pick_intra_mode third_party/libvpx/source/libvpx/vp8/encoder/pickinter.c:1425:14 #5 0x1740e0b4 in vp8cx_encode_intra_macroblock third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.c:1089:5 #6 0x1740b8f7 in encode_mb_row third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.c:458:21 #7 0x17406d89 in vp8_encode_frame third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.c:777:9 #8 0x17063469 in encode_frame_to_data_rate third_party/libvpx/source/libvpx/vp8/encoder/onyx_if.c:3987:5 #9 0x17063469 in vp8_get_compressed_data third_party/libvpx/source/libvpx/vp8/encoder/onyx_if.c:5098:0 #10 0x170280a7 in vp8e_encode third_party/libvpx/source/libvpx/vp8/vp8_cx_iface.c:879:25 #11 0x1704d1cc in vpx_codec_encode third_party/libvpx/source/libvpx/vpx/src/vpx_encoder.c:209:13 #12 0x16c10f29 in content::(anonymous namespace)::VpxEncoder::DoEncode(vpx_codec_ctx*, gfx::Size const&, unsigned char*, unsigned char*, int, unsigned char*, int, unsigned char*, int, base::TimeDelta const&, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, bool*) content/renderer/media_recorder/video_track_recorder.cc:932:7 #13 0x16c0da73 in content::(anonymous namespace)::VpxEncoder::EncodeOnEncodingTaskRunner(scoped_refptr<media::VideoFrame>, base::TimeTicks) content/renderer/media_recorder/video_track_recorder.cc:871:3 #14 0x16c12113 in Invoke<const scoped_refptr<content::VideoTrackRecorder::Encoder> &, const scoped_refptr<media::VideoFrame> &, const base::TimeTicks &> base/bind_internal.h:214:12 #15 0x16c12113 in MakeItSo<void (content::VideoTrackRecorder::Encoder::*const &)(scoped_refptr<media::VideoFrame>, base::TimeTicks), const scoped_refptr<content::VideoTrackRecorder::Encoder> &, const scoped_refptr<media::VideoFrame> &, const base::TimeTicks &> base/bind_internal.h:285:0 #16 0x16c12113 in RunImpl<void (content::VideoTrackRecorder::Encoder::*const &)(scoped_refptr<media::VideoFrame>, base::TimeTicks), const std::__1::tuple<scoped_refptr<content::VideoTrackRecorder::Encoder>, scoped_refptr<media::VideoFrame>, base::TimeTicks> &, 0, 1, 2> base/bind_internal.h:361:0 #17 0x16c12113 in base::internal::Invoker<base::internal::BindState<void (content::VideoTrackRecorder::Encoder::*)(scoped_refptr<media::VideoFrame>, base::TimeTicks), scoped_refptr<content::VideoTrackRecorder::Encoder>, scoped_refptr<media::VideoFrame>, base::TimeTicks>, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:339:0 #18 0xe0651e5 in Run base/callback.h:91:12 #19 0xe0651e5 in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/debug/task_annotator.cc:59:0 #20 0xde5cbc3 in base::MessageLoop::RunTask(base::PendingTask*) base/message_loop/message_loop.cc:423:19 #21 0xde5e5b1 in base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) base/message_loop/message_loop.cc:434:5 #22 0xde6015e in base::MessageLoop::DoWork() base/message_loop/message_loop.cc:527:13 #23 0xde6d8d0 in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:33:31 #24 0xde5bc46 in base::MessageLoop::RunHandler() base/message_loop/message_loop.cc:387:10 #25 0xdede3fc in base::RunLoop::Run() base/run_loop.cc:37:10 #26 0xdf87aef in base::Thread::ThreadMain() base/threading/thread.cc:333:3 #27 0xdf70fb5 in base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:71:13 #28 0x7f49dc121183 in start_thread /build/eglibc-oGUzwX/eglibc-2.19/nptl/pthread_create.c:312:0 #29 0x7f49dbc3837c in clone /build/eglibc-oGUzwX/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0 Uninitialized value was stored to memory at #0 0x1707f3e6 in pick_intra4x4block third_party/libvpx/source/libvpx/vp8/encoder/pickinter.c:282:18 #1 0x1707f3e6 in pick_intra4x4mby_modes third_party/libvpx/source/libvpx/vp8/encoder/pickinter.c:313:0 #2 0x17083a01 in vp8_pick_intra_mode third_party/libvpx/source/libvpx/vp8/encoder/pickinter.c:1425:14 #3 0x1740e0b4 in vp8cx_encode_intra_macroblock third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.c:1089:5 #4 0x1740b8f7 in encode_mb_row third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.c:458:21 #5 0x17406d89 in vp8_encode_frame third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.c:777:9 #6 0x17063469 in encode_frame_to_data_rate third_party/libvpx/source/libvpx/vp8/encoder/onyx_if.c:3987:5 #7 0x17063469 in vp8_get_compressed_data third_party/libvpx/source/libvpx/vp8/encoder/onyx_if.c:5098:0 #8 0x170280a7 in vp8e_encode third_party/libvpx/source/libvpx/vp8/vp8_cx_iface.c:879:25 #9 0x1704d1cc in vpx_codec_encode third_party/libvpx/source/libvpx/vpx/src/vpx_encoder.c:209:13 #10 0x16c10f29 in content::(anonymous namespace)::VpxEncoder::DoEncode(vpx_codec_ctx*, gfx::Size const&, unsigned char*, unsigned char*, int, unsigned char*, int, unsigned char*, int, base::TimeDelta const&, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, bool*) content/renderer/media_recorder/video_track_recorder.cc:932:7 #11 0x16c0da73 in content::(anonymous namespace)::VpxEncoder::EncodeOnEncodingTaskRunner(scoped_refptr<media::VideoFrame>, base::TimeTicks) content/renderer/media_recorder/video_track_recorder.cc:871:3 #12 0x16c12113 in Invoke<const scoped_refptr<content::VideoTrackRecorder::Encoder> &, const scoped_refptr<media::VideoFrame> &, const base::TimeTicks &> base/bind_internal.h:214:12 #13 0x16c12113 in MakeItSo<void (content::VideoTrackRecorder::Encoder::*const &)(scoped_refptr<media::VideoFrame>, base::TimeTicks), const scoped_refptr<content::VideoTrackRecorder::Encoder> &, const scoped_refptr<media::VideoFrame> &, const base::TimeTicks &> base/bind_internal.h:285:0 #14 0x16c12113 in RunImpl<void (content::VideoTrackRecorder::Encoder::*const &)(scoped_refptr<media::VideoFrame>, base::TimeTicks), const std::__1::tuple<scoped_refptr<content::VideoTrackRecorder::Encoder>, scoped_refptr<media::VideoFrame>, base::TimeTicks> &, 0, 1, 2> base/bind_internal.h:361:0 #15 0x16c12113 in base::internal::Invoker<base::internal::BindState<void (content::VideoTrackRecorder::Encoder::*)(scoped_refptr<media::VideoFrame>, base::TimeTicks), scoped_refptr<content::VideoTrackRecorder::Encoder>, scoped_refptr<media::VideoFrame>, base::TimeTicks>, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:339:0 #16 0xe0651e5 in Run base/callback.h:91:12 #17 0xe0651e5 in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/debug/task_annotator.cc:59:0 #18 0xde5cbc3 in base::MessageLoop::RunTask(base::PendingTask*) base/message_loop/message_loop.cc:423:19 #19 0xde5e5b1 in base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) base/message_loop/message_loop.cc:434:5 #20 0xde6015e in base::MessageLoop::DoWork() base/message_loop/message_loop.cc:527:13 #21 0xde6d8d0 in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:33:31 #22 0xde5bc46 in base::MessageLoop::RunHandler() base/message_loop/message_loop.cc:387:10 #23 0xdede3fc in base::RunLoop::Run() base/run_loop.cc:37:10 #24 0xdf87aef in base::Thread::ThreadMain() base/threading/thread.cc:333:3 #25 0xdf70fb5 in base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:71:13 Uninitialized value was stored to memory at #0 0x6c3fcb in __msan_memcpy ??:0:0 #1 0x173dba76 in vp8_copy_mem16x16_c third_party/libvpx/source/libvpx/vp8/common/reconinter.c:28:5 #2 0x1740b0f7 in encode_mb_row third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.c:418:5 #3 0x17406d89 in vp8_encode_frame third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.c:777:9 #4 0x17063469 in encode_frame_to_data_rate third_party/libvpx/source/libvpx/vp8/encoder/onyx_if.c:3987:5 #5 0x17063469 in vp8_get_compressed_data third_party/libvpx/source/libvpx/vp8/encoder/onyx_if.c:5098:0 #6 0x170280a7 in vp8e_encode third_party/libvpx/source/libvpx/vp8/vp8_cx_iface.c:879:25 #7 0x1704d1cc in vpx_codec_encode third_party/libvpx/source/libvpx/vpx/src/vpx_encoder.c:209:13 #8 0x16c10f29 in content::(anonymous namespace)::VpxEncoder::DoEncode(vpx_codec_ctx*, gfx::Size const&, unsigned char*, unsigned char*, int, unsigned char*, int, unsigned char*, int, base::TimeDelta const&, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, bool*) content/renderer/media_recorder/video_track_recorder.cc:932:7 #9 0x16c0da73 in content::(anonymous namespace)::VpxEncoder::EncodeOnEncodingTaskRunner(scoped_refptr<media::VideoFrame>, base::TimeTicks) content/renderer/media_recorder/video_track_recorder.cc:871:3 #10 0x16c12113 in Invoke<const scoped_refptr<content::VideoTrackRecorder::Encoder> &, const scoped_refptr<media::VideoFrame> &, const base::TimeTicks &> base/bind_internal.h:214:12 #11 0x16c12113 in MakeItSo<void (content::VideoTrackRecorder::Encoder::*const &)(scoped_refptr<media::VideoFrame>, base::TimeTicks), const scoped_refptr<content::VideoTrackRecorder::Encoder> &, const scoped_refptr<media::VideoFrame> &, const base::TimeTicks &> base/bind_internal.h:285:0 #12 0x16c12113 in RunImpl<void (content::VideoTrackRecorder::Encoder::*const &)(scoped_refptr<media::VideoFrame>, base::TimeTicks), const std::__1::tuple<scoped_refptr<content::VideoTrackRecorder::Encoder>, scoped_refptr<media::VideoFrame>, base::TimeTicks> &, 0, 1, 2> base/bind_internal.h:361:0 #13 0x16c12113 in base::internal::Invoker<base::internal::BindState<void (content::VideoTrackRecorder::Encoder::*)(scoped_refptr<media::VideoFrame>, base::TimeTicks), scoped_refptr<content::VideoTrackRecorder::Encoder>, scoped_refptr<media::VideoFrame>, base::TimeTicks>, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:339:0 #14 0xe0651e5 in Run base/callback.h:91:12 #15 0xe0651e5 in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/debug/task_annotator.cc:59:0 #16 0xde5cbc3 in base::MessageLoop::RunTask(base::PendingTask*) base/message_loop/message_loop.cc:423:19 #17 0xde5e5b1 in base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) base/message_loop/message_loop.cc:434:5 #18 0xde6015e in base::MessageLoop::DoWork() base/message_loop/message_loop.cc:527:13 #19 0xde6d8d0 in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:33:31 #20 0xde5bc46 in base::MessageLoop::RunHandler() base/message_loop/message_loop.cc:387:10 #21 0xdede3fc in base::RunLoop::Run() base/run_loop.cc:37:10 #22 0xdf87aef in base::Thread::ThreadMain() base/threading/thread.cc:333:3 #23 0xdf70fb5 in base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:71:13 #24 0x7f49dc121183 in start_thread /build/eglibc-oGUzwX/eglibc-2.19/nptl/pthread_create.c:312:0 Uninitialized value was stored to memory at #0 0x6c3fcb in __msan_memcpy ??:0:0 #1 0x176380f4 in copy_and_extend_plane third_party/libvpx/source/libvpx/vp8/common/extend.c:38:5 #2 0x176380f4 in vp8_copy_and_extend_frame third_party/libvpx/source/libvpx/vp8/common/extend.c:73:0 #3 0x174262e5 in vp8_lookahead_push third_party/libvpx/source/libvpx/vp8/encoder/lookahead.c:139:5 #4 0x1705ceba in vp8_receive_raw_frame third_party/libvpx/source/libvpx/vp8/encoder/onyx_if.c:4817:7 #5 0x1702745a in vp8e_encode third_party/libvpx/source/libvpx/vp8/vp8_cx_iface.c:863:11 #6 0x1704d1cc in vpx_codec_encode third_party/libvpx/source/libvpx/vpx/src/vpx_encoder.c:209:13 #7 0x16c10f29 in content::(anonymous namespace)::VpxEncoder::DoEncode(vpx_codec_ctx*, gfx::Size const&, unsigned char*, unsigned char*, int, unsigned char*, int, unsigned char*, int, base::TimeDelta const&, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, bool*) content/renderer/media_recorder/video_track_recorder.cc:932:7 #8 0x16c0da73 in content::(anonymous namespace)::VpxEncoder::EncodeOnEncodingTaskRunner(scoped_refptr<media::VideoFrame>, base::TimeTicks) content/renderer/media_recorder/video_track_recorder.cc:871:3 #9 0x16c12113 in Invoke<const scoped_refptr<content::VideoTrackRecorder::Encoder> &, const scoped_refptr<media::VideoFrame> &, const base::TimeTicks &> base/bind_internal.h:214:12 #10 0x16c12113 in MakeItSo<void (content::VideoTrackRecorder::Encoder::*const &)(scoped_refptr<media::VideoFrame>, base::TimeTicks), const scoped_refptr<content::VideoTrackRecorder::Encoder> &, const scoped_refptr<media::VideoFrame> &, const base::TimeTicks &> base/bind_internal.h:285:0 #11 0x16c12113 in RunImpl<void (content::VideoTrackRecorder::Encoder::*const &)(scoped_refptr<media::VideoFrame>, base::TimeTicks), const std::__1::tuple<scoped_refptr<content::VideoTrackRecorder::Encoder>, scoped_refptr<media::VideoFrame>, base::TimeTicks> &, 0, 1, 2> base/bind_internal.h:361:0 #12 0x16c12113 in base::internal::Invoker<base::internal::BindState<void (content::VideoTrackRecorder::Encoder::*)(scoped_refptr<media::VideoFrame>, base::TimeTicks), scoped_refptr<content::VideoTrackRecorder::Encoder>, scoped_refptr<media::VideoFrame>, base::TimeTicks>, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:339:0 #13 0xe0651e5 in Run base/callback.h:91:12 #14 0xe0651e5 in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/debug/task_annotator.cc:59:0 #15 0xde5cbc3 in base::MessageLoop::RunTask(base::PendingTask*) base/message_loop/message_loop.cc:423:19 #16 0xde5e5b1 in base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) base/message_loop/message_loop.cc:434:5 #17 0xde6015e in base::MessageLoop::DoWork() base/message_loop/message_loop.cc:527:13 #18 0xde6d8d0 in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:33:31 #19 0xde5bc46 in base::MessageLoop::RunHandler() base/message_loop/message_loop.cc:387:10 #20 0xdede3fc in base::RunLoop::Run() base/run_loop.cc:37:10 #21 0xdf87aef in base::Thread::ThreadMain() base/threading/thread.cc:333:3 #22 0xdf70fb5 in base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:71:13 #23 0x7f49dc121183 in start_thread /build/eglibc-oGUzwX/eglibc-2.19/nptl/pthread_create.c:312:0 Uninitialized value was created by a heap allocation #0 0x6c4363 in __interceptor_posix_memalign ??:0:0 #1 0xde417c9 in base::AlignedAlloc(unsigned long, unsigned long) base/memory/aligned_memory.cc:31:7 #2 0xfb569fd in media::VideoFrame::AllocateYUV(bool) media/base/video_frame.cc:1205:7 #3 0xfb4a6ef in media::VideoFrame::CreateFrameInternal(media::VideoPixelFormat, gfx::Size const&, gfx::Rect const&, gfx::Size const&, base::TimeDelta, bool) media/base/video_frame.cc:1064:10 #4 0xfb49db0 in media::VideoFrame::CreateFrame(media::VideoPixelFormat, gfx::Size const&, gfx::Rect const&, gfx::Size const&, base::TimeDelta) media/base/video_frame.cc:180:10 #5 0x5865ddd in content::VideoTrackRecorderTest_EncodeFrameWithPaddedCodedSize_Test::TestBody() content/renderer/media_recorder/video_track_recorder_unittest.cc:235:49 #6 0xd7f73cc in HandleExceptionsInMethodIfSupported<testing::Test, void> testing/gtest/src/gtest.cc:2458:12 #7 0xd7f73cc in testing::Test::Run() testing/gtest/src/gtest.cc:2474:0 #8 0xd7f9cbb in testing::TestInfo::Run() testing/gtest/src/gtest.cc:2656:11 #9 0xd7fb259 in testing::TestCase::Run() testing/gtest/src/gtest.cc:2774:28 #10 0xd81aefd in testing::internal::UnitTestImpl::RunAllTests() testing/gtest/src/gtest.cc:4647:43 #11 0xd819d8e in HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> testing/gtest/src/gtest.cc:2458:12 #12 0xd819d8e in testing::UnitTest::Run() testing/gtest/src/gtest.cc:4255:0 #13 0xb826860 in RUN_ALL_TESTS testing/gtest/include/gtest/gtest.h:2237:46 #14 0xb826860 in base::TestSuite::Run() base/test/test_suite.cc:271:0 #15 0xb848b7c in Run base/callback.h:80:12 #16 0xb848b7c in base::(anonymous namespace)::LaunchUnitTestsInternal(base::Callback<int (), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, int, int, bool, base::Callback<void (), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&) base/test/launcher/unit_test_launcher.cc:211:0 #17 0xb8483a6 in base::LaunchUnitTests(int, char**, base::Callback<int (), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&) base/test/launcher/unit_test_launcher.cc:453:10 #18 0x4f826f6 in main content/test/run_all_unittests.cc:20:10 #19 0x7f49dbb5ff44 in __libc_start_main /build/eglibc-oGUzwX/eglibc-2.19/csu/libc-start.c:287:0 Original issue's description: > Copy based on coded size in VideoTrackRecorder::VEAEncoder > > This Cl addresses the below bug making sure that input frame's > coded size is compared to VEA's requested and frame is copied > when necessary. > > BUG= 705273 > TEST=The given bug is fixed and added unittests. > > Review-Url: https://codereview.chromium.org/2790443004 > Cr-Commit-Position: refs/heads/master@{#460897} > Committed: https://chromium.googlesource.com/chromium/src/+/68c20537e9ecd5715ffe280091c37fc6aa0a70f6 TBR=mcasas@chromium.org,emircan@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= 705273 Review-Url: https://codereview.chromium.org/2785393002 Cr-Commit-Position: refs/heads/master@{#460975} [modify] https://crrev.com/87a9033a234d53a98dd6f803c192877fd342a2c1/content/renderer/media_recorder/video_track_recorder.cc [modify] https://crrev.com/87a9033a234d53a98dd6f803c192877fd342a2c1/content/renderer/media_recorder/video_track_recorder_unittest.cc
,
Mar 31 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ce6101035cd668d97f15c3ea4736d75f5c0ce05f commit ce6101035cd668d97f15c3ea4736d75f5c0ce05f Author: emircan <emircan@chromium.org> Date: Fri Mar 31 06:38:28 2017 Reland: Copy based on coded size in VideoTrackRecorder::VEAEncoder This Cl addresses the below bug making sure that input frame's coded size is compared to VEA's requested and frame is copied when necessary. BUG= 705273 TEST=The given bug is fixed and added unittests. TBR=mcasas@chromium.org Review-Url: https://codereview.chromium.org/2785403002 Cr-Commit-Position: refs/heads/master@{#461058} [modify] https://crrev.com/ce6101035cd668d97f15c3ea4736d75f5c0ce05f/content/renderer/media_recorder/video_track_recorder.cc [modify] https://crrev.com/ce6101035cd668d97f15c3ea4736d75f5c0ce05f/content/renderer/media_recorder/video_track_recorder_unittest.cc
,
Mar 31 2017
I tested my extension with Canary just now on MacOS ( Version 59.0.3057.0 (Official Build) canary (64-bit) ) and am not seeing this issue, and I am seeing it on stable Version 57.0.2987.133 (64-bit). Not sure if commit ce6101035cd668d97f15c3ea4736d75f5c0ce05f landed or not in Canary but it does appear to be resolved there now.
,
Mar 31 2017
Yes, the fix landed on 59.0.3057.0. Thanks for verifying. I will add requests for merge to older versions. https://chromium.googlesource.com/chromium/src/+log/59.0.3056.0..59.0.3057.0?pretty=fuller&n=10000
,
Apr 1 2017
This bug requires manual review: Reverts referenced in bugdroid comments after merge request. Please contact the milestone owner if you have questions. Owners: amineer@(Android), cmasso@(iOS), bhthompson@(ChromeOS), govind@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Apr 3 2017
Emircan@ - thanks for verifying in Canary. Can you please confirm if there is automated testing/ unit tests added for this change?
,
Apr 3 2017
Yes, see the added test with the fix: https://codereview.chromium.org/2785403002/diff/40001/content/renderer/media_recorder/video_track_recorder_unittest.cc
,
Apr 3 2017
Great thank you - approved
,
Apr 3 2017
,
Apr 3 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/20ba2f284b0df94c628a59af2183b08b907f973d commit 20ba2f284b0df94c628a59af2183b08b907f973d Author: emircan <emircan@chromium.org> Date: Mon Apr 03 20:30:58 2017 Merge 58: Reland: Copy based on coded size in VideoTrackRecorder::VEAEncoder This Cl addresses the below bug making sure that input frame's coded size is compared to VEA's requested and frame is copied when necessary. BUG= 705273 TEST=The given bug is fixed and added unittests. TBR=mcasas@chromium.org Review-Url: https://codereview.chromium.org/2785403002 Cr-Commit-Position: refs/heads/master@{#461058} (cherry picked from commit ce6101035cd668d97f15c3ea4736d75f5c0ce05f) NOTRY=true NOPRESUBMIT=true TBR=mcasas@chromium.org Review-Url: https://codereview.chromium.org/2795043002 Cr-Commit-Position: refs/branch-heads/3029@{#554} Cr-Branched-From: 939b32ee5ba05c396eef3fd992822fcca9a2e262-refs/heads/master@{#454471} [modify] https://crrev.com/20ba2f284b0df94c628a59af2183b08b907f973d/content/renderer/media_recorder/video_track_recorder.cc [modify] https://crrev.com/20ba2f284b0df94c628a59af2183b08b907f973d/content/renderer/media_recorder/video_track_recorder_unittest.cc
,
Apr 5 2017
Verified the issue on windows 7 using chrome M58 #58.0.3029.54 and observed Clean video without color distortion or defects. Followed the steps : 1. Downloaded the given sample zip extension and loaded it in chrome. 2. Clicked on extension icon for recording and clicked again to stop. 3. verified the test.webm video and observed no color distortion or defects. Attached screencast and video for reference. Adding TE-VErified Labels. Thanks!
,
Apr 6 2017
Just a note that tabCapture via DesktopShare -> tab + MediaRecorder is also broken in 57 and is also apparently fixed by this patch, or at least Canary doesn't have the same issue. It actually crashes the extension when you start tab capture and move your mouse. To reproduce: * Use Chrome 57 on Mac * Load the attached extension, which basically on click of the browser action initiates a desktop share dialog. * Click the browser action. * select a tab to share. * Move your mouse around the screen. ### Expected It records ### Actual The extension crashes. ### Further documentation Sample Crash: Crash ID 5b4bf4e9-e6f8-4b13-bede-3d3269762946 (Server ID: 8d73b7e1e0000000)
,
Apr 6 2017
Re #22, thanks for the report. We addressed that on issue 701450 . The fix is in 58 as you described. |
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by ranjitkan@chromium.org
, Mar 27 2017