{"id":1684,"date":"2016-08-13T00:20:31","date_gmt":"2016-08-12T22:20:31","guid":{"rendered":"https:\/\/alax.info\/blog\/?p=1684"},"modified":"2016-08-13T00:20:31","modified_gmt":"2016-08-12T22:20:31","slug":"comment-on-video-capture-issues-with-windows-10-anniversary-update","status":"publish","type":"post","link":"https:\/\/alax.info\/blog\/1684","title":{"rendered":"Comment on Video Capture Issues with Windows 10 Anniversary Update"},"content":{"rendered":"<p>There is a <a href=\"https:\/\/social.msdn.microsoft.com\/Forums\/windowsdesktop\/en-US\/9d6a8704-764f-46df-a41c-8e9d84f7f0f3\/mjpg-encoded-media-type-is-not-available-for-usbuvc-webcameras-after-windows-10-version-1607-os?forum=mediafoundationdevelopment\">comment from MSFT&#8217;s Mike M on MSDN Forums<\/a> on recent issue with compressed video capture. I am pulling it out completely as a quote below:<\/p>\n<blockquote><p>I\u00e2\u20ac\u2122d like to start off by providing you guys a little more context on the behavior you\u00e2\u20ac\u2122re encountering.<\/p>\n<p>One of the main reasons that Windows is decoding MJPEG for your applications is because of performance. With the Anniversary Update to Windows 10, it is now possible for multiple applications to access the camera in ways that weren\u00e2\u20ac\u2122t possible before. It was important for us to enable concurrent camera access, so Windows Hello, Microsoft Hololens and other products and features could reliably assume that the camera would be available at any given time, regardless of what other applications may be accessing it. One of the reasons this led to the MJPEG decoding is because we wanted to prevent multiple applications from decoding the same stream at the same time, which would be a duplicated effort and thus an unnecessary performance hit. This can be even more noticeable or perhaps trigger error cases on in-market devices with a hardware decoder which may be limited on how many decodes can take place simultaneously. We wanted to prevent applications from unknowingly degrading the user experience due to a platform change.<\/p>\n<p>The reasoning for H.264 being decoded can get a little more complicated (and I\u00e2\u20ac\u2122m just learning the details myself as I talk to other members of the team), but the basics revolve around how H.264 allows for encoding parameters to be changed on the camera directly, and how in a situation where multiple applications are making use of this control path, they could interfere with each other. Regarding Roman\u00e2\u20ac\u2122s concerns about Lync: both Lync and Skype are partner teams, and we stay in touch throughout the development process, so the camera functionality in those applications will continue to work.<\/p>\n<p>So yes, MJPEG and H.264 being decoded \/ filtered out is the result of a set of features we needed to implement, and this behavior was planned, designed, tested, and flighted out to our partners and Windows Insiders around the end of January of this year.\u00c2\u00a0 We worked with partners to make sure their applications continued to function throughout this change, but we have done a poor job communicating this change out to you guys. We dropped the ball on that front, so I\u00e2\u20ac\u2122d like to offer my apologies to you all. We\u00e2\u20ac\u2122re working on getting better documentation out, to help answer any questions you may have. Of course, you can always reach out to us via these forums for specific issues, as we monitor them regularly, or file feedback using the Feedback Hub. We\u00e2\u20ac\u2122re constantly collecting feedback on this and other issues, so we can better understand the impact on our application developers and customers. If you\u00e2\u20ac\u2122re having issues adapting your application code to the NV12 \/ YUY2 media types, we\u00e2\u20ac\u2122d like to support you through the changes you may need to make. To get you started, please refer to the documentation links in my previous post. If there are reasons why working with this format isn\u00e2\u20ac\u2122t feasible for your project, please let me know, and I\u00e2\u20ac\u2122ll present them to the rest of the team, to try and find the best solution for your case.<\/p>\n<p>Dacuda and Stephan B, I\u00e2\u20ac\u2122m curious about your specific situations, since you report that this change is breaking functionality for your customers. Are your customers using custom camera hardware? Is the set of supported cameras restricted by your applications? How do your applications deal with devices like the Surface Pro 4, Surface Book, or Dell Venue Pro, which wouldn\u00e2\u20ac\u2122t offer the media types your applications are relying on?<br \/>\nI\u00e2\u20ac\u2122d like to wrap up this wall of text by letting you know that your feedback here and through other channels is greatly appreciated and something that\u00e2\u20ac\u2122s on our radar. We\u00e2\u20ac\u2122re trying to look into what other options we can offer you to be able to improve on this for your (and our) customers, so stay tuned! I invite you to please subscribe to this thread (use the \u00e2\u20ac\u0153Alert me\u00e2\u20ac\u009d link at the top), and I\u00e2\u20ac\u2122ll keep you guys updated on what we find. Thanks!<\/p><\/blockquote>\n<p>Basically, it&#8217;s bad news for those who consume compressed video from capture devices &#8211; the breaking change is intentional. Something is offered in exchange and I hope someone will present the platform changes in a friendly readable document. In particular, Microsoft seems to be adding VP8\/9 video decoder and encoder in this new platform version (more later on that perhaps).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There is a comment from MSFT&#8217;s Mike M on MSDN Forums on recent issue with compressed video capture. I am pulling it out completely as a quote below: I\u00e2\u20ac\u2122d like to start off by providing you guys a little more context on the behavior you\u00e2\u20ac\u2122re encountering. One of the main reasons that Windows is decoding&hellip; <\/p>\n<p><a class=\"moretag\" href=\"https:\/\/alax.info\/blog\/1684\">Read the full article<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[162,78,424,59,486],"class_list":["post-1684","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-capture","tag-directshow","tag-media-foundation","tag-microsoft","tag-video"],"_links":{"self":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/1684","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/comments?post=1684"}],"version-history":[{"count":0,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/1684\/revisions"}],"wp:attachment":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/media?parent=1684"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/categories?post=1684"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/tags?post=1684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}