summaryrefslogtreecommitdiffstats
path: root/native_client_sdk
diff options
context:
space:
mode:
authorsbc <sbc@chromium.org>2015-12-17 17:50:50 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-18 01:51:45 +0000
commit64c8dbe5deec4be962e0936bd760279f3fb72c48 (patch)
tree8dde0919e9a63ac4eb3f6ee4b64cc56bd08858ce /native_client_sdk
parent8814e652c72b6e5dd62a42772590c15f7dc8372b (diff)
downloadchromium_src-64c8dbe5deec4be962e0936bd760279f3fb72c48.zip
chromium_src-64c8dbe5deec4be962e0936bd760279f3fb72c48.tar.gz
chromium_src-64c8dbe5deec4be962e0936bd760279f3fb72c48.tar.bz2
[NaCl SDK] Re-generate docs
Add check for doxygen version of build script since we require a specific version (sadly). Review URL: https://codereview.chromium.org/1536883002 Cr-Commit-Position: refs/heads/master@{#365977}
Diffstat (limited to 'native_client_sdk')
-rw-r--r--native_client_sdk/doc_generated/c-api-beta.html19
-rw-r--r--native_client_sdk/doc_generated/c-api-dev.html19
-rw-r--r--native_client_sdk/doc_generated/c-api.html21
-rw-r--r--native_client_sdk/doc_generated/cpp-api-beta.html8
-rw-r--r--native_client_sdk/doc_generated/cpp-api-dev.html8
-rw-r--r--native_client_sdk/doc_generated/cpp-api.html8
-rw-r--r--native_client_sdk/doc_generated/devguide/devcycle/building.html7
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/globals_defs.html20
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/group___enums.html129
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/group___interfaces.html39
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/group___structs.html10
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/pp__codecs_8h.html13
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/pp__codecs_8h__incl.pngbin9666 -> 12084 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/ppb__audio__encoder_8h.html45
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/ppb__audio__encoder_8h__incl.pngbin0 -> 22379 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/ppb__file__mapping_8h.html58
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/ppb__file__mapping_8h__incl.pngbin9900 -> 0 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/ppb__udp__socket_8h.html25
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/ppb__video__decoder_8h.html16
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/ppb__video__encoder_8h.html61
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/ppb__video__encoder_8h__incl.pngbin0 -> 26069 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___audio_bitstream_buffer.html52
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___audio_profile_description.html95
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___bitstream_buffer.html66
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___video_profile_description.html95
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___video_profile_description__0__1.html95
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___audio_encoder__0__1.html286
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___compositor__0__1.html4
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___file_mapping__0__1.html98
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___u_d_p_socket__1__2.html (renamed from native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___u_d_p_socket__1__1.html)98
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___video_decoder__1__1.html (renamed from native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___video_decoder__1__0.html)81
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___video_encoder__0__2.html309
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/audio__encoder_8h.html32
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/audio__encoder_8h__incl.pngbin0 -> 10489 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_audio_encoder-members.html39
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_audio_encoder.html381
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_audio_encoder__inherit__graph.pngbin0 -> 2662 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_instance.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_resource.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_resource__inherit__graph.pngbin135316 -> 147674 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_u_d_p_socket-members.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_u_d_p_socket.html72
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_decoder-members.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_decoder.html17
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_encoder-members.html40
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_encoder.html418
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_encoder__inherit__graph.pngbin0 -> 2627 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_view-members.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_view.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/inherit_graph_23.pngbin134707 -> 147077 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/inherits.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/namespacepp.html4
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/video__encoder_8h.html32
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/cpp/video__encoder_8h__incl.pngbin0 -> 12522 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/index.html4
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/globals_defs.html20
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/group___enums.html129
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/group___interfaces.html39
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/group___structs.html10
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/pp__codecs_8h.html13
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/pp__codecs_8h__incl.pngbin9666 -> 12084 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/ppb__audio__encoder_8h.html45
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/ppb__audio__encoder_8h__incl.pngbin0 -> 22379 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/ppb__file__mapping_8h.html58
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/ppb__file__mapping_8h__incl.pngbin9900 -> 0 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/ppb__udp__socket_8h.html25
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/ppb__video__decoder_8h.html16
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/ppb__video__encoder_8h.html61
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/ppb__video__encoder_8h__incl.pngbin0 -> 26069 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___audio_bitstream_buffer.html52
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___audio_profile_description.html95
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___bitstream_buffer.html66
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___video_profile_description.html95
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___video_profile_description__0__1.html95
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___audio_encoder__0__1.html286
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___compositor__0__1.html4
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___file_mapping__0__1.html98
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___u_d_p_socket__1__2.html (renamed from native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___u_d_p_socket__1__1.html)98
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___video_decoder__1__1.html (renamed from native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___video_decoder__1__0.html)81
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___video_encoder__0__2.html309
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/audio__encoder_8h.html32
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/audio__encoder_8h__incl.pngbin0 -> 10489 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_audio_encoder-members.html39
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_audio_encoder.html381
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_audio_encoder__inherit__graph.pngbin0 -> 2662 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_instance.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_resource.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_resource__inherit__graph.pngbin135316 -> 147674 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_u_d_p_socket-members.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_u_d_p_socket.html72
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_decoder-members.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_decoder.html17
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_encoder-members.html40
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_encoder.html418
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_encoder__inherit__graph.pngbin0 -> 2627 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_view-members.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_view.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/inherit_graph_23.pngbin134707 -> 147077 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/inherits.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/namespacepp.html4
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/video__encoder_8h.html32
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/cpp/video__encoder_8h__incl.pngbin0 -> 12522 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/index.html4
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/globals_defs.html24
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/group___enums.html141
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/group___interfaces.html49
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/group___structs.html10
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/pp__codecs_8h.html13
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/pp__codecs_8h__incl.pngbin9666 -> 12084 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/ppb__audio__encoder_8h.html45
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/ppb__audio__encoder_8h__incl.pngbin0 -> 22379 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/ppb__file__mapping_8h.html58
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/ppb__file__mapping_8h__incl.pngbin9900 -> 0 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/ppb__tcp__socket_8h.html16
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/ppb__udp__socket_8h.html25
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/ppb__video__decoder_8h.html16
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/ppb__video__encoder_8h.html61
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/ppb__video__encoder_8h__incl.pngbin0 -> 26069 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___audio_bitstream_buffer.html52
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___audio_profile_description.html95
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___bitstream_buffer.html66
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___video_profile_description.html95
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___video_profile_description__0__1.html95
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___audio_encoder__0__1.html286
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___compositor__0__1.html4
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___file_mapping__0__1.html98
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___t_c_p_socket__1__2.html (renamed from native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___t_c_p_socket__1__1.html)78
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___u_d_p_socket__1__2.html (renamed from native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___u_d_p_socket__1__0.html)100
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___video_decoder__1__1.html (renamed from native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___video_decoder__1__0.html)81
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___video_encoder__0__2.html309
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/audio__encoder_8h.html32
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/audio__encoder_8h__incl.pngbin0 -> 10489 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_audio_encoder-members.html39
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_audio_encoder.html381
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_audio_encoder__inherit__graph.pngbin0 -> 2662 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_instance.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_resource.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_resource__inherit__graph.pngbin135316 -> 147674 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_u_d_p_socket-members.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_u_d_p_socket.html74
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_decoder-members.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_decoder.html17
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_encoder-members.html40
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_encoder.html418
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_encoder__inherit__graph.pngbin0 -> 2627 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_view-members.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_view.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/inherit_graph_23.pngbin134707 -> 147077 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/inherits.html2
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/namespacepp.html4
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/video__encoder_8h.html32
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/cpp/video__encoder_8h__incl.pngbin0 -> 12522 bytes
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/index.html4
-rw-r--r--native_client_sdk/doc_generated/sdk/download.html2
-rw-r--r--native_client_sdk/src/doc/c-api-beta.rst30
-rw-r--r--native_client_sdk/src/doc/c-api-dev.rst30
-rw-r--r--native_client_sdk/src/doc/c-api.rst32
-rw-r--r--native_client_sdk/src/doc/cpp-api-beta.rst12
-rw-r--r--native_client_sdk/src/doc/cpp-api-dev.rst12
-rw-r--r--native_client_sdk/src/doc/cpp-api.rst12
-rwxr-xr-xnative_client_sdk/src/doc/doxygen/generate_docs.py13
-rw-r--r--native_client_sdk/src/doc/pepper_beta/index.rst4
-rw-r--r--native_client_sdk/src/doc/pepper_dev/index.rst4
-rw-r--r--native_client_sdk/src/doc/pepper_stable/index.rst4
164 files changed, 7397 insertions, 1216 deletions
diff --git a/native_client_sdk/doc_generated/c-api-beta.html b/native_client_sdk/doc_generated/c-api-beta.html
index 82d3c31..1bb2e15 100644
--- a/native_client_sdk/doc_generated/c-api-beta.html
+++ b/native_client_sdk/doc_generated/c-api-beta.html
@@ -2,20 +2,20 @@
<span class="target" id="c-api-beta"><span id="pepper-beta-c-index"></span></span><section id="pepper-c-api-reference-beta">
<h1 id="pepper-c-api-reference-beta">Pepper C API Reference (Beta)</h1>
-<p>This page lists the C API for Pepper 41. Apps that use this API can
-run in Chrome 41 or higher.</p>
+<p>This page lists the C API for Pepper 48. Apps that use this API can
+run in Chrome 48 or higher.</p>
<h2 id="interfaces"><a class="reference external" href="pepper_beta/c/group___interfaces.html">Interfaces</a></h2>
<blockquote>
<div><ul class="small-gap">
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___audio__1__1.html">PPB_Audio</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___audio_buffer__0__1.html">PPB_AudioBuffer</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___audio_config__1__1.html">PPB_AudioConfig</a></li>
+<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___audio_encoder__0__1.html">PPB_AudioEncoder</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___compositor__0__1.html">PPB_Compositor</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___compositor_layer__0__2.html">PPB_CompositorLayer</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___console__1__0.html">PPB_Console</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___core__1__0.html">PPB_Core</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___file_i_o__1__1.html">PPB_FileIO</a></li>
-<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___file_mapping__0__1.html">PPB_FileMapping</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___file_ref__1__2.html">PPB_FileRef</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___file_system__1__0.html">PPB_FileSystem</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___fullscreen__1__0.html">PPB_Fullscreen</a></li>
@@ -58,7 +58,7 @@ run in Chrome 41 or higher.</p>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___t_c_p_socket__1__2.html">PPB_TCPSocket</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___text_input_controller__1__0.html">PPB_TextInputController</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___touch_input_event__1__0.html">PPB_TouchInputEvent</a></li>
-<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___u_d_p_socket__1__1.html">PPB_UDPSocket</a></li>
+<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___u_r_l_loader__1__0.html">PPB_URLLoader</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___u_r_l_request_info__1__0.html">PPB_URLRequestInfo</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___u_r_l_response_info__1__0.html">PPB_URLResponseInfo</a></li>
@@ -66,7 +66,8 @@ run in Chrome 41 or higher.</p>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___var_array__1__0.html">PPB_VarArray</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___var_array_buffer__1__0.html">PPB_VarArrayBuffer</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___var_dictionary__1__0.html">PPB_VarDictionary</a></li>
-<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a></li>
+<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a></li>
+<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___video_frame__0__1.html">PPB_VideoFrame</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___view__1__2.html">PPB_View</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p_b___web_socket__1__0.html">PPB_WebSocket</a></li>
@@ -83,6 +84,9 @@ run in Chrome 41 or higher.</p>
<blockquote>
<div><ul class="small-gap">
<li><a class="reference external" href="pepper_beta/c/struct_p_p___array_output.html">PP_ArrayOutput</a></li>
+<li><a class="reference external" href="pepper_beta/c/struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a></li>
+<li><a class="reference external" href="pepper_beta/c/struct_p_p___audio_profile_description.html">PP_AudioProfileDescription</a></li>
+<li><a class="reference external" href="pepper_beta/c/struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p___completion_callback.html">PP_CompletionCallback</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p___directory_entry.html">PP_DirectoryEntry</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p___file_info.html">PP_FileInfo</a></li>
@@ -106,6 +110,8 @@ run in Chrome 41 or higher.</p>
<li><a class="reference external" href="pepper_beta/c/struct_p_p___var.html">PP_Var</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p___video_picture.html">PP_VideoPicture</a></li>
<li><a class="reference external" href="pepper_beta/c/struct_p_p___video_picture__0__1.html">PP_VideoPicture</a></li>
+<li><a class="reference external" href="pepper_beta/c/struct_p_p___video_profile_description.html">PP_VideoProfileDescription</a></li>
+<li><a class="reference external" href="pepper_beta/c/struct_p_p___video_profile_description__0__1.html">PP_VideoProfileDescription</a></li>
<li><a class="reference external" href="pepper_beta/c/union_p_p___var_value.html">PP_VarValue</a></li>
</ul>
</div></blockquote>
@@ -139,12 +145,12 @@ run in Chrome 41 or higher.</p>
<li><a class="reference external" href="pepper_beta/c/ppb__audio_8h.html">ppb_audio.h</a></li>
<li><a class="reference external" href="pepper_beta/c/ppb__audio__buffer_8h.html">ppb_audio_buffer.h</a></li>
<li><a class="reference external" href="pepper_beta/c/ppb__audio__config_8h.html">ppb_audio_config.h</a></li>
+<li><a class="reference external" href="pepper_beta/c/ppb__audio__encoder_8h.html">ppb_audio_encoder.h</a></li>
<li><a class="reference external" href="pepper_beta/c/ppb__compositor_8h.html">ppb_compositor.h</a></li>
<li><a class="reference external" href="pepper_beta/c/ppb__compositor__layer_8h.html">ppb_compositor_layer.h</a></li>
<li><a class="reference external" href="pepper_beta/c/ppb__console_8h.html">ppb_console.h</a></li>
<li><a class="reference external" href="pepper_beta/c/ppb__core_8h.html">ppb_core.h</a></li>
<li><a class="reference external" href="pepper_beta/c/ppb__file__io_8h.html">ppb_file_io.h</a></li>
-<li><a class="reference external" href="pepper_beta/c/ppb__file__mapping_8h.html">ppb_file_mapping.h</a></li>
<li><a class="reference external" href="pepper_beta/c/ppb__file__ref_8h.html">ppb_file_ref.h</a></li>
<li><a class="reference external" href="pepper_beta/c/ppb__file__system_8h.html">ppb_file_system.h</a></li>
<li><a class="reference external" href="pepper_beta/c/ppb__fullscreen_8h.html">ppb_fullscreen.h</a></li>
@@ -177,6 +183,7 @@ run in Chrome 41 or higher.</p>
<li><a class="reference external" href="pepper_beta/c/ppb__var__array__buffer_8h.html">ppb_var_array_buffer.h</a></li>
<li><a class="reference external" href="pepper_beta/c/ppb__var__dictionary_8h.html">ppb_var_dictionary.h</a></li>
<li><a class="reference external" href="pepper_beta/c/ppb__video__decoder_8h.html">ppb_video_decoder.h</a></li>
+<li><a class="reference external" href="pepper_beta/c/ppb__video__encoder_8h.html">ppb_video_encoder.h</a></li>
<li><a class="reference external" href="pepper_beta/c/ppb__video__frame_8h.html">ppb_video_frame.h</a></li>
<li><a class="reference external" href="pepper_beta/c/ppb__view_8h.html">ppb_view.h</a></li>
<li><a class="reference external" href="pepper_beta/c/ppb__websocket_8h.html">ppb_websocket.h</a></li>
diff --git a/native_client_sdk/doc_generated/c-api-dev.html b/native_client_sdk/doc_generated/c-api-dev.html
index 8bab9ea..7eba9f2 100644
--- a/native_client_sdk/doc_generated/c-api-dev.html
+++ b/native_client_sdk/doc_generated/c-api-dev.html
@@ -2,20 +2,20 @@
<span class="target" id="c-api-dev"><span id="pepper-dev-c-index"></span></span><section id="pepper-c-api-reference-dev">
<h1 id="pepper-c-api-reference-dev">Pepper C API Reference (Dev)</h1>
-<p>This page lists the C API for Pepper 42. Apps that use this API can
-run in Chrome 42 or higher.</p>
+<p>This page lists the C API for Pepper 49. Apps that use this API can
+run in Chrome 49 or higher.</p>
<h2 id="interfaces"><a class="reference external" href="pepper_dev/c/group___interfaces.html">Interfaces</a></h2>
<blockquote>
<div><ul class="small-gap">
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___audio__1__1.html">PPB_Audio</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___audio_buffer__0__1.html">PPB_AudioBuffer</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___audio_config__1__1.html">PPB_AudioConfig</a></li>
+<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___audio_encoder__0__1.html">PPB_AudioEncoder</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___compositor__0__1.html">PPB_Compositor</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___compositor_layer__0__2.html">PPB_CompositorLayer</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___console__1__0.html">PPB_Console</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___core__1__0.html">PPB_Core</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___file_i_o__1__1.html">PPB_FileIO</a></li>
-<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___file_mapping__0__1.html">PPB_FileMapping</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___file_ref__1__2.html">PPB_FileRef</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___file_system__1__0.html">PPB_FileSystem</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___fullscreen__1__0.html">PPB_Fullscreen</a></li>
@@ -58,7 +58,7 @@ run in Chrome 42 or higher.</p>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___t_c_p_socket__1__2.html">PPB_TCPSocket</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___text_input_controller__1__0.html">PPB_TextInputController</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___touch_input_event__1__0.html">PPB_TouchInputEvent</a></li>
-<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___u_d_p_socket__1__1.html">PPB_UDPSocket</a></li>
+<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___u_r_l_loader__1__0.html">PPB_URLLoader</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___u_r_l_request_info__1__0.html">PPB_URLRequestInfo</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___u_r_l_response_info__1__0.html">PPB_URLResponseInfo</a></li>
@@ -66,7 +66,8 @@ run in Chrome 42 or higher.</p>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___var_array__1__0.html">PPB_VarArray</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___var_array_buffer__1__0.html">PPB_VarArrayBuffer</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___var_dictionary__1__0.html">PPB_VarDictionary</a></li>
-<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a></li>
+<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a></li>
+<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___video_frame__0__1.html">PPB_VideoFrame</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___view__1__2.html">PPB_View</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p_b___web_socket__1__0.html">PPB_WebSocket</a></li>
@@ -83,6 +84,9 @@ run in Chrome 42 or higher.</p>
<blockquote>
<div><ul class="small-gap">
<li><a class="reference external" href="pepper_dev/c/struct_p_p___array_output.html">PP_ArrayOutput</a></li>
+<li><a class="reference external" href="pepper_dev/c/struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a></li>
+<li><a class="reference external" href="pepper_dev/c/struct_p_p___audio_profile_description.html">PP_AudioProfileDescription</a></li>
+<li><a class="reference external" href="pepper_dev/c/struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p___completion_callback.html">PP_CompletionCallback</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p___directory_entry.html">PP_DirectoryEntry</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p___file_info.html">PP_FileInfo</a></li>
@@ -106,6 +110,8 @@ run in Chrome 42 or higher.</p>
<li><a class="reference external" href="pepper_dev/c/struct_p_p___var.html">PP_Var</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p___video_picture.html">PP_VideoPicture</a></li>
<li><a class="reference external" href="pepper_dev/c/struct_p_p___video_picture__0__1.html">PP_VideoPicture</a></li>
+<li><a class="reference external" href="pepper_dev/c/struct_p_p___video_profile_description.html">PP_VideoProfileDescription</a></li>
+<li><a class="reference external" href="pepper_dev/c/struct_p_p___video_profile_description__0__1.html">PP_VideoProfileDescription</a></li>
<li><a class="reference external" href="pepper_dev/c/union_p_p___var_value.html">PP_VarValue</a></li>
</ul>
</div></blockquote>
@@ -139,12 +145,12 @@ run in Chrome 42 or higher.</p>
<li><a class="reference external" href="pepper_dev/c/ppb__audio_8h.html">ppb_audio.h</a></li>
<li><a class="reference external" href="pepper_dev/c/ppb__audio__buffer_8h.html">ppb_audio_buffer.h</a></li>
<li><a class="reference external" href="pepper_dev/c/ppb__audio__config_8h.html">ppb_audio_config.h</a></li>
+<li><a class="reference external" href="pepper_dev/c/ppb__audio__encoder_8h.html">ppb_audio_encoder.h</a></li>
<li><a class="reference external" href="pepper_dev/c/ppb__compositor_8h.html">ppb_compositor.h</a></li>
<li><a class="reference external" href="pepper_dev/c/ppb__compositor__layer_8h.html">ppb_compositor_layer.h</a></li>
<li><a class="reference external" href="pepper_dev/c/ppb__console_8h.html">ppb_console.h</a></li>
<li><a class="reference external" href="pepper_dev/c/ppb__core_8h.html">ppb_core.h</a></li>
<li><a class="reference external" href="pepper_dev/c/ppb__file__io_8h.html">ppb_file_io.h</a></li>
-<li><a class="reference external" href="pepper_dev/c/ppb__file__mapping_8h.html">ppb_file_mapping.h</a></li>
<li><a class="reference external" href="pepper_dev/c/ppb__file__ref_8h.html">ppb_file_ref.h</a></li>
<li><a class="reference external" href="pepper_dev/c/ppb__file__system_8h.html">ppb_file_system.h</a></li>
<li><a class="reference external" href="pepper_dev/c/ppb__fullscreen_8h.html">ppb_fullscreen.h</a></li>
@@ -177,6 +183,7 @@ run in Chrome 42 or higher.</p>
<li><a class="reference external" href="pepper_dev/c/ppb__var__array__buffer_8h.html">ppb_var_array_buffer.h</a></li>
<li><a class="reference external" href="pepper_dev/c/ppb__var__dictionary_8h.html">ppb_var_dictionary.h</a></li>
<li><a class="reference external" href="pepper_dev/c/ppb__video__decoder_8h.html">ppb_video_decoder.h</a></li>
+<li><a class="reference external" href="pepper_dev/c/ppb__video__encoder_8h.html">ppb_video_encoder.h</a></li>
<li><a class="reference external" href="pepper_dev/c/ppb__video__frame_8h.html">ppb_video_frame.h</a></li>
<li><a class="reference external" href="pepper_dev/c/ppb__view_8h.html">ppb_view.h</a></li>
<li><a class="reference external" href="pepper_dev/c/ppb__websocket_8h.html">ppb_websocket.h</a></li>
diff --git a/native_client_sdk/doc_generated/c-api.html b/native_client_sdk/doc_generated/c-api.html
index 08e3630..7ccf67d 100644
--- a/native_client_sdk/doc_generated/c-api.html
+++ b/native_client_sdk/doc_generated/c-api.html
@@ -2,20 +2,20 @@
<span class="target" id="c-api"><span id="pepper-stable-c-index"></span></span><section id="pepper-c-api-reference-stable">
<h1 id="pepper-c-api-reference-stable">Pepper C API Reference (Stable)</h1>
-<p>This page lists the C API for Pepper 40. Apps that use this API can
-run in Chrome 40 or higher.</p>
+<p>This page lists the C API for Pepper 47. Apps that use this API can
+run in Chrome 47 or higher.</p>
<h2 id="interfaces"><a class="reference external" href="pepper_stable/c/group___interfaces.html">Interfaces</a></h2>
<blockquote>
<div><ul class="small-gap">
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___audio__1__1.html">PPB_Audio</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___audio_buffer__0__1.html">PPB_AudioBuffer</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___audio_config__1__1.html">PPB_AudioConfig</a></li>
+<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___audio_encoder__0__1.html">PPB_AudioEncoder</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___compositor__0__1.html">PPB_Compositor</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___compositor_layer__0__2.html">PPB_CompositorLayer</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___console__1__0.html">PPB_Console</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___core__1__0.html">PPB_Core</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___file_i_o__1__1.html">PPB_FileIO</a></li>
-<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___file_mapping__0__1.html">PPB_FileMapping</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___file_ref__1__2.html">PPB_FileRef</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___file_system__1__0.html">PPB_FileSystem</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___fullscreen__1__0.html">PPB_Fullscreen</a></li>
@@ -55,10 +55,10 @@ run in Chrome 40 or higher.</p>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___open_g_l_e_s2_query__1__0.html">PPB_OpenGLES2Query</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___open_g_l_e_s2_vertex_array_object.html">PPB_OpenGLES2VertexArrayObject</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___open_g_l_e_s2_vertex_array_object__1__0.html">PPB_OpenGLES2VertexArrayObject</a></li>
-<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___t_c_p_socket__1__1.html">PPB_TCPSocket</a></li>
+<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___t_c_p_socket__1__2.html">PPB_TCPSocket</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___text_input_controller__1__0.html">PPB_TextInputController</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___touch_input_event__1__0.html">PPB_TouchInputEvent</a></li>
-<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___u_d_p_socket__1__0.html">PPB_UDPSocket</a></li>
+<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___u_r_l_loader__1__0.html">PPB_URLLoader</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___u_r_l_request_info__1__0.html">PPB_URLRequestInfo</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___u_r_l_response_info__1__0.html">PPB_URLResponseInfo</a></li>
@@ -66,7 +66,8 @@ run in Chrome 40 or higher.</p>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___var_array__1__0.html">PPB_VarArray</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___var_array_buffer__1__0.html">PPB_VarArrayBuffer</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___var_dictionary__1__0.html">PPB_VarDictionary</a></li>
-<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a></li>
+<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a></li>
+<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___video_frame__0__1.html">PPB_VideoFrame</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___view__1__2.html">PPB_View</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p_b___web_socket__1__0.html">PPB_WebSocket</a></li>
@@ -83,6 +84,9 @@ run in Chrome 40 or higher.</p>
<blockquote>
<div><ul class="small-gap">
<li><a class="reference external" href="pepper_stable/c/struct_p_p___array_output.html">PP_ArrayOutput</a></li>
+<li><a class="reference external" href="pepper_stable/c/struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a></li>
+<li><a class="reference external" href="pepper_stable/c/struct_p_p___audio_profile_description.html">PP_AudioProfileDescription</a></li>
+<li><a class="reference external" href="pepper_stable/c/struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p___completion_callback.html">PP_CompletionCallback</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p___directory_entry.html">PP_DirectoryEntry</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p___file_info.html">PP_FileInfo</a></li>
@@ -106,6 +110,8 @@ run in Chrome 40 or higher.</p>
<li><a class="reference external" href="pepper_stable/c/struct_p_p___var.html">PP_Var</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p___video_picture.html">PP_VideoPicture</a></li>
<li><a class="reference external" href="pepper_stable/c/struct_p_p___video_picture__0__1.html">PP_VideoPicture</a></li>
+<li><a class="reference external" href="pepper_stable/c/struct_p_p___video_profile_description.html">PP_VideoProfileDescription</a></li>
+<li><a class="reference external" href="pepper_stable/c/struct_p_p___video_profile_description__0__1.html">PP_VideoProfileDescription</a></li>
<li><a class="reference external" href="pepper_stable/c/union_p_p___var_value.html">PP_VarValue</a></li>
</ul>
</div></blockquote>
@@ -139,12 +145,12 @@ run in Chrome 40 or higher.</p>
<li><a class="reference external" href="pepper_stable/c/ppb__audio_8h.html">ppb_audio.h</a></li>
<li><a class="reference external" href="pepper_stable/c/ppb__audio__buffer_8h.html">ppb_audio_buffer.h</a></li>
<li><a class="reference external" href="pepper_stable/c/ppb__audio__config_8h.html">ppb_audio_config.h</a></li>
+<li><a class="reference external" href="pepper_stable/c/ppb__audio__encoder_8h.html">ppb_audio_encoder.h</a></li>
<li><a class="reference external" href="pepper_stable/c/ppb__compositor_8h.html">ppb_compositor.h</a></li>
<li><a class="reference external" href="pepper_stable/c/ppb__compositor__layer_8h.html">ppb_compositor_layer.h</a></li>
<li><a class="reference external" href="pepper_stable/c/ppb__console_8h.html">ppb_console.h</a></li>
<li><a class="reference external" href="pepper_stable/c/ppb__core_8h.html">ppb_core.h</a></li>
<li><a class="reference external" href="pepper_stable/c/ppb__file__io_8h.html">ppb_file_io.h</a></li>
-<li><a class="reference external" href="pepper_stable/c/ppb__file__mapping_8h.html">ppb_file_mapping.h</a></li>
<li><a class="reference external" href="pepper_stable/c/ppb__file__ref_8h.html">ppb_file_ref.h</a></li>
<li><a class="reference external" href="pepper_stable/c/ppb__file__system_8h.html">ppb_file_system.h</a></li>
<li><a class="reference external" href="pepper_stable/c/ppb__fullscreen_8h.html">ppb_fullscreen.h</a></li>
@@ -177,6 +183,7 @@ run in Chrome 40 or higher.</p>
<li><a class="reference external" href="pepper_stable/c/ppb__var__array__buffer_8h.html">ppb_var_array_buffer.h</a></li>
<li><a class="reference external" href="pepper_stable/c/ppb__var__dictionary_8h.html">ppb_var_dictionary.h</a></li>
<li><a class="reference external" href="pepper_stable/c/ppb__video__decoder_8h.html">ppb_video_decoder.h</a></li>
+<li><a class="reference external" href="pepper_stable/c/ppb__video__encoder_8h.html">ppb_video_encoder.h</a></li>
<li><a class="reference external" href="pepper_stable/c/ppb__video__frame_8h.html">ppb_video_frame.h</a></li>
<li><a class="reference external" href="pepper_stable/c/ppb__view_8h.html">ppb_view.h</a></li>
<li><a class="reference external" href="pepper_stable/c/ppb__websocket_8h.html">ppb_websocket.h</a></li>
diff --git a/native_client_sdk/doc_generated/cpp-api-beta.html b/native_client_sdk/doc_generated/cpp-api-beta.html
index f242e67..2d33b8fb 100644
--- a/native_client_sdk/doc_generated/cpp-api-beta.html
+++ b/native_client_sdk/doc_generated/cpp-api-beta.html
@@ -2,14 +2,15 @@
<span class="target" id="cpp-api-beta"><span id="pepper-beta-cpp-index"></span></span><section id="pepper-c-api-reference-beta">
<h1 id="pepper-c-api-reference-beta">Pepper C++ API Reference (Beta)</h1>
-<p>This page lists the C++ API for Pepper 41. Apps that use this API can
-run in Chrome 41 or higher.</p>
+<p>This page lists the C++ API for Pepper 48. Apps that use this API can
+run in Chrome 48 or higher.</p>
<h2 id="classes"><a class="reference external" href="pepper_beta/cpp/inherits.html">Classes</a></h2>
<blockquote>
<div><ul class="small-gap">
<li><a class="reference external" href="pepper_beta/cpp/classpp_1_1_audio.html">Audio</a></li>
<li><a class="reference external" href="pepper_beta/cpp/classpp_1_1_audio_buffer.html">AudioBuffer</a></li>
<li><a class="reference external" href="pepper_beta/cpp/classpp_1_1_audio_config.html">AudioConfig</a></li>
+<li><a class="reference external" href="pepper_beta/cpp/classpp_1_1_audio_encoder.html">AudioEncoder</a></li>
<li><a class="reference external" href="pepper_beta/cpp/classpp_1_1_completion_callback.html">CompletionCallback</a></li>
<li><a class="reference external" href="pepper_beta/cpp/classpp_1_1_completion_callback_factory.html">CompletionCallbackFactory</a></li>
<li><a class="reference external" href="pepper_beta/cpp/classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a></li>
@@ -64,6 +65,7 @@ run in Chrome 41 or higher.</p>
<li><a class="reference external" href="pepper_beta/cpp/classpp_1_1_var_array_buffer.html">VarArrayBuffer</a></li>
<li><a class="reference external" href="pepper_beta/cpp/classpp_1_1_var_dictionary.html">VarDictionary</a></li>
<li><a class="reference external" href="pepper_beta/cpp/classpp_1_1_video_decoder.html">VideoDecoder</a></li>
+<li><a class="reference external" href="pepper_beta/cpp/classpp_1_1_video_encoder.html">VideoEncoder</a></li>
<li><a class="reference external" href="pepper_beta/cpp/classpp_1_1_video_frame.html">VideoFrame</a></li>
<li><a class="reference external" href="pepper_beta/cpp/classpp_1_1_view.html">View</a></li>
<li><a class="reference external" href="pepper_beta/cpp/classpp_1_1_web_socket.html">WebSocket</a></li>
@@ -77,6 +79,7 @@ run in Chrome 41 or higher.</p>
<li><a class="reference external" href="pepper_beta/cpp/audio_8h.html">audio.h</a></li>
<li><a class="reference external" href="pepper_beta/cpp/audio__buffer_8h.html">audio_buffer.h</a></li>
<li><a class="reference external" href="pepper_beta/cpp/audio__config_8h.html">audio_config.h</a></li>
+<li><a class="reference external" href="pepper_beta/cpp/audio__encoder_8h.html">audio_encoder.h</a></li>
<li><a class="reference external" href="pepper_beta/cpp/completion__callback_8h.html">completion_callback.h</a></li>
<li><a class="reference external" href="pepper_beta/cpp/completion__callback__factory_8h.html">completion_callback_factory.h</a></li>
<li><a class="reference external" href="pepper_beta/cpp/compositor_8h.html">compositor.h</a></li>
@@ -126,6 +129,7 @@ run in Chrome 41 or higher.</p>
<li><a class="reference external" href="pepper_beta/cpp/var__array__buffer_8h.html">var_array_buffer.h</a></li>
<li><a class="reference external" href="pepper_beta/cpp/var__dictionary_8h.html">var_dictionary.h</a></li>
<li><a class="reference external" href="pepper_beta/cpp/video__decoder_8h.html">video_decoder.h</a></li>
+<li><a class="reference external" href="pepper_beta/cpp/video__encoder_8h.html">video_encoder.h</a></li>
<li><a class="reference external" href="pepper_beta/cpp/video__frame_8h.html">video_frame.h</a></li>
<li><a class="reference external" href="pepper_beta/cpp/view_8h.html">view.h</a></li>
<li><a class="reference external" href="pepper_beta/cpp/websocket_8h.html">websocket.h</a></li>
diff --git a/native_client_sdk/doc_generated/cpp-api-dev.html b/native_client_sdk/doc_generated/cpp-api-dev.html
index 72970af..aac0740 100644
--- a/native_client_sdk/doc_generated/cpp-api-dev.html
+++ b/native_client_sdk/doc_generated/cpp-api-dev.html
@@ -2,14 +2,15 @@
<span class="target" id="cpp-api-dev"><span id="pepper-dev-cpp-index"></span></span><section id="pepper-c-api-reference-dev">
<h1 id="pepper-c-api-reference-dev">Pepper C++ API Reference (Dev)</h1>
-<p>This page lists the C++ API for Pepper 42. Apps that use this API can
-run in Chrome 42 or higher.</p>
+<p>This page lists the C++ API for Pepper 49. Apps that use this API can
+run in Chrome 49 or higher.</p>
<h2 id="classes"><a class="reference external" href="pepper_dev/cpp/inherits.html">Classes</a></h2>
<blockquote>
<div><ul class="small-gap">
<li><a class="reference external" href="pepper_dev/cpp/classpp_1_1_audio.html">Audio</a></li>
<li><a class="reference external" href="pepper_dev/cpp/classpp_1_1_audio_buffer.html">AudioBuffer</a></li>
<li><a class="reference external" href="pepper_dev/cpp/classpp_1_1_audio_config.html">AudioConfig</a></li>
+<li><a class="reference external" href="pepper_dev/cpp/classpp_1_1_audio_encoder.html">AudioEncoder</a></li>
<li><a class="reference external" href="pepper_dev/cpp/classpp_1_1_completion_callback.html">CompletionCallback</a></li>
<li><a class="reference external" href="pepper_dev/cpp/classpp_1_1_completion_callback_factory.html">CompletionCallbackFactory</a></li>
<li><a class="reference external" href="pepper_dev/cpp/classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a></li>
@@ -64,6 +65,7 @@ run in Chrome 42 or higher.</p>
<li><a class="reference external" href="pepper_dev/cpp/classpp_1_1_var_array_buffer.html">VarArrayBuffer</a></li>
<li><a class="reference external" href="pepper_dev/cpp/classpp_1_1_var_dictionary.html">VarDictionary</a></li>
<li><a class="reference external" href="pepper_dev/cpp/classpp_1_1_video_decoder.html">VideoDecoder</a></li>
+<li><a class="reference external" href="pepper_dev/cpp/classpp_1_1_video_encoder.html">VideoEncoder</a></li>
<li><a class="reference external" href="pepper_dev/cpp/classpp_1_1_video_frame.html">VideoFrame</a></li>
<li><a class="reference external" href="pepper_dev/cpp/classpp_1_1_view.html">View</a></li>
<li><a class="reference external" href="pepper_dev/cpp/classpp_1_1_web_socket.html">WebSocket</a></li>
@@ -77,6 +79,7 @@ run in Chrome 42 or higher.</p>
<li><a class="reference external" href="pepper_dev/cpp/audio_8h.html">audio.h</a></li>
<li><a class="reference external" href="pepper_dev/cpp/audio__buffer_8h.html">audio_buffer.h</a></li>
<li><a class="reference external" href="pepper_dev/cpp/audio__config_8h.html">audio_config.h</a></li>
+<li><a class="reference external" href="pepper_dev/cpp/audio__encoder_8h.html">audio_encoder.h</a></li>
<li><a class="reference external" href="pepper_dev/cpp/completion__callback_8h.html">completion_callback.h</a></li>
<li><a class="reference external" href="pepper_dev/cpp/completion__callback__factory_8h.html">completion_callback_factory.h</a></li>
<li><a class="reference external" href="pepper_dev/cpp/compositor_8h.html">compositor.h</a></li>
@@ -126,6 +129,7 @@ run in Chrome 42 or higher.</p>
<li><a class="reference external" href="pepper_dev/cpp/var__array__buffer_8h.html">var_array_buffer.h</a></li>
<li><a class="reference external" href="pepper_dev/cpp/var__dictionary_8h.html">var_dictionary.h</a></li>
<li><a class="reference external" href="pepper_dev/cpp/video__decoder_8h.html">video_decoder.h</a></li>
+<li><a class="reference external" href="pepper_dev/cpp/video__encoder_8h.html">video_encoder.h</a></li>
<li><a class="reference external" href="pepper_dev/cpp/video__frame_8h.html">video_frame.h</a></li>
<li><a class="reference external" href="pepper_dev/cpp/view_8h.html">view.h</a></li>
<li><a class="reference external" href="pepper_dev/cpp/websocket_8h.html">websocket.h</a></li>
diff --git a/native_client_sdk/doc_generated/cpp-api.html b/native_client_sdk/doc_generated/cpp-api.html
index aecb7fe..94b9de8 100644
--- a/native_client_sdk/doc_generated/cpp-api.html
+++ b/native_client_sdk/doc_generated/cpp-api.html
@@ -2,14 +2,15 @@
<span class="target" id="cpp-api"><span id="pepper-stable-cpp-index"></span></span><section id="pepper-c-api-reference-stable">
<h1 id="pepper-c-api-reference-stable">Pepper C++ API Reference (Stable)</h1>
-<p>This page lists the C++ API for Pepper 40. Apps that use this API can
-run in Chrome 40 or higher.</p>
+<p>This page lists the C++ API for Pepper 47. Apps that use this API can
+run in Chrome 47 or higher.</p>
<h2 id="classes"><a class="reference external" href="pepper_stable/cpp/inherits.html">Classes</a></h2>
<blockquote>
<div><ul class="small-gap">
<li><a class="reference external" href="pepper_stable/cpp/classpp_1_1_audio.html">Audio</a></li>
<li><a class="reference external" href="pepper_stable/cpp/classpp_1_1_audio_buffer.html">AudioBuffer</a></li>
<li><a class="reference external" href="pepper_stable/cpp/classpp_1_1_audio_config.html">AudioConfig</a></li>
+<li><a class="reference external" href="pepper_stable/cpp/classpp_1_1_audio_encoder.html">AudioEncoder</a></li>
<li><a class="reference external" href="pepper_stable/cpp/classpp_1_1_completion_callback.html">CompletionCallback</a></li>
<li><a class="reference external" href="pepper_stable/cpp/classpp_1_1_completion_callback_factory.html">CompletionCallbackFactory</a></li>
<li><a class="reference external" href="pepper_stable/cpp/classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a></li>
@@ -64,6 +65,7 @@ run in Chrome 40 or higher.</p>
<li><a class="reference external" href="pepper_stable/cpp/classpp_1_1_var_array_buffer.html">VarArrayBuffer</a></li>
<li><a class="reference external" href="pepper_stable/cpp/classpp_1_1_var_dictionary.html">VarDictionary</a></li>
<li><a class="reference external" href="pepper_stable/cpp/classpp_1_1_video_decoder.html">VideoDecoder</a></li>
+<li><a class="reference external" href="pepper_stable/cpp/classpp_1_1_video_encoder.html">VideoEncoder</a></li>
<li><a class="reference external" href="pepper_stable/cpp/classpp_1_1_video_frame.html">VideoFrame</a></li>
<li><a class="reference external" href="pepper_stable/cpp/classpp_1_1_view.html">View</a></li>
<li><a class="reference external" href="pepper_stable/cpp/classpp_1_1_web_socket.html">WebSocket</a></li>
@@ -77,6 +79,7 @@ run in Chrome 40 or higher.</p>
<li><a class="reference external" href="pepper_stable/cpp/audio_8h.html">audio.h</a></li>
<li><a class="reference external" href="pepper_stable/cpp/audio__buffer_8h.html">audio_buffer.h</a></li>
<li><a class="reference external" href="pepper_stable/cpp/audio__config_8h.html">audio_config.h</a></li>
+<li><a class="reference external" href="pepper_stable/cpp/audio__encoder_8h.html">audio_encoder.h</a></li>
<li><a class="reference external" href="pepper_stable/cpp/completion__callback_8h.html">completion_callback.h</a></li>
<li><a class="reference external" href="pepper_stable/cpp/completion__callback__factory_8h.html">completion_callback_factory.h</a></li>
<li><a class="reference external" href="pepper_stable/cpp/compositor_8h.html">compositor.h</a></li>
@@ -126,6 +129,7 @@ run in Chrome 40 or higher.</p>
<li><a class="reference external" href="pepper_stable/cpp/var__array__buffer_8h.html">var_array_buffer.h</a></li>
<li><a class="reference external" href="pepper_stable/cpp/var__dictionary_8h.html">var_dictionary.h</a></li>
<li><a class="reference external" href="pepper_stable/cpp/video__decoder_8h.html">video_decoder.h</a></li>
+<li><a class="reference external" href="pepper_stable/cpp/video__encoder_8h.html">video_encoder.h</a></li>
<li><a class="reference external" href="pepper_stable/cpp/video__frame_8h.html">video_frame.h</a></li>
<li><a class="reference external" href="pepper_stable/cpp/view_8h.html">view.h</a></li>
<li><a class="reference external" href="pepper_stable/cpp/websocket_8h.html">websocket.h</a></li>
diff --git a/native_client_sdk/doc_generated/devguide/devcycle/building.html b/native_client_sdk/doc_generated/devguide/devcycle/building.html
index a3fd054..12f540f 100644
--- a/native_client_sdk/doc_generated/devguide/devcycle/building.html
+++ b/native_client_sdk/doc_generated/devguide/devcycle/building.html
@@ -514,10 +514,9 @@ For more detail, see the header <code>include/nacl_io/nacl_io.h</code>.
For an example of how to use nacl_io, see <code>examples/demo/nacl_io_demo</code>.</dd>
<dt>libppapi_simple.a</dt>
<dd>Provides a familiar C programming environment by letting a module have a
-simple entry point that is registered by <code>PPAPI_SIMPLE_REGISTER_MAIN</code>.
-The entry point is similar to the standard C <code>main()</code> function, complete
-with <code>argc</code> and <code>argv[]</code> parameters. For details see
-<code>include/ppapi_simple/ps.h</code>. For an example of
+simple <code>main()</code> entry point. The entry point is similar to the standard C
+<code>main()</code> function, complete with <code>argc</code> and <code>argv[]</code> parameters. For
+details see <code>include/ppapi_simple/ps.h</code>. For an example of
how to use ppapi_simple, <code>see examples/tutorial/using_ppapi_simple</code>.</dd>
</dl>
<aside class="note">
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/globals_defs.html b/native_client_sdk/doc_generated/pepper_beta/c/globals_defs.html
index ec7106f..b08950b 100644
--- a/native_client_sdk/doc_generated/pepper_beta/c/globals_defs.html
+++ b/native_client_sdk/doc_generated/pepper_beta/c/globals_defs.html
@@ -31,6 +31,9 @@
<li>PPB_AUDIOBUFFER_INTERFACE_0_1
: <a class="el" href="ppb__audio__buffer_8h.html#a4fddf6d285021552ba11f4460ba47445">ppb_audio_buffer.h</a>
</li>
+<li>PPB_AUDIOENCODER_INTERFACE_0_1
+: <a class="el" href="ppb__audio__encoder_8h.html#a4c4871532f8ac42a5a98f9f0aaac27a6">ppb_audio_encoder.h</a>
+</li>
<li>PPB_COMPOSITOR_INTERFACE_0_1
: <a class="el" href="ppb__compositor_8h.html#ac8b0ddbdff260dd5531525784556c045">ppb_compositor.h</a>
</li>
@@ -55,9 +58,6 @@
<li>PPB_FILEIO_INTERFACE_1_1
: <a class="el" href="ppb__file__io_8h.html#aee417de3562daef62dbf68ddc16a8477">ppb_file_io.h</a>
</li>
-<li>PPB_FILEMAPPING_INTERFACE_0_1
-: <a class="el" href="ppb__file__mapping_8h.html#a657d5d4684814f79fd2c764fd8aa540e">ppb_file_mapping.h</a>
-</li>
<li>PPB_FILEREF_INTERFACE
: <a class="el" href="ppb__file__ref_8h.html#a00615ce99f7d6774b0fc5c8f0326f0ba">ppb_file_ref.h</a>
</li>
@@ -262,8 +262,8 @@
<li>PPB_UDPSOCKET_INTERFACE
: <a class="el" href="ppb__udp__socket_8h.html#a673aeb3fceb5ed977b7b8683f674cbfd">ppb_udp_socket.h</a>
</li>
-<li>PPB_UDPSOCKET_INTERFACE_1_1
-: <a class="el" href="ppb__udp__socket_8h.html#a756bacac14becc5cbc2efedcd3ccd509">ppb_udp_socket.h</a>
+<li>PPB_UDPSOCKET_INTERFACE_1_2
+: <a class="el" href="ppb__udp__socket_8h.html#ad6bc6ae5b1d72251b6b81fdd7d8009f7">ppb_udp_socket.h</a>
</li>
<li>PPB_URLLOADER_INTERFACE
: <a class="el" href="ppb__url__loader_8h.html#ae1fa8c5cdfccb7ea67e184b1e5e1009e">ppb_url_loader.h</a>
@@ -310,8 +310,14 @@
<li>PPB_VIDEODECODER_INTERFACE
: <a class="el" href="ppb__video__decoder_8h.html#ae369609aebfa745c1836ef92e9b76aa2">ppb_video_decoder.h</a>
</li>
-<li>PPB_VIDEODECODER_INTERFACE_1_0
-: <a class="el" href="ppb__video__decoder_8h.html#af814c8f0028bce254da6fb5c3e61a4d8">ppb_video_decoder.h</a>
+<li>PPB_VIDEODECODER_INTERFACE_1_1
+: <a class="el" href="ppb__video__decoder_8h.html#ac9994bddaa7ccc8f52799a00031d5441">ppb_video_decoder.h</a>
+</li>
+<li>PPB_VIDEOENCODER_INTERFACE
+: <a class="el" href="ppb__video__encoder_8h.html#abdb2ab6ab0553f6b0086aee71996ea3d">ppb_video_encoder.h</a>
+</li>
+<li>PPB_VIDEOENCODER_INTERFACE_0_2
+: <a class="el" href="ppb__video__encoder_8h.html#af8c3e2794a4f7f9cbd6c253cbacfe177">ppb_video_encoder.h</a>
</li>
<li>PPB_VIDEOFRAME_INTERFACE
: <a class="el" href="ppb__video__frame_8h.html#ac161d8c49f583eda31622d9fc010cd0d">ppb_video_frame.h</a>
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/group___enums.html b/native_client_sdk/doc_generated/pepper_beta/c/group___enums.html
index 3bd2e7d..f5d7907 100644
--- a/native_client_sdk/doc_generated/pepper_beta/c/group___enums.html
+++ b/native_client_sdk/doc_generated/pepper_beta/c/group___enums.html
@@ -34,6 +34,9 @@ Enumerations</h2><table class="memberdecls">
<a class="el" href="group___enums.html#gga4d50d27186f68b2de578e82162206feaa884e0f18fee1bae2472a15f6fb1d7e79">PP_VIDEOPROFILE_MAX</a> = PP_VIDEOPROFILE_VP9_ANY
<br />
}</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a> { <a class="el" href="group___enums.html#ggadadb1eaddb4ea71cb8620db1f4ce301ea7148c3f24ae9baffeae215261460a191">PP_AUDIOPROFILE_OPUS</a> = 0,
+<a class="el" href="group___enums.html#ggadadb1eaddb4ea71cb8620db1f4ce301ea2d878bc8ba09116d5f62bb4965460e77">PP_AUDIOPROFILE_MAX</a> = PP_AUDIOPROFILE_OPUS
+ }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> { <a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5a6208cea63b7e6c1c8c9c67616df4ba85">PP_HARDWAREACCELERATION_ONLY</a> = 0,
<a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5ad29490655cc25165817de26c5caff7ea">PP_HARDWAREACCELERATION_WITHFALLBACK</a> = 1,
<a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5acf901685e6e14afe89e7d22ad35af4e1">PP_HARDWAREACCELERATION_NONE</a> = 2,
@@ -189,13 +192,6 @@ Enumerations</h2><table class="memberdecls">
<a class="el" href="group___enums.html#gga4c87e6dd19c1d49b66a9b37136a82e82a78c13cbbccebfa9c2b8b2f758397795c">PP_FILEOPENFLAG_APPEND</a> = 1 &lt;&lt; 5
<br />
}</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a> { <a class="el" href="group___enums.html#gga07cb383dee51bc7e8e1f234068652668a88619572d7d081c4b657fd8087a164fb">PP_FILEMAPPROTECTION_READ</a> = 1u &lt;&lt; 0,
-<a class="el" href="group___enums.html#gga07cb383dee51bc7e8e1f234068652668aadebe6625bb49b575195f0d4d165c27e">PP_FILEMAPPROTECTION_WRITE</a> = 1u &lt;&lt; 1
- }</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a> { <a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939bada9233097e19d068b7d4ad0ac00140d03c">PP_FILEMAPFLAG_SHARED</a> = 1u &lt;&lt; 0,
-<a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939bada74f65f6fbedce77b36bda16beab65a03">PP_FILEMAPFLAG_PRIVATE</a> = 1u &lt;&lt; 1,
-<a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939badae37402f728fae4078d76a006d36bc26e">PP_FILEMAPFLAG_FIXED</a> = 1u &lt;&lt; 2
- }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gadcb0a92e6ca510586c3f34088d35dc9f">PP_MakeDirectoryFlags</a> { <a class="el" href="group___enums.html#ggadcb0a92e6ca510586c3f34088d35dc9fafeeef418b62780276c4671a57196ad3f">PP_MAKEDIRECTORYFLAG_NONE</a> = 0 &lt;&lt; 0,
<a class="el" href="group___enums.html#ggadcb0a92e6ca510586c3f34088d35dc9fa5c7f89c8784c9d8abfaeae51d9cb84ba">PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS</a> = 1 &lt;&lt; 0,
<a class="el" href="group___enums.html#ggadcb0a92e6ca510586c3f34088d35dc9fa34dd5b5ba9af9e5c820d3c6e21fc2094">PP_MAKEDIRECTORYFLAG_EXCLUSIVE</a> = 1 &lt;&lt; 1
@@ -373,10 +369,15 @@ Enumerations</h2><table class="memberdecls">
<a class="el" href="group___enums.html#gga5fef49ee4c2cc6dcead825340da0f116ad4371ecdd1a6631a78d4721d83062394">PP_TEXTINPUT_TYPE_URL</a> = 7
<br />
}</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> { <a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a79568403b8927bf98bea0f2d38469984">PP_UDPSOCKET_OPTION_ADDRESS_REUSE</a> = 0,
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> { <br />
+&#160;&#160;<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a79568403b8927bf98bea0f2d38469984">PP_UDPSOCKET_OPTION_ADDRESS_REUSE</a> = 0,
<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2aeceda8fe978a52382b96939de7707c00">PP_UDPSOCKET_OPTION_BROADCAST</a> = 1,
<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a905f0adde2912a5db26883d45fb75d57">PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE</a> = 2,
-<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a1264eb1d6d16eb3a074ee3d21ebb3b64">PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE</a> = 3
+<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a1264eb1d6d16eb3a074ee3d21ebb3b64">PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a0cde43fa32bc72658658f9a20c07194c">PP_UDPSOCKET_OPTION_MULTICAST_LOOP</a> = 4,
+<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a29bfa5fc814589e4a5003a5d1c377b82">PP_UDPSOCKET_OPTION_MULTICAST_TTL</a> = 5
+<br />
}</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga41975630f0a4c49e47d4a21754f8402d">PP_URLRequestProperty</a> { <br />
&#160;&#160;<a class="el" href="group___enums.html#gga41975630f0a4c49e47d4a21754f8402da89e44812e771fed9df0ff8994690e44d">PP_URLREQUESTPROPERTY_URL</a> = 0,
@@ -464,8 +465,6 @@ Variables</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gaee750c350655f2fb0fe04c04029e0ff8">PP_AudioSampleRate</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gac39067c0883ec80b94290dd2a3bae440">PP_LogLevel</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga4c87e6dd19c1d49b66a9b37136a82e82">PP_FileOpenFlags</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gadb4b8db19266831040fc604f73c83a25">PP_HostResolver_Flag</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga2ee7ad01799553e5f17bdaa35dd952ee">PP_ImageDataFormat</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gaca7296cfec99fcb6646b7144d1d6a0c5">PP_InputEvent_Type</a></td></tr>
@@ -713,6 +712,27 @@ Variables</h2><table class="memberdecls">
</dl>
</div>
</div>
+<a class="anchor" id="gadadb1eaddb4ea71cb8620db1f4ce301e"></a><!-- doxytag: member="pp_codecs.h::PP_AudioProfile" ref="gadadb1eaddb4ea71cb8620db1f4ce301e" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">enum <a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Audio profiles. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggadadb1eaddb4ea71cb8620db1f4ce301ea7148c3f24ae9baffeae215261460a191"></a><!-- doxytag: member="PP_AUDIOPROFILE_OPUS" ref="ggadadb1eaddb4ea71cb8620db1f4ce301ea7148c3f24ae9baffeae215261460a191" args="" -->PP_AUDIOPROFILE_OPUS</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggadadb1eaddb4ea71cb8620db1f4ce301ea2d878bc8ba09116d5f62bb4965460e77"></a><!-- doxytag: member="PP_AUDIOPROFILE_MAX" ref="ggadadb1eaddb4ea71cb8620db1f4ce301ea2d878bc8ba09116d5f62bb4965460e77" args="" -->PP_AUDIOPROFILE_MAX</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
<a class="anchor" id="gaee750c350655f2fb0fe04c04029e0ff8"></a><!-- doxytag: member="ppb_audio_config.h::PP_AudioSampleRate" ref="gaee750c350655f2fb0fe04c04029e0ff8" args="" -->
<div class="memitem">
<div class="memproto">
@@ -814,59 +834,6 @@ Variables</h2><table class="memberdecls">
</dl>
</div>
</div>
-<a class="anchor" id="ga47ce032e16d18ba6fc6c16bbe8939bad"></a><!-- doxytag: member="ppb_file_mapping.h::PP_FileMapFlags" ref="ga47ce032e16d18ba6fc6c16bbe8939bad" args="" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">enum <a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a></td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-<p>The PP_FileMapFlags contain flag values for use with Map(). </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="gga47ce032e16d18ba6fc6c16bbe8939bada9233097e19d068b7d4ad0ac00140d03c"></a><!-- doxytag: member="PP_FILEMAPFLAG_SHARED" ref="gga47ce032e16d18ba6fc6c16bbe8939bada9233097e19d068b7d4ad0ac00140d03c" args="" -->PP_FILEMAPFLAG_SHARED</em>&nbsp;</td><td>
-<p>Requests a shared mapping. </p>
-<p>If this flag is set, changes written to the memory region will be reflected in the underlying file and will thus eventually be visible to other processes which have opened the file. The file may not actually be updated until Unmap() is called. This is only valid if the PPB_FileIO resource was opened with write permission. </p>
-</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="gga47ce032e16d18ba6fc6c16bbe8939bada74f65f6fbedce77b36bda16beab65a03"></a><!-- doxytag: member="PP_FILEMAPFLAG_PRIVATE" ref="gga47ce032e16d18ba6fc6c16bbe8939bada74f65f6fbedce77b36bda16beab65a03" args="" -->PP_FILEMAPFLAG_PRIVATE</em>&nbsp;</td><td>
-<p>Requests a copy-on-write mapping. </p>
-<p>If this flag is set, changes are not written to the underlying file, but only in the memory of the process (copy-on-write). </p>
-</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="gga47ce032e16d18ba6fc6c16bbe8939badae37402f728fae4078d76a006d36bc26e"></a><!-- doxytag: member="PP_FILEMAPFLAG_FIXED" ref="gga47ce032e16d18ba6fc6c16bbe8939badae37402f728fae4078d76a006d36bc26e" args="" -->PP_FILEMAPFLAG_FIXED</em>&nbsp;</td><td>
-<p>Forces Map() to map the file contents at the provided |address|. </p>
-<p>If Map() can not comply, Map() will fail. </p>
-</td></tr>
-</table>
-</dd>
-</dl>
-</div>
-</div>
-<a class="anchor" id="ga07cb383dee51bc7e8e1f234068652668"></a><!-- doxytag: member="ppb_file_mapping.h::PP_FileMapProtection" ref="ga07cb383dee51bc7e8e1f234068652668" args="" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">enum <a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a></td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-<p>The PP_FileMapProtection values indicate the permissions requested for the file mapping. </p>
-<p>These should be used in a uint32_t bitfield. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="gga07cb383dee51bc7e8e1f234068652668a88619572d7d081c4b657fd8087a164fb"></a><!-- doxytag: member="PP_FILEMAPPROTECTION_READ" ref="gga07cb383dee51bc7e8e1f234068652668a88619572d7d081c4b657fd8087a164fb" args="" -->PP_FILEMAPPROTECTION_READ</em>&nbsp;</td><td>
-<p>Requests read access to the mapped address. </p>
-</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="gga07cb383dee51bc7e8e1f234068652668aadebe6625bb49b575195f0d4d165c27e"></a><!-- doxytag: member="PP_FILEMAPPROTECTION_WRITE" ref="gga07cb383dee51bc7e8e1f234068652668aadebe6625bb49b575195f0d4d165c27e" args="" -->PP_FILEMAPPROTECTION_WRITE</em>&nbsp;</td><td>
-<p>Requests write access to the mapped address. </p>
-</td></tr>
-</table>
-</dd>
-</dl>
-</div>
-</div>
<a class="anchor" id="ga4c87e6dd19c1d49b66a9b37136a82e82"></a><!-- doxytag: member="ppb_file_io.h::PP_FileOpenFlags" ref="ga4c87e6dd19c1d49b66a9b37136a82e82" args="" -->
<div class="memitem">
<div class="memproto">
@@ -1753,6 +1720,16 @@ Variables</h2><table class="memberdecls">
<p>Value's type should be <code>PP_VARTYPE_INT32</code>. On version 1.0, this option can only be set after a successful <code>Bind()</code> call. On version 1.1 or later, there is no such limitation.</p>
<p>Note: This is only treated as a hint for the browser to set the buffer size. Even if <code>SetOption()</code> succeeds, the browser doesn't guarantee it will conform to the size. </p>
</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga1a8472fa3e7150615c45c38fa8c12ce2a0cde43fa32bc72658658f9a20c07194c"></a><!-- doxytag: member="PP_UDPSOCKET_OPTION_MULTICAST_LOOP" ref="gga1a8472fa3e7150615c45c38fa8c12ce2a0cde43fa32bc72658658f9a20c07194c" args="" -->PP_UDPSOCKET_OPTION_MULTICAST_LOOP</em>&nbsp;</td><td>
+<p>Specifies whether the packets sent from the host to the multicast group should be looped back to the host or not. </p>
+<p>Value's type should be <code>PP_VARTYPE_BOOL</code>. This option can only be set before calling <code>Bind()</code>.</p>
+<p>This is only supported in version 1.2 of the API (Chrome 43) and later. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga1a8472fa3e7150615c45c38fa8c12ce2a29bfa5fc814589e4a5003a5d1c377b82"></a><!-- doxytag: member="PP_UDPSOCKET_OPTION_MULTICAST_TTL" ref="gga1a8472fa3e7150615c45c38fa8c12ce2a29bfa5fc814589e4a5003a5d1c377b82" args="" -->PP_UDPSOCKET_OPTION_MULTICAST_TTL</em>&nbsp;</td><td>
+<p>Specifies the time-to-live for packets sent to the multicast group. </p>
+<p>The value should be within 0 to 255 range. The default value is 1 and means that packets will not be routed beyond the local network. Value's type should be <code>PP_VARTYPE_INT32</code>. This option can only be set before calling <code>Bind()</code>.</p>
+<p>This is only supported in version 1.2 of the API (Chrome 43) and later. </p>
+</td></tr>
</table>
</dd>
</dl>
@@ -2178,30 +2155,6 @@ Variables</h2><table class="memberdecls">
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="ga47ce032e16d18ba6fc6c16bbe8939bad"></a><!-- doxytag: member="ppb_file_mapping.h::PP_FileMapFlags" ref="ga47ce032e16d18ba6fc6c16bbe8939bad" args="" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname"><a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a></td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-</div>
-</div>
-<a class="anchor" id="ga07cb383dee51bc7e8e1f234068652668"></a><!-- doxytag: member="ppb_file_mapping.h::PP_FileMapProtection" ref="ga07cb383dee51bc7e8e1f234068652668" args="" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname"><a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a></td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-</div>
-</div>
<a class="anchor" id="ga4c87e6dd19c1d49b66a9b37136a82e82"></a><!-- doxytag: member="ppb_file_io.h::PP_FileOpenFlags" ref="ga4c87e6dd19c1d49b66a9b37136a82e82" args="" -->
<div class="memitem">
<div class="memproto">
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/group___interfaces.html b/native_client_sdk/doc_generated/pepper_beta/c/group___interfaces.html
index e4a64ed8..72f88bb 100644
--- a/native_client_sdk/doc_generated/pepper_beta/c/group___interfaces.html
+++ b/native_client_sdk/doc_generated/pepper_beta/c/group___interfaces.html
@@ -16,6 +16,8 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_buffer__0__1.html">PPB_AudioBuffer</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_config__1__1.html">PPB_AudioConfig</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_AudioConfig</code> interface contains pointers to several functions for establishing your audio configuration within the browser. <a href="struct_p_p_b___audio_config__1__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html">PPB_AudioEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Audio encoder interface. <a href="struct_p_p_b___audio_encoder__0__1.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___compositor__0__1.html">PPB_Compositor</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the <code>PPB_Compositor</code> interface. <a href="struct_p_p_b___compositor__0__1.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___compositor_layer__0__2.html">PPB_CompositorLayer</a></td></tr>
@@ -25,8 +27,6 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_Core</code> interface contains pointers to functions related to memory management, time, and threads on the browser. <a href="struct_p_p_b___core__1__0.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_i_o__1__1.html">PPB_FileIO</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_FileIO</code> struct is used to operate on a regular file (PP_FileType_Regular). <a href="struct_p_p_b___file_i_o__1__1.html#details">More...</a><br /></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_mapping__0__1.html">PPB_FileMapping</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">PPB_FileMapping contains functions for mapping and unmapping files into and out of memory. <a href="struct_p_p_b___file_mapping__0__1.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_ref__1__2.html">PPB_FileRef</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_FileRef</code> struct represents a "weak pointer" to a file in a file system. <a href="struct_p_p_b___file_ref__1__2.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_system__1__0.html">PPB_FileSystem</a></td></tr>
@@ -94,8 +94,8 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_TCPSocket</code> interface provides TCP socket operations. <a href="struct_p_p_b___t_c_p_socket__1__2.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___text_input_controller__1__0.html">PPB_TextInputController</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>PPB_TextInputController</code> provides a set of functions for giving hints to the browser about the text input status of plugins, and functions for controlling input method editors (IMEs). <a href="struct_p_p_b___text_input_controller__1__0.html#details">More...</a><br /></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html">PPB_UDPSocket</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_UDPSocket</code> interface provides UDP socket operations. <a href="struct_p_p_b___u_d_p_socket__1__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_UDPSocket</code> interface provides UDP socket operations. <a href="struct_p_p_b___u_d_p_socket__1__2.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_r_l_loader__1__0.html">PPB_URLLoader</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <b>PPB_URLLoader</b> interface contains pointers to functions for loading URLs. <a href="struct_p_p_b___u_r_l_loader__1__0.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_r_l_request_info__1__0.html">PPB_URLRequestInfo</a></td></tr>
@@ -109,8 +109,10 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_VarArrayBuffer</code> interface provides a way to interact with JavaScript ArrayBuffers, which represent a contiguous sequence of bytes. <a href="struct_p_p_b___var_array_buffer__1__0.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___var_dictionary__1__0.html">PPB_VarDictionary</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A dictionary var contains key-value pairs with unique keys. <a href="struct_p_p_b___var_dictionary__1__0.html#details">More...</a><br /></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video decoder interface. <a href="struct_p_p_b___video_decoder__1__0.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video decoder interface. <a href="struct_p_p_b___video_decoder__1__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video encoder interface. <a href="struct_p_p_b___video_encoder__0__2.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_frame__0__1.html">PPB_VideoFrame</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___view__1__2.html">PPB_View</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>PPB_View</code> represents the state of the view of an instance. <a href="struct_p_p_b___view__1__2.html#details">More...</a><br /></td></tr>
@@ -169,7 +171,7 @@ Typedefs</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html">PPB_TCPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga68e25baffc8cfc72d6c636a3a6217aa0">PPB_TCPSocket</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak" />
<a class="el" href="struct_p_p_b___text_input_controller__1__0.html">PPB_TextInputController</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gab387085f6044f3a0b1631d119d22a942">PPB_TextInputController</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html">PPB_UDPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga03552c99ad9e2a408a988822f834f548">PPB_UDPSocket</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gac45ce5bed449ca63680c4769663fd2b1">PPB_UDPSocket</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___u_r_l_loader__1__0.html">PPB_URLLoader</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga307f562a9e41991de7c80b75cd7f379c">PPB_URLLoader</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak" />
<a class="el" href="struct_p_p_b___u_r_l_request_info__1__0.html">PPB_URLRequestInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gad60387934d9e235d3d145ee5a1fb4e74">PPB_URLRequestInfo</a></td></tr>
@@ -181,7 +183,8 @@ Typedefs</h2><table class="memberdecls">
<a class="el" href="struct_p_p_b___var_array_buffer__1__0.html">PPB_VarArrayBuffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gab26d5bb032f5438d02faf5bdf7b208cb">PPB_VarArrayBuffer</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak" />
<a class="el" href="struct_p_p_b___var_dictionary__1__0.html">PPB_VarDictionary</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga69826004b5c32232c9639090f3e1db2e">PPB_VarDictionary</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga2b4555d8bd239fa28b60c42df75f7ce5">PPB_VideoDecoder</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga3bfb47f476c3153e5638265c17702ed9">PPB_VideoDecoder</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga1a72f170f2aaa94cd41aa16949e27973">PPB_VideoEncoder</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_frame__0__1.html">PPB_VideoFrame</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gaa76d004c840f6c4f64a0694e7c844ae9">PPB_VideoFrame</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___view__1__2.html">PPB_View</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga116e11e23c92c99094c9704d97636a67">PPB_View</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___web_socket__1__0.html">PPB_WebSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gad0e152d14cefb0b480228f3fc7070faf">PPB_WebSocket</a></td></tr>
@@ -566,12 +569,12 @@ Typedefs</h2><table class="memberdecls">
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="ga03552c99ad9e2a408a988822f834f548"></a><!-- doxytag: member="ppb_udp_socket.h::PPB_UDPSocket" ref="ga03552c99ad9e2a408a988822f834f548" args="" -->
+<a class="anchor" id="gac45ce5bed449ca63680c4769663fd2b1"></a><!-- doxytag: member="ppb_udp_socket.h::PPB_UDPSocket" ref="gac45ce5bed449ca63680c4769663fd2b1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html">PPB_UDPSocket</a> <a class="el" href="group___interfaces.html#ga03552c99ad9e2a408a988822f834f548">PPB_UDPSocket</a></td>
+<td class="memname">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a> <a class="el" href="group___interfaces.html#gac45ce5bed449ca63680c4769663fd2b1">PPB_UDPSocket</a></td>
</tr>
</table>
</div>
@@ -662,12 +665,24 @@ Typedefs</h2><table class="memberdecls">
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="ga2b4555d8bd239fa28b60c42df75f7ce5"></a><!-- doxytag: member="ppb_video_decoder.h::PPB_VideoDecoder" ref="ga2b4555d8bd239fa28b60c42df75f7ce5" args="" -->
+<a class="anchor" id="ga3bfb47f476c3153e5638265c17702ed9"></a><!-- doxytag: member="ppb_video_decoder.h::PPB_VideoDecoder" ref="ga3bfb47f476c3153e5638265c17702ed9" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a> <a class="el" href="group___interfaces.html#ga2b4555d8bd239fa28b60c42df75f7ce5">PPB_VideoDecoder</a></td>
+<td class="memname">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a> <a class="el" href="group___interfaces.html#ga3bfb47f476c3153e5638265c17702ed9">PPB_VideoDecoder</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+</div>
+</div>
+<a class="anchor" id="ga1a72f170f2aaa94cd41aa16949e27973"></a><!-- doxytag: member="ppb_video_encoder.h::PPB_VideoEncoder" ref="ga1a72f170f2aaa94cd41aa16949e27973" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">typedef struct <a class="el" href="struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a> <a class="el" href="group___interfaces.html#ga1a72f170f2aaa94cd41aa16949e27973">PPB_VideoEncoder</a></td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/group___structs.html b/native_client_sdk/doc_generated/pepper_beta/c/group___structs.html
index 1bf6366..1bbd2a7 100644
--- a/native_client_sdk/doc_generated/pepper_beta/c/group___structs.html
+++ b/native_client_sdk/doc_generated/pepper_beta/c/group___structs.html
@@ -17,6 +17,16 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a decoded video picture. <a href="struct_p_p___video_picture.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_picture__0__1.html">PP_VideoPicture</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a decoded video picture. <a href="struct_p_p___video_picture__0__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html">PP_VideoProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported video profile information. <a href="struct_p_p___video_profile_description.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html">PP_VideoProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported video profile information. <a href="struct_p_p___video_profile_description__0__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html">PP_AudioProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported audio profile information. <a href="struct_p_p___audio_profile_description.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a bitstream buffer. <a href="struct_p_p___bitstream_buffer.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing an audio bitstream buffer. <a href="struct_p_p___audio_bitstream_buffer.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> is a common mechanism for supporting potentially asynchronous calls in browser interfaces. <a href="struct_p_p___completion_callback.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___directory_entry.html">PP_DirectoryEntry</a></td></tr>
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/pp__codecs_8h.html b/native_client_sdk/doc_generated/pepper_beta/c/pp__codecs_8h.html
index c9cbed8..5e4b639 100644
--- a/native_client_sdk/doc_generated/pepper_beta/c/pp__codecs_8h.html
+++ b/native_client_sdk/doc_generated/pepper_beta/c/pp__codecs_8h.html
@@ -23,6 +23,16 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a decoded video picture. <a href="struct_p_p___video_picture.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_picture__0__1.html">PP_VideoPicture</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a decoded video picture. <a href="struct_p_p___video_picture__0__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html">PP_VideoProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported video profile information. <a href="struct_p_p___video_profile_description.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html">PP_VideoProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported video profile information. <a href="struct_p_p___video_profile_description__0__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html">PP_AudioProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported audio profile information. <a href="struct_p_p___audio_profile_description.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a bitstream buffer. <a href="struct_p_p___bitstream_buffer.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing an audio bitstream buffer. <a href="struct_p_p___audio_bitstream_buffer.html#details">More...</a><br /></td></tr>
</table><h2>
Enumerations</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> { <br />
@@ -45,6 +55,9 @@ Enumerations</h2><table class="memberdecls">
<a class="el" href="group___enums.html#gga4d50d27186f68b2de578e82162206feaa884e0f18fee1bae2472a15f6fb1d7e79">PP_VIDEOPROFILE_MAX</a> = PP_VIDEOPROFILE_VP9_ANY
<br />
}</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a> { <a class="el" href="group___enums.html#ggadadb1eaddb4ea71cb8620db1f4ce301ea7148c3f24ae9baffeae215261460a191">PP_AUDIOPROFILE_OPUS</a> = 0,
+<a class="el" href="group___enums.html#ggadadb1eaddb4ea71cb8620db1f4ce301ea2d878bc8ba09116d5f62bb4965460e77">PP_AUDIOPROFILE_MAX</a> = PP_AUDIOPROFILE_OPUS
+ }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> { <a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5a6208cea63b7e6c1c8c9c67616df4ba85">PP_HARDWAREACCELERATION_ONLY</a> = 0,
<a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5ad29490655cc25165817de26c5caff7ea">PP_HARDWAREACCELERATION_WITHFALLBACK</a> = 1,
<a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5acf901685e6e14afe89e7d22ad35af4e1">PP_HARDWAREACCELERATION_NONE</a> = 2,
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/pp__codecs_8h__incl.png b/native_client_sdk/doc_generated/pepper_beta/c/pp__codecs_8h__incl.png
index e74f895..d5c4e9a 100644
--- a/native_client_sdk/doc_generated/pepper_beta/c/pp__codecs_8h__incl.png
+++ b/native_client_sdk/doc_generated/pepper_beta/c/pp__codecs_8h__incl.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/ppb__audio__encoder_8h.html b/native_client_sdk/doc_generated/pepper_beta/c/ppb__audio__encoder_8h.html
new file mode 100644
index 0000000..04270d5
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/c/ppb__audio__encoder_8h.html
@@ -0,0 +1,45 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>ppb_audio_encoder.h File Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<div class="textblock"><div class="dynheader">
+Include dependency graph for ppb_audio_encoder.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="ppb__audio__encoder_8h__incl.png" border="0" usemap="#ppb__audio__encoder_8h" alt="" /></div>
+<map name="ppb__audio__encoder_8h" id="ppb__audio__encoder_8h">
+</map>
+</div>
+</div><h2>
+Data Structures</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html">PPB_AudioEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Audio encoder interface. <a href="struct_p_p_b___audio_encoder__0__1.html#details">More...</a><br /></td></tr>
+</table><h2>
+Defines</h2><table class="memberdecls">
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__audio__encoder_8h.html#a4c4871532f8ac42a5a98f9f0aaac27a6">PPB_AUDIOENCODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_AudioEncoder;0.1&quot; /* dev */</td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file defines the <code>PPB_AudioEncoder</code> interface. </p>
+</div><hr /><h2>Define Documentation</h2>
+<a class="anchor" id="a4c4871532f8ac42a5a98f9f0aaac27a6"></a><!-- doxytag: member="ppb_audio_encoder.h::PPB_AUDIOENCODER_INTERFACE" ref="a4c4871532f8ac42a5a98f9f0aaac27a6" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">#define <a class="el" href="ppb__audio__encoder_8h.html#a4c4871532f8ac42a5a98f9f0aaac27a6">PPB_AUDIOENCODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_AudioEncoder;0.1&quot; /* dev */</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+</div>
+</div>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/ppb__audio__encoder_8h__incl.png b/native_client_sdk/doc_generated/pepper_beta/c/ppb__audio__encoder_8h__incl.png
new file mode 100644
index 0000000..0e98fe6
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/c/ppb__audio__encoder_8h__incl.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/ppb__file__mapping_8h.html b/native_client_sdk/doc_generated/pepper_beta/c/ppb__file__mapping_8h.html
deleted file mode 100644
index c5aba95..0000000
--- a/native_client_sdk/doc_generated/pepper_beta/c/ppb__file__mapping_8h.html
+++ /dev/null
@@ -1,58 +0,0 @@
-{{+bindTo:partials.standard_nacl_api}}
-<h1>ppb_file_mapping.h File Reference</h1>
-<div id="doxygen-ref">
-{{- dummy div to appease doxygen -}}
- <div>
-<!-- Generated by Doxygen 1.7.6.1 -->
-
-
-</div>
-<!--header-->
-<div class="contents">
-<div class="textblock"><div class="dynheader">
-Include dependency graph for ppb_file_mapping.h:</div>
-<div class="dyncontent">
-<div class="center"><img src="ppb__file__mapping_8h__incl.png" border="0" usemap="#ppb__file__mapping_8h" alt="" /></div>
-<map name="ppb__file__mapping_8h" id="ppb__file__mapping_8h">
-</map>
-</div>
-</div><h2>
-Data Structures</h2><table class="memberdecls">
-
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_mapping__0__1.html">PPB_FileMapping</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">PPB_FileMapping contains functions for mapping and unmapping files into and out of memory. <a href="struct_p_p_b___file_mapping__0__1.html#details">More...</a><br /></td></tr>
-</table><h2>
-Defines</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__file__mapping_8h.html#a657d5d4684814f79fd2c764fd8aa540e">PPB_FILEMAPPING_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_FileMapping;0.1&quot; /* dev */</td></tr>
-</table><h2>
-Enumerations</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a> { <a class="el" href="group___enums.html#gga07cb383dee51bc7e8e1f234068652668a88619572d7d081c4b657fd8087a164fb">PP_FILEMAPPROTECTION_READ</a> = 1u &lt;&lt; 0,
-<a class="el" href="group___enums.html#gga07cb383dee51bc7e8e1f234068652668aadebe6625bb49b575195f0d4d165c27e">PP_FILEMAPPROTECTION_WRITE</a> = 1u &lt;&lt; 1
- }</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a> { <a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939bada9233097e19d068b7d4ad0ac00140d03c">PP_FILEMAPFLAG_SHARED</a> = 1u &lt;&lt; 0,
-<a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939bada74f65f6fbedce77b36bda16beab65a03">PP_FILEMAPFLAG_PRIVATE</a> = 1u &lt;&lt; 1,
-<a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939badae37402f728fae4078d76a006d36bc26e">PP_FILEMAPFLAG_FIXED</a> = 1u &lt;&lt; 2
- }</td></tr>
-</table><h2>
-Variables</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a></td></tr>
-</table>
-<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>This file defines methods for mapping and unmapping files into and out of memory. </p>
-</div><hr /><h2>Define Documentation</h2>
-<a class="anchor" id="a657d5d4684814f79fd2c764fd8aa540e"></a><!-- doxytag: member="ppb_file_mapping.h::PPB_FILEMAPPING_INTERFACE" ref="a657d5d4684814f79fd2c764fd8aa540e" args="" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">#define <a class="el" href="ppb__file__mapping_8h.html#a657d5d4684814f79fd2c764fd8aa540e">PPB_FILEMAPPING_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_FileMapping;0.1&quot; /* dev */</td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-</div>
-</div>
-</div><!-- contents -->
-</div>
-{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/ppb__file__mapping_8h__incl.png b/native_client_sdk/doc_generated/pepper_beta/c/ppb__file__mapping_8h__incl.png
deleted file mode 100644
index 45abc54..0000000
--- a/native_client_sdk/doc_generated/pepper_beta/c/ppb__file__mapping_8h__incl.png
+++ /dev/null
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/ppb__udp__socket_8h.html b/native_client_sdk/doc_generated/pepper_beta/c/ppb__udp__socket_8h.html
index 130ae3d..b26a466 100644
--- a/native_client_sdk/doc_generated/pepper_beta/c/ppb__udp__socket_8h.html
+++ b/native_client_sdk/doc_generated/pepper_beta/c/ppb__udp__socket_8h.html
@@ -19,21 +19,26 @@ Include dependency graph for ppb_udp_socket.h:</div>
</div><h2>
Data Structures</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html">PPB_UDPSocket</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_UDPSocket</code> interface provides UDP socket operations. <a href="struct_p_p_b___u_d_p_socket__1__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_UDPSocket</code> interface provides UDP socket operations. <a href="struct_p_p_b___u_d_p_socket__1__2.html#details">More...</a><br /></td></tr>
</table><h2>
Defines</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__udp__socket_8h.html#a756bacac14becc5cbc2efedcd3ccd509">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_UDPSocket;1.1&quot;</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__udp__socket_8h.html#a673aeb3fceb5ed977b7b8683f674cbfd">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__udp__socket_8h.html#a756bacac14becc5cbc2efedcd3ccd509">PPB_UDPSOCKET_INTERFACE</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__udp__socket_8h.html#ad6bc6ae5b1d72251b6b81fdd7d8009f7">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_UDPSocket;1.2&quot;</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__udp__socket_8h.html#a673aeb3fceb5ed977b7b8683f674cbfd">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__udp__socket_8h.html#ad6bc6ae5b1d72251b6b81fdd7d8009f7">PPB_UDPSOCKET_INTERFACE</a></td></tr>
</table><h2>
Typedefs</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html">PPB_UDPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga03552c99ad9e2a408a988822f834f548">PPB_UDPSocket</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gac45ce5bed449ca63680c4769663fd2b1">PPB_UDPSocket</a></td></tr>
</table><h2>
Enumerations</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> { <a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a79568403b8927bf98bea0f2d38469984">PP_UDPSOCKET_OPTION_ADDRESS_REUSE</a> = 0,
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> { <br />
+&#160;&#160;<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a79568403b8927bf98bea0f2d38469984">PP_UDPSOCKET_OPTION_ADDRESS_REUSE</a> = 0,
<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2aeceda8fe978a52382b96939de7707c00">PP_UDPSOCKET_OPTION_BROADCAST</a> = 1,
<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a905f0adde2912a5db26883d45fb75d57">PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE</a> = 2,
-<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a1264eb1d6d16eb3a074ee3d21ebb3b64">PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE</a> = 3
+<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a1264eb1d6d16eb3a074ee3d21ebb3b64">PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a0cde43fa32bc72658658f9a20c07194c">PP_UDPSOCKET_OPTION_MULTICAST_LOOP</a> = 4,
+<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a29bfa5fc814589e4a5003a5d1c377b82">PP_UDPSOCKET_OPTION_MULTICAST_TTL</a> = 5
+<br />
}</td></tr>
</table><h2>
Variables</h2><table class="memberdecls">
@@ -47,19 +52,19 @@ Variables</h2><table class="memberdecls">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">#define <a class="el" href="ppb__udp__socket_8h.html#a673aeb3fceb5ed977b7b8683f674cbfd">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__udp__socket_8h.html#a756bacac14becc5cbc2efedcd3ccd509">PPB_UDPSOCKET_INTERFACE</a></td>
+<td class="memname">#define <a class="el" href="ppb__udp__socket_8h.html#a673aeb3fceb5ed977b7b8683f674cbfd">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__udp__socket_8h.html#ad6bc6ae5b1d72251b6b81fdd7d8009f7">PPB_UDPSOCKET_INTERFACE</a></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="a756bacac14becc5cbc2efedcd3ccd509"></a><!-- doxytag: member="ppb_udp_socket.h::PPB_UDPSOCKET_INTERFACE" ref="a756bacac14becc5cbc2efedcd3ccd509" args="" -->
+<a class="anchor" id="ad6bc6ae5b1d72251b6b81fdd7d8009f7"></a><!-- doxytag: member="ppb_udp_socket.h::PPB_UDPSOCKET_INTERFACE" ref="ad6bc6ae5b1d72251b6b81fdd7d8009f7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">#define <a class="el" href="ppb__udp__socket_8h.html#a756bacac14becc5cbc2efedcd3ccd509">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_UDPSocket;1.1&quot;</td>
+<td class="memname">#define <a class="el" href="ppb__udp__socket_8h.html#ad6bc6ae5b1d72251b6b81fdd7d8009f7">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_UDPSocket;1.2&quot;</td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/ppb__video__decoder_8h.html b/native_client_sdk/doc_generated/pepper_beta/c/ppb__video__decoder_8h.html
index 212d41a..51449aa 100644
--- a/native_client_sdk/doc_generated/pepper_beta/c/ppb__video__decoder_8h.html
+++ b/native_client_sdk/doc_generated/pepper_beta/c/ppb__video__decoder_8h.html
@@ -19,15 +19,15 @@ Include dependency graph for ppb_video_decoder.h:</div>
</div><h2>
Data Structures</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video decoder interface. <a href="struct_p_p_b___video_decoder__1__0.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video decoder interface. <a href="struct_p_p_b___video_decoder__1__1.html#details">More...</a><br /></td></tr>
</table><h2>
Defines</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__decoder_8h.html#af814c8f0028bce254da6fb5c3e61a4d8">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoDecoder;1.0&quot;</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__decoder_8h.html#ae369609aebfa745c1836ef92e9b76aa2">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__decoder_8h.html#af814c8f0028bce254da6fb5c3e61a4d8">PPB_VIDEODECODER_INTERFACE</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__decoder_8h.html#ac9994bddaa7ccc8f52799a00031d5441">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoDecoder;1.1&quot;</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__decoder_8h.html#ae369609aebfa745c1836ef92e9b76aa2">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__decoder_8h.html#ac9994bddaa7ccc8f52799a00031d5441">PPB_VIDEODECODER_INTERFACE</a></td></tr>
</table><h2>
Typedefs</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga2b4555d8bd239fa28b60c42df75f7ce5">PPB_VideoDecoder</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga3bfb47f476c3153e5638265c17702ed9">PPB_VideoDecoder</a></td></tr>
</table>
<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This file defines the <code>PPB_VideoDecoder</code> interface. </p>
@@ -37,19 +37,19 @@ Typedefs</h2><table class="memberdecls">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">#define <a class="el" href="ppb__video__decoder_8h.html#ae369609aebfa745c1836ef92e9b76aa2">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__decoder_8h.html#af814c8f0028bce254da6fb5c3e61a4d8">PPB_VIDEODECODER_INTERFACE</a></td>
+<td class="memname">#define <a class="el" href="ppb__video__decoder_8h.html#ae369609aebfa745c1836ef92e9b76aa2">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__decoder_8h.html#ac9994bddaa7ccc8f52799a00031d5441">PPB_VIDEODECODER_INTERFACE</a></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="af814c8f0028bce254da6fb5c3e61a4d8"></a><!-- doxytag: member="ppb_video_decoder.h::PPB_VIDEODECODER_INTERFACE" ref="af814c8f0028bce254da6fb5c3e61a4d8" args="" -->
+<a class="anchor" id="ac9994bddaa7ccc8f52799a00031d5441"></a><!-- doxytag: member="ppb_video_decoder.h::PPB_VIDEODECODER_INTERFACE" ref="ac9994bddaa7ccc8f52799a00031d5441" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">#define <a class="el" href="ppb__video__decoder_8h.html#af814c8f0028bce254da6fb5c3e61a4d8">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoDecoder;1.0&quot;</td>
+<td class="memname">#define <a class="el" href="ppb__video__decoder_8h.html#ac9994bddaa7ccc8f52799a00031d5441">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoDecoder;1.1&quot;</td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/ppb__video__encoder_8h.html b/native_client_sdk/doc_generated/pepper_beta/c/ppb__video__encoder_8h.html
new file mode 100644
index 0000000..7c900c3
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/c/ppb__video__encoder_8h.html
@@ -0,0 +1,61 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>ppb_video_encoder.h File Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<div class="textblock"><div class="dynheader">
+Include dependency graph for ppb_video_encoder.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="ppb__video__encoder_8h__incl.png" border="0" usemap="#ppb__video__encoder_8h" alt="" /></div>
+<map name="ppb__video__encoder_8h" id="ppb__video__encoder_8h">
+</map>
+</div>
+</div><h2>
+Data Structures</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video encoder interface. <a href="struct_p_p_b___video_encoder__0__2.html#details">More...</a><br /></td></tr>
+</table><h2>
+Defines</h2><table class="memberdecls">
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__encoder_8h.html#af8c3e2794a4f7f9cbd6c253cbacfe177">PPB_VIDEOENCODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoEncoder;0.2&quot;</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__encoder_8h.html#abdb2ab6ab0553f6b0086aee71996ea3d">PPB_VIDEOENCODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__encoder_8h.html#af8c3e2794a4f7f9cbd6c253cbacfe177">PPB_VIDEOENCODER_INTERFACE</a></td></tr>
+</table><h2>
+Typedefs</h2><table class="memberdecls">
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga1a72f170f2aaa94cd41aa16949e27973">PPB_VideoEncoder</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file defines the <code>PPB_VideoEncoder</code> interface. </p>
+</div><hr /><h2>Define Documentation</h2>
+<a class="anchor" id="abdb2ab6ab0553f6b0086aee71996ea3d"></a><!-- doxytag: member="ppb_video_encoder.h::PPB_VIDEOENCODER_INTERFACE" ref="abdb2ab6ab0553f6b0086aee71996ea3d" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">#define <a class="el" href="ppb__video__encoder_8h.html#abdb2ab6ab0553f6b0086aee71996ea3d">PPB_VIDEOENCODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__encoder_8h.html#af8c3e2794a4f7f9cbd6c253cbacfe177">PPB_VIDEOENCODER_INTERFACE</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+</div>
+</div>
+<a class="anchor" id="af8c3e2794a4f7f9cbd6c253cbacfe177"></a><!-- doxytag: member="ppb_video_encoder.h::PPB_VIDEOENCODER_INTERFACE" ref="af8c3e2794a4f7f9cbd6c253cbacfe177" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">#define <a class="el" href="ppb__video__encoder_8h.html#af8c3e2794a4f7f9cbd6c253cbacfe177">PPB_VIDEOENCODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoEncoder;0.2&quot;</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+</div>
+</div>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/ppb__video__encoder_8h__incl.png b/native_client_sdk/doc_generated/pepper_beta/c/ppb__video__encoder_8h__incl.png
new file mode 100644
index 0000000..6ecf720
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/c/ppb__video__encoder_8h__incl.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___audio_bitstream_buffer.html b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___audio_bitstream_buffer.html
new file mode 100644
index 0000000..8cdf217
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___audio_bitstream_buffer.html
@@ -0,0 +1,52 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PP_AudioBitstreamBuffer Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PP_AudioBitstreamBuffer" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_bitstream_buffer.html#ab76b8c0357d850c84ff417aa1282f3da">size</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_bitstream_buffer.html#a888a0bc135ab6e5e434927309eb5fe9a">buffer</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Struct describing an audio bitstream buffer. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="a888a0bc135ab6e5e434927309eb5fe9a"></a><!-- doxytag: member="PP_AudioBitstreamBuffer::buffer" ref="a888a0bc135ab6e5e434927309eb5fe9a" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void* <a class="el" href="struct_p_p___audio_bitstream_buffer.html#a888a0bc135ab6e5e434927309eb5fe9a">PP_AudioBitstreamBuffer::buffer</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The base address of the bitstream data. </p>
+</div>
+</div>
+<a class="anchor" id="ab76b8c0357d850c84ff417aa1282f3da"></a><!-- doxytag: member="PP_AudioBitstreamBuffer::size" ref="ab76b8c0357d850c84ff417aa1282f3da" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___audio_bitstream_buffer.html#ab76b8c0357d850c84ff417aa1282f3da">PP_AudioBitstreamBuffer::size</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The size, in bytes, of the bitstream data. </p>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="pp__codecs_8h.html">pp_codecs.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___audio_profile_description.html b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___audio_profile_description.html
new file mode 100644
index 0000000..ba55b78
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___audio_profile_description.html
@@ -0,0 +1,95 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PP_AudioProfileDescription Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PP_AudioProfileDescription" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html#a4253ebb9ec2065525a4b9c948111d896">profile</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html#a4806e98fc63b158b26b293c4de803667">max_channels</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html#a1a340d0676442d0dfad60219c6dd3886">sample_size</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html#a266fce27c0c60cd5648ec331da9f04cf">sample_rate</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html#a3f77a750a3d903e565deae13d8d814b4">hardware_accelerated</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Supported audio profile information. </p>
+<p>See the PPB_AudioEncoder function GetSupportedProfiles() for more details. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="a3f77a750a3d903e565deae13d8d814b4"></a><!-- doxytag: member="PP_AudioProfileDescription::hardware_accelerated" ref="a3f77a750a3d903e565deae13d8d814b4" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a> <a class="el" href="struct_p_p___audio_profile_description.html#a3f77a750a3d903e565deae13d8d814b4">PP_AudioProfileDescription::hardware_accelerated</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Whether the profile is hardware accelerated. </p>
+</div>
+</div>
+<a class="anchor" id="a4806e98fc63b158b26b293c4de803667"></a><!-- doxytag: member="PP_AudioProfileDescription::max_channels" ref="a4806e98fc63b158b26b293c4de803667" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___audio_profile_description.html#a4806e98fc63b158b26b293c4de803667">PP_AudioProfileDescription::max_channels</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Maximum number of channels that can be encoded. </p>
+</div>
+</div>
+<a class="anchor" id="a4253ebb9ec2065525a4b9c948111d896"></a><!-- doxytag: member="PP_AudioProfileDescription::profile" ref="a4253ebb9ec2065525a4b9c948111d896" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a> <a class="el" href="struct_p_p___audio_profile_description.html#a4253ebb9ec2065525a4b9c948111d896">PP_AudioProfileDescription::profile</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The codec profile. </p>
+</div>
+</div>
+<a class="anchor" id="a266fce27c0c60cd5648ec331da9f04cf"></a><!-- doxytag: member="PP_AudioProfileDescription::sample_rate" ref="a266fce27c0c60cd5648ec331da9f04cf" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___audio_profile_description.html#a266fce27c0c60cd5648ec331da9f04cf">PP_AudioProfileDescription::sample_rate</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Sampling rate that can be encoded. </p>
+</div>
+</div>
+<a class="anchor" id="a1a340d0676442d0dfad60219c6dd3886"></a><!-- doxytag: member="PP_AudioProfileDescription::sample_size" ref="a1a340d0676442d0dfad60219c6dd3886" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___audio_profile_description.html#a1a340d0676442d0dfad60219c6dd3886">PP_AudioProfileDescription::sample_size</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Sample size. </p>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="pp__codecs_8h.html">pp_codecs.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___bitstream_buffer.html b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___bitstream_buffer.html
new file mode 100644
index 0000000..a97c869
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___bitstream_buffer.html
@@ -0,0 +1,66 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PP_BitstreamBuffer Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PP_BitstreamBuffer" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___bitstream_buffer.html#aaa6f173b3478e960f26d87ae417f5d09">size</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___bitstream_buffer.html#a864bd5618ebcdb6bb743e5699c0dff39">buffer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___bitstream_buffer.html#a4ae08468a70d30e5d8124d713f8e8c47">key_frame</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Struct describing a bitstream buffer. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="a864bd5618ebcdb6bb743e5699c0dff39"></a><!-- doxytag: member="PP_BitstreamBuffer::buffer" ref="a864bd5618ebcdb6bb743e5699c0dff39" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void* <a class="el" href="struct_p_p___bitstream_buffer.html#a864bd5618ebcdb6bb743e5699c0dff39">PP_BitstreamBuffer::buffer</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The base address of the bitstream data. </p>
+</div>
+</div>
+<a class="anchor" id="a4ae08468a70d30e5d8124d713f8e8c47"></a><!-- doxytag: member="PP_BitstreamBuffer::key_frame" ref="a4ae08468a70d30e5d8124d713f8e8c47" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a> <a class="el" href="struct_p_p___bitstream_buffer.html#a4ae08468a70d30e5d8124d713f8e8c47">PP_BitstreamBuffer::key_frame</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Whether the buffer represents a key frame. </p>
+</div>
+</div>
+<a class="anchor" id="aaa6f173b3478e960f26d87ae417f5d09"></a><!-- doxytag: member="PP_BitstreamBuffer::size" ref="aaa6f173b3478e960f26d87ae417f5d09" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___bitstream_buffer.html#aaa6f173b3478e960f26d87ae417f5d09">PP_BitstreamBuffer::size</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The size, in bytes, of the bitstream data. </p>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="pp__codecs_8h.html">pp_codecs.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___video_profile_description.html b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___video_profile_description.html
new file mode 100644
index 0000000..54ea6d9
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___video_profile_description.html
@@ -0,0 +1,95 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PP_VideoProfileDescription Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PP_VideoProfileDescription" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html#aa4cf8bf248f49de606d5bda97c5b4ae1">profile</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="struct_p_p___size.html">PP_Size</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html#aa53694c107dc67256986b95e62ca13a2">max_resolution</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html#a21f8d2e8f5b995afb27edd43667f3eed">max_framerate_numerator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html#aa4b5113713acbb32d92145ac9f3a925f">max_framerate_denominator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html#a10da7a8d059171fcf5bd907a6d9c0e60">hardware_accelerated</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Supported video profile information. </p>
+<p>See the PPB_VideoEncoder function GetSupportedProfiles() for more details. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="a10da7a8d059171fcf5bd907a6d9c0e60"></a><!-- doxytag: member="PP_VideoProfileDescription::hardware_accelerated" ref="a10da7a8d059171fcf5bd907a6d9c0e60" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a> <a class="el" href="struct_p_p___video_profile_description.html#a10da7a8d059171fcf5bd907a6d9c0e60">PP_VideoProfileDescription::hardware_accelerated</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Whether the profile is hardware accelerated. </p>
+</div>
+</div>
+<a class="anchor" id="aa4b5113713acbb32d92145ac9f3a925f"></a><!-- doxytag: member="PP_VideoProfileDescription::max_framerate_denominator" ref="aa4b5113713acbb32d92145ac9f3a925f" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___video_profile_description.html#aa4b5113713acbb32d92145ac9f3a925f">PP_VideoProfileDescription::max_framerate_denominator</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The denominator of the maximum frame rate. </p>
+</div>
+</div>
+<a class="anchor" id="a21f8d2e8f5b995afb27edd43667f3eed"></a><!-- doxytag: member="PP_VideoProfileDescription::max_framerate_numerator" ref="a21f8d2e8f5b995afb27edd43667f3eed" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___video_profile_description.html#a21f8d2e8f5b995afb27edd43667f3eed">PP_VideoProfileDescription::max_framerate_numerator</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The numerator of the maximum frame rate. </p>
+</div>
+</div>
+<a class="anchor" id="aa53694c107dc67256986b95e62ca13a2"></a><!-- doxytag: member="PP_VideoProfileDescription::max_resolution" ref="aa53694c107dc67256986b95e62ca13a2" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">struct <a class="el" href="struct_p_p___size.html">PP_Size</a> <a class="el" href="struct_p_p___video_profile_description.html#aa53694c107dc67256986b95e62ca13a2">PP_VideoProfileDescription::max_resolution</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Dimensions of the maximum resolution of video frames, in pixels. </p>
+</div>
+</div>
+<a class="anchor" id="aa4cf8bf248f49de606d5bda97c5b4ae1"></a><!-- doxytag: member="PP_VideoProfileDescription::profile" ref="aa4cf8bf248f49de606d5bda97c5b4ae1" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> <a class="el" href="struct_p_p___video_profile_description.html#aa4cf8bf248f49de606d5bda97c5b4ae1">PP_VideoProfileDescription::profile</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The codec profile. </p>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="pp__codecs_8h.html">pp_codecs.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___video_profile_description__0__1.html b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___video_profile_description__0__1.html
new file mode 100644
index 0000000..a6d7c86
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p___video_profile_description__0__1.html
@@ -0,0 +1,95 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PP_VideoProfileDescription Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PP_VideoProfileDescription" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html#a97e76f7bc9c271fdd8b8964670711f65">profile</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="struct_p_p___size.html">PP_Size</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html#ab3ffdab3497ff29df3d31e44c560f2f4">max_resolution</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html#a01c7a68c5b96c3d2cc048e35d82330dd">max_framerate_numerator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html#a5339510fd2f94fde1e83f81b9bd47aa8">max_framerate_denominator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html#a4d558d8ca3c8903544cb1f12c07d2a42">acceleration</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Supported video profile information. </p>
+<p>See the PPB_VideoEncoder function GetSupportedProfiles() for more details. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="a4d558d8ca3c8903544cb1f12c07d2a42"></a><!-- doxytag: member="PP_VideoProfileDescription::acceleration" ref="a4d558d8ca3c8903544cb1f12c07d2a42" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> <a class="el" href="struct_p_p___video_profile_description__0__1.html#a4d558d8ca3c8903544cb1f12c07d2a42">PP_VideoProfileDescription::acceleration</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>A value indicating if the profile is available in hardware, software, or both. </p>
+</div>
+</div>
+<a class="anchor" id="a5339510fd2f94fde1e83f81b9bd47aa8"></a><!-- doxytag: member="PP_VideoProfileDescription::max_framerate_denominator" ref="a5339510fd2f94fde1e83f81b9bd47aa8" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___video_profile_description__0__1.html#a5339510fd2f94fde1e83f81b9bd47aa8">PP_VideoProfileDescription::max_framerate_denominator</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The denominator of the maximum frame rate. </p>
+</div>
+</div>
+<a class="anchor" id="a01c7a68c5b96c3d2cc048e35d82330dd"></a><!-- doxytag: member="PP_VideoProfileDescription::max_framerate_numerator" ref="a01c7a68c5b96c3d2cc048e35d82330dd" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___video_profile_description__0__1.html#a01c7a68c5b96c3d2cc048e35d82330dd">PP_VideoProfileDescription::max_framerate_numerator</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The numerator of the maximum frame rate. </p>
+</div>
+</div>
+<a class="anchor" id="ab3ffdab3497ff29df3d31e44c560f2f4"></a><!-- doxytag: member="PP_VideoProfileDescription::max_resolution" ref="ab3ffdab3497ff29df3d31e44c560f2f4" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">struct <a class="el" href="struct_p_p___size.html">PP_Size</a> <a class="el" href="struct_p_p___video_profile_description__0__1.html#ab3ffdab3497ff29df3d31e44c560f2f4">PP_VideoProfileDescription::max_resolution</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Dimensions of the maximum resolution of video frames, in pixels. </p>
+</div>
+</div>
+<a class="anchor" id="a97e76f7bc9c271fdd8b8964670711f65"></a><!-- doxytag: member="PP_VideoProfileDescription::profile" ref="a97e76f7bc9c271fdd8b8964670711f65" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> <a class="el" href="struct_p_p___video_profile_description__0__1.html#a97e76f7bc9c271fdd8b8964670711f65">PP_VideoProfileDescription::profile</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The codec profile. </p>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="pp__codecs_8h.html">pp_codecs.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___audio_encoder__0__1.html b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___audio_encoder__0__1.html
new file mode 100644
index 0000000..1b01f3e
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___audio_encoder__0__1.html
@@ -0,0 +1,286 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PPB_AudioEncoder Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PPB_AudioEncoder" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a116d0908bcdd955e33e00cbd9ae04110">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a63e54ec7e63e940c59c1b365669a5002">IsAudioEncoder</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a2ad5e2334abb35ede4c413e50e92ec61">GetSupportedProfiles</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, struct <a class="el" href="struct_p_p___array_output.html">PP_ArrayOutput</a> output, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70">Initialize</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, uint32_t channels, <a class="el" href="group___enums.html#ga78757d4be14d14d17708071a9466afbd">PP_AudioBuffer_SampleRate</a> input_sample_rate, <a class="el" href="group___enums.html#ga2ba5c3a8eed23fa49a73b218b1bce044">PP_AudioBuffer_SampleSize</a> input_sample_size, <a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a> output_profile, uint32_t initial_bitrate, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a49a627f22227a877391f2f569a4490ff">GetNumberOfSamples</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac154730ff2248134c73d5155c4a7095f">GetBuffer</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *audio_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a61e9304df6da6bbb97236805d702d0a3">Encode</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a7386d14006ed634530d0ad2ecdb61529">GetBitstreamBuffer</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, struct <a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a> *bitstream_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a8046882d9584418d02e017130aa55d80">RecycleBitstreamBuffer</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, const struct <a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a> *bitstream_buffer)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac5a8cbc3578816a15f3418882b6b720c">RequestBitrateChange</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, uint32_t bitrate)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ad472829d0944505ce8cfb2a2b6308165">Close</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder)</td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Audio encoder interface. </p>
+<p>Typical usage:</p>
+<ul>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a116d0908bcdd955e33e00cbd9ae04110" title="Creates a new audio encoder resource.">Create()</a> to create a new audio encoder resource.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a2ad5e2334abb35ede4c413e50e92ec61" title="Gets an array of supported audio encoder profiles.">GetSupportedProfiles()</a> to determine which codecs and profiles are available.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> to initialize the encoder for a supported profile.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac154730ff2248134c73d5155c4a7095f" title="Gets a blank audio buffer (with metadata given by the Initialize() call) which can be filled with aud...">GetBuffer()</a> to get an empty buffer and fill it in, or get an audio buffer from another resource, e.g. <code>PPB_MediaStreamAudioTrack</code>.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a61e9304df6da6bbb97236805d702d0a3" title="Encodes an audio buffer.">Encode()</a> to push the audio buffer to the encoder. If an external buffer is pushed, wait for completion to recycle the buffer.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a7386d14006ed634530d0ad2ecdb61529" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> continuously (waiting for each previous call to complete) to pull encoded buffers from the encoder.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a8046882d9584418d02e017130aa55d80" title="Recycles a bitstream buffer back to the encoder.">RecycleBitstreamBuffer()</a> after consuming the data in the bitstream buffer.</li>
+<li>To destroy the encoder, the plugin should release all of its references to it. Any pending callbacks will abort before the encoder is destroyed.</li>
+</ul>
+<p>Available audio codecs vary by platform. All: opus. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="ad472829d0944505ce8cfb2a2b6308165"></a><!-- doxytag: member="PPB_AudioEncoder::Close" ref="ad472829d0944505ce8cfb2a2b6308165" args=")(PP_Resource audio_encoder)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ad472829d0944505ce8cfb2a2b6308165">PPB_AudioEncoder::Close</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Closes the audio encoder, and cancels any pending encodes. </p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> . It is not valid to call any encoder functions after a call to this method. <b>Note:</b> Destroying the audio encoder closes it implicitly, so you are not required to call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ad472829d0944505ce8cfb2a2b6308165" title="Closes the audio encoder, and cancels any pending encodes.">Close()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="a116d0908bcdd955e33e00cbd9ae04110"></a><!-- doxytag: member="PPB_AudioEncoder::Create" ref="a116d0908bcdd955e33e00cbd9ae04110" args=")(PP_Instance instance)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a116d0908bcdd955e33e00cbd9ae04110">PPB_AudioEncoder::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Creates a new audio encoder resource. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code> identifying the instance with the audio encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> corresponding to an audio encoder if successful or 0 otherwise. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a61e9304df6da6bbb97236805d702d0a3"></a><!-- doxytag: member="PPB_AudioEncoder::Encode" ref="a61e9304df6da6bbb97236805d702d0a3" args=")(PP_Resource audio_encoder, PP_Resource audio_buffer, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a61e9304df6da6bbb97236805d702d0a3">PPB_AudioEncoder::Encode</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Encodes an audio buffer. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_buffer</td><td>The <code>PPB_AudioBuffer</code> to be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion. Plugins that pass <code>PPB_AudioBuffer</code> resources owned by other resources should wait for completion before reusing them.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a7386d14006ed634530d0ad2ecdb61529"></a><!-- doxytag: member="PPB_AudioEncoder::GetBitstreamBuffer" ref="a7386d14006ed634530d0ad2ecdb61529" args=")(PP_Resource audio_encoder, struct PP_AudioBitstreamBuffer *bitstream_buffer, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a7386d14006ed634530d0ad2ecdb61529">PPB_AudioEncoder::GetBitstreamBuffer</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, struct <a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a> *bitstream_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the next encoded bitstream buffer from the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[out]</td><td class="paramname">bitstream_buffer</td><td>A <code><a class="el" href="struct_p_p___bitstream_buffer.html" title="Struct describing a bitstream buffer.">PP_BitstreamBuffer</a></code> containing encoded audio data. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion. The plugin can call GetBitstreamBuffer from the callback in order to continuously "pull" bitstream buffers from the encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> has not successfully completed. Returns PP_ERROR_INPROGRESS if a prior call to <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a7386d14006ed634530d0ad2ecdb61529" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> has not completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="ac154730ff2248134c73d5155c4a7095f"></a><!-- doxytag: member="PPB_AudioEncoder::GetBuffer" ref="ac154730ff2248134c73d5155c4a7095f" args=")(PP_Resource audio_encoder, PP_Resource *audio_buffer, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac154730ff2248134c73d5155c4a7095f">PPB_AudioEncoder::GetBuffer</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *audio_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets a blank audio buffer (with metadata given by the <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> call) which can be filled with audio data and passed to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[out]</td><td class="paramname">audio_buffer</td><td>A blank <code>PPB_AudioBuffer</code> resource. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a49a627f22227a877391f2f569a4490ff"></a><!-- doxytag: member="PPB_AudioEncoder::GetNumberOfSamples" ref="a49a627f22227a877391f2f569a4490ff" args=")(PP_Resource audio_encoder)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a49a627f22227a877391f2f569a4490ff">PPB_AudioEncoder::GetNumberOfSamples</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the number of audio samples per channel that audio buffers must contain in order to be processed by the encoder. </p>
+<p>This will be the number of samples per channels contained in buffers returned by <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac154730ff2248134c73d5155c4a7095f" title="Gets a blank audio buffer (with metadata given by the Initialize() call) which can be filled with aud...">GetBuffer()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing the number of samples required, or an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a2ad5e2334abb35ede4c413e50e92ec61"></a><!-- doxytag: member="PPB_AudioEncoder::GetSupportedProfiles" ref="a2ad5e2334abb35ede4c413e50e92ec61" args=")(PP_Resource audio_encoder, struct PP_ArrayOutput output, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a2ad5e2334abb35ede4c413e50e92ec61">PPB_AudioEncoder::GetSupportedProfiles</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, struct <a class="el" href="struct_p_p___array_output.html">PP_ArrayOutput</a> output, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets an array of supported audio encoder profiles. </p>
+<p>These can be used to choose a profile before calling <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output</td><td>A <code><a class="el" href="struct_p_p___array_output.html" title="A structure that defines a way for the browser to return arrays of data to the plugin.">PP_ArrayOutput</a></code> to receive the supported <code><a class="el" href="struct_p_p___audio_profile_description.html" title="Supported audio profile information.">PP_AudioProfileDescription</a></code> structs. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>If &gt;= 0, the number of supported profiles returned, otherwise an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a676b09b0a98069daea08678a8c9e5d70"></a><!-- doxytag: member="PPB_AudioEncoder::Initialize" ref="a676b09b0a98069daea08678a8c9e5d70" args=")(PP_Resource audio_encoder, uint32_t channels, PP_AudioBuffer_SampleRate input_sample_rate, PP_AudioBuffer_SampleSize input_sample_size, PP_AudioProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70">PPB_AudioEncoder::Initialize</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, uint32_t channels, <a class="el" href="group___enums.html#ga78757d4be14d14d17708071a9466afbd">PP_AudioBuffer_SampleRate</a> input_sample_rate, <a class="el" href="group___enums.html#ga2ba5c3a8eed23fa49a73b218b1bce044">PP_AudioBuffer_SampleSize</a> input_sample_size, <a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a> output_profile, uint32_t initial_bitrate, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Initializes an audio encoder resource. </p>
+<p>The plugin should call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> successfully before calling any of the functions below.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">channels</td><td>The number of audio channels to encode. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_sampling_rate</td><td>The sampling rate of the input audio buffer. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_sample_size</td><td>The sample size of the input audio buffer. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output_profile</td><td>A <code>PP_AudioProfile</code> specifying the codec profile of the encoded output stream. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">initial_bitrate</td><td>The initial bitrate for the encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_NOTSUPPORTED if audio encoding is not available, or the requested codec profile is not supported. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a63e54ec7e63e940c59c1b365669a5002"></a><!-- doxytag: member="PPB_AudioEncoder::IsAudioEncoder" ref="a63e54ec7e63e940c59c1b365669a5002" args=")(PP_Resource resource)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a63e54ec7e63e940c59c1b365669a5002">PPB_AudioEncoder::IsAudioEncoder</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Determines if the given resource is an audio encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">resource</td><td>A <code>PP_Resource</code> identifying a resource.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd><code>PP_TRUE</code> if the resource is a <code>PPB_AudioEncoder</code>, <code>PP_FALSE</code> if the resource is invalid or some other type. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a8046882d9584418d02e017130aa55d80"></a><!-- doxytag: member="PPB_AudioEncoder::RecycleBitstreamBuffer" ref="a8046882d9584418d02e017130aa55d80" args=")(PP_Resource audio_encoder, const struct PP_AudioBitstreamBuffer *bitstream_buffer)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a8046882d9584418d02e017130aa55d80">PPB_AudioEncoder::RecycleBitstreamBuffer</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, const struct <a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a> *bitstream_buffer)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Recycles a bitstream buffer back to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">bitstream_buffer</td><td>A <code><a class="el" href="struct_p_p___bitstream_buffer.html" title="Struct describing a bitstream buffer.">PP_BitstreamBuffer</a></code> that is no longer needed by the plugin. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ac5a8cbc3578816a15f3418882b6b720c"></a><!-- doxytag: member="PPB_AudioEncoder::RequestBitrateChange" ref="ac5a8cbc3578816a15f3418882b6b720c" args=")(PP_Resource audio_encoder, uint32_t bitrate)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac5a8cbc3578816a15f3418882b6b720c">PPB_AudioEncoder::RequestBitrateChange</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, uint32_t bitrate)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Requests a change to the encoding bitrate. </p>
+<p>This is only a request, fulfilled on a best-effort basis.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">bitrate</td><td>The requested new bitrate, in bits per second. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="ppb__audio__encoder_8h.html">ppb_audio_encoder.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___compositor__0__1.html b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___compositor__0__1.html
index 85fcb76..eae2261 100644
--- a/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___compositor__0__1.html
+++ b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___compositor__0__1.html
@@ -50,7 +50,7 @@ Data Fields</h2><table class="memberdecls">
<p>Creates a new <code>PPB_CompositorLayer</code> and adds it to the end of the layer stack. </p>
<p>A <code>PP_Resource</code> containing the layer is returned. It is uninitialized, <code>SetColor()</code>, <code>SetTexture</code> or <code>SetImage</code> should be used to initialize it. The layer will appear above other pre-existing layers. If <code>ResetLayers</code> is called or the <code>PPB_Compositor</code> is released, the returned layer will be invalidated, and any further calls on the layer will return <code>PP_ERROR_BADRESOURCE</code>.</p>
<p>param[in] compositor A <code>PP_Resource</code> corresponding to a compositor layer resource.</p>
-<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> containing the compositor layer resource if sucessful or 0 otherwise. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> containing the compositor layer resource if successful or 0 otherwise. </dd></dl>
</div>
</div>
<a class="anchor" id="a5082b0dce4a58032439bc3dd4ff741fd"></a><!-- doxytag: member="PPB_Compositor::CommitLayers" ref="a5082b0dce4a58032439bc3dd4ff741fd" args=")(PP_Resource compositor, struct PP_CompletionCallback cc)" -->
@@ -91,7 +91,7 @@ Data Fields</h2><table class="memberdecls">
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> containing the compositor resource if sucessful or 0 otherwise. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> containing the compositor resource if successful or 0 otherwise. </dd></dl>
</div>
</div>
<a class="anchor" id="a22fb77daabd3894db97ab1111d111a92"></a><!-- doxytag: member="PPB_Compositor::IsCompositor" ref="a22fb77daabd3894db97ab1111d111a92" args=")(PP_Resource resource)" -->
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___file_mapping__0__1.html b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___file_mapping__0__1.html
deleted file mode 100644
index 6443704..0000000
--- a/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___file_mapping__0__1.html
+++ /dev/null
@@ -1,98 +0,0 @@
-{{+bindTo:partials.standard_nacl_api}}
-<h1>PPB_FileMapping Struct Reference</h1>
-<div id="doxygen-ref">
-{{- dummy div to appease doxygen -}}
- <div>
-<!-- Generated by Doxygen 1.7.6.1 -->
-
-
-</div>
-<!--header-->
-<div class="contents">
-<!-- doxytag: class="PPB_FileMapping" --><h2>
-Data Fields</h2><table class="memberdecls">
-
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb">Map</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> file_io, int64_t length, uint32_t map_protection, uint32_t map_flags, int64_t offset, void **address, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_mapping__0__1.html#a4fa72d6e6660e16ce1ff08453eff172d">Unmap</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance, const void *address, int64_t length, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int64_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_mapping__0__1.html#ae479690b258985b51dda4d438b8156f0">GetMapPageSize</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
-</table>
-<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>PPB_FileMapping contains functions for mapping and unmapping files into and out of memory. </p>
-</div><hr /><h2>Field Documentation</h2>
-<a class="anchor" id="ae479690b258985b51dda4d438b8156f0"></a><!-- doxytag: member="PPB_FileMapping::GetMapPageSize" ref="ae479690b258985b51dda4d438b8156f0" args=")(PP_Instance instance)" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">int64_t(* <a class="el" href="struct_p_p_b___file_mapping__0__1.html#ae479690b258985b51dda4d438b8156f0">PPB_FileMapping::GetMapPageSize</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-<p><a class="el" href="struct_p_p_b___file_mapping__0__1.html#ae479690b258985b51dda4d438b8156f0" title="GetMapPageSize() retrieves the size of pages that Map() uses.">GetMapPageSize()</a> retrieves the size of pages that <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a> uses. </p>
-<dl class="params"><dt><b>Parameters:</b></dt><dd>
-<table class="params">
-<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code> identifying the instance.</td></tr>
-</table>
-</dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The size of pages that <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a> uses. Returns 0 on failure. </dd></dl>
-</div>
-</div>
-<a class="anchor" id="a425d8d5b11de51e8edf539ee13bac1fb"></a><!-- doxytag: member="PPB_FileMapping::Map" ref="a425d8d5b11de51e8edf539ee13bac1fb" args=")(PP_Instance instance, PP_Resource file_io, int64_t length, uint32_t map_protection, uint32_t map_flags, int64_t offset, void **address, struct PP_CompletionCallback callback)" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb">PPB_FileMapping::Map</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> file_io, int64_t length, uint32_t map_protection, uint32_t map_flags, int64_t offset, void **address, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-<p><a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a> maps the contents from an offset of the file into memory. </p>
-<dl class="params"><dt><b>Parameters:</b></dt><dd>
-<table class="params">
-<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code> identifying one instance of a module. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">file_io</td><td>A <code>PPB_FileIO</code> <code>PP_Resource</code> corresponding to the file that should be mapped in to memory. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>The number of bytes to map. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">map_protection</td><td>A bitfield containing values from <code>PP_FileMapProtection</code>, indicating what memory operations should be permitted on the mapped region. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">map_flags</td><td>A bitfield containing values from <code>PP_FileMapFlags</code>, providing options for the behavior of Map. If the region is to be writeable, then exactly one of <code>PP_FILEMAPFLAG_SHARED</code> or <code>PP_FILEMAPFLAG_PRIVATE</code> must be set. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>The offset into the file. Must be a multiple of the Map page size as returned by <a class="el" href="struct_p_p_b___file_mapping__0__1.html#ae479690b258985b51dda4d438b8156f0" title="GetMapPageSize() retrieves the size of pages that Map() uses.">GetMapPageSize()</a>. </td></tr>
-<tr><td class="paramdir"></td><td class="paramname">inout]</td><td>address The value of <code>*address</code>, if non-NULL, will be used as a hint to determine where in memory the file should be mapped. If the value is NULL, the host operating system will choose <code>address</code>. Upon <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a> completing, <code>*address</code> will contain the actual memory location at which the file was mapped. If the plugin provides a non-NULL <code>*address</code>, it must be a multiple of the map page size as returned by <a class="el" href="struct_p_p_b___file_mapping__0__1.html#ae479690b258985b51dda4d438b8156f0" title="GetMapPageSize() retrieves the size of pages that Map() uses.">GetMapPageSize()</a>. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion of <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a>.</td></tr>
-</table>
-</dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
-</div>
-</div>
-<a class="anchor" id="a4fa72d6e6660e16ce1ff08453eff172d"></a><!-- doxytag: member="PPB_FileMapping::Unmap" ref="a4fa72d6e6660e16ce1ff08453eff172d" args=")(PP_Instance instance, const void *address, int64_t length, struct PP_CompletionCallback callback)" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a4fa72d6e6660e16ce1ff08453eff172d">PPB_FileMapping::Unmap</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance, const void *address, int64_t length, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-<p><a class="el" href="struct_p_p_b___file_mapping__0__1.html#a4fa72d6e6660e16ce1ff08453eff172d" title="Unmap() deletes the mapping of the specified address.">Unmap()</a> deletes the mapping of the specified address. </p>
-<p>The specified address must have been retrieved with <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a>. </p>
-<dl class="params"><dt><b>Parameters:</b></dt><dd>
-<table class="params">
-<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code> identifying the instance. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">address</td><td>The starting address of the address in memory to be unmapped. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>The length of the region to unmap. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion of <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a4fa72d6e6660e16ce1ff08453eff172d" title="Unmap() deletes the mapping of the specified address.">Unmap()</a>.</td></tr>
-</table>
-</dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
-</div>
-</div>
-<hr />The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="ppb__file__mapping_8h.html">ppb_file_mapping.h</a></li>
-</ul>
-</div><!-- contents -->
-</div>
-{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___u_d_p_socket__1__1.html b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___u_d_p_socket__1__2.html
index 6307ad0..8e1b0e1 100644
--- a/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___u_d_p_socket__1__1.html
+++ b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___u_d_p_socket__1__2.html
@@ -12,25 +12,27 @@
<!-- doxytag: class="PPB_UDPSocket" --><h2>
Data Fields</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a687ffa461f068fae0e0cc6694b3157bd">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a122be12f51d87e13cbe33bf30b3bef86">IsUDPSocket</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#ab35f5cda2711b220a2b6c090b469d044">Bind</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a33be83f9c8d91811c9ee20fd04ae9be3">GetBoundAddress</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#aa15ebcb5bfc899d2d46f8f25266e4913">RecvFrom</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#ad6b1bd2a28fdc4fa58b8872353524d38">SendTo</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, const char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a9c349fbeb2a9fca70b8ecf0a860d2112">Close</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a7107524b673568e4e69c63c43ecd0eec">SetOption</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#abe2a2dc1170e9ea60f63656152b7b3ce">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a955e5c21c99668dc80fa54f8a12119de">IsUDPSocket</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a07dad506a240b35c8ceb5dcd5f9e12ce">Bind</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a2195768a7698776e83298b86b9670fa4">GetBoundAddress</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#afaf246c84eb76e033ee8794faa997af5">RecvFrom</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ae6764f319a9af980dbb1ba5625a417be">SendTo</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, const char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ae27417e3577d5dbb3a88efa7867df7b9">Close</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ac0656c7002acbb1d9c4b17fb679f63df">SetOption</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a3012f1d7f38fff9d45925e05850cfdb0">JoinGroup</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> group, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a5e46591a3a742ee1a9e3de81a76624d3">LeaveGroup</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> group, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
</table>
<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>The <code>PPB_UDPSocket</code> interface provides UDP socket operations. </p>
-<p>Permissions: Apps permission <code>socket</code> with subrule <code>udp-bind</code> is required for <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#ab35f5cda2711b220a2b6c090b469d044" title="Binds the socket to the given address.">Bind()</a></code>; subrule <code>udp-send-to</code> is required for <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#ad6b1bd2a28fdc4fa58b8872353524d38" title="Sends data to a specific destination.">SendTo()</a></code>. For more details about network communication permissions, please see: <a href="http://developer.chrome.com/apps/app_network.html">http://developer.chrome.com/apps/app_network.html</a> </p>
+<p>Permissions: Apps permission <code>socket</code> with subrule <code>udp-bind</code> is required for <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a07dad506a240b35c8ceb5dcd5f9e12ce" title="Binds the socket to the given address.">Bind()</a></code>; subrule <code>udp-send-to</code> is required for <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ae6764f319a9af980dbb1ba5625a417be" title="Sends data to a specific destination.">SendTo()</a></code>. For more details about network communication permissions, please see: <a href="http://developer.chrome.com/apps/app_network.html">http://developer.chrome.com/apps/app_network.html</a> </p>
</div><hr /><h2>Field Documentation</h2>
-<a class="anchor" id="ab35f5cda2711b220a2b6c090b469d044"></a><!-- doxytag: member="PPB_UDPSocket::Bind" ref="ab35f5cda2711b220a2b6c090b469d044" args=")(PP_Resource udp_socket, PP_Resource addr, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="a07dad506a240b35c8ceb5dcd5f9e12ce"></a><!-- doxytag: member="PPB_UDPSocket::Bind" ref="a07dad506a240b35c8ceb5dcd5f9e12ce" args=")(PP_Resource udp_socket, PP_Resource addr, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#ab35f5cda2711b220a2b6c090b469d044">PPB_UDPSocket::Bind</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a07dad506a240b35c8ceb5dcd5f9e12ce">PPB_UDPSocket::Bind</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
@@ -47,18 +49,18 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have required permissions. <code>PP_ERROR_ADDRESS_IN_USE</code> will be returned if the address is already in use. </dd></dl>
</div>
</div>
-<a class="anchor" id="a9c349fbeb2a9fca70b8ecf0a860d2112"></a><!-- doxytag: member="PPB_UDPSocket::Close" ref="a9c349fbeb2a9fca70b8ecf0a860d2112" args=")(PP_Resource udp_socket)" -->
+<a class="anchor" id="ae27417e3577d5dbb3a88efa7867df7b9"></a><!-- doxytag: member="PPB_UDPSocket::Close" ref="ae27417e3577d5dbb3a88efa7867df7b9" args=")(PP_Resource udp_socket)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">void(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a9c349fbeb2a9fca70b8ecf0a860d2112">PPB_UDPSocket::Close</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ae27417e3577d5dbb3a88efa7867df7b9">PPB_UDPSocket::Close</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Cancels all pending reads and writes, and closes the socket. </p>
-<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> if pending IO was interrupted. After a call to this method, no output parameters passed into previous <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#aa15ebcb5bfc899d2d46f8f25266e4913" title="Receives data from the socket and stores the source address.">RecvFrom()</a></code> calls will be accessed. It is not valid to call <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#ab35f5cda2711b220a2b6c090b469d044" title="Binds the socket to the given address.">Bind()</a></code> again.</p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> if pending IO was interrupted. After a call to this method, no output parameters passed into previous <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#afaf246c84eb76e033ee8794faa997af5" title="Receives data from the socket and stores the source address.">RecvFrom()</a></code> calls will be accessed. It is not valid to call <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a07dad506a240b35c8ceb5dcd5f9e12ce" title="Binds the socket to the given address.">Bind()</a></code> again.</p>
<p>The socket is implicitly closed if it is destroyed, so you are not required to call this method.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
@@ -68,12 +70,12 @@ Data Fields</h2><table class="memberdecls">
</dl>
</div>
</div>
-<a class="anchor" id="a687ffa461f068fae0e0cc6694b3157bd"></a><!-- doxytag: member="PPB_UDPSocket::Create" ref="a687ffa461f068fae0e0cc6694b3157bd" args=")(PP_Instance instance)" -->
+<a class="anchor" id="abe2a2dc1170e9ea60f63656152b7b3ce"></a><!-- doxytag: member="PPB_UDPSocket::Create" ref="abe2a2dc1170e9ea60f63656152b7b3ce" args=")(PP_Instance instance)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a687ffa461f068fae0e0cc6694b3157bd">PPB_UDPSocket::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#abe2a2dc1170e9ea60f63656152b7b3ce">PPB_UDPSocket::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
</tr>
</table>
</div>
@@ -88,12 +90,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> corresponding to a UDP socket or 0 on failure. </dd></dl>
</div>
</div>
-<a class="anchor" id="a33be83f9c8d91811c9ee20fd04ae9be3"></a><!-- doxytag: member="PPB_UDPSocket::GetBoundAddress" ref="a33be83f9c8d91811c9ee20fd04ae9be3" args=")(PP_Resource udp_socket)" -->
+<a class="anchor" id="a2195768a7698776e83298b86b9670fa4"></a><!-- doxytag: member="PPB_UDPSocket::GetBoundAddress" ref="a2195768a7698776e83298b86b9670fa4" args=")(PP_Resource udp_socket)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a33be83f9c8d91811c9ee20fd04ae9be3">PPB_UDPSocket::GetBoundAddress</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a2195768a7698776e83298b86b9670fa4">PPB_UDPSocket::GetBoundAddress</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td>
</tr>
</table>
</div>
@@ -109,12 +111,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PPB_NetAddress</code> resource on success or 0 on failure. </dd></dl>
</div>
</div>
-<a class="anchor" id="a122be12f51d87e13cbe33bf30b3bef86"></a><!-- doxytag: member="PPB_UDPSocket::IsUDPSocket" ref="a122be12f51d87e13cbe33bf30b3bef86" args=")(PP_Resource resource)" -->
+<a class="anchor" id="a955e5c21c99668dc80fa54f8a12119de"></a><!-- doxytag: member="PPB_UDPSocket::IsUDPSocket" ref="a955e5c21c99668dc80fa54f8a12119de" args=")(PP_Resource resource)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a122be12f51d87e13cbe33bf30b3bef86">PPB_UDPSocket::IsUDPSocket</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a955e5c21c99668dc80fa54f8a12119de">PPB_UDPSocket::IsUDPSocket</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
</tr>
</table>
</div>
@@ -129,12 +131,56 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd><code>PP_TRUE</code> if the input is a <code>PPB_UDPSocket</code> resource; <code>PP_FALSE</code> otherwise. </dd></dl>
</div>
</div>
-<a class="anchor" id="aa15ebcb5bfc899d2d46f8f25266e4913"></a><!-- doxytag: member="PPB_UDPSocket::RecvFrom" ref="aa15ebcb5bfc899d2d46f8f25266e4913" args=")(PP_Resource udp_socket, char *buffer, int32_t num_bytes, PP_Resource *addr, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="a3012f1d7f38fff9d45925e05850cfdb0"></a><!-- doxytag: member="PPB_UDPSocket::JoinGroup" ref="a3012f1d7f38fff9d45925e05850cfdb0" args=")(PP_Resource udp_socket, PP_Resource group, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#aa15ebcb5bfc899d2d46f8f25266e4913">PPB_UDPSocket::RecvFrom</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a3012f1d7f38fff9d45925e05850cfdb0">PPB_UDPSocket::JoinGroup</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> group, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Joins the multicast group with address specified by <code>group</code> parameter, which is expected to be a <code>PPB_NetAddress</code> object. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">udp_socket</td><td>A <code>PP_Resource</code> corresponding to a UDP socket. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">group</td><td>A <code>PP_Resource</code> corresponding to the network address of the multicast group. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a5e46591a3a742ee1a9e3de81a76624d3"></a><!-- doxytag: member="PPB_UDPSocket::LeaveGroup" ref="a5e46591a3a742ee1a9e3de81a76624d3" args=")(PP_Resource udp_socket, PP_Resource group, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a5e46591a3a742ee1a9e3de81a76624d3">PPB_UDPSocket::LeaveGroup</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> group, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Leaves the multicast group with address specified by <code>group</code> parameter, which is expected to be a <code>PPB_NetAddress</code> object. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">udp_socket</td><td>A <code>PP_Resource</code> corresponding to a UDP socket. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">group</td><td>A <code>PP_Resource</code> corresponding to the network address of the multicast group. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="afaf246c84eb76e033ee8794faa997af5"></a><!-- doxytag: member="PPB_UDPSocket::RecvFrom" ref="afaf246c84eb76e033ee8794faa997af5" args=")(PP_Resource udp_socket, char *buffer, int32_t num_bytes, PP_Resource *addr, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#afaf246c84eb76e033ee8794faa997af5">PPB_UDPSocket::RecvFrom</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
@@ -154,12 +200,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A non-negative number on success to indicate how many bytes have been received; otherwise, an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
</div>
</div>
-<a class="anchor" id="ad6b1bd2a28fdc4fa58b8872353524d38"></a><!-- doxytag: member="PPB_UDPSocket::SendTo" ref="ad6b1bd2a28fdc4fa58b8872353524d38" args=")(PP_Resource udp_socket, const char *buffer, int32_t num_bytes, PP_Resource addr, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="ae6764f319a9af980dbb1ba5625a417be"></a><!-- doxytag: member="PPB_UDPSocket::SendTo" ref="ae6764f319a9af980dbb1ba5625a417be" args=")(PP_Resource udp_socket, const char *buffer, int32_t num_bytes, PP_Resource addr, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#ad6b1bd2a28fdc4fa58b8872353524d38">PPB_UDPSocket::SendTo</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, const char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ae6764f319a9af980dbb1ba5625a417be">PPB_UDPSocket::SendTo</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, const char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
@@ -179,12 +225,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A non-negative number on success to indicate how many bytes have been sent; otherwise, an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have required permissions. <code>PP_ERROR_INPROGRESS</code> will be returned if the socket is busy sending. The caller should wait until a pending send completes before retrying. </dd></dl>
</div>
</div>
-<a class="anchor" id="a7107524b673568e4e69c63c43ecd0eec"></a><!-- doxytag: member="PPB_UDPSocket::SetOption" ref="a7107524b673568e4e69c63c43ecd0eec" args=")(PP_Resource udp_socket, PP_UDPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="ac0656c7002acbb1d9c4b17fb679f63df"></a><!-- doxytag: member="PPB_UDPSocket::SetOption" ref="ac0656c7002acbb1d9c4b17fb679f63df" args=")(PP_Resource udp_socket, PP_UDPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a7107524b673568e4e69c63c43ecd0eec">PPB_UDPSocket::SetOption</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ac0656c7002acbb1d9c4b17fb679f63df">PPB_UDPSocket::SetOption</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___video_decoder__1__0.html b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___video_decoder__1__1.html
index c8dd134..7eb7007 100644
--- a/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___video_decoder__1__0.html
+++ b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___video_decoder__1__1.html
@@ -12,35 +12,35 @@
<!-- doxytag: class="PPB_VideoDecoder" --><h2>
Data Fields</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#a81200f606c493c49a70190ca86ac135c">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#ae2329143c44bd5eaae507074c1fc0ec3">IsVideoDecoder</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#ad115b7705b740b771e7dd9acb2b36f16">Initialize</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> graphics3d_context, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> profile, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366">Decode</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e">GetPicture</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#ac7e6b42866d42eade96519f32755509f">RecyclePicture</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, const struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d">Flush</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e">Reset</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab84df8254cf35702e09425b835b5958f">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#aa32bb990160f3e1fbfa90a2f363c61bc">IsVideoDecoder</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#a65fc7d77135a1c55eb77ad4f7fd1a8a8">Initialize</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> graphics3d_context, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> profile, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, uint32_t min_picture_count, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd">Decode</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c">GetPicture</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb">RecyclePicture</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, const struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413">Flush</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0">Reset</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
</table>
<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Video decoder interface. </p>
<p>Typical usage:</p>
<ul>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a81200f606c493c49a70190ca86ac135c" title="Creates a new video decoder resource.">Create()</a> to create a new video decoder resource.</li>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ad115b7705b740b771e7dd9acb2b36f16" title="Initializes a video decoder resource.">Initialize()</a> to initialize it with a 3d graphics context and the desired codec profile.</li>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> continuously (waiting for each previous call to complete) to push bitstream buffers to the decoder.</li>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> continuously (waiting for each previous call to complete) to pull decoded pictures from the decoder.</li>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d" title="Flushes the decoder.">Flush()</a> to signal end of stream to the decoder and perform shutdown when it completes.</li>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> to quickly stop the decoder (e.g. to implement Seek) and wait for the callback before restarting decoding at another point.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab84df8254cf35702e09425b835b5958f" title="Creates a new video decoder resource.">Create()</a> to create a new video decoder resource.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a65fc7d77135a1c55eb77ad4f7fd1a8a8" title="Initializes a video decoder resource.">Initialize()</a> to initialize it with a 3d graphics context and the desired codec profile.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> continuously (waiting for each previous call to complete) to push bitstream buffers to the decoder.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> continuously (waiting for each previous call to complete) to pull decoded pictures from the decoder.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413" title="Flushes the decoder.">Flush()</a> to signal end of stream to the decoder and perform shutdown when it completes.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> to quickly stop the decoder (e.g. to implement Seek) and wait for the callback before restarting decoding at another point.</li>
<li>To destroy the decoder, the plugin should release all of its references to it. Any pending callbacks will abort before the decoder is destroyed.</li>
</ul>
<p>Available video codecs vary by platform. All: theora, vorbis, vp8. Chrome and ChromeOS: aac, h264. ChromeOS: mpeg4. </p>
</div><hr /><h2>Field Documentation</h2>
-<a class="anchor" id="a81200f606c493c49a70190ca86ac135c"></a><!-- doxytag: member="PPB_VideoDecoder::Create" ref="a81200f606c493c49a70190ca86ac135c" args=")(PP_Instance instance)" -->
+<a class="anchor" id="ab84df8254cf35702e09425b835b5958f"></a><!-- doxytag: member="PPB_VideoDecoder::Create" ref="ab84df8254cf35702e09425b835b5958f" args=")(PP_Instance instance)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a81200f606c493c49a70190ca86ac135c">PPB_VideoDecoder::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab84df8254cf35702e09425b835b5958f">PPB_VideoDecoder::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
</tr>
</table>
</div>
@@ -55,45 +55,45 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> corresponding to a video decoder if successful or 0 otherwise. </dd></dl>
</div>
</div>
-<a class="anchor" id="acc8662be4232325abc545d1ae8b79366"></a><!-- doxytag: member="PPB_VideoDecoder::Decode" ref="acc8662be4232325abc545d1ae8b79366" args=")(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="a5f87d174876dc480029275f94e4669cd"></a><!-- doxytag: member="PPB_VideoDecoder::Decode" ref="a5f87d174876dc480029275f94e4669cd" args=")(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366">PPB_VideoDecoder::Decode</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd">PPB_VideoDecoder::Decode</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Decodes a bitstream buffer. </p>
-<p>Copies |size| bytes of data from the plugin's |buffer|. The plugin should wait until the decoder signals completion by returning PP_OK or by running |callback| before calling <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> again.</p>
+<p>Copies |size| bytes of data from the plugin's |buffer|. The plugin should wait until the decoder signals completion by returning PP_OK or by running |callback| before calling <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> again.</p>
<p>In general, each bitstream buffer should contain a demuxed bitstream frame for the selected video codec. For example, H264 decoders expect to receive one AnnexB NAL unit, including the 4 byte start code prefix, while VP8 decoders expect to receive a bitstream frame without the IVF frame header.</p>
-<p>If the call to <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> eventually results in a picture, the |decode_id| parameter is copied into the returned picture. The plugin can use this to associate decoded pictures with <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> calls (e.g. to assign timestamps or frame numbers to pictures.) This value is opaque to the API so the plugin is free to pass any value.</p>
+<p>If the call to <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> eventually results in a picture, the |decode_id| parameter is copied into the returned picture. The plugin can use this to associate decoded pictures with <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> calls (e.g. to assign timestamps or frame numbers to pictures.) This value is opaque to the API so the plugin is free to pass any value.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">video_decoder</td><td>A <code>PP_Resource</code> identifying the video decoder. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">decode_id</td><td>An optional value, chosen by the plugin, that can be used to associate calls to <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> with decoded pictures returned by <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a>. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">decode_id</td><td>An optional value, chosen by the plugin, that can be used to associate calls to <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> with decoded pictures returned by <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Buffer size in bytes. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Starting address of buffer. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called on completion.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if the decoder isn't initialized or if a <a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d" title="Flushes the decoder.">Flush()</a> or <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> call is pending. Returns PP_ERROR_INPROGRESS if there is another <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> call pending. Returns PP_ERROR_NOMEMORY if a bitstream buffer can't be created. Returns PP_ERROR_ABORTED when <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> is called while <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> is pending. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if the decoder isn't initialized or if a <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413" title="Flushes the decoder.">Flush()</a> or <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> call is pending. Returns PP_ERROR_INPROGRESS if there is another <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> call pending. Returns PP_ERROR_NOMEMORY if a bitstream buffer can't be created. Returns PP_ERROR_ABORTED when <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> is called while <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> is pending. </dd></dl>
</div>
</div>
-<a class="anchor" id="adf3ea0876d1ba686266589a04532e86d"></a><!-- doxytag: member="PPB_VideoDecoder::Flush" ref="adf3ea0876d1ba686266589a04532e86d" args=")(PP_Resource video_decoder, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="a40e2989df1005096fd6fc9832e078413"></a><!-- doxytag: member="PPB_VideoDecoder::Flush" ref="a40e2989df1005096fd6fc9832e078413" args=")(PP_Resource video_decoder, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d">PPB_VideoDecoder::Flush</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413">PPB_VideoDecoder::Flush</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Flushes the decoder. </p>
-<p>The plugin should call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d" title="Flushes the decoder.">Flush()</a> when it reaches the end of its video stream in order to stop cleanly. The decoder will run any pending <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> call to completion. The plugin should make no further calls to the decoder other than <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> and <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ac7e6b42866d42eade96519f32755509f" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a> until the decoder signals completion by running |callback|. Just before completion, any pending <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> call will complete by running its callback with result PP_ERROR_ABORTED to signal that no more pictures are available. Any pictures held by the plugin remain valid during and after the flush and should be recycled back to the decoder.</p>
+<p>The plugin should call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413" title="Flushes the decoder.">Flush()</a> when it reaches the end of its video stream in order to stop cleanly. The decoder will run any pending <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> call to completion. The plugin should make no further calls to the decoder other than <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> and <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a> until the decoder signals completion by running |callback|. Just before completion, any pending <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> call will complete by running its callback with result PP_ERROR_ABORTED to signal that no more pictures are available. Any pictures held by the plugin remain valid during and after the flush and should be recycled back to the decoder.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">video_decoder</td><td>A <code>PP_Resource</code> identifying the video decoder. </td></tr>
@@ -104,18 +104,18 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if the decoder isn't initialized. </dd></dl>
</div>
</div>
-<a class="anchor" id="a2351fe0cf66513ee77df0c1a22306c3e"></a><!-- doxytag: member="PPB_VideoDecoder::GetPicture" ref="a2351fe0cf66513ee77df0c1a22306c3e" args=")(PP_Resource video_decoder, struct PP_VideoPicture *picture, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="adc8b4eb41199cdf96aaa55d9a2df0b6c"></a><!-- doxytag: member="PPB_VideoDecoder::GetPicture" ref="adc8b4eb41199cdf96aaa55d9a2df0b6c" args=")(PP_Resource video_decoder, struct PP_VideoPicture *picture, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e">PPB_VideoDecoder::GetPicture</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c">PPB_VideoDecoder::GetPicture</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the next picture from the decoder. </p>
-<p>The picture is valid after the decoder signals completion by returning PP_OK or running |callback|. The plugin can call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> again after the decoder signals completion. When the plugin is finished using the picture, it should return it to the system by calling <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ac7e6b42866d42eade96519f32755509f" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a>.</p>
+<p>The picture is valid after the decoder signals completion by returning PP_OK or running |callback|. The plugin can call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> again after the decoder signals completion. When the plugin is finished using the picture, it should return it to the system by calling <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">video_decoder</td><td>A <code>PP_Resource</code> identifying the video decoder. </td></tr>
@@ -124,40 +124,41 @@ Data Fields</h2><table class="memberdecls">
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if the decoder isn't initialized or if a <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> call is pending. Returns PP_ERROR_INPROGRESS if there is another <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> call pending. Returns PP_ERROR_ABORTED when <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> is called, or if a call to <a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d" title="Flushes the decoder.">Flush()</a> completes while <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> is pending. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if the decoder isn't initialized or if a <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> call is pending. Returns PP_ERROR_INPROGRESS if there is another <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> call pending. Returns PP_ERROR_ABORTED when <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> is called, or if a call to <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413" title="Flushes the decoder.">Flush()</a> completes while <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> is pending. </dd></dl>
</div>
</div>
-<a class="anchor" id="ad115b7705b740b771e7dd9acb2b36f16"></a><!-- doxytag: member="PPB_VideoDecoder::Initialize" ref="ad115b7705b740b771e7dd9acb2b36f16" args=")(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="a65fc7d77135a1c55eb77ad4f7fd1a8a8"></a><!-- doxytag: member="PPB_VideoDecoder::Initialize" ref="a65fc7d77135a1c55eb77ad4f7fd1a8a8" args=")(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, uint32_t min_picture_count, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ad115b7705b740b771e7dd9acb2b36f16">PPB_VideoDecoder::Initialize</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> graphics3d_context, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> profile, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a65fc7d77135a1c55eb77ad4f7fd1a8a8">PPB_VideoDecoder::Initialize</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> graphics3d_context, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> profile, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, uint32_t min_picture_count, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initializes a video decoder resource. </p>
-<p>This should be called after <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a81200f606c493c49a70190ca86ac135c" title="Creates a new video decoder resource.">Create()</a> and before any other functions.</p>
+<p>This should be called after <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab84df8254cf35702e09425b835b5958f" title="Creates a new video decoder resource.">Create()</a> and before any other functions.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">video_decoder</td><td>A <code>PP_Resource</code> identifying the video decoder. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">graphics3d_context</td><td>A <code>PPB_Graphics3D</code> resource to use during decoding. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">profile</td><td>A <code>PP_VideoProfile</code> specifying the video codec profile. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">min_picture_count</td><td>A count of pictures the plugin would like to have in flight. This is effectively the number of times the plugin can call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> and get a decoded frame without calling <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a>. The decoder has its own internal minimum count, and will take the larger of its internal and this value. A client that doesn't care can therefore just pass in zero for this argument. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the requested profile is not supported. In this case, the client may call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ad115b7705b740b771e7dd9acb2b36f16" title="Initializes a video decoder resource.">Initialize()</a> again with different parameters to find a good configuration. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the requested profile is not supported. In this case, the client may call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a65fc7d77135a1c55eb77ad4f7fd1a8a8" title="Initializes a video decoder resource.">Initialize()</a> again with different parameters to find a good configuration. Returns PP_ERROR_BADARGUMENT if the requested minimum picture count is unreasonably large. </dd></dl>
</div>
</div>
-<a class="anchor" id="ae2329143c44bd5eaae507074c1fc0ec3"></a><!-- doxytag: member="PPB_VideoDecoder::IsVideoDecoder" ref="ae2329143c44bd5eaae507074c1fc0ec3" args=")(PP_Resource resource)" -->
+<a class="anchor" id="aa32bb990160f3e1fbfa90a2f363c61bc"></a><!-- doxytag: member="PPB_VideoDecoder::IsVideoDecoder" ref="aa32bb990160f3e1fbfa90a2f363c61bc" args=")(PP_Resource resource)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ae2329143c44bd5eaae507074c1fc0ec3">PPB_VideoDecoder::IsVideoDecoder</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#aa32bb990160f3e1fbfa90a2f363c61bc">PPB_VideoDecoder::IsVideoDecoder</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
</tr>
</table>
</div>
@@ -172,12 +173,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd><code>PP_TRUE</code> if the resource is a <code>PPB_VideoDecoder</code>, <code>PP_FALSE</code> if the resource is invalid or some other type. </dd></dl>
</div>
</div>
-<a class="anchor" id="ac7e6b42866d42eade96519f32755509f"></a><!-- doxytag: member="PPB_VideoDecoder::RecyclePicture" ref="ac7e6b42866d42eade96519f32755509f" args=")(PP_Resource video_decoder, const struct PP_VideoPicture *picture)" -->
+<a class="anchor" id="ab0b4f4b781cf6c0b347832961a08b6bb"></a><!-- doxytag: member="PPB_VideoDecoder::RecyclePicture" ref="ab0b4f4b781cf6c0b347832961a08b6bb" args=")(PP_Resource video_decoder, const struct PP_VideoPicture *picture)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">void(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ac7e6b42866d42eade96519f32755509f">PPB_VideoDecoder::RecyclePicture</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, const struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture)</td>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb">PPB_VideoDecoder::RecyclePicture</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, const struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture)</td>
</tr>
</table>
</div>
@@ -193,18 +194,18 @@ Data Fields</h2><table class="memberdecls">
</dl>
</div>
</div>
-<a class="anchor" id="aeb4704cfd86a4ad737af19e77f3ffd5e"></a><!-- doxytag: member="PPB_VideoDecoder::Reset" ref="aeb4704cfd86a4ad737af19e77f3ffd5e" args=")(PP_Resource video_decoder, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="ad8151e35df062e82434fb1d6e0629fd0"></a><!-- doxytag: member="PPB_VideoDecoder::Reset" ref="ad8151e35df062e82434fb1d6e0629fd0" args=")(PP_Resource video_decoder, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e">PPB_VideoDecoder::Reset</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0">PPB_VideoDecoder::Reset</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Resets the decoder as quickly as possible. </p>
-<p>The plugin can call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> to skip to another position in the video stream. After <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> returns, any pending calls to <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> and <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a>) abort, causing their callbacks to run with PP_ERROR_ABORTED. The plugin should not make further calls to the decoder other than <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ac7e6b42866d42eade96519f32755509f" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a> until the decoder signals completion by running |callback|. Any pictures held by the plugin remain valid during and after the reset and should be recycled back to the decoder.</p>
+<p>The plugin can call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> to skip to another position in the video stream. After <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> returns, any pending calls to <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> and <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a>) abort, causing their callbacks to run with PP_ERROR_ABORTED. The plugin should not make further calls to the decoder other than <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a> until the decoder signals completion by running |callback|. Any pictures held by the plugin remain valid during and after the reset and should be recycled back to the decoder.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">video_decoder</td><td>A <code>PP_Resource</code> identifying the video decoder. </td></tr>
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___video_encoder__0__2.html b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___video_encoder__0__2.html
new file mode 100644
index 0000000..de97a32
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___video_encoder__0__2.html
@@ -0,0 +1,309 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PPB_VideoEncoder Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PPB_VideoEncoder" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a94d87da92ccfb984cef497977d00d80c">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9006f1c2d0d3fe9a71bb2343e22e679a">IsVideoEncoder</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#abe007473d19c6c82555799c0ecff0cc7">GetSupportedProfiles</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___array_output.html">PP_ArrayOutput</a> output, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561">Initialize</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___enums.html#ga4e7cf746d8acbfa268db1f5ebe8061bf">PP_VideoFrame_Format</a> input_format, const struct <a class="el" href="struct_p_p___size.html">PP_Size</a> *input_visible_size, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> output_profile, uint32_t initial_bitrate, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a468e94294b704c002a6532687bb53ed0">GetFramesRequired</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#adbd41c5b25729bbfb1ad90124d9e9528">GetFrameCodedSize</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___size.html">PP_Size</a> *coded_size)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a64a5b77b1130f13184b797828a49587a">GetVideoFrame</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *video_frame, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a873344d65a32d15426cd4424e76bb6d9">Encode</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_frame, <a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a> force_keyframe, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a8b2b489462a35bdc6300bcf1fdadabe4">GetBitstreamBuffer</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a> *bitstream_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a072f3199019aa262fbdf42412678220a">RecycleBitstreamBuffer</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, const struct <a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a> *bitstream_buffer)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#aa1a3fa20e5d8c56e420d169af6f02845">RequestEncodingParametersChange</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, uint32_t bitrate, uint32_t framerate)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#afe91b697d39e41ca9c4b187e1f66749f">Close</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder)</td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Video encoder interface. </p>
+<p>Typical usage:</p>
+<ul>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a94d87da92ccfb984cef497977d00d80c" title="Creates a new video encoder resource.">Create()</a> to create a new video encoder resource.</li>
+<li>Call GetSupportedFormats() to determine which codecs and profiles are available.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> to initialize the encoder for a supported profile.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a64a5b77b1130f13184b797828a49587a" title="Gets a blank video frame which can be filled with video data and passed to the encoder.">GetVideoFrame()</a> to get a blank frame and fill it in, or get a video frame from another resource, e.g. <code>PPB_MediaStreamVideoTrack</code>.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a873344d65a32d15426cd4424e76bb6d9" title="Encodes a video frame.">Encode()</a> to push the video frame to the encoder. If an external frame is pushed, wait for completion to recycle the frame.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a8b2b489462a35bdc6300bcf1fdadabe4" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> continuously (waiting for each previous call to complete) to pull encoded pictures from the encoder.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a072f3199019aa262fbdf42412678220a" title="Recycles a bitstream buffer back to the encoder.">RecycleBitstreamBuffer()</a> after consuming the data in the bitstream buffer.</li>
+<li>To destroy the encoder, the plugin should release all of its references to it. Any pending callbacks will abort before the encoder is destroyed.</li>
+</ul>
+<p>Available video codecs vary by platform. All: vp8 (software). ChromeOS, depending on your device: h264 (hardware), vp8 (hardware) </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="afe91b697d39e41ca9c4b187e1f66749f"></a><!-- doxytag: member="PPB_VideoEncoder::Close" ref="afe91b697d39e41ca9c4b187e1f66749f" args=")(PP_Resource video_encoder)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#afe91b697d39e41ca9c4b187e1f66749f">PPB_VideoEncoder::Close</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Closes the video encoder, and cancels any pending encodes. </p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> . It is not valid to call any encoder functions after a call to this method. <b>Note:</b> Destroying the video encoder closes it implicitly, so you are not required to call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#afe91b697d39e41ca9c4b187e1f66749f" title="Closes the video encoder, and cancels any pending encodes.">Close()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="a94d87da92ccfb984cef497977d00d80c"></a><!-- doxytag: member="PPB_VideoEncoder::Create" ref="a94d87da92ccfb984cef497977d00d80c" args=")(PP_Instance instance)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a94d87da92ccfb984cef497977d00d80c">PPB_VideoEncoder::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Creates a new video encoder resource. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code> identifying the instance with the video encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> corresponding to a video encoder if successful or 0 otherwise. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a873344d65a32d15426cd4424e76bb6d9"></a><!-- doxytag: member="PPB_VideoEncoder::Encode" ref="a873344d65a32d15426cd4424e76bb6d9" args=")(PP_Resource video_encoder, PP_Resource video_frame, PP_Bool force_keyframe, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a873344d65a32d15426cd4424e76bb6d9">PPB_VideoEncoder::Encode</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_frame, <a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a> force_keyframe, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Encodes a video frame. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">video_frame</td><td>The <code>PPB_VideoFrame</code> to be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">force_keyframe</td><td>A <code>PP_Bool&gt; specifying whether the encoder should emit a key frame for this video frame. </code></td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td><code>A </code><code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion. Plugins that pass <code>PPB_VideoFrame</code> resources owned by other resources should wait for completion before reusing them.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd><code> An int32_t containing an error code from </code><code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a8b2b489462a35bdc6300bcf1fdadabe4"></a><!-- doxytag: member="PPB_VideoEncoder::GetBitstreamBuffer" ref="a8b2b489462a35bdc6300bcf1fdadabe4" args=")(PP_Resource video_encoder, struct PP_BitstreamBuffer *bitstream_buffer, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a8b2b489462a35bdc6300bcf1fdadabe4">PPB_VideoEncoder::GetBitstreamBuffer</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a> *bitstream_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the next encoded bitstream buffer from the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[out]</td><td class="paramname">bitstream_buffer</td><td>A <code><a class="el" href="struct_p_p___bitstream_buffer.html" title="Struct describing a bitstream buffer.">PP_BitstreamBuffer</a></code> containing encoded video data. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion. The plugin can call GetBitstreamBuffer from the callback in order to continuously "pull" bitstream buffers from the encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. Returns PP_ERROR_INPROGRESS if a prior call to <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a8b2b489462a35bdc6300bcf1fdadabe4" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> has not completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="adbd41c5b25729bbfb1ad90124d9e9528"></a><!-- doxytag: member="PPB_VideoEncoder::GetFrameCodedSize" ref="adbd41c5b25729bbfb1ad90124d9e9528" args=")(PP_Resource video_encoder, struct PP_Size *coded_size)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#adbd41c5b25729bbfb1ad90124d9e9528">PPB_VideoEncoder::GetFrameCodedSize</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___size.html">PP_Size</a> *coded_size)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the coded size of the video frames required by the encoder. </p>
+<p>Coded size is the logical size of the input frames, in pixels. The encoder may have hardware alignment requirements that make this different from |input_visible_size|, as requested in the call to <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">coded_size</td><td>A <code><a class="el" href="struct_p_p___size.html" title="The PP_Size struct contains the size of a 2D rectangle.">PP_Size</a></code> to hold the coded size. </td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing a result code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a468e94294b704c002a6532687bb53ed0"></a><!-- doxytag: member="PPB_VideoEncoder::GetFramesRequired" ref="a468e94294b704c002a6532687bb53ed0" args=")(PP_Resource video_encoder)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a468e94294b704c002a6532687bb53ed0">PPB_VideoEncoder::GetFramesRequired</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the number of input video frames that the encoder may hold while encoding. </p>
+<p>If the plugin is providing the video frames, it should have at least this many available.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing the number of frames required, or an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="abe007473d19c6c82555799c0ecff0cc7"></a><!-- doxytag: member="PPB_VideoEncoder::GetSupportedProfiles" ref="abe007473d19c6c82555799c0ecff0cc7" args=")(PP_Resource video_encoder, struct PP_ArrayOutput output, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#abe007473d19c6c82555799c0ecff0cc7">PPB_VideoEncoder::GetSupportedProfiles</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___array_output.html">PP_ArrayOutput</a> output, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets an array of supported video encoder profiles. </p>
+<p>These can be used to choose a profile before calling <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output</td><td>A <code><a class="el" href="struct_p_p___array_output.html" title="A structure that defines a way for the browser to return arrays of data to the plugin.">PP_ArrayOutput</a></code> to receive the supported <code><a class="el" href="struct_p_p___video_profile_description.html" title="Supported video profile information.">PP_VideoProfileDescription</a></code> structs. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>If &gt;= 0, the number of supported profiles returned, otherwise an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a64a5b77b1130f13184b797828a49587a"></a><!-- doxytag: member="PPB_VideoEncoder::GetVideoFrame" ref="a64a5b77b1130f13184b797828a49587a" args=")(PP_Resource video_encoder, PP_Resource *video_frame, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a64a5b77b1130f13184b797828a49587a">PPB_VideoEncoder::GetVideoFrame</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *video_frame, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets a blank video frame which can be filled with video data and passed to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[out]</td><td class="paramname">video_frame</td><td>A blank <code>PPB_VideoFrame</code> resource. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a9cd78deaf493477ca7ec96a6e6445561"></a><!-- doxytag: member="PPB_VideoEncoder::Initialize" ref="a9cd78deaf493477ca7ec96a6e6445561" args=")(PP_Resource video_encoder, PP_VideoFrame_Format input_format, const struct PP_Size *input_visible_size, PP_VideoProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561">PPB_VideoEncoder::Initialize</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___enums.html#ga4e7cf746d8acbfa268db1f5ebe8061bf">PP_VideoFrame_Format</a> input_format, const struct <a class="el" href="struct_p_p___size.html">PP_Size</a> *input_visible_size, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> output_profile, uint32_t initial_bitrate, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Initializes a video encoder resource. </p>
+<p>The plugin should call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> successfully before calling any of the functions below.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_format</td><td>The <code>PP_VideoFrame_Format</code> of the frames which will be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_visible_size</td><td>A <code><a class="el" href="struct_p_p___size.html" title="The PP_Size struct contains the size of a 2D rectangle.">PP_Size</a></code> specifying the dimensions of the visible part of the input frames. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output_profile</td><td>A <code>PP_VideoProfile</code> specifying the codec profile of the encoded output stream. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_NOTSUPPORTED if video encoding is not available, or the requested codec profile is not supported. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a9006f1c2d0d3fe9a71bb2343e22e679a"></a><!-- doxytag: member="PPB_VideoEncoder::IsVideoEncoder" ref="a9006f1c2d0d3fe9a71bb2343e22e679a" args=")(PP_Resource resource)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9006f1c2d0d3fe9a71bb2343e22e679a">PPB_VideoEncoder::IsVideoEncoder</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Determines if the given resource is a video encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">resource</td><td>A <code>PP_Resource</code> identifying a resource.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd><code>PP_TRUE</code> if the resource is a <code>PPB_VideoEncoder</code>, <code>PP_FALSE</code> if the resource is invalid or some other type. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a072f3199019aa262fbdf42412678220a"></a><!-- doxytag: member="PPB_VideoEncoder::RecycleBitstreamBuffer" ref="a072f3199019aa262fbdf42412678220a" args=")(PP_Resource video_encoder, const struct PP_BitstreamBuffer *bitstream_buffer)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a072f3199019aa262fbdf42412678220a">PPB_VideoEncoder::RecycleBitstreamBuffer</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, const struct <a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a> *bitstream_buffer)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Recycles a bitstream buffer back to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">bitstream_buffer</td><td>A <code><a class="el" href="struct_p_p___bitstream_buffer.html" title="Struct describing a bitstream buffer.">PP_BitstreamBuffer</a></code> that is no longer needed by the plugin. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="aa1a3fa20e5d8c56e420d169af6f02845"></a><!-- doxytag: member="PPB_VideoEncoder::RequestEncodingParametersChange" ref="aa1a3fa20e5d8c56e420d169af6f02845" args=")(PP_Resource video_encoder, uint32_t bitrate, uint32_t framerate)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#aa1a3fa20e5d8c56e420d169af6f02845">PPB_VideoEncoder::RequestEncodingParametersChange</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, uint32_t bitrate, uint32_t framerate)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Requests a change to encoding parameters. </p>
+<p>This is only a request, fulfilled on a best-effort basis.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">bitrate</td><td>The requested new bitrate, in bits per second. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">framerate</td><td>The requested new framerate, in frames per second. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="ppb__video__encoder_8h.html">ppb_video_encoder.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/audio__encoder_8h.html b/native_client_sdk/doc_generated/pepper_beta/cpp/audio__encoder_8h.html
new file mode 100644
index 0000000..f04836a
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/audio__encoder_8h.html
@@ -0,0 +1,32 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>audio_encoder.h File Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<div class="textblock"><div class="dynheader">
+Include dependency graph for audio_encoder.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="audio__encoder_8h__incl.png" border="0" usemap="#audio__encoder_8h" alt="" /></div>
+<map name="audio__encoder_8h" id="audio__encoder_8h">
+</map>
+</div>
+</div><h2>
+Classes</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classpp_1_1_audio.html" title="An audio resource.">Audio</a> encoder interface. <a href="classpp_1_1_audio_encoder.html#details">More...</a><br /></td></tr>
+</table><h2>
+Namespaces</h2><table class="memberdecls">
+<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepp.html">pp</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file defines the API to create and use a AudioEncoder resource. </p>
+</div></div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/audio__encoder_8h__incl.png b/native_client_sdk/doc_generated/pepper_beta/cpp/audio__encoder_8h__incl.png
new file mode 100644
index 0000000..9eb1bf1
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/audio__encoder_8h__incl.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_audio_encoder-members.html b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_audio_encoder-members.html
new file mode 100644
index 0000000..9872974
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_audio_encoder-members.html
@@ -0,0 +1,39 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>Member List</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+
+</div>
+<!--header-->
+<div class="contents">
+This is the complete list of members for <a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a>, including all inherited members.<table>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#afaf804d519fc0f2370c2d011b4e68378">AudioEncoder</a>()</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a1b5126d5112082bfa782bf5423715030">AudioEncoder</a>(const InstanceHandle &amp;instance)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td><code> [explicit]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#ac4a116ff790ce5dc1cc4847118aabc9d">AudioEncoder</a>(const AudioEncoder &amp;other)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#ad4016f37d3022863ca0188acb26ac9c4">Clear</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a5f5f533624660ca8561fea403da85f5b">Close</a>()</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a81b9246381bdddacca3ac25f6ded2bfd">detach</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a75278dc12dfcc3d000e47e17f014be19">Encode</a>(const AudioBuffer &amp;buffer, const CompletionCallback &amp;cc)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#ad1a2c96562e2baa7a61d63fbb8a49999">GetBitstreamBuffer</a>(const CompletionCallbackWithOutput&lt; PP_AudioBitstreamBuffer &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a113d4a018e987f2f5227c6e0dc8a7687">GetBuffer</a>(const CompletionCallbackWithOutput&lt; AudioBuffer &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a706b305dae8bc5f5e0bca4491c991d59">GetNumberOfSamples</a>()</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a34b94c7bb1f509f4b56bfe7349560669">GetSupportedProfiles</a>(const CompletionCallbackWithOutput&lt; std::vector&lt; PP_AudioProfileDescription &gt; &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933">Initialize</a>(uint32_t channels, PP_AudioBuffer_SampleRate input_sample_rate, PP_AudioBuffer_SampleSize input_sample_size, PP_AudioProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;cc)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9">is_null</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#aaf808a98bdaa7998d82e19514aa87423">operator=</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a3eda014529127a818df8d5bb5ec2fdf0">PassRefFromConstructor</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a46a6123de0b007ad3fcb6f666534ccb4">pp_resource</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a9c5b90b6dbfd81154b28f402197184bc">RecycleBitstreamBuffer</a>(const PP_AudioBitstreamBuffer &amp;bitstream_buffer)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#aa64ea3b0313335817833a72ceed96114">RequestBitrateChange</a>(uint32_t bitrate)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a56679e93a58101c8dce5dc510811a094">Resource</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#ab0f664099ca06367180f220ea7e0b831">Resource</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a555de93fdf4793f7db1183bf71d20580">Resource</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [explicit, protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a907d3d6b7e292587c8cb9ff30d0a418d">Resource</a>(PassRef, PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a081165265e2bd8217eaa2be2aeeb3aa3">~Resource</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [virtual]</code></td></tr>
+</table></div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_audio_encoder.html b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_audio_encoder.html
new file mode 100644
index 0000000..525e399
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_audio_encoder.html
@@ -0,0 +1,381 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>pp::AudioEncoder Class Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="pp::AudioEncoder" --><!-- doxytag: inherits="pp::Resource" --><div class="dynheader">
+Inheritance diagram for pp::AudioEncoder:</div>
+<div class="dyncontent">
+<div class="center"><img src="classpp_1_1_audio_encoder__inherit__graph.png" border="0" usemap="#pp_1_1_audio_encoder_inherit__map" alt="Inheritance graph" /></div>
+<map name="pp_1_1_audio_encoder_inherit__map" id="pp_1_1_audio_encoder_inherit__map">
+<area shape="rect" id="node2" href="classpp_1_1_resource.html" title="A reference counted module resource." alt="" coords="20,5,124,32"></area></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<p><a href="classpp_1_1_audio_encoder-members.html">List of all members.</a></p>
+<h2>
+Public Member Functions</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#afaf804d519fc0f2370c2d011b4e68378">AudioEncoder</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a1b5126d5112082bfa782bf5423715030">AudioEncoder</a> (const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#ac4a116ff790ce5dc1cc4847118aabc9d">AudioEncoder</a> (const <a class="el" href="classpp_1_1_audio_encoder.html">AudioEncoder</a> &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a34b94c7bb1f509f4b56bfe7349560669">GetSupportedProfiles</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; std::vector&lt; PP_AudioProfileDescription &gt; &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933">Initialize</a> (uint32_t channels, PP_AudioBuffer_SampleRate input_sample_rate, PP_AudioBuffer_SampleSize input_sample_size, PP_AudioProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a706b305dae8bc5f5e0bca4491c991d59">GetNumberOfSamples</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a113d4a018e987f2f5227c6e0dc8a7687">GetBuffer</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; <a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a> &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a75278dc12dfcc3d000e47e17f014be19">Encode</a> (const <a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a> &amp;buffer, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#ad1a2c96562e2baa7a61d63fbb8a49999">GetBitstreamBuffer</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; PP_AudioBitstreamBuffer &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a9c5b90b6dbfd81154b28f402197184bc">RecycleBitstreamBuffer</a> (const PP_AudioBitstreamBuffer &amp;bitstream_buffer)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#aa64ea3b0313335817833a72ceed96114">RequestBitrateChange</a> (uint32_t bitrate)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a5f5f533624660ca8561fea403da85f5b">Close</a> ()</td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="classpp_1_1_audio.html" title="An audio resource.">Audio</a> encoder interface. </p>
+<p>Typical usage:</p>
+<ul>
+<li>Call Create() to create a new audio encoder resource.</li>
+<li>Call GetSupportedFormats() to determine which codecs and profiles are available.</li>
+<li>Call <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933" title="Initializes a audio encoder resource.">Initialize()</a> to initialize the encoder for a supported profile.</li>
+<li>Call <a class="el" href="classpp_1_1_audio_encoder.html#a113d4a018e987f2f5227c6e0dc8a7687" title="Gets a blank audio frame which can be filled with audio data and passed to the encoder.">GetBuffer()</a> to get a blank frame and fill it in, or get an audio frame from another resource, e.g. <code>PPB_MediaStreamAudioTrack</code>.</li>
+<li>Call <a class="el" href="classpp_1_1_audio_encoder.html#a75278dc12dfcc3d000e47e17f014be19" title="Encodes an audio buffer.">Encode()</a> to push the audio buffer to the encoder. If an external buffer is pushed, wait for completion to recycle the frame.</li>
+<li>Call <a class="el" href="classpp_1_1_audio_encoder.html#ad1a2c96562e2baa7a61d63fbb8a49999" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> continuously (waiting for each previous call to complete) to pull encoded buffers from the encoder.</li>
+<li>Call <a class="el" href="classpp_1_1_audio_encoder.html#a9c5b90b6dbfd81154b28f402197184bc" title="Recycles a bitstream buffer back to the encoder.">RecycleBitstreamBuffer()</a> after consuming the data in the bitstream buffer.</li>
+<li>To destroy the encoder, the plugin should release all of its references to it. Any pending callbacks will abort before the encoder is destroyed.</li>
+</ul>
+<p>Available audio codecs vary by platform. All: opus. </p>
+</div><hr /><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="afaf804d519fc0f2370c2d011b4e68378"></a><!-- doxytag: member="pp::AudioEncoder::AudioEncoder" ref="afaf804d519fc0f2370c2d011b4e68378" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_audio_encoder.html#afaf804d519fc0f2370c2d011b4e68378">pp::AudioEncoder::AudioEncoder</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Default constructor for creating an <a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9" title="This functions determines if this resource is invalid or uninitialized.">is_null()</a> <code><a class="el" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface.">AudioEncoder</a></code> object. </p>
+</div>
+</div>
+<a class="anchor" id="a1b5126d5112082bfa782bf5423715030"></a><!-- doxytag: member="pp::AudioEncoder::AudioEncoder" ref="a1b5126d5112082bfa782bf5423715030" args="(const InstanceHandle &amp;instance)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_audio_encoder.html#afaf804d519fc0f2370c2d011b4e68378">pp::AudioEncoder::AudioEncoder</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;&#160;</td>
+<td class="paramname"><em>instance</em></td><td>)</td>
+<td><code> [explicit]</code></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>A constructor used to create a <code><a class="el" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface.">AudioEncoder</a></code> and associate it with the provided <code><a class="el" href="classpp_1_1_instance.html">Instance</a></code>. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>The instance with which this resource will be associated. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ac4a116ff790ce5dc1cc4847118aabc9d"></a><!-- doxytag: member="pp::AudioEncoder::AudioEncoder" ref="ac4a116ff790ce5dc1cc4847118aabc9d" args="(const AudioEncoder &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_audio_encoder.html#afaf804d519fc0f2370c2d011b4e68378">pp::AudioEncoder::AudioEncoder</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_audio_encoder.html">AudioEncoder</a> &amp;&#160;</td>
+<td class="paramname"><em>other</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The copy constructor for <code><a class="el" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface.">AudioEncoder</a></code>. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>A reference to a <code><a class="el" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface.">AudioEncoder</a></code>. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr /><h2>Member Function Documentation</h2>
+<a class="anchor" id="a5f5f533624660ca8561fea403da85f5b"></a><!-- doxytag: member="pp::AudioEncoder::Close" ref="a5f5f533624660ca8561fea403da85f5b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_audio_encoder.html#a5f5f533624660ca8561fea403da85f5b">pp::AudioEncoder::Close</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Closes the audio encoder, and cancels any pending encodes. </p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> . It is not valid to call any encoder functions after a call to this method. <b>Note:</b> Destroying the audio encoder closes it implicitly, so you are not required to call <a class="el" href="classpp_1_1_audio_encoder.html#a5f5f533624660ca8561fea403da85f5b" title="Closes the audio encoder, and cancels any pending encodes.">Close()</a>. </p>
+</div>
+</div>
+<a class="anchor" id="a75278dc12dfcc3d000e47e17f014be19"></a><!-- doxytag: member="pp::AudioEncoder::Encode" ref="a75278dc12dfcc3d000e47e17f014be19" args="(const AudioBuffer &amp;buffer, const CompletionCallback &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#a75278dc12dfcc3d000e47e17f014be19">pp::AudioEncoder::Encode</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a> &amp;&#160;</td>
+<td class="paramname"><em>buffer</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
+<td class="paramname"><em>cc</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Encodes an audio buffer. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_buffer</td><td>The <code><a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a></code> to be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion. Plugins that pass <code><a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a></code> resources owned by other resources should wait for completion before reusing them.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933" title="Initializes a audio encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="ad1a2c96562e2baa7a61d63fbb8a49999"></a><!-- doxytag: member="pp::AudioEncoder::GetBitstreamBuffer" ref="ad1a2c96562e2baa7a61d63fbb8a49999" args="(const CompletionCallbackWithOutput&lt; PP_AudioBitstreamBuffer &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#ad1a2c96562e2baa7a61d63fbb8a49999">pp::AudioEncoder::GetBitstreamBuffer</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; PP_AudioBitstreamBuffer &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the next encoded bitstream buffer from the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the next bitstream buffer. The plugin can call GetBitstreamBuffer from the callback in order to continuously "pull" bitstream buffers from the encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933" title="Initializes a audio encoder resource.">Initialize()</a> has not successfully completed. Returns PP_ERROR_INPROGRESS if a prior call to <a class="el" href="classpp_1_1_audio_encoder.html#ad1a2c96562e2baa7a61d63fbb8a49999" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> has not completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a113d4a018e987f2f5227c6e0dc8a7687"></a><!-- doxytag: member="pp::AudioEncoder::GetBuffer" ref="a113d4a018e987f2f5227c6e0dc8a7687" args="(const CompletionCallbackWithOutput&lt; AudioBuffer &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#a113d4a018e987f2f5227c6e0dc8a7687">pp::AudioEncoder::GetBuffer</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; <a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a> &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets a blank audio frame which can be filled with audio data and passed to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the blank <code><a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a></code> resource.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a706b305dae8bc5f5e0bca4491c991d59"></a><!-- doxytag: member="pp::AudioEncoder::GetNumberOfSamples" ref="a706b305dae8bc5f5e0bca4491c991d59" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#a706b305dae8bc5f5e0bca4491c991d59">pp::AudioEncoder::GetNumberOfSamples</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the number of audio samples per channel that audio buffers must contain in order to be processed by the encoder. </p>
+<p>This will be the number of samples per channels contained in buffers returned by <a class="el" href="classpp_1_1_audio_encoder.html#a113d4a018e987f2f5227c6e0dc8a7687" title="Gets a blank audio frame which can be filled with audio data and passed to the encoder.">GetBuffer()</a>.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing the number of samples required, or an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933" title="Initializes a audio encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a34b94c7bb1f509f4b56bfe7349560669"></a><!-- doxytag: member="pp::AudioEncoder::GetSupportedProfiles" ref="a34b94c7bb1f509f4b56bfe7349560669" args="(const CompletionCallbackWithOutput&lt; std::vector&lt; PP_AudioProfileDescription &gt; &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#a34b94c7bb1f509f4b56bfe7349560669">pp::AudioEncoder::GetSupportedProfiles</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; std::vector&lt; PP_AudioProfileDescription &gt; &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets an array of supported audio encoder profiles. </p>
+<p>These can be used to choose a profile before calling <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933" title="Initializes a audio encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the PP_AudioProfileDescription structs.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>If &gt;= 0, the number of supported profiles returned, otherwise an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a28aa43f8c92b387b81e7cf63219c2933"></a><!-- doxytag: member="pp::AudioEncoder::Initialize" ref="a28aa43f8c92b387b81e7cf63219c2933" args="(uint32_t channels, PP_AudioBuffer_SampleRate input_sample_rate, PP_AudioBuffer_SampleSize input_sample_size, PP_AudioProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933">pp::AudioEncoder::Initialize</a> </td>
+<td>(</td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>channels</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">PP_AudioBuffer_SampleRate&#160;</td>
+<td class="paramname"><em>input_sample_rate</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">PP_AudioBuffer_SampleSize&#160;</td>
+<td class="paramname"><em>input_sample_size</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">PP_AudioProfile&#160;</td>
+<td class="paramname"><em>output_profile</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>initial_bitrate</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">PP_HardwareAcceleration&#160;</td>
+<td class="paramname"><em>acceleration</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
+<td class="paramname"><em>cc</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Initializes a audio encoder resource. </p>
+<p>This should be called after <a class="el" href="classpp_1_1_audio_encoder.html#a34b94c7bb1f509f4b56bfe7349560669" title="Gets an array of supported audio encoder profiles.">GetSupportedProfiles()</a> and before any functions below.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">channels</td><td>The number of audio channels to encode. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_sampling_rate</td><td>The sampling rate of the input audio buffer. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_sample_size</td><td>The sample size of the input audio buffer. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output_profile</td><td>A <code>PP_AudioProfile</code> specifying the codec profile of the encoded output stream. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">initial_bitrate</td><td>The initial bitrate for the encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_NOTSUPPORTED if audio encoding is not available, or the requested codec profile is not supported. Returns PP_ERROR_NOMEMORY if bitstream buffers can't be created. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a9c5b90b6dbfd81154b28f402197184bc"></a><!-- doxytag: member="pp::AudioEncoder::RecycleBitstreamBuffer" ref="a9c5b90b6dbfd81154b28f402197184bc" args="(const PP_AudioBitstreamBuffer &amp;bitstream_buffer)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_audio_encoder.html#a9c5b90b6dbfd81154b28f402197184bc">pp::AudioEncoder::RecycleBitstreamBuffer</a> </td>
+<td>(</td>
+<td class="paramtype">const PP_AudioBitstreamBuffer &amp;&#160;</td>
+<td class="paramname"><em>bitstream_buffer</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Recycles a bitstream buffer back to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">bitstream_buffer</td><td>A<code>PP_AudioBitstreamBuffer</code> that is no longer needed by the plugin. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="aa64ea3b0313335817833a72ceed96114"></a><!-- doxytag: member="pp::AudioEncoder::RequestBitrateChange" ref="aa64ea3b0313335817833a72ceed96114" args="(uint32_t bitrate)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_audio_encoder.html#aa64ea3b0313335817833a72ceed96114">pp::AudioEncoder::RequestBitrateChange</a> </td>
+<td>(</td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>bitrate</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Requests a change to the encoding bitrate. </p>
+<p>This is only a request, fulfilled on a best-effort basis.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr />The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="audio__encoder_8h.html">audio_encoder.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_audio_encoder__inherit__graph.png b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_audio_encoder__inherit__graph.png
new file mode 100644
index 0000000..5b2e1e1
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_audio_encoder__inherit__graph.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_instance.html b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_instance.html
index c1426e0..3894b01 100644
--- a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_instance.html
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_instance.html
@@ -113,7 +113,7 @@ Static Public Member Functions</h2><table class="memberdecls">
<div class="memdoc">
<p><a class="el" href="classpp_1_1_instance.html#a9773263ee281405030548fc224eeec08" title="AddPerInstanceObject() associates an instance with an interface, creating an object.">AddPerInstanceObject()</a> associates an instance with an interface, creating an object. </p>
<p>Many optional interfaces are associated with a plugin instance. For example, the find in PPP_Find interface receives updates on a per-instance basis. This "per-instance" tracking allows such objects to associate themselves with an instance as "the" handler for that interface name.</p>
-<p>In the case of the find example, the find object registers with its associated instance in its constructor and unregisters in its destructor. Then whenever it gets updates with a PP_Instance parameter, it can map back to the find object corresponding to that given PP_Instance by calling GetPerInstanceObject</p>
+<p>In the case of the find example, the find object registers with its associated instance in its constructor and unregisters in its destructor. Then whenever it gets updates with a PP_Instance parameter, it can map back to the find object corresponding to that given PP_Instance by calling GetPerInstanceObject.</p>
<p>This lookup is done on a per-interface-name basis. This means you can only have one object of a given interface name associated with an instance.</p>
<p>If you are adding a handler for an additional interface, be sure to register with the module (AddPluginInterface) for your interface name to get the C calls in the first place.</p>
<p>Refer to <a class="el" href="classpp_1_1_instance.html#a33c633189c7c321dac8e0c5dc6e67f5b" title="Refer to AddPerInstanceObject() for further information.">RemovePerInstanceObject()</a> and <a class="el" href="classpp_1_1_instance.html#a6dec498f1d49571be9fd40e23745327f" title="Look up an object previously associated with an instance.">GetPerInstanceObject()</a> for further information.</p>
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_resource.html b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_resource.html
index 7845d8d..9e77949 100644
--- a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_resource.html
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_resource.html
@@ -15,7 +15,7 @@ Inheritance diagram for pp::Resource:</div>
<div class="dyncontent">
<div class="center"><img src="classpp_1_1_resource__inherit__graph.png" border="0" usemap="#pp_1_1_resource_inherit__map" alt="Inheritance graph" /></div>
<map name="pp_1_1_resource_inherit__map" id="pp_1_1_resource_inherit__map">
-<area shape="rect" id="node2" href="classpp_1_1_audio.html" title="An audio resource." alt="" coords="216,5,299,32"></area><area shape="rect" id="node3" href="classpp_1_1_audio_buffer.html" title="pp::AudioBuffer" alt="" coords="197,56,317,83"></area><area shape="rect" id="node4" href="classpp_1_1_audio_config.html" title="A 16 bit stereo AudioConfig resource." alt="" coords="196,107,319,133"></area><area shape="rect" id="node5" href="classpp_1_1_compositor.html" title="The Compositor interface is used for setting CompositorLayer layers to the Chromium compositor for co..." alt="" coords="197,157,317,184"></area><area shape="rect" id="node6" href="classpp_1_1_compositor_layer.html" title="pp::CompositorLayer" alt="" coords="180,208,335,235"></area><area shape="rect" id="node7" href="classpp_1_1_file_i_o.html" title="The FileIO class represents a regular file." alt="" coords="218,259,297,285"></area><area shape="rect" id="node8" href="classpp_1_1_file_ref.html" title='The FileRef class represents a "weak pointer" to a file in a file system.' alt="" coords="215,309,300,336"></area><area shape="rect" id="node9" href="classpp_1_1_file_system.html" title="The FileSystem class identifies the file system type associated with a file." alt="" coords="200,360,315,387"></area><area shape="rect" id="node10" href="classpp_1_1_graphics2_d.html" title="pp::Graphics2D" alt="" coords="197,411,317,437"></area><area shape="rect" id="node11" href="classpp_1_1_graphics3_d.html" title="This class represents a 3D rendering context in the browser." alt="" coords="197,461,317,488"></area><area shape="rect" id="node12" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution." alt="" coords="193,512,322,539"></area><area shape="rect" id="node13" href="classpp_1_1_image_data.html" title="pp::ImageData" alt="" coords="199,563,316,589"></area><area shape="rect" id="node14" href="classpp_1_1_input_event.html" title="This class represents an input event resource." alt="" coords="200,613,315,640"></area><area shape="rect" id="node20" href="classpp_1_1_media_stream_audio_track.html" title="The MediaStreamAudioTrack class contains methods for receiving audio buffers from a MediaStream audio..." alt="" coords="157,664,357,691"></area><area shape="rect" id="node21" href="classpp_1_1_media_stream_video_track.html" title="The MediaStreamVideoTrack class contains methods for receiving video frames from a MediaStream video ..." alt="" coords="157,715,357,741"></area><area shape="rect" id="node22" href="classpp_1_1_message_loop.html" title="A message loop allows PPAPI calls to be issued on a thread." alt="" coords="190,765,325,792"></area><area shape="rect" id="node23" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address." alt="" coords="197,816,318,843"></area><area shape="rect" id="node24" href="classpp_1_1_network_list.html" title="pp::NetworkList" alt="" coords="197,867,317,893"></area><area shape="rect" id="node25" href="classpp_1_1_network_monitor.html" title="pp::NetworkMonitor" alt="" coords="184,917,331,944"></area><area shape="rect" id="node26" href="classpp_1_1_t_c_p_socket.html" title="The TCPSocket class provides TCP socket operations." alt="" coords="201,968,314,995"></area><area shape="rect" id="node27" href="classpp_1_1_u_d_p_socket.html" title="The UDPSocket class provides UDP socket operations." alt="" coords="198,1019,317,1045"></area><area shape="rect" id="node28" href="classpp_1_1_u_r_l_loader.html" title="URLLoader provides an API for loading URLs." alt="" coords="200,1069,315,1096"></area><area shape="rect" id="node29" href="classpp_1_1_u_r_l_request_info.html" title="URLRequestInfo provides an API for creating and manipulating URL requests." alt="" coords="185,1120,330,1147"></area><area shape="rect" id="node30" href="classpp_1_1_u_r_l_response_info.html" title="URLResponseInfo provides an API for examining URL responses." alt="" coords="180,1171,335,1197"></area><area shape="rect" id="node31" href="classpp_1_1_video_decoder.html" title="Video decoder interface." alt="" coords="189,1221,325,1248"></area><area shape="rect" id="node32" href="classpp_1_1_video_frame.html" title="pp::VideoFrame" alt="" coords="196,1272,319,1299"></area><area shape="rect" id="node33" href="classpp_1_1_view.html" title="This class represents the state of the view for an instance and contains functions for retrieving the..." alt="" coords="220,1323,295,1349"></area><area shape="rect" id="node34" href="classpp_1_1_web_socket.html" title="The WebSocket class providing bi-directional, full-duplex, communications over a single TCP socket..." alt="" coords="199,1373,315,1400"></area><area shape="rect" id="node15" href="classpp_1_1_i_m_e_input_event.html" title="pp::IMEInputEvent" alt="" coords="424,512,560,539"></area><area shape="rect" id="node16" href="classpp_1_1_keyboard_input_event.html" title="pp::KeyboardInputEvent" alt="" coords="405,563,579,589"></area><area shape="rect" id="node17" href="classpp_1_1_mouse_input_event.html" title="This class handles mouse events." alt="" coords="414,613,570,640"></area><area shape="rect" id="node18" href="classpp_1_1_touch_input_event.html" title="pp::TouchInputEvent" alt="" coords="417,664,567,691"></area><area shape="rect" id="node19" href="classpp_1_1_wheel_input_event.html" title="pp::WheelInputEvent" alt="" coords="416,715,568,741"></area></map>
+<area shape="rect" id="node2" href="classpp_1_1_audio.html" title="An audio resource." alt="" coords="216,5,299,32"></area><area shape="rect" id="node3" href="classpp_1_1_audio_buffer.html" title="pp::AudioBuffer" alt="" coords="197,56,317,83"></area><area shape="rect" id="node4" href="classpp_1_1_audio_config.html" title="A 16 bit stereo AudioConfig resource." alt="" coords="196,107,319,133"></area><area shape="rect" id="node5" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface." alt="" coords="190,157,325,184"></area><area shape="rect" id="node6" href="classpp_1_1_compositor.html" title="The Compositor interface is used for setting CompositorLayer layers to the Chromium compositor for co..." alt="" coords="197,208,317,235"></area><area shape="rect" id="node7" href="classpp_1_1_compositor_layer.html" title="pp::CompositorLayer" alt="" coords="180,259,335,285"></area><area shape="rect" id="node8" href="classpp_1_1_file_i_o.html" title="The FileIO class represents a regular file." alt="" coords="218,309,297,336"></area><area shape="rect" id="node9" href="classpp_1_1_file_ref.html" title='The FileRef class represents a "weak pointer" to a file in a file system.' alt="" coords="215,360,300,387"></area><area shape="rect" id="node10" href="classpp_1_1_file_system.html" title="The FileSystem class identifies the file system type associated with a file." alt="" coords="200,411,315,437"></area><area shape="rect" id="node11" href="classpp_1_1_graphics2_d.html" title="pp::Graphics2D" alt="" coords="197,461,317,488"></area><area shape="rect" id="node12" href="classpp_1_1_graphics3_d.html" title="This class represents a 3D rendering context in the browser." alt="" coords="197,512,317,539"></area><area shape="rect" id="node13" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution." alt="" coords="193,563,322,589"></area><area shape="rect" id="node14" href="classpp_1_1_image_data.html" title="pp::ImageData" alt="" coords="199,613,316,640"></area><area shape="rect" id="node15" href="classpp_1_1_input_event.html" title="This class represents an input event resource." alt="" coords="200,664,315,691"></area><area shape="rect" id="node21" href="classpp_1_1_media_stream_audio_track.html" title="The MediaStreamAudioTrack class contains methods for receiving audio buffers from a MediaStream audio..." alt="" coords="157,715,357,741"></area><area shape="rect" id="node22" href="classpp_1_1_media_stream_video_track.html" title="The MediaStreamVideoTrack class contains methods for receiving video frames from a MediaStream video ..." alt="" coords="157,765,357,792"></area><area shape="rect" id="node23" href="classpp_1_1_message_loop.html" title="A message loop allows PPAPI calls to be issued on a thread." alt="" coords="190,816,325,843"></area><area shape="rect" id="node24" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address." alt="" coords="197,867,318,893"></area><area shape="rect" id="node25" href="classpp_1_1_network_list.html" title="pp::NetworkList" alt="" coords="197,917,317,944"></area><area shape="rect" id="node26" href="classpp_1_1_network_monitor.html" title="pp::NetworkMonitor" alt="" coords="184,968,331,995"></area><area shape="rect" id="node27" href="classpp_1_1_t_c_p_socket.html" title="The TCPSocket class provides TCP socket operations." alt="" coords="201,1019,314,1045"></area><area shape="rect" id="node28" href="classpp_1_1_u_d_p_socket.html" title="The UDPSocket class provides UDP socket operations." alt="" coords="198,1069,317,1096"></area><area shape="rect" id="node29" href="classpp_1_1_u_r_l_loader.html" title="URLLoader provides an API for loading URLs." alt="" coords="200,1120,315,1147"></area><area shape="rect" id="node30" href="classpp_1_1_u_r_l_request_info.html" title="URLRequestInfo provides an API for creating and manipulating URL requests." alt="" coords="185,1171,330,1197"></area><area shape="rect" id="node31" href="classpp_1_1_u_r_l_response_info.html" title="URLResponseInfo provides an API for examining URL responses." alt="" coords="180,1221,335,1248"></area><area shape="rect" id="node32" href="classpp_1_1_video_decoder.html" title="Video decoder interface." alt="" coords="189,1272,325,1299"></area><area shape="rect" id="node33" href="classpp_1_1_video_encoder.html" title="Video encoder interface." alt="" coords="190,1323,325,1349"></area><area shape="rect" id="node34" href="classpp_1_1_video_frame.html" title="pp::VideoFrame" alt="" coords="196,1373,319,1400"></area><area shape="rect" id="node35" href="classpp_1_1_view.html" title="This class represents the state of the view for an instance and contains functions for retrieving the..." alt="" coords="220,1424,295,1451"></area><area shape="rect" id="node36" href="classpp_1_1_web_socket.html" title="The WebSocket class providing bi-directional, full-duplex, communications over a single TCP socket..." alt="" coords="199,1475,315,1501"></area><area shape="rect" id="node16" href="classpp_1_1_i_m_e_input_event.html" title="pp::IMEInputEvent" alt="" coords="424,563,560,589"></area><area shape="rect" id="node17" href="classpp_1_1_keyboard_input_event.html" title="pp::KeyboardInputEvent" alt="" coords="405,613,579,640"></area><area shape="rect" id="node18" href="classpp_1_1_mouse_input_event.html" title="This class handles mouse events." alt="" coords="414,664,570,691"></area><area shape="rect" id="node19" href="classpp_1_1_touch_input_event.html" title="pp::TouchInputEvent" alt="" coords="417,715,567,741"></area><area shape="rect" id="node20" href="classpp_1_1_wheel_input_event.html" title="pp::WheelInputEvent" alt="" coords="416,765,568,792"></area></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<p><a href="classpp_1_1_resource-members.html">List of all members.</a></p>
<h2>
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_resource__inherit__graph.png b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_resource__inherit__graph.png
index 68d3837..5fd5ac3 100644
--- a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_resource__inherit__graph.png
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_resource__inherit__graph.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_u_d_p_socket-members.html b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_u_d_p_socket-members.html
index 2484890..4bd8553 100644
--- a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_u_d_p_socket-members.html
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_u_d_p_socket-members.html
@@ -18,6 +18,8 @@ This is the complete list of members for <a class="el" href="classpp_1_1_u_d_p_s
<tr class="memlist"><td><a class="el" href="classpp_1_1_u_d_p_socket.html#ae98c9decb3c3ea4ba1006943577b684d">GetBoundAddress</a>()</td><td><a class="el" href="classpp_1_1_u_d_p_socket.html">pp::UDPSocket</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9">is_null</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_u_d_p_socket.html#a76a2e93f2fa01d0dce8d8216d53b4f44">IsAvailable</a>()</td><td><a class="el" href="classpp_1_1_u_d_p_socket.html">pp::UDPSocket</a></td><td><code> [static]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_u_d_p_socket.html#a51bdeaeeef690d741850e7d691fa479d">JoinGroup</a>(const NetAddress &amp;group, const CompletionCallback callback)</td><td><a class="el" href="classpp_1_1_u_d_p_socket.html">pp::UDPSocket</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_u_d_p_socket.html#a7efaa9eda9e58ffbd5f6b5c5c9e8b38c">LeaveGroup</a>(const NetAddress &amp;group, const CompletionCallback callback)</td><td><a class="el" href="classpp_1_1_u_d_p_socket.html">pp::UDPSocket</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_u_d_p_socket.html#a72112f67b757bbbfaaf67ae3cfe2f602">operator=</a>(const UDPSocket &amp;other)</td><td><a class="el" href="classpp_1_1_u_d_p_socket.html">pp::UDPSocket</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#aaf808a98bdaa7998d82e19514aa87423">pp::Resource::operator=</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a3eda014529127a818df8d5bb5ec2fdf0">PassRefFromConstructor</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_u_d_p_socket.html b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_u_d_p_socket.html
index c0bf322..84f508f 100644
--- a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_u_d_p_socket.html
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_u_d_p_socket.html
@@ -33,6 +33,8 @@ Public Member Functions</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#a657309cd3bc38cf28e25f4c71190d1a0">SendTo</a> (const char *buffer, int32_t num_bytes, const <a class="el" href="classpp_1_1_net_address.html">NetAddress</a> &amp;addr, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#aa1f03d8d0e7ef59c40724e2691f165f2">Close</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#a5ff91fd2342e534b57980c0c2e414251">SetOption</a> (PP_UDPSocket_Option name, const <a class="el" href="classpp_1_1_var.html">Var</a> &amp;value, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#a51bdeaeeef690d741850e7d691fa479d">JoinGroup</a> (const <a class="el" href="classpp_1_1_net_address.html">NetAddress</a> &amp;group, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#a7efaa9eda9e58ffbd5f6b5c5c9e8b38c">LeaveGroup</a> (const <a class="el" href="classpp_1_1_net_address.html">NetAddress</a> &amp;group, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> callback)</td></tr>
</table><h2>
Static Public Member Functions</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#a76a2e93f2fa01d0dce8d8216d53b4f44">IsAvailable</a> ()</td></tr>
@@ -241,6 +243,76 @@ Static Public Member Functions</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the interface is available, false otherwise. </dd></dl>
</div>
</div>
+<a class="anchor" id="a51bdeaeeef690d741850e7d691fa479d"></a><!-- doxytag: member="pp::UDPSocket::JoinGroup" ref="a51bdeaeeef690d741850e7d691fa479d" args="(const NetAddress &amp;group, const CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_u_d_p_socket.html#a51bdeaeeef690d741850e7d691fa479d">pp::UDPSocket::JoinGroup</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_net_address.html">NetAddress</a> &amp;&#160;</td>
+<td class="paramname"><em>group</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a>&#160;</td>
+<td class="paramname"><em>callback</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Joins the multicast group with address specified by <code>group</code> parameter, which is expected to be a <code><a class="el" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address.">NetAddress</a></code> object. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">group</td><td>A <code><a class="el" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address.">NetAddress</a></code> corresponding to the network address of the multicast group. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a7efaa9eda9e58ffbd5f6b5c5c9e8b38c"></a><!-- doxytag: member="pp::UDPSocket::LeaveGroup" ref="a7efaa9eda9e58ffbd5f6b5c5c9e8b38c" args="(const NetAddress &amp;group, const CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_u_d_p_socket.html#a7efaa9eda9e58ffbd5f6b5c5c9e8b38c">pp::UDPSocket::LeaveGroup</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_net_address.html">NetAddress</a> &amp;&#160;</td>
+<td class="paramname"><em>group</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a>&#160;</td>
+<td class="paramname"><em>callback</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Leaves the multicast group with address specified by <code>group</code> parameter, which is expected to be a <code><a class="el" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address.">NetAddress</a></code> object. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">group</td><td>A <code><a class="el" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address.">NetAddress</a></code> corresponding to the network address of the multicast group. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
<a class="anchor" id="a72112f67b757bbbfaaf67ae3cfe2f602"></a><!-- doxytag: member="pp::UDPSocket::operator=" ref="a72112f67b757bbbfaaf67ae3cfe2f602" args="(const UDPSocket &amp;other)" -->
<div class="memitem">
<div class="memproto">
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_decoder-members.html b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_decoder-members.html
index f383c8c..68a4c3e 100644
--- a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_decoder-members.html
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_decoder-members.html
@@ -16,7 +16,7 @@ This is the complete list of members for <a class="el" href="classpp_1_1_video_d
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a81b9246381bdddacca3ac25f6ded2bfd">detach</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_video_decoder.html#adb59ebce58f83b1c27e9c427596fb366">Flush</a>(const CompletionCallback &amp;callback)</td><td><a class="el" href="classpp_1_1_video_decoder.html">pp::VideoDecoder</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a">GetPicture</a>(const CompletionCallbackWithOutput&lt; PP_VideoPicture &gt; &amp;callback)</td><td><a class="el" href="classpp_1_1_video_decoder.html">pp::VideoDecoder</a></td><td></td></tr>
-<tr class="memlist"><td><a class="el" href="classpp_1_1_video_decoder.html#a52d1b4e5b5427d3bfb263cdec051274e">Initialize</a>(const Graphics3D &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;callback)</td><td><a class="el" href="classpp_1_1_video_decoder.html">pp::VideoDecoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_decoder.html#a284c6a99f5c3ea83465f7eab81ca4ba8">Initialize</a>(const Graphics3D &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, uint32_t min_picture_count, const CompletionCallback &amp;callback)</td><td><a class="el" href="classpp_1_1_video_decoder.html">pp::VideoDecoder</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9">is_null</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#aaf808a98bdaa7998d82e19514aa87423">operator=</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a3eda014529127a818df8d5bb5ec2fdf0">PassRefFromConstructor</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_decoder.html b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_decoder.html
index a82fcda..d05fd0a 100644
--- a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_decoder.html
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_decoder.html
@@ -24,7 +24,7 @@ Public Member Functions</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#afc9613c960f58ff4c97804da4645cd64">VideoDecoder</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a5c7b1010b42e179cf51e55266eb1491a">VideoDecoder</a> (const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;instance)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a0eec2949dd73ef6d52b6782cee3b427d">VideoDecoder</a> (const <a class="el" href="classpp_1_1_video_decoder.html">VideoDecoder</a> &amp;other)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a52d1b4e5b5427d3bfb263cdec051274e">Initialize</a> (const <a class="el" href="classpp_1_1_graphics3_d.html">Graphics3D</a> &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a284c6a99f5c3ea83465f7eab81ca4ba8">Initialize</a> (const <a class="el" href="classpp_1_1_graphics3_d.html">Graphics3D</a> &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, uint32_t min_picture_count, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a2f1a48cf6d2f1854b20e6a747c9b03e3">Decode</a> (uint32_t decode_id, uint32_t size, const void *buffer, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a">GetPicture</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; PP_VideoPicture &gt; &amp;callback)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a7b9c4917ebd205572a0fe69a34f1bfd9">RecyclePicture</a> (const PP_VideoPicture &amp;picture)</td></tr>
@@ -36,7 +36,7 @@ Public Member Functions</h2><table class="memberdecls">
<p>Typical usage:</p>
<ul>
<li>Call Create() to create a new video decoder resource.</li>
-<li>Call <a class="el" href="classpp_1_1_video_decoder.html#a52d1b4e5b5427d3bfb263cdec051274e" title="Initializes a video decoder resource.">Initialize()</a> to initialize it with a 3d graphics context and the desired codec profile.</li>
+<li>Call <a class="el" href="classpp_1_1_video_decoder.html#a284c6a99f5c3ea83465f7eab81ca4ba8" title="Initializes a video decoder resource.">Initialize()</a> to initialize it with a 3d graphics context and the desired codec profile.</li>
<li>Call <a class="el" href="classpp_1_1_video_decoder.html#a2f1a48cf6d2f1854b20e6a747c9b03e3" title="Decodes a bitstream buffer.">Decode()</a> continuously (waiting for each previous call to complete) to push bitstream buffers to the decoder.</li>
<li>Call <a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a" title="Gets the next picture from the decoder.">GetPicture()</a> continuously (waiting for each previous call to complete) to pull decoded pictures from the decoder.</li>
<li>Call <a class="el" href="classpp_1_1_video_decoder.html#adb59ebce58f83b1c27e9c427596fb366" title="Flushes the decoder.">Flush()</a> to signal end of stream to the decoder and perform shutdown when it completes.</li>
@@ -210,12 +210,12 @@ Public Member Functions</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if the decoder isn't initialized or if a <a class="el" href="classpp_1_1_video_decoder.html#aa05481906b07e929c9567bc22a48917a" title="Resets the decoder as quickly as possible.">Reset()</a> call is pending. Returns PP_ERROR_INPROGRESS if there is another <a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a" title="Gets the next picture from the decoder.">GetPicture()</a> call pending. Returns PP_ERROR_ABORTED when <a class="el" href="classpp_1_1_video_decoder.html#aa05481906b07e929c9567bc22a48917a" title="Resets the decoder as quickly as possible.">Reset()</a> is called, or if a call to <a class="el" href="classpp_1_1_video_decoder.html#adb59ebce58f83b1c27e9c427596fb366" title="Flushes the decoder.">Flush()</a> completes while <a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a" title="Gets the next picture from the decoder.">GetPicture()</a> is pending. </dd></dl>
</div>
</div>
-<a class="anchor" id="a52d1b4e5b5427d3bfb263cdec051274e"></a><!-- doxytag: member="pp::VideoDecoder::Initialize" ref="a52d1b4e5b5427d3bfb263cdec051274e" args="(const Graphics3D &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;callback)" -->
+<a class="anchor" id="a284c6a99f5c3ea83465f7eab81ca4ba8"></a><!-- doxytag: member="pp::VideoDecoder::Initialize" ref="a284c6a99f5c3ea83465f7eab81ca4ba8" args="(const Graphics3D &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, uint32_t min_picture_count, const CompletionCallback &amp;callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t <a class="el" href="classpp_1_1_video_decoder.html#a52d1b4e5b5427d3bfb263cdec051274e">pp::VideoDecoder::Initialize</a> </td>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_decoder.html#a284c6a99f5c3ea83465f7eab81ca4ba8">pp::VideoDecoder::Initialize</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classpp_1_1_graphics3_d.html">Graphics3D</a> &amp;&#160;</td>
<td class="paramname"><em>graphics3d_context</em>, </td>
@@ -235,6 +235,12 @@ Public Member Functions</h2><table class="memberdecls">
<tr>
<td class="paramkey"></td>
<td></td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>min_picture_count</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
<td class="paramname"><em>callback</em>&#160;</td>
</tr>
@@ -253,11 +259,12 @@ Public Member Functions</h2><table class="memberdecls">
<tr><td class="paramdir">[in]</td><td class="paramname">graphics3d_context</td><td>A <code>PPB_Graphics3D</code> resource to use during decoding. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">profile</td><td>A <code>PP_VideoProfile</code> specifying the video codec profile. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">min_picture_count</td><td>A count of pictures the plugin would like to have in flight. This is effectively the number of times the plugin can call <a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a" title="Gets the next picture from the decoder.">GetPicture()</a> and get a decoded frame without calling <a class="el" href="classpp_1_1_video_decoder.html#a7b9c4917ebd205572a0fe69a34f1bfd9" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a>. The decoder has its own internal minimum count, and will take the larger of its internal and this value. A client that doesn't care can therefore just pass in zero for this argument. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code>PP_CompletionCallback</code> to be called upon completion.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the requested profile is not supported. In this case, the client may call <a class="el" href="classpp_1_1_video_decoder.html#a52d1b4e5b5427d3bfb263cdec051274e" title="Initializes a video decoder resource.">Initialize()</a> again with different parameters to find a good configuration. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the requested profile is not supported. In this case, the client may call <a class="el" href="classpp_1_1_video_decoder.html#a284c6a99f5c3ea83465f7eab81ca4ba8" title="Initializes a video decoder resource.">Initialize()</a> again with different parameters to find a good configuration. </dd></dl>
</div>
</div>
<a class="anchor" id="a7b9c4917ebd205572a0fe69a34f1bfd9"></a><!-- doxytag: member="pp::VideoDecoder::RecyclePicture" ref="a7b9c4917ebd205572a0fe69a34f1bfd9" args="(const PP_VideoPicture &amp;picture)" -->
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_encoder-members.html b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_encoder-members.html
new file mode 100644
index 0000000..1f9a454
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_encoder-members.html
@@ -0,0 +1,40 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>Member List</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+
+</div>
+<!--header-->
+<div class="contents">
+This is the complete list of members for <a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a>, including all inherited members.<table>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#ad4016f37d3022863ca0188acb26ac9c4">Clear</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a411036495143eb6484b668e2d26c1170">Close</a>()</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a81b9246381bdddacca3ac25f6ded2bfd">detach</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a39755b4e3aee295d8ba509da9904e5cd">Encode</a>(const VideoFrame &amp;video_frame, bool force_keyframe, const CompletionCallback &amp;cc)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a9c0861d91f7c93cb15cf917ca6d6cf95">GetBitstreamBuffer</a>(const CompletionCallbackWithOutput&lt; PP_BitstreamBuffer &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a2112ec6caf60385c1625b85e3697d777">GetFrameCodedSize</a>(Size *coded_size)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#ae673a5ebfed4fc3198a405cccecfbe54">GetFramesRequired</a>()</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a5c264d3b6ec0a5970cc1dee74dbfaf55">GetSupportedProfiles</a>(const CompletionCallbackWithOutput&lt; std::vector&lt; PP_VideoProfileDescription &gt; &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a5c5fabe6a00afe6b8849bbc612183bb2">GetVideoFrame</a>(const CompletionCallbackWithOutput&lt; VideoFrame &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7">Initialize</a>(const PP_VideoFrame_Format &amp;input_format, const Size &amp;input_visible_size, const PP_VideoProfile &amp;output_profile, const uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;cc)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9">is_null</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#aaf808a98bdaa7998d82e19514aa87423">operator=</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a3eda014529127a818df8d5bb5ec2fdf0">PassRefFromConstructor</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a46a6123de0b007ad3fcb6f666534ccb4">pp_resource</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a81aec23c26a3f9c16ff90efdc38b2895">RecycleBitstreamBuffer</a>(const PP_BitstreamBuffer &amp;bitstream_buffer)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a727159fe366c6ce146dce4c42a608fd7">RequestEncodingParametersChange</a>(uint32_t bitrate, uint32_t framerate)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a56679e93a58101c8dce5dc510811a094">Resource</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#ab0f664099ca06367180f220ea7e0b831">Resource</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a555de93fdf4793f7db1183bf71d20580">Resource</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [explicit, protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a907d3d6b7e292587c8cb9ff30d0a418d">Resource</a>(PassRef, PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a6a84b977ee05e00bb2c00519d1893d08">VideoEncoder</a>()</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a479c6cbd73b497c98871d877ef9e0b29">VideoEncoder</a>(const InstanceHandle &amp;instance)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td><code> [explicit]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#ad9d09d444a0480153aa5086fda13f064">VideoEncoder</a>(const VideoEncoder &amp;other)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a081165265e2bd8217eaa2be2aeeb3aa3">~Resource</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [virtual]</code></td></tr>
+</table></div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_encoder.html b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_encoder.html
new file mode 100644
index 0000000..c653949
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_encoder.html
@@ -0,0 +1,418 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>pp::VideoEncoder Class Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="pp::VideoEncoder" --><!-- doxytag: inherits="pp::Resource" --><div class="dynheader">
+Inheritance diagram for pp::VideoEncoder:</div>
+<div class="dyncontent">
+<div class="center"><img src="classpp_1_1_video_encoder__inherit__graph.png" border="0" usemap="#pp_1_1_video_encoder_inherit__map" alt="Inheritance graph" /></div>
+<map name="pp_1_1_video_encoder_inherit__map" id="pp_1_1_video_encoder_inherit__map">
+<area shape="rect" id="node2" href="classpp_1_1_resource.html" title="A reference counted module resource." alt="" coords="20,5,124,32"></area></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<p><a href="classpp_1_1_video_encoder-members.html">List of all members.</a></p>
+<h2>
+Public Member Functions</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a6a84b977ee05e00bb2c00519d1893d08">VideoEncoder</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a479c6cbd73b497c98871d877ef9e0b29">VideoEncoder</a> (const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#ad9d09d444a0480153aa5086fda13f064">VideoEncoder</a> (const <a class="el" href="classpp_1_1_video_encoder.html">VideoEncoder</a> &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a5c264d3b6ec0a5970cc1dee74dbfaf55">GetSupportedProfiles</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; std::vector&lt; PP_VideoProfileDescription &gt; &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7">Initialize</a> (const PP_VideoFrame_Format &amp;input_format, const <a class="el" href="classpp_1_1_size.html">Size</a> &amp;input_visible_size, const PP_VideoProfile &amp;output_profile, const uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#ae673a5ebfed4fc3198a405cccecfbe54">GetFramesRequired</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a2112ec6caf60385c1625b85e3697d777">GetFrameCodedSize</a> (<a class="el" href="classpp_1_1_size.html">Size</a> *coded_size)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a5c5fabe6a00afe6b8849bbc612183bb2">GetVideoFrame</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; <a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a> &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a39755b4e3aee295d8ba509da9904e5cd">Encode</a> (const <a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a> &amp;video_frame, bool force_keyframe, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a9c0861d91f7c93cb15cf917ca6d6cf95">GetBitstreamBuffer</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; PP_BitstreamBuffer &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a81aec23c26a3f9c16ff90efdc38b2895">RecycleBitstreamBuffer</a> (const PP_BitstreamBuffer &amp;bitstream_buffer)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a727159fe366c6ce146dce4c42a608fd7">RequestEncodingParametersChange</a> (uint32_t bitrate, uint32_t framerate)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a411036495143eb6484b668e2d26c1170">Close</a> ()</td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Video encoder interface. </p>
+<p>Typical usage:</p>
+<ul>
+<li>Call Create() to create a new video encoder resource.</li>
+<li>Call GetSupportedFormats() to determine which codecs and profiles are available.</li>
+<li>Call <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a> to initialize the encoder for a supported profile.</li>
+<li>Call <a class="el" href="classpp_1_1_video_encoder.html#a5c5fabe6a00afe6b8849bbc612183bb2" title="Gets a blank video frame which can be filled with video data and passed to the encoder.">GetVideoFrame()</a> to get a blank frame and fill it in, or get a video frame from another resource, e.g. <code>PPB_MediaStreamVideoTrack</code>.</li>
+<li>Call <a class="el" href="classpp_1_1_video_encoder.html#a39755b4e3aee295d8ba509da9904e5cd" title="Encodes a video frame.">Encode()</a> to push the video frame to the encoder. If an external frame is pushed, wait for completion to recycle the frame.</li>
+<li>Call <a class="el" href="classpp_1_1_video_encoder.html#a9c0861d91f7c93cb15cf917ca6d6cf95" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> continuously (waiting for each previous call to complete) to pull encoded pictures from the encoder.</li>
+<li>Call <a class="el" href="classpp_1_1_video_encoder.html#a81aec23c26a3f9c16ff90efdc38b2895" title="Recycles a bitstream buffer back to the encoder.">RecycleBitstreamBuffer()</a> after consuming the data in the bitstream buffer.</li>
+<li>To destroy the encoder, the plugin should release all of its references to it. Any pending callbacks will abort before the encoder is destroyed.</li>
+</ul>
+<p>Available video codecs vary by platform. All: vp8 (software). ChromeOS, depending on your device: h264 (hardware), vp8 (hardware) </p>
+</div><hr /><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a6a84b977ee05e00bb2c00519d1893d08"></a><!-- doxytag: member="pp::VideoEncoder::VideoEncoder" ref="a6a84b977ee05e00bb2c00519d1893d08" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_video_encoder.html#a6a84b977ee05e00bb2c00519d1893d08">pp::VideoEncoder::VideoEncoder</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Default constructor for creating an <a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9" title="This functions determines if this resource is invalid or uninitialized.">is_null()</a> <code><a class="el" href="classpp_1_1_video_encoder.html" title="Video encoder interface.">VideoEncoder</a></code> object. </p>
+</div>
+</div>
+<a class="anchor" id="a479c6cbd73b497c98871d877ef9e0b29"></a><!-- doxytag: member="pp::VideoEncoder::VideoEncoder" ref="a479c6cbd73b497c98871d877ef9e0b29" args="(const InstanceHandle &amp;instance)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_video_encoder.html#a6a84b977ee05e00bb2c00519d1893d08">pp::VideoEncoder::VideoEncoder</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;&#160;</td>
+<td class="paramname"><em>instance</em></td><td>)</td>
+<td><code> [explicit]</code></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>A constructor used to create a <code><a class="el" href="classpp_1_1_video_encoder.html" title="Video encoder interface.">VideoEncoder</a></code> and associate it with the provided <code><a class="el" href="classpp_1_1_instance.html">Instance</a></code>. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>The instance with which this resource will be associated. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ad9d09d444a0480153aa5086fda13f064"></a><!-- doxytag: member="pp::VideoEncoder::VideoEncoder" ref="ad9d09d444a0480153aa5086fda13f064" args="(const VideoEncoder &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_video_encoder.html#a6a84b977ee05e00bb2c00519d1893d08">pp::VideoEncoder::VideoEncoder</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_video_encoder.html">VideoEncoder</a> &amp;&#160;</td>
+<td class="paramname"><em>other</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The copy constructor for <code><a class="el" href="classpp_1_1_video_encoder.html" title="Video encoder interface.">VideoEncoder</a></code>. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>A reference to a <code><a class="el" href="classpp_1_1_video_encoder.html" title="Video encoder interface.">VideoEncoder</a></code>. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr /><h2>Member Function Documentation</h2>
+<a class="anchor" id="a411036495143eb6484b668e2d26c1170"></a><!-- doxytag: member="pp::VideoEncoder::Close" ref="a411036495143eb6484b668e2d26c1170" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_video_encoder.html#a411036495143eb6484b668e2d26c1170">pp::VideoEncoder::Close</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Closes the video encoder, and cancels any pending encodes. </p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> . It is not valid to call any encoder functions after a call to this method. <b>Note:</b> Destroying the video encoder closes it implicitly, so you are not required to call <a class="el" href="classpp_1_1_video_encoder.html#a411036495143eb6484b668e2d26c1170" title="Closes the video encoder, and cancels any pending encodes.">Close()</a>. </p>
+</div>
+</div>
+<a class="anchor" id="a39755b4e3aee295d8ba509da9904e5cd"></a><!-- doxytag: member="pp::VideoEncoder::Encode" ref="a39755b4e3aee295d8ba509da9904e5cd" args="(const VideoFrame &amp;video_frame, bool force_keyframe, const CompletionCallback &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#a39755b4e3aee295d8ba509da9904e5cd">pp::VideoEncoder::Encode</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a> &amp;&#160;</td>
+<td class="paramname"><em>video_frame</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">bool&#160;</td>
+<td class="paramname"><em>force_keyframe</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
+<td class="paramname"><em>cc</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Encodes a video frame. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_frame</td><td>The <code><a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a></code> to be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">force_keyframe</td><td>A <code>PP_Bool&gt; specifying whether the encoder should emit a key frame for this video frame. </code></td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td><code>A </code><code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion. Plugins that pass <code><a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a></code> resources owned by other resources should wait for completion before reusing them.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd><code> An int32_t containing an error code from </code><code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a9c0861d91f7c93cb15cf917ca6d6cf95"></a><!-- doxytag: member="pp::VideoEncoder::GetBitstreamBuffer" ref="a9c0861d91f7c93cb15cf917ca6d6cf95" args="(const CompletionCallbackWithOutput&lt; PP_BitstreamBuffer &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#a9c0861d91f7c93cb15cf917ca6d6cf95">pp::VideoEncoder::GetBitstreamBuffer</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; PP_BitstreamBuffer &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the next encoded bitstream buffer from the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[out]</td><td class="paramname">bitstream_buffer</td><td>A <code>PP_BitstreamBuffer</code> containing encoded video data. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the next bitstream buffer. The plugin can call GetBitstreamBuffer from the callback in order to continuously "pull" bitstream buffers from the encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. Returns PP_ERROR_INPROGRESS if a prior call to <a class="el" href="classpp_1_1_video_encoder.html#a9c0861d91f7c93cb15cf917ca6d6cf95" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> has not completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a2112ec6caf60385c1625b85e3697d777"></a><!-- doxytag: member="pp::VideoEncoder::GetFrameCodedSize" ref="a2112ec6caf60385c1625b85e3697d777" args="(Size *coded_size)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#a2112ec6caf60385c1625b85e3697d777">pp::VideoEncoder::GetFrameCodedSize</a> </td>
+<td>(</td>
+<td class="paramtype"><a class="el" href="classpp_1_1_size.html">Size</a> *&#160;</td>
+<td class="paramname"><em>coded_size</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the coded size of the video frames required by the encoder. </p>
+<p>Coded size is the logical size of the input frames, in pixels. The encoder may have hardware alignment requirements that make this different from |input_visible_size|, as requested in the call to <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">coded_size</td><td>A <code><a class="el" href="classpp_1_1_size.html" title="A size of an object based on width and height.">Size</a></code> to hold the coded size.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing a result code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="ae673a5ebfed4fc3198a405cccecfbe54"></a><!-- doxytag: member="pp::VideoEncoder::GetFramesRequired" ref="ae673a5ebfed4fc3198a405cccecfbe54" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#ae673a5ebfed4fc3198a405cccecfbe54">pp::VideoEncoder::GetFramesRequired</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the number of input video frames that the encoder may hold while encoding. </p>
+<p>If the plugin is providing the video frames, it should have at least this many available.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing the number of frames required, or an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a5c264d3b6ec0a5970cc1dee74dbfaf55"></a><!-- doxytag: member="pp::VideoEncoder::GetSupportedProfiles" ref="a5c264d3b6ec0a5970cc1dee74dbfaf55" args="(const CompletionCallbackWithOutput&lt; std::vector&lt; PP_VideoProfileDescription &gt; &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#a5c264d3b6ec0a5970cc1dee74dbfaf55">pp::VideoEncoder::GetSupportedProfiles</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; std::vector&lt; PP_VideoProfileDescription &gt; &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets an array of supported video encoder profiles. </p>
+<p>These can be used to choose a profile before calling <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the PP_VideoProfileDescription structs.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>If &gt;= 0, the number of supported profiles returned, otherwise an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a5c5fabe6a00afe6b8849bbc612183bb2"></a><!-- doxytag: member="pp::VideoEncoder::GetVideoFrame" ref="a5c5fabe6a00afe6b8849bbc612183bb2" args="(const CompletionCallbackWithOutput&lt; VideoFrame &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#a5c5fabe6a00afe6b8849bbc612183bb2">pp::VideoEncoder::GetVideoFrame</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; <a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a> &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets a blank video frame which can be filled with video data and passed to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the blank <code><a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a></code> resource.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="ad2c47c10cfe92a3bf41e204d326560c7"></a><!-- doxytag: member="pp::VideoEncoder::Initialize" ref="ad2c47c10cfe92a3bf41e204d326560c7" args="(const PP_VideoFrame_Format &amp;input_format, const Size &amp;input_visible_size, const PP_VideoProfile &amp;output_profile, const uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7">pp::VideoEncoder::Initialize</a> </td>
+<td>(</td>
+<td class="paramtype">const PP_VideoFrame_Format &amp;&#160;</td>
+<td class="paramname"><em>input_format</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_size.html">Size</a> &amp;&#160;</td>
+<td class="paramname"><em>input_visible_size</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const PP_VideoProfile &amp;&#160;</td>
+<td class="paramname"><em>output_profile</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const uint32_t&#160;</td>
+<td class="paramname"><em>initial_bitrate</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">PP_HardwareAcceleration&#160;</td>
+<td class="paramname"><em>acceleration</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
+<td class="paramname"><em>cc</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Initializes a video encoder resource. </p>
+<p>This should be called after <a class="el" href="classpp_1_1_video_encoder.html#a5c264d3b6ec0a5970cc1dee74dbfaf55" title="Gets an array of supported video encoder profiles.">GetSupportedProfiles()</a> and before any functions below.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">input_format</td><td>The <code>PP_VideoFrame_Format</code> of the frames which will be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_visible_size</td><td>A <code><a class="el" href="classpp_1_1_size.html" title="A size of an object based on width and height.">Size</a></code> specifying the dimensions of the visible part of the input frames. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output_profile</td><td>A <code>PP_VideoProfile</code> specifying the codec profile of the encoded output stream. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_NOTSUPPORTED if video encoding is not available, or the requested codec profile is not supported. Returns PP_ERROR_NOMEMORY if frame and bitstream buffers can't be created. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a81aec23c26a3f9c16ff90efdc38b2895"></a><!-- doxytag: member="pp::VideoEncoder::RecycleBitstreamBuffer" ref="a81aec23c26a3f9c16ff90efdc38b2895" args="(const PP_BitstreamBuffer &amp;bitstream_buffer)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_video_encoder.html#a81aec23c26a3f9c16ff90efdc38b2895">pp::VideoEncoder::RecycleBitstreamBuffer</a> </td>
+<td>(</td>
+<td class="paramtype">const PP_BitstreamBuffer &amp;&#160;</td>
+<td class="paramname"><em>bitstream_buffer</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Recycles a bitstream buffer back to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">bitstream_buffer</td><td>A <code>PP_BitstreamBuffer</code> that is no longer needed by the plugin. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="a727159fe366c6ce146dce4c42a608fd7"></a><!-- doxytag: member="pp::VideoEncoder::RequestEncodingParametersChange" ref="a727159fe366c6ce146dce4c42a608fd7" args="(uint32_t bitrate, uint32_t framerate)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_video_encoder.html#a727159fe366c6ce146dce4c42a608fd7">pp::VideoEncoder::RequestEncodingParametersChange</a> </td>
+<td>(</td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>bitrate</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>framerate</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Requests a change to encoding parameters. </p>
+<p>This is only a request, fulfilled on a best-effort basis.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">bitrate</td><td>The requested new bitrate, in bits per second. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">framerate</td><td>The requested new framerate, in frames per second. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr />The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="video__encoder_8h.html">video_encoder.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_encoder__inherit__graph.png b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_encoder__inherit__graph.png
new file mode 100644
index 0000000..14d3b23
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_video_encoder__inherit__graph.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_view-members.html b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_view-members.html
index faae169..a080677 100644
--- a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_view-members.html
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_view-members.html
@@ -30,7 +30,7 @@ This is the complete list of members for <a class="el" href="classpp_1_1_view.ht
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a555de93fdf4793f7db1183bf71d20580">Resource</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [explicit, protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a907d3d6b7e292587c8cb9ff30d0a418d">Resource</a>(PassRef, PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_view.html#aebcd4ab8818a6e1dfe68e2c435823ad9">View</a>()</td><td><a class="el" href="classpp_1_1_view.html">pp::View</a></td><td></td></tr>
-<tr class="memlist"><td><a class="el" href="classpp_1_1_view.html#a89cc79b6731f0e67d0821fe83b3e64fb">View</a>(PP_Resource view_resource)</td><td><a class="el" href="classpp_1_1_view.html">pp::View</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_view.html#a89cc79b6731f0e67d0821fe83b3e64fb">View</a>(PP_Resource view_resource)</td><td><a class="el" href="classpp_1_1_view.html">pp::View</a></td><td><code> [explicit]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a081165265e2bd8217eaa2be2aeeb3aa3">~Resource</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [virtual]</code></td></tr>
</table></div><!-- contents -->
</div>
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_view.html b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_view.html
index a415406..7f23b4d 100644
--- a/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_view.html
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/classpp_1_1_view.html
@@ -60,7 +60,7 @@ Public Member Functions</h2><table class="memberdecls">
<td>(</td>
<td class="paramtype">PP_Resource&#160;</td>
<td class="paramname"><em>view_resource</em></td><td>)</td>
-<td></td>
+<td><code> [explicit]</code></td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/inherit_graph_23.png b/native_client_sdk/doc_generated/pepper_beta/cpp/inherit_graph_23.png
index 6aebbb2..056cffd 100644
--- a/native_client_sdk/doc_generated/pepper_beta/cpp/inherit_graph_23.png
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/inherit_graph_23.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/inherits.html b/native_client_sdk/doc_generated/pepper_beta/cpp/inherits.html
index 150ad2b..f1a43a2 100644
--- a/native_client_sdk/doc_generated/pepper_beta/cpp/inherits.html
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/inherits.html
@@ -106,7 +106,7 @@
</td></tr>
<tr><td><img src="inherit_graph_23.png" border="0" alt="" usemap="#pp_1_1_resource" />
<map name="pp_1_1_resource" id="pp_1_1_resource">
-<area shape="rect" id="node1" href="classpp_1_1_resource.html" title="A reference counted module resource." alt="" coords="5,689,109,716"></area><area shape="rect" id="node2" href="classpp_1_1_audio.html" title="An audio resource." alt="" coords="216,5,299,32"></area><area shape="rect" id="node3" href="classpp_1_1_audio_buffer.html" title="pp::AudioBuffer" alt="" coords="197,56,317,83"></area><area shape="rect" id="node4" href="classpp_1_1_audio_config.html" title="A 16 bit stereo AudioConfig resource." alt="" coords="196,107,319,133"></area><area shape="rect" id="node5" href="classpp_1_1_compositor.html" title="The Compositor interface is used for setting CompositorLayer layers to the Chromium compositor for co..." alt="" coords="197,157,317,184"></area><area shape="rect" id="node6" href="classpp_1_1_compositor_layer.html" title="pp::CompositorLayer" alt="" coords="180,208,335,235"></area><area shape="rect" id="node7" href="classpp_1_1_file_i_o.html" title="The FileIO class represents a regular file." alt="" coords="218,259,297,285"></area><area shape="rect" id="node8" href="classpp_1_1_file_ref.html" title='The FileRef class represents a "weak pointer" to a file in a file system.' alt="" coords="215,309,300,336"></area><area shape="rect" id="node9" href="classpp_1_1_file_system.html" title="The FileSystem class identifies the file system type associated with a file." alt="" coords="200,360,315,387"></area><area shape="rect" id="node10" href="classpp_1_1_graphics2_d.html" title="pp::Graphics2D" alt="" coords="197,411,317,437"></area><area shape="rect" id="node11" href="classpp_1_1_graphics3_d.html" title="This class represents a 3D rendering context in the browser." alt="" coords="197,461,317,488"></area><area shape="rect" id="node12" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution." alt="" coords="193,512,322,539"></area><area shape="rect" id="node13" href="classpp_1_1_image_data.html" title="pp::ImageData" alt="" coords="199,563,316,589"></area><area shape="rect" id="node14" href="classpp_1_1_input_event.html" title="This class represents an input event resource." alt="" coords="200,613,315,640"></area><area shape="rect" id="node20" href="classpp_1_1_media_stream_audio_track.html" title="The MediaStreamAudioTrack class contains methods for receiving audio buffers from a MediaStream audio..." alt="" coords="157,664,357,691"></area><area shape="rect" id="node21" href="classpp_1_1_media_stream_video_track.html" title="The MediaStreamVideoTrack class contains methods for receiving video frames from a MediaStream video ..." alt="" coords="157,715,357,741"></area><area shape="rect" id="node22" href="classpp_1_1_message_loop.html" title="A message loop allows PPAPI calls to be issued on a thread." alt="" coords="190,765,325,792"></area><area shape="rect" id="node23" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address." alt="" coords="197,816,318,843"></area><area shape="rect" id="node24" href="classpp_1_1_network_list.html" title="pp::NetworkList" alt="" coords="197,867,317,893"></area><area shape="rect" id="node25" href="classpp_1_1_network_monitor.html" title="pp::NetworkMonitor" alt="" coords="184,917,331,944"></area><area shape="rect" id="node26" href="classpp_1_1_t_c_p_socket.html" title="The TCPSocket class provides TCP socket operations." alt="" coords="201,968,314,995"></area><area shape="rect" id="node27" href="classpp_1_1_u_d_p_socket.html" title="The UDPSocket class provides UDP socket operations." alt="" coords="198,1019,317,1045"></area><area shape="rect" id="node28" href="classpp_1_1_u_r_l_loader.html" title="URLLoader provides an API for loading URLs." alt="" coords="200,1069,315,1096"></area><area shape="rect" id="node29" href="classpp_1_1_u_r_l_request_info.html" title="URLRequestInfo provides an API for creating and manipulating URL requests." alt="" coords="185,1120,330,1147"></area><area shape="rect" id="node30" href="classpp_1_1_u_r_l_response_info.html" title="URLResponseInfo provides an API for examining URL responses." alt="" coords="180,1171,335,1197"></area><area shape="rect" id="node31" href="classpp_1_1_video_decoder.html" title="Video decoder interface." alt="" coords="189,1221,325,1248"></area><area shape="rect" id="node32" href="classpp_1_1_video_frame.html" title="pp::VideoFrame" alt="" coords="196,1272,319,1299"></area><area shape="rect" id="node33" href="classpp_1_1_view.html" title="This class represents the state of the view for an instance and contains functions for retrieving the..." alt="" coords="220,1323,295,1349"></area><area shape="rect" id="node34" href="classpp_1_1_web_socket.html" title="The WebSocket class providing bi-directional, full-duplex, communications over a single TCP socket..." alt="" coords="199,1373,315,1400"></area><area shape="rect" id="node15" href="classpp_1_1_i_m_e_input_event.html" title="pp::IMEInputEvent" alt="" coords="424,512,560,539"></area><area shape="rect" id="node16" href="classpp_1_1_keyboard_input_event.html" title="pp::KeyboardInputEvent" alt="" coords="405,563,579,589"></area><area shape="rect" id="node17" href="classpp_1_1_mouse_input_event.html" title="This class handles mouse events." alt="" coords="414,613,570,640"></area><area shape="rect" id="node18" href="classpp_1_1_touch_input_event.html" title="pp::TouchInputEvent" alt="" coords="417,664,567,691"></area><area shape="rect" id="node19" href="classpp_1_1_wheel_input_event.html" title="pp::WheelInputEvent" alt="" coords="416,715,568,741"></area></map>
+<area shape="rect" id="node1" href="classpp_1_1_resource.html" title="A reference counted module resource." alt="" coords="5,740,109,767"></area><area shape="rect" id="node2" href="classpp_1_1_audio.html" title="An audio resource." alt="" coords="216,5,299,32"></area><area shape="rect" id="node3" href="classpp_1_1_audio_buffer.html" title="pp::AudioBuffer" alt="" coords="197,56,317,83"></area><area shape="rect" id="node4" href="classpp_1_1_audio_config.html" title="A 16 bit stereo AudioConfig resource." alt="" coords="196,107,319,133"></area><area shape="rect" id="node5" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface." alt="" coords="190,157,325,184"></area><area shape="rect" id="node6" href="classpp_1_1_compositor.html" title="The Compositor interface is used for setting CompositorLayer layers to the Chromium compositor for co..." alt="" coords="197,208,317,235"></area><area shape="rect" id="node7" href="classpp_1_1_compositor_layer.html" title="pp::CompositorLayer" alt="" coords="180,259,335,285"></area><area shape="rect" id="node8" href="classpp_1_1_file_i_o.html" title="The FileIO class represents a regular file." alt="" coords="218,309,297,336"></area><area shape="rect" id="node9" href="classpp_1_1_file_ref.html" title='The FileRef class represents a "weak pointer" to a file in a file system.' alt="" coords="215,360,300,387"></area><area shape="rect" id="node10" href="classpp_1_1_file_system.html" title="The FileSystem class identifies the file system type associated with a file." alt="" coords="200,411,315,437"></area><area shape="rect" id="node11" href="classpp_1_1_graphics2_d.html" title="pp::Graphics2D" alt="" coords="197,461,317,488"></area><area shape="rect" id="node12" href="classpp_1_1_graphics3_d.html" title="This class represents a 3D rendering context in the browser." alt="" coords="197,512,317,539"></area><area shape="rect" id="node13" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution." alt="" coords="193,563,322,589"></area><area shape="rect" id="node14" href="classpp_1_1_image_data.html" title="pp::ImageData" alt="" coords="199,613,316,640"></area><area shape="rect" id="node15" href="classpp_1_1_input_event.html" title="This class represents an input event resource." alt="" coords="200,664,315,691"></area><area shape="rect" id="node21" href="classpp_1_1_media_stream_audio_track.html" title="The MediaStreamAudioTrack class contains methods for receiving audio buffers from a MediaStream audio..." alt="" coords="157,715,357,741"></area><area shape="rect" id="node22" href="classpp_1_1_media_stream_video_track.html" title="The MediaStreamVideoTrack class contains methods for receiving video frames from a MediaStream video ..." alt="" coords="157,765,357,792"></area><area shape="rect" id="node23" href="classpp_1_1_message_loop.html" title="A message loop allows PPAPI calls to be issued on a thread." alt="" coords="190,816,325,843"></area><area shape="rect" id="node24" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address." alt="" coords="197,867,318,893"></area><area shape="rect" id="node25" href="classpp_1_1_network_list.html" title="pp::NetworkList" alt="" coords="197,917,317,944"></area><area shape="rect" id="node26" href="classpp_1_1_network_monitor.html" title="pp::NetworkMonitor" alt="" coords="184,968,331,995"></area><area shape="rect" id="node27" href="classpp_1_1_t_c_p_socket.html" title="The TCPSocket class provides TCP socket operations." alt="" coords="201,1019,314,1045"></area><area shape="rect" id="node28" href="classpp_1_1_u_d_p_socket.html" title="The UDPSocket class provides UDP socket operations." alt="" coords="198,1069,317,1096"></area><area shape="rect" id="node29" href="classpp_1_1_u_r_l_loader.html" title="URLLoader provides an API for loading URLs." alt="" coords="200,1120,315,1147"></area><area shape="rect" id="node30" href="classpp_1_1_u_r_l_request_info.html" title="URLRequestInfo provides an API for creating and manipulating URL requests." alt="" coords="185,1171,330,1197"></area><area shape="rect" id="node31" href="classpp_1_1_u_r_l_response_info.html" title="URLResponseInfo provides an API for examining URL responses." alt="" coords="180,1221,335,1248"></area><area shape="rect" id="node32" href="classpp_1_1_video_decoder.html" title="Video decoder interface." alt="" coords="189,1272,325,1299"></area><area shape="rect" id="node33" href="classpp_1_1_video_encoder.html" title="Video encoder interface." alt="" coords="190,1323,325,1349"></area><area shape="rect" id="node34" href="classpp_1_1_video_frame.html" title="pp::VideoFrame" alt="" coords="196,1373,319,1400"></area><area shape="rect" id="node35" href="classpp_1_1_view.html" title="This class represents the state of the view for an instance and contains functions for retrieving the..." alt="" coords="220,1424,295,1451"></area><area shape="rect" id="node36" href="classpp_1_1_web_socket.html" title="The WebSocket class providing bi-directional, full-duplex, communications over a single TCP socket..." alt="" coords="199,1475,315,1501"></area><area shape="rect" id="node16" href="classpp_1_1_i_m_e_input_event.html" title="pp::IMEInputEvent" alt="" coords="424,563,560,589"></area><area shape="rect" id="node17" href="classpp_1_1_keyboard_input_event.html" title="pp::KeyboardInputEvent" alt="" coords="405,613,579,640"></area><area shape="rect" id="node18" href="classpp_1_1_mouse_input_event.html" title="This class handles mouse events." alt="" coords="414,664,570,691"></area><area shape="rect" id="node19" href="classpp_1_1_touch_input_event.html" title="pp::TouchInputEvent" alt="" coords="417,715,567,741"></area><area shape="rect" id="node20" href="classpp_1_1_wheel_input_event.html" title="pp::WheelInputEvent" alt="" coords="416,765,568,792"></area></map>
</td></tr>
<tr><td><img src="inherit_graph_24.png" border="0" alt="" usemap="#pp_1_1_size" />
<map name="pp_1_1_size" id="pp_1_1_size">
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/namespacepp.html b/native_client_sdk/doc_generated/pepper_beta/cpp/namespacepp.html
index d04f649..e888367 100644
--- a/native_client_sdk/doc_generated/pepper_beta/cpp/namespacepp.html
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/namespacepp.html
@@ -20,6 +20,8 @@ Classes</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_config.html">AudioConfig</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A 16 bit stereo <a class="el" href="classpp_1_1_audio_config.html" title="A 16 bit stereo AudioConfig resource.">AudioConfig</a> resource. <a href="classpp_1_1_audio_config.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html">AudioEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classpp_1_1_audio.html" title="An audio resource.">Audio</a> encoder interface. <a href="classpp_1_1_audio_encoder.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This API enables you to implement and receive callbacks when Pepper operations complete asynchronously. <a href="classpp_1_1_completion_callback.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a></td></tr>
@@ -112,6 +114,8 @@ Classes</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_var_dictionary.html">VarDictionary</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html">VideoDecoder</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video decoder interface. <a href="classpp_1_1_video_decoder.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html">VideoEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video encoder interface. <a href="classpp_1_1_video_encoder.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_view.html">View</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class represents the state of the view for an instance and contains functions for retrieving the current state of that view. <a href="classpp_1_1_view.html#details">More...</a><br /></td></tr>
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/video__encoder_8h.html b/native_client_sdk/doc_generated/pepper_beta/cpp/video__encoder_8h.html
new file mode 100644
index 0000000..2de4073
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/video__encoder_8h.html
@@ -0,0 +1,32 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>video_encoder.h File Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<div class="textblock"><div class="dynheader">
+Include dependency graph for video_encoder.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="video__encoder_8h__incl.png" border="0" usemap="#video__encoder_8h" alt="" /></div>
+<map name="video__encoder_8h" id="video__encoder_8h">
+</map>
+</div>
+</div><h2>
+Classes</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video encoder interface. <a href="classpp_1_1_video_encoder.html#details">More...</a><br /></td></tr>
+</table><h2>
+Namespaces</h2><table class="memberdecls">
+<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepp.html">pp</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file defines the API to create and use a VideoEncoder resource. </p>
+</div></div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/cpp/video__encoder_8h__incl.png b/native_client_sdk/doc_generated/pepper_beta/cpp/video__encoder_8h__incl.png
new file mode 100644
index 0000000..553cbab
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_beta/cpp/video__encoder_8h__incl.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_beta/index.html b/native_client_sdk/doc_generated/pepper_beta/index.html
index 882199b..c830c8f 100644
--- a/native_client_sdk/doc_generated/pepper_beta/index.html
+++ b/native_client_sdk/doc_generated/pepper_beta/index.html
@@ -2,8 +2,8 @@
<section id="pepper-api-reference-beta">
<h1 id="pepper-api-reference-beta">Pepper API Reference (Beta)</h1>
-<p>This page lists the API for Pepper 41. Apps that use this API can
-run in Chrome 41 or higher.</p>
+<p>This page lists the API for Pepper 48. Apps that use this API can
+run in Chrome 48 or higher.</p>
<h2 id="pepper-c-api-reference"><a class="reference internal" href="/native-client/c-api-beta.html#pepper-beta-c-index"><em>Pepper C API Reference</em></a></h2>
<h2 id="id1"><a class="reference internal" href="/native-client/cpp-api-beta.html#pepper-beta-cpp-index"><em>Pepper C++ API Reference</em></a></h2>
</section>
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/globals_defs.html b/native_client_sdk/doc_generated/pepper_dev/c/globals_defs.html
index ec7106f..b08950b 100644
--- a/native_client_sdk/doc_generated/pepper_dev/c/globals_defs.html
+++ b/native_client_sdk/doc_generated/pepper_dev/c/globals_defs.html
@@ -31,6 +31,9 @@
<li>PPB_AUDIOBUFFER_INTERFACE_0_1
: <a class="el" href="ppb__audio__buffer_8h.html#a4fddf6d285021552ba11f4460ba47445">ppb_audio_buffer.h</a>
</li>
+<li>PPB_AUDIOENCODER_INTERFACE_0_1
+: <a class="el" href="ppb__audio__encoder_8h.html#a4c4871532f8ac42a5a98f9f0aaac27a6">ppb_audio_encoder.h</a>
+</li>
<li>PPB_COMPOSITOR_INTERFACE_0_1
: <a class="el" href="ppb__compositor_8h.html#ac8b0ddbdff260dd5531525784556c045">ppb_compositor.h</a>
</li>
@@ -55,9 +58,6 @@
<li>PPB_FILEIO_INTERFACE_1_1
: <a class="el" href="ppb__file__io_8h.html#aee417de3562daef62dbf68ddc16a8477">ppb_file_io.h</a>
</li>
-<li>PPB_FILEMAPPING_INTERFACE_0_1
-: <a class="el" href="ppb__file__mapping_8h.html#a657d5d4684814f79fd2c764fd8aa540e">ppb_file_mapping.h</a>
-</li>
<li>PPB_FILEREF_INTERFACE
: <a class="el" href="ppb__file__ref_8h.html#a00615ce99f7d6774b0fc5c8f0326f0ba">ppb_file_ref.h</a>
</li>
@@ -262,8 +262,8 @@
<li>PPB_UDPSOCKET_INTERFACE
: <a class="el" href="ppb__udp__socket_8h.html#a673aeb3fceb5ed977b7b8683f674cbfd">ppb_udp_socket.h</a>
</li>
-<li>PPB_UDPSOCKET_INTERFACE_1_1
-: <a class="el" href="ppb__udp__socket_8h.html#a756bacac14becc5cbc2efedcd3ccd509">ppb_udp_socket.h</a>
+<li>PPB_UDPSOCKET_INTERFACE_1_2
+: <a class="el" href="ppb__udp__socket_8h.html#ad6bc6ae5b1d72251b6b81fdd7d8009f7">ppb_udp_socket.h</a>
</li>
<li>PPB_URLLOADER_INTERFACE
: <a class="el" href="ppb__url__loader_8h.html#ae1fa8c5cdfccb7ea67e184b1e5e1009e">ppb_url_loader.h</a>
@@ -310,8 +310,14 @@
<li>PPB_VIDEODECODER_INTERFACE
: <a class="el" href="ppb__video__decoder_8h.html#ae369609aebfa745c1836ef92e9b76aa2">ppb_video_decoder.h</a>
</li>
-<li>PPB_VIDEODECODER_INTERFACE_1_0
-: <a class="el" href="ppb__video__decoder_8h.html#af814c8f0028bce254da6fb5c3e61a4d8">ppb_video_decoder.h</a>
+<li>PPB_VIDEODECODER_INTERFACE_1_1
+: <a class="el" href="ppb__video__decoder_8h.html#ac9994bddaa7ccc8f52799a00031d5441">ppb_video_decoder.h</a>
+</li>
+<li>PPB_VIDEOENCODER_INTERFACE
+: <a class="el" href="ppb__video__encoder_8h.html#abdb2ab6ab0553f6b0086aee71996ea3d">ppb_video_encoder.h</a>
+</li>
+<li>PPB_VIDEOENCODER_INTERFACE_0_2
+: <a class="el" href="ppb__video__encoder_8h.html#af8c3e2794a4f7f9cbd6c253cbacfe177">ppb_video_encoder.h</a>
</li>
<li>PPB_VIDEOFRAME_INTERFACE
: <a class="el" href="ppb__video__frame_8h.html#ac161d8c49f583eda31622d9fc010cd0d">ppb_video_frame.h</a>
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/group___enums.html b/native_client_sdk/doc_generated/pepper_dev/c/group___enums.html
index 3bd2e7d..f5d7907 100644
--- a/native_client_sdk/doc_generated/pepper_dev/c/group___enums.html
+++ b/native_client_sdk/doc_generated/pepper_dev/c/group___enums.html
@@ -34,6 +34,9 @@ Enumerations</h2><table class="memberdecls">
<a class="el" href="group___enums.html#gga4d50d27186f68b2de578e82162206feaa884e0f18fee1bae2472a15f6fb1d7e79">PP_VIDEOPROFILE_MAX</a> = PP_VIDEOPROFILE_VP9_ANY
<br />
}</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a> { <a class="el" href="group___enums.html#ggadadb1eaddb4ea71cb8620db1f4ce301ea7148c3f24ae9baffeae215261460a191">PP_AUDIOPROFILE_OPUS</a> = 0,
+<a class="el" href="group___enums.html#ggadadb1eaddb4ea71cb8620db1f4ce301ea2d878bc8ba09116d5f62bb4965460e77">PP_AUDIOPROFILE_MAX</a> = PP_AUDIOPROFILE_OPUS
+ }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> { <a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5a6208cea63b7e6c1c8c9c67616df4ba85">PP_HARDWAREACCELERATION_ONLY</a> = 0,
<a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5ad29490655cc25165817de26c5caff7ea">PP_HARDWAREACCELERATION_WITHFALLBACK</a> = 1,
<a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5acf901685e6e14afe89e7d22ad35af4e1">PP_HARDWAREACCELERATION_NONE</a> = 2,
@@ -189,13 +192,6 @@ Enumerations</h2><table class="memberdecls">
<a class="el" href="group___enums.html#gga4c87e6dd19c1d49b66a9b37136a82e82a78c13cbbccebfa9c2b8b2f758397795c">PP_FILEOPENFLAG_APPEND</a> = 1 &lt;&lt; 5
<br />
}</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a> { <a class="el" href="group___enums.html#gga07cb383dee51bc7e8e1f234068652668a88619572d7d081c4b657fd8087a164fb">PP_FILEMAPPROTECTION_READ</a> = 1u &lt;&lt; 0,
-<a class="el" href="group___enums.html#gga07cb383dee51bc7e8e1f234068652668aadebe6625bb49b575195f0d4d165c27e">PP_FILEMAPPROTECTION_WRITE</a> = 1u &lt;&lt; 1
- }</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a> { <a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939bada9233097e19d068b7d4ad0ac00140d03c">PP_FILEMAPFLAG_SHARED</a> = 1u &lt;&lt; 0,
-<a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939bada74f65f6fbedce77b36bda16beab65a03">PP_FILEMAPFLAG_PRIVATE</a> = 1u &lt;&lt; 1,
-<a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939badae37402f728fae4078d76a006d36bc26e">PP_FILEMAPFLAG_FIXED</a> = 1u &lt;&lt; 2
- }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gadcb0a92e6ca510586c3f34088d35dc9f">PP_MakeDirectoryFlags</a> { <a class="el" href="group___enums.html#ggadcb0a92e6ca510586c3f34088d35dc9fafeeef418b62780276c4671a57196ad3f">PP_MAKEDIRECTORYFLAG_NONE</a> = 0 &lt;&lt; 0,
<a class="el" href="group___enums.html#ggadcb0a92e6ca510586c3f34088d35dc9fa5c7f89c8784c9d8abfaeae51d9cb84ba">PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS</a> = 1 &lt;&lt; 0,
<a class="el" href="group___enums.html#ggadcb0a92e6ca510586c3f34088d35dc9fa34dd5b5ba9af9e5c820d3c6e21fc2094">PP_MAKEDIRECTORYFLAG_EXCLUSIVE</a> = 1 &lt;&lt; 1
@@ -373,10 +369,15 @@ Enumerations</h2><table class="memberdecls">
<a class="el" href="group___enums.html#gga5fef49ee4c2cc6dcead825340da0f116ad4371ecdd1a6631a78d4721d83062394">PP_TEXTINPUT_TYPE_URL</a> = 7
<br />
}</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> { <a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a79568403b8927bf98bea0f2d38469984">PP_UDPSOCKET_OPTION_ADDRESS_REUSE</a> = 0,
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> { <br />
+&#160;&#160;<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a79568403b8927bf98bea0f2d38469984">PP_UDPSOCKET_OPTION_ADDRESS_REUSE</a> = 0,
<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2aeceda8fe978a52382b96939de7707c00">PP_UDPSOCKET_OPTION_BROADCAST</a> = 1,
<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a905f0adde2912a5db26883d45fb75d57">PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE</a> = 2,
-<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a1264eb1d6d16eb3a074ee3d21ebb3b64">PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE</a> = 3
+<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a1264eb1d6d16eb3a074ee3d21ebb3b64">PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a0cde43fa32bc72658658f9a20c07194c">PP_UDPSOCKET_OPTION_MULTICAST_LOOP</a> = 4,
+<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a29bfa5fc814589e4a5003a5d1c377b82">PP_UDPSOCKET_OPTION_MULTICAST_TTL</a> = 5
+<br />
}</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga41975630f0a4c49e47d4a21754f8402d">PP_URLRequestProperty</a> { <br />
&#160;&#160;<a class="el" href="group___enums.html#gga41975630f0a4c49e47d4a21754f8402da89e44812e771fed9df0ff8994690e44d">PP_URLREQUESTPROPERTY_URL</a> = 0,
@@ -464,8 +465,6 @@ Variables</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gaee750c350655f2fb0fe04c04029e0ff8">PP_AudioSampleRate</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gac39067c0883ec80b94290dd2a3bae440">PP_LogLevel</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga4c87e6dd19c1d49b66a9b37136a82e82">PP_FileOpenFlags</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gadb4b8db19266831040fc604f73c83a25">PP_HostResolver_Flag</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga2ee7ad01799553e5f17bdaa35dd952ee">PP_ImageDataFormat</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gaca7296cfec99fcb6646b7144d1d6a0c5">PP_InputEvent_Type</a></td></tr>
@@ -713,6 +712,27 @@ Variables</h2><table class="memberdecls">
</dl>
</div>
</div>
+<a class="anchor" id="gadadb1eaddb4ea71cb8620db1f4ce301e"></a><!-- doxytag: member="pp_codecs.h::PP_AudioProfile" ref="gadadb1eaddb4ea71cb8620db1f4ce301e" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">enum <a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Audio profiles. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggadadb1eaddb4ea71cb8620db1f4ce301ea7148c3f24ae9baffeae215261460a191"></a><!-- doxytag: member="PP_AUDIOPROFILE_OPUS" ref="ggadadb1eaddb4ea71cb8620db1f4ce301ea7148c3f24ae9baffeae215261460a191" args="" -->PP_AUDIOPROFILE_OPUS</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggadadb1eaddb4ea71cb8620db1f4ce301ea2d878bc8ba09116d5f62bb4965460e77"></a><!-- doxytag: member="PP_AUDIOPROFILE_MAX" ref="ggadadb1eaddb4ea71cb8620db1f4ce301ea2d878bc8ba09116d5f62bb4965460e77" args="" -->PP_AUDIOPROFILE_MAX</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
<a class="anchor" id="gaee750c350655f2fb0fe04c04029e0ff8"></a><!-- doxytag: member="ppb_audio_config.h::PP_AudioSampleRate" ref="gaee750c350655f2fb0fe04c04029e0ff8" args="" -->
<div class="memitem">
<div class="memproto">
@@ -814,59 +834,6 @@ Variables</h2><table class="memberdecls">
</dl>
</div>
</div>
-<a class="anchor" id="ga47ce032e16d18ba6fc6c16bbe8939bad"></a><!-- doxytag: member="ppb_file_mapping.h::PP_FileMapFlags" ref="ga47ce032e16d18ba6fc6c16bbe8939bad" args="" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">enum <a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a></td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-<p>The PP_FileMapFlags contain flag values for use with Map(). </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="gga47ce032e16d18ba6fc6c16bbe8939bada9233097e19d068b7d4ad0ac00140d03c"></a><!-- doxytag: member="PP_FILEMAPFLAG_SHARED" ref="gga47ce032e16d18ba6fc6c16bbe8939bada9233097e19d068b7d4ad0ac00140d03c" args="" -->PP_FILEMAPFLAG_SHARED</em>&nbsp;</td><td>
-<p>Requests a shared mapping. </p>
-<p>If this flag is set, changes written to the memory region will be reflected in the underlying file and will thus eventually be visible to other processes which have opened the file. The file may not actually be updated until Unmap() is called. This is only valid if the PPB_FileIO resource was opened with write permission. </p>
-</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="gga47ce032e16d18ba6fc6c16bbe8939bada74f65f6fbedce77b36bda16beab65a03"></a><!-- doxytag: member="PP_FILEMAPFLAG_PRIVATE" ref="gga47ce032e16d18ba6fc6c16bbe8939bada74f65f6fbedce77b36bda16beab65a03" args="" -->PP_FILEMAPFLAG_PRIVATE</em>&nbsp;</td><td>
-<p>Requests a copy-on-write mapping. </p>
-<p>If this flag is set, changes are not written to the underlying file, but only in the memory of the process (copy-on-write). </p>
-</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="gga47ce032e16d18ba6fc6c16bbe8939badae37402f728fae4078d76a006d36bc26e"></a><!-- doxytag: member="PP_FILEMAPFLAG_FIXED" ref="gga47ce032e16d18ba6fc6c16bbe8939badae37402f728fae4078d76a006d36bc26e" args="" -->PP_FILEMAPFLAG_FIXED</em>&nbsp;</td><td>
-<p>Forces Map() to map the file contents at the provided |address|. </p>
-<p>If Map() can not comply, Map() will fail. </p>
-</td></tr>
-</table>
-</dd>
-</dl>
-</div>
-</div>
-<a class="anchor" id="ga07cb383dee51bc7e8e1f234068652668"></a><!-- doxytag: member="ppb_file_mapping.h::PP_FileMapProtection" ref="ga07cb383dee51bc7e8e1f234068652668" args="" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">enum <a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a></td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-<p>The PP_FileMapProtection values indicate the permissions requested for the file mapping. </p>
-<p>These should be used in a uint32_t bitfield. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="gga07cb383dee51bc7e8e1f234068652668a88619572d7d081c4b657fd8087a164fb"></a><!-- doxytag: member="PP_FILEMAPPROTECTION_READ" ref="gga07cb383dee51bc7e8e1f234068652668a88619572d7d081c4b657fd8087a164fb" args="" -->PP_FILEMAPPROTECTION_READ</em>&nbsp;</td><td>
-<p>Requests read access to the mapped address. </p>
-</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="gga07cb383dee51bc7e8e1f234068652668aadebe6625bb49b575195f0d4d165c27e"></a><!-- doxytag: member="PP_FILEMAPPROTECTION_WRITE" ref="gga07cb383dee51bc7e8e1f234068652668aadebe6625bb49b575195f0d4d165c27e" args="" -->PP_FILEMAPPROTECTION_WRITE</em>&nbsp;</td><td>
-<p>Requests write access to the mapped address. </p>
-</td></tr>
-</table>
-</dd>
-</dl>
-</div>
-</div>
<a class="anchor" id="ga4c87e6dd19c1d49b66a9b37136a82e82"></a><!-- doxytag: member="ppb_file_io.h::PP_FileOpenFlags" ref="ga4c87e6dd19c1d49b66a9b37136a82e82" args="" -->
<div class="memitem">
<div class="memproto">
@@ -1753,6 +1720,16 @@ Variables</h2><table class="memberdecls">
<p>Value's type should be <code>PP_VARTYPE_INT32</code>. On version 1.0, this option can only be set after a successful <code>Bind()</code> call. On version 1.1 or later, there is no such limitation.</p>
<p>Note: This is only treated as a hint for the browser to set the buffer size. Even if <code>SetOption()</code> succeeds, the browser doesn't guarantee it will conform to the size. </p>
</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga1a8472fa3e7150615c45c38fa8c12ce2a0cde43fa32bc72658658f9a20c07194c"></a><!-- doxytag: member="PP_UDPSOCKET_OPTION_MULTICAST_LOOP" ref="gga1a8472fa3e7150615c45c38fa8c12ce2a0cde43fa32bc72658658f9a20c07194c" args="" -->PP_UDPSOCKET_OPTION_MULTICAST_LOOP</em>&nbsp;</td><td>
+<p>Specifies whether the packets sent from the host to the multicast group should be looped back to the host or not. </p>
+<p>Value's type should be <code>PP_VARTYPE_BOOL</code>. This option can only be set before calling <code>Bind()</code>.</p>
+<p>This is only supported in version 1.2 of the API (Chrome 43) and later. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga1a8472fa3e7150615c45c38fa8c12ce2a29bfa5fc814589e4a5003a5d1c377b82"></a><!-- doxytag: member="PP_UDPSOCKET_OPTION_MULTICAST_TTL" ref="gga1a8472fa3e7150615c45c38fa8c12ce2a29bfa5fc814589e4a5003a5d1c377b82" args="" -->PP_UDPSOCKET_OPTION_MULTICAST_TTL</em>&nbsp;</td><td>
+<p>Specifies the time-to-live for packets sent to the multicast group. </p>
+<p>The value should be within 0 to 255 range. The default value is 1 and means that packets will not be routed beyond the local network. Value's type should be <code>PP_VARTYPE_INT32</code>. This option can only be set before calling <code>Bind()</code>.</p>
+<p>This is only supported in version 1.2 of the API (Chrome 43) and later. </p>
+</td></tr>
</table>
</dd>
</dl>
@@ -2178,30 +2155,6 @@ Variables</h2><table class="memberdecls">
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="ga47ce032e16d18ba6fc6c16bbe8939bad"></a><!-- doxytag: member="ppb_file_mapping.h::PP_FileMapFlags" ref="ga47ce032e16d18ba6fc6c16bbe8939bad" args="" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname"><a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a></td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-</div>
-</div>
-<a class="anchor" id="ga07cb383dee51bc7e8e1f234068652668"></a><!-- doxytag: member="ppb_file_mapping.h::PP_FileMapProtection" ref="ga07cb383dee51bc7e8e1f234068652668" args="" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname"><a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a></td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-</div>
-</div>
<a class="anchor" id="ga4c87e6dd19c1d49b66a9b37136a82e82"></a><!-- doxytag: member="ppb_file_io.h::PP_FileOpenFlags" ref="ga4c87e6dd19c1d49b66a9b37136a82e82" args="" -->
<div class="memitem">
<div class="memproto">
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/group___interfaces.html b/native_client_sdk/doc_generated/pepper_dev/c/group___interfaces.html
index e4a64ed8..72f88bb 100644
--- a/native_client_sdk/doc_generated/pepper_dev/c/group___interfaces.html
+++ b/native_client_sdk/doc_generated/pepper_dev/c/group___interfaces.html
@@ -16,6 +16,8 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_buffer__0__1.html">PPB_AudioBuffer</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_config__1__1.html">PPB_AudioConfig</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_AudioConfig</code> interface contains pointers to several functions for establishing your audio configuration within the browser. <a href="struct_p_p_b___audio_config__1__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html">PPB_AudioEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Audio encoder interface. <a href="struct_p_p_b___audio_encoder__0__1.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___compositor__0__1.html">PPB_Compositor</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the <code>PPB_Compositor</code> interface. <a href="struct_p_p_b___compositor__0__1.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___compositor_layer__0__2.html">PPB_CompositorLayer</a></td></tr>
@@ -25,8 +27,6 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_Core</code> interface contains pointers to functions related to memory management, time, and threads on the browser. <a href="struct_p_p_b___core__1__0.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_i_o__1__1.html">PPB_FileIO</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_FileIO</code> struct is used to operate on a regular file (PP_FileType_Regular). <a href="struct_p_p_b___file_i_o__1__1.html#details">More...</a><br /></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_mapping__0__1.html">PPB_FileMapping</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">PPB_FileMapping contains functions for mapping and unmapping files into and out of memory. <a href="struct_p_p_b___file_mapping__0__1.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_ref__1__2.html">PPB_FileRef</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_FileRef</code> struct represents a "weak pointer" to a file in a file system. <a href="struct_p_p_b___file_ref__1__2.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_system__1__0.html">PPB_FileSystem</a></td></tr>
@@ -94,8 +94,8 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_TCPSocket</code> interface provides TCP socket operations. <a href="struct_p_p_b___t_c_p_socket__1__2.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___text_input_controller__1__0.html">PPB_TextInputController</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>PPB_TextInputController</code> provides a set of functions for giving hints to the browser about the text input status of plugins, and functions for controlling input method editors (IMEs). <a href="struct_p_p_b___text_input_controller__1__0.html#details">More...</a><br /></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html">PPB_UDPSocket</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_UDPSocket</code> interface provides UDP socket operations. <a href="struct_p_p_b___u_d_p_socket__1__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_UDPSocket</code> interface provides UDP socket operations. <a href="struct_p_p_b___u_d_p_socket__1__2.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_r_l_loader__1__0.html">PPB_URLLoader</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <b>PPB_URLLoader</b> interface contains pointers to functions for loading URLs. <a href="struct_p_p_b___u_r_l_loader__1__0.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_r_l_request_info__1__0.html">PPB_URLRequestInfo</a></td></tr>
@@ -109,8 +109,10 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_VarArrayBuffer</code> interface provides a way to interact with JavaScript ArrayBuffers, which represent a contiguous sequence of bytes. <a href="struct_p_p_b___var_array_buffer__1__0.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___var_dictionary__1__0.html">PPB_VarDictionary</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A dictionary var contains key-value pairs with unique keys. <a href="struct_p_p_b___var_dictionary__1__0.html#details">More...</a><br /></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video decoder interface. <a href="struct_p_p_b___video_decoder__1__0.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video decoder interface. <a href="struct_p_p_b___video_decoder__1__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video encoder interface. <a href="struct_p_p_b___video_encoder__0__2.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_frame__0__1.html">PPB_VideoFrame</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___view__1__2.html">PPB_View</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>PPB_View</code> represents the state of the view of an instance. <a href="struct_p_p_b___view__1__2.html#details">More...</a><br /></td></tr>
@@ -169,7 +171,7 @@ Typedefs</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html">PPB_TCPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga68e25baffc8cfc72d6c636a3a6217aa0">PPB_TCPSocket</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak" />
<a class="el" href="struct_p_p_b___text_input_controller__1__0.html">PPB_TextInputController</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gab387085f6044f3a0b1631d119d22a942">PPB_TextInputController</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html">PPB_UDPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga03552c99ad9e2a408a988822f834f548">PPB_UDPSocket</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gac45ce5bed449ca63680c4769663fd2b1">PPB_UDPSocket</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___u_r_l_loader__1__0.html">PPB_URLLoader</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga307f562a9e41991de7c80b75cd7f379c">PPB_URLLoader</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak" />
<a class="el" href="struct_p_p_b___u_r_l_request_info__1__0.html">PPB_URLRequestInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gad60387934d9e235d3d145ee5a1fb4e74">PPB_URLRequestInfo</a></td></tr>
@@ -181,7 +183,8 @@ Typedefs</h2><table class="memberdecls">
<a class="el" href="struct_p_p_b___var_array_buffer__1__0.html">PPB_VarArrayBuffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gab26d5bb032f5438d02faf5bdf7b208cb">PPB_VarArrayBuffer</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak" />
<a class="el" href="struct_p_p_b___var_dictionary__1__0.html">PPB_VarDictionary</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga69826004b5c32232c9639090f3e1db2e">PPB_VarDictionary</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga2b4555d8bd239fa28b60c42df75f7ce5">PPB_VideoDecoder</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga3bfb47f476c3153e5638265c17702ed9">PPB_VideoDecoder</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga1a72f170f2aaa94cd41aa16949e27973">PPB_VideoEncoder</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_frame__0__1.html">PPB_VideoFrame</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gaa76d004c840f6c4f64a0694e7c844ae9">PPB_VideoFrame</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___view__1__2.html">PPB_View</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga116e11e23c92c99094c9704d97636a67">PPB_View</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___web_socket__1__0.html">PPB_WebSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gad0e152d14cefb0b480228f3fc7070faf">PPB_WebSocket</a></td></tr>
@@ -566,12 +569,12 @@ Typedefs</h2><table class="memberdecls">
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="ga03552c99ad9e2a408a988822f834f548"></a><!-- doxytag: member="ppb_udp_socket.h::PPB_UDPSocket" ref="ga03552c99ad9e2a408a988822f834f548" args="" -->
+<a class="anchor" id="gac45ce5bed449ca63680c4769663fd2b1"></a><!-- doxytag: member="ppb_udp_socket.h::PPB_UDPSocket" ref="gac45ce5bed449ca63680c4769663fd2b1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html">PPB_UDPSocket</a> <a class="el" href="group___interfaces.html#ga03552c99ad9e2a408a988822f834f548">PPB_UDPSocket</a></td>
+<td class="memname">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a> <a class="el" href="group___interfaces.html#gac45ce5bed449ca63680c4769663fd2b1">PPB_UDPSocket</a></td>
</tr>
</table>
</div>
@@ -662,12 +665,24 @@ Typedefs</h2><table class="memberdecls">
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="ga2b4555d8bd239fa28b60c42df75f7ce5"></a><!-- doxytag: member="ppb_video_decoder.h::PPB_VideoDecoder" ref="ga2b4555d8bd239fa28b60c42df75f7ce5" args="" -->
+<a class="anchor" id="ga3bfb47f476c3153e5638265c17702ed9"></a><!-- doxytag: member="ppb_video_decoder.h::PPB_VideoDecoder" ref="ga3bfb47f476c3153e5638265c17702ed9" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a> <a class="el" href="group___interfaces.html#ga2b4555d8bd239fa28b60c42df75f7ce5">PPB_VideoDecoder</a></td>
+<td class="memname">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a> <a class="el" href="group___interfaces.html#ga3bfb47f476c3153e5638265c17702ed9">PPB_VideoDecoder</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+</div>
+</div>
+<a class="anchor" id="ga1a72f170f2aaa94cd41aa16949e27973"></a><!-- doxytag: member="ppb_video_encoder.h::PPB_VideoEncoder" ref="ga1a72f170f2aaa94cd41aa16949e27973" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">typedef struct <a class="el" href="struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a> <a class="el" href="group___interfaces.html#ga1a72f170f2aaa94cd41aa16949e27973">PPB_VideoEncoder</a></td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/group___structs.html b/native_client_sdk/doc_generated/pepper_dev/c/group___structs.html
index 1bf6366..1bbd2a7 100644
--- a/native_client_sdk/doc_generated/pepper_dev/c/group___structs.html
+++ b/native_client_sdk/doc_generated/pepper_dev/c/group___structs.html
@@ -17,6 +17,16 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a decoded video picture. <a href="struct_p_p___video_picture.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_picture__0__1.html">PP_VideoPicture</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a decoded video picture. <a href="struct_p_p___video_picture__0__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html">PP_VideoProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported video profile information. <a href="struct_p_p___video_profile_description.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html">PP_VideoProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported video profile information. <a href="struct_p_p___video_profile_description__0__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html">PP_AudioProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported audio profile information. <a href="struct_p_p___audio_profile_description.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a bitstream buffer. <a href="struct_p_p___bitstream_buffer.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing an audio bitstream buffer. <a href="struct_p_p___audio_bitstream_buffer.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> is a common mechanism for supporting potentially asynchronous calls in browser interfaces. <a href="struct_p_p___completion_callback.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___directory_entry.html">PP_DirectoryEntry</a></td></tr>
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/pp__codecs_8h.html b/native_client_sdk/doc_generated/pepper_dev/c/pp__codecs_8h.html
index c9cbed8..5e4b639 100644
--- a/native_client_sdk/doc_generated/pepper_dev/c/pp__codecs_8h.html
+++ b/native_client_sdk/doc_generated/pepper_dev/c/pp__codecs_8h.html
@@ -23,6 +23,16 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a decoded video picture. <a href="struct_p_p___video_picture.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_picture__0__1.html">PP_VideoPicture</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a decoded video picture. <a href="struct_p_p___video_picture__0__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html">PP_VideoProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported video profile information. <a href="struct_p_p___video_profile_description.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html">PP_VideoProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported video profile information. <a href="struct_p_p___video_profile_description__0__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html">PP_AudioProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported audio profile information. <a href="struct_p_p___audio_profile_description.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a bitstream buffer. <a href="struct_p_p___bitstream_buffer.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing an audio bitstream buffer. <a href="struct_p_p___audio_bitstream_buffer.html#details">More...</a><br /></td></tr>
</table><h2>
Enumerations</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> { <br />
@@ -45,6 +55,9 @@ Enumerations</h2><table class="memberdecls">
<a class="el" href="group___enums.html#gga4d50d27186f68b2de578e82162206feaa884e0f18fee1bae2472a15f6fb1d7e79">PP_VIDEOPROFILE_MAX</a> = PP_VIDEOPROFILE_VP9_ANY
<br />
}</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a> { <a class="el" href="group___enums.html#ggadadb1eaddb4ea71cb8620db1f4ce301ea7148c3f24ae9baffeae215261460a191">PP_AUDIOPROFILE_OPUS</a> = 0,
+<a class="el" href="group___enums.html#ggadadb1eaddb4ea71cb8620db1f4ce301ea2d878bc8ba09116d5f62bb4965460e77">PP_AUDIOPROFILE_MAX</a> = PP_AUDIOPROFILE_OPUS
+ }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> { <a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5a6208cea63b7e6c1c8c9c67616df4ba85">PP_HARDWAREACCELERATION_ONLY</a> = 0,
<a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5ad29490655cc25165817de26c5caff7ea">PP_HARDWAREACCELERATION_WITHFALLBACK</a> = 1,
<a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5acf901685e6e14afe89e7d22ad35af4e1">PP_HARDWAREACCELERATION_NONE</a> = 2,
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/pp__codecs_8h__incl.png b/native_client_sdk/doc_generated/pepper_dev/c/pp__codecs_8h__incl.png
index e74f895..d5c4e9a 100644
--- a/native_client_sdk/doc_generated/pepper_dev/c/pp__codecs_8h__incl.png
+++ b/native_client_sdk/doc_generated/pepper_dev/c/pp__codecs_8h__incl.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/ppb__audio__encoder_8h.html b/native_client_sdk/doc_generated/pepper_dev/c/ppb__audio__encoder_8h.html
new file mode 100644
index 0000000..04270d5
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/c/ppb__audio__encoder_8h.html
@@ -0,0 +1,45 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>ppb_audio_encoder.h File Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<div class="textblock"><div class="dynheader">
+Include dependency graph for ppb_audio_encoder.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="ppb__audio__encoder_8h__incl.png" border="0" usemap="#ppb__audio__encoder_8h" alt="" /></div>
+<map name="ppb__audio__encoder_8h" id="ppb__audio__encoder_8h">
+</map>
+</div>
+</div><h2>
+Data Structures</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html">PPB_AudioEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Audio encoder interface. <a href="struct_p_p_b___audio_encoder__0__1.html#details">More...</a><br /></td></tr>
+</table><h2>
+Defines</h2><table class="memberdecls">
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__audio__encoder_8h.html#a4c4871532f8ac42a5a98f9f0aaac27a6">PPB_AUDIOENCODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_AudioEncoder;0.1&quot; /* dev */</td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file defines the <code>PPB_AudioEncoder</code> interface. </p>
+</div><hr /><h2>Define Documentation</h2>
+<a class="anchor" id="a4c4871532f8ac42a5a98f9f0aaac27a6"></a><!-- doxytag: member="ppb_audio_encoder.h::PPB_AUDIOENCODER_INTERFACE" ref="a4c4871532f8ac42a5a98f9f0aaac27a6" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">#define <a class="el" href="ppb__audio__encoder_8h.html#a4c4871532f8ac42a5a98f9f0aaac27a6">PPB_AUDIOENCODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_AudioEncoder;0.1&quot; /* dev */</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+</div>
+</div>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/ppb__audio__encoder_8h__incl.png b/native_client_sdk/doc_generated/pepper_dev/c/ppb__audio__encoder_8h__incl.png
new file mode 100644
index 0000000..0e98fe6
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/c/ppb__audio__encoder_8h__incl.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/ppb__file__mapping_8h.html b/native_client_sdk/doc_generated/pepper_dev/c/ppb__file__mapping_8h.html
deleted file mode 100644
index c5aba95..0000000
--- a/native_client_sdk/doc_generated/pepper_dev/c/ppb__file__mapping_8h.html
+++ /dev/null
@@ -1,58 +0,0 @@
-{{+bindTo:partials.standard_nacl_api}}
-<h1>ppb_file_mapping.h File Reference</h1>
-<div id="doxygen-ref">
-{{- dummy div to appease doxygen -}}
- <div>
-<!-- Generated by Doxygen 1.7.6.1 -->
-
-
-</div>
-<!--header-->
-<div class="contents">
-<div class="textblock"><div class="dynheader">
-Include dependency graph for ppb_file_mapping.h:</div>
-<div class="dyncontent">
-<div class="center"><img src="ppb__file__mapping_8h__incl.png" border="0" usemap="#ppb__file__mapping_8h" alt="" /></div>
-<map name="ppb__file__mapping_8h" id="ppb__file__mapping_8h">
-</map>
-</div>
-</div><h2>
-Data Structures</h2><table class="memberdecls">
-
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_mapping__0__1.html">PPB_FileMapping</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">PPB_FileMapping contains functions for mapping and unmapping files into and out of memory. <a href="struct_p_p_b___file_mapping__0__1.html#details">More...</a><br /></td></tr>
-</table><h2>
-Defines</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__file__mapping_8h.html#a657d5d4684814f79fd2c764fd8aa540e">PPB_FILEMAPPING_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_FileMapping;0.1&quot; /* dev */</td></tr>
-</table><h2>
-Enumerations</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a> { <a class="el" href="group___enums.html#gga07cb383dee51bc7e8e1f234068652668a88619572d7d081c4b657fd8087a164fb">PP_FILEMAPPROTECTION_READ</a> = 1u &lt;&lt; 0,
-<a class="el" href="group___enums.html#gga07cb383dee51bc7e8e1f234068652668aadebe6625bb49b575195f0d4d165c27e">PP_FILEMAPPROTECTION_WRITE</a> = 1u &lt;&lt; 1
- }</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a> { <a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939bada9233097e19d068b7d4ad0ac00140d03c">PP_FILEMAPFLAG_SHARED</a> = 1u &lt;&lt; 0,
-<a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939bada74f65f6fbedce77b36bda16beab65a03">PP_FILEMAPFLAG_PRIVATE</a> = 1u &lt;&lt; 1,
-<a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939badae37402f728fae4078d76a006d36bc26e">PP_FILEMAPFLAG_FIXED</a> = 1u &lt;&lt; 2
- }</td></tr>
-</table><h2>
-Variables</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a></td></tr>
-</table>
-<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>This file defines methods for mapping and unmapping files into and out of memory. </p>
-</div><hr /><h2>Define Documentation</h2>
-<a class="anchor" id="a657d5d4684814f79fd2c764fd8aa540e"></a><!-- doxytag: member="ppb_file_mapping.h::PPB_FILEMAPPING_INTERFACE" ref="a657d5d4684814f79fd2c764fd8aa540e" args="" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">#define <a class="el" href="ppb__file__mapping_8h.html#a657d5d4684814f79fd2c764fd8aa540e">PPB_FILEMAPPING_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_FileMapping;0.1&quot; /* dev */</td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-</div>
-</div>
-</div><!-- contents -->
-</div>
-{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/ppb__file__mapping_8h__incl.png b/native_client_sdk/doc_generated/pepper_dev/c/ppb__file__mapping_8h__incl.png
deleted file mode 100644
index 45abc54..0000000
--- a/native_client_sdk/doc_generated/pepper_dev/c/ppb__file__mapping_8h__incl.png
+++ /dev/null
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/ppb__udp__socket_8h.html b/native_client_sdk/doc_generated/pepper_dev/c/ppb__udp__socket_8h.html
index 130ae3d..b26a466 100644
--- a/native_client_sdk/doc_generated/pepper_dev/c/ppb__udp__socket_8h.html
+++ b/native_client_sdk/doc_generated/pepper_dev/c/ppb__udp__socket_8h.html
@@ -19,21 +19,26 @@ Include dependency graph for ppb_udp_socket.h:</div>
</div><h2>
Data Structures</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html">PPB_UDPSocket</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_UDPSocket</code> interface provides UDP socket operations. <a href="struct_p_p_b___u_d_p_socket__1__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_UDPSocket</code> interface provides UDP socket operations. <a href="struct_p_p_b___u_d_p_socket__1__2.html#details">More...</a><br /></td></tr>
</table><h2>
Defines</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__udp__socket_8h.html#a756bacac14becc5cbc2efedcd3ccd509">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_UDPSocket;1.1&quot;</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__udp__socket_8h.html#a673aeb3fceb5ed977b7b8683f674cbfd">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__udp__socket_8h.html#a756bacac14becc5cbc2efedcd3ccd509">PPB_UDPSOCKET_INTERFACE</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__udp__socket_8h.html#ad6bc6ae5b1d72251b6b81fdd7d8009f7">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_UDPSocket;1.2&quot;</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__udp__socket_8h.html#a673aeb3fceb5ed977b7b8683f674cbfd">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__udp__socket_8h.html#ad6bc6ae5b1d72251b6b81fdd7d8009f7">PPB_UDPSOCKET_INTERFACE</a></td></tr>
</table><h2>
Typedefs</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html">PPB_UDPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga03552c99ad9e2a408a988822f834f548">PPB_UDPSocket</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gac45ce5bed449ca63680c4769663fd2b1">PPB_UDPSocket</a></td></tr>
</table><h2>
Enumerations</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> { <a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a79568403b8927bf98bea0f2d38469984">PP_UDPSOCKET_OPTION_ADDRESS_REUSE</a> = 0,
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> { <br />
+&#160;&#160;<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a79568403b8927bf98bea0f2d38469984">PP_UDPSOCKET_OPTION_ADDRESS_REUSE</a> = 0,
<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2aeceda8fe978a52382b96939de7707c00">PP_UDPSOCKET_OPTION_BROADCAST</a> = 1,
<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a905f0adde2912a5db26883d45fb75d57">PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE</a> = 2,
-<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a1264eb1d6d16eb3a074ee3d21ebb3b64">PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE</a> = 3
+<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a1264eb1d6d16eb3a074ee3d21ebb3b64">PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a0cde43fa32bc72658658f9a20c07194c">PP_UDPSOCKET_OPTION_MULTICAST_LOOP</a> = 4,
+<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a29bfa5fc814589e4a5003a5d1c377b82">PP_UDPSOCKET_OPTION_MULTICAST_TTL</a> = 5
+<br />
}</td></tr>
</table><h2>
Variables</h2><table class="memberdecls">
@@ -47,19 +52,19 @@ Variables</h2><table class="memberdecls">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">#define <a class="el" href="ppb__udp__socket_8h.html#a673aeb3fceb5ed977b7b8683f674cbfd">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__udp__socket_8h.html#a756bacac14becc5cbc2efedcd3ccd509">PPB_UDPSOCKET_INTERFACE</a></td>
+<td class="memname">#define <a class="el" href="ppb__udp__socket_8h.html#a673aeb3fceb5ed977b7b8683f674cbfd">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__udp__socket_8h.html#ad6bc6ae5b1d72251b6b81fdd7d8009f7">PPB_UDPSOCKET_INTERFACE</a></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="a756bacac14becc5cbc2efedcd3ccd509"></a><!-- doxytag: member="ppb_udp_socket.h::PPB_UDPSOCKET_INTERFACE" ref="a756bacac14becc5cbc2efedcd3ccd509" args="" -->
+<a class="anchor" id="ad6bc6ae5b1d72251b6b81fdd7d8009f7"></a><!-- doxytag: member="ppb_udp_socket.h::PPB_UDPSOCKET_INTERFACE" ref="ad6bc6ae5b1d72251b6b81fdd7d8009f7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">#define <a class="el" href="ppb__udp__socket_8h.html#a756bacac14becc5cbc2efedcd3ccd509">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_UDPSocket;1.1&quot;</td>
+<td class="memname">#define <a class="el" href="ppb__udp__socket_8h.html#ad6bc6ae5b1d72251b6b81fdd7d8009f7">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_UDPSocket;1.2&quot;</td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/ppb__video__decoder_8h.html b/native_client_sdk/doc_generated/pepper_dev/c/ppb__video__decoder_8h.html
index 212d41a..51449aa 100644
--- a/native_client_sdk/doc_generated/pepper_dev/c/ppb__video__decoder_8h.html
+++ b/native_client_sdk/doc_generated/pepper_dev/c/ppb__video__decoder_8h.html
@@ -19,15 +19,15 @@ Include dependency graph for ppb_video_decoder.h:</div>
</div><h2>
Data Structures</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video decoder interface. <a href="struct_p_p_b___video_decoder__1__0.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video decoder interface. <a href="struct_p_p_b___video_decoder__1__1.html#details">More...</a><br /></td></tr>
</table><h2>
Defines</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__decoder_8h.html#af814c8f0028bce254da6fb5c3e61a4d8">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoDecoder;1.0&quot;</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__decoder_8h.html#ae369609aebfa745c1836ef92e9b76aa2">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__decoder_8h.html#af814c8f0028bce254da6fb5c3e61a4d8">PPB_VIDEODECODER_INTERFACE</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__decoder_8h.html#ac9994bddaa7ccc8f52799a00031d5441">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoDecoder;1.1&quot;</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__decoder_8h.html#ae369609aebfa745c1836ef92e9b76aa2">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__decoder_8h.html#ac9994bddaa7ccc8f52799a00031d5441">PPB_VIDEODECODER_INTERFACE</a></td></tr>
</table><h2>
Typedefs</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga2b4555d8bd239fa28b60c42df75f7ce5">PPB_VideoDecoder</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga3bfb47f476c3153e5638265c17702ed9">PPB_VideoDecoder</a></td></tr>
</table>
<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This file defines the <code>PPB_VideoDecoder</code> interface. </p>
@@ -37,19 +37,19 @@ Typedefs</h2><table class="memberdecls">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">#define <a class="el" href="ppb__video__decoder_8h.html#ae369609aebfa745c1836ef92e9b76aa2">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__decoder_8h.html#af814c8f0028bce254da6fb5c3e61a4d8">PPB_VIDEODECODER_INTERFACE</a></td>
+<td class="memname">#define <a class="el" href="ppb__video__decoder_8h.html#ae369609aebfa745c1836ef92e9b76aa2">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__decoder_8h.html#ac9994bddaa7ccc8f52799a00031d5441">PPB_VIDEODECODER_INTERFACE</a></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="af814c8f0028bce254da6fb5c3e61a4d8"></a><!-- doxytag: member="ppb_video_decoder.h::PPB_VIDEODECODER_INTERFACE" ref="af814c8f0028bce254da6fb5c3e61a4d8" args="" -->
+<a class="anchor" id="ac9994bddaa7ccc8f52799a00031d5441"></a><!-- doxytag: member="ppb_video_decoder.h::PPB_VIDEODECODER_INTERFACE" ref="ac9994bddaa7ccc8f52799a00031d5441" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">#define <a class="el" href="ppb__video__decoder_8h.html#af814c8f0028bce254da6fb5c3e61a4d8">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoDecoder;1.0&quot;</td>
+<td class="memname">#define <a class="el" href="ppb__video__decoder_8h.html#ac9994bddaa7ccc8f52799a00031d5441">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoDecoder;1.1&quot;</td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/ppb__video__encoder_8h.html b/native_client_sdk/doc_generated/pepper_dev/c/ppb__video__encoder_8h.html
new file mode 100644
index 0000000..7c900c3
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/c/ppb__video__encoder_8h.html
@@ -0,0 +1,61 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>ppb_video_encoder.h File Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<div class="textblock"><div class="dynheader">
+Include dependency graph for ppb_video_encoder.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="ppb__video__encoder_8h__incl.png" border="0" usemap="#ppb__video__encoder_8h" alt="" /></div>
+<map name="ppb__video__encoder_8h" id="ppb__video__encoder_8h">
+</map>
+</div>
+</div><h2>
+Data Structures</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video encoder interface. <a href="struct_p_p_b___video_encoder__0__2.html#details">More...</a><br /></td></tr>
+</table><h2>
+Defines</h2><table class="memberdecls">
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__encoder_8h.html#af8c3e2794a4f7f9cbd6c253cbacfe177">PPB_VIDEOENCODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoEncoder;0.2&quot;</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__encoder_8h.html#abdb2ab6ab0553f6b0086aee71996ea3d">PPB_VIDEOENCODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__encoder_8h.html#af8c3e2794a4f7f9cbd6c253cbacfe177">PPB_VIDEOENCODER_INTERFACE</a></td></tr>
+</table><h2>
+Typedefs</h2><table class="memberdecls">
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga1a72f170f2aaa94cd41aa16949e27973">PPB_VideoEncoder</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file defines the <code>PPB_VideoEncoder</code> interface. </p>
+</div><hr /><h2>Define Documentation</h2>
+<a class="anchor" id="abdb2ab6ab0553f6b0086aee71996ea3d"></a><!-- doxytag: member="ppb_video_encoder.h::PPB_VIDEOENCODER_INTERFACE" ref="abdb2ab6ab0553f6b0086aee71996ea3d" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">#define <a class="el" href="ppb__video__encoder_8h.html#abdb2ab6ab0553f6b0086aee71996ea3d">PPB_VIDEOENCODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__encoder_8h.html#af8c3e2794a4f7f9cbd6c253cbacfe177">PPB_VIDEOENCODER_INTERFACE</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+</div>
+</div>
+<a class="anchor" id="af8c3e2794a4f7f9cbd6c253cbacfe177"></a><!-- doxytag: member="ppb_video_encoder.h::PPB_VIDEOENCODER_INTERFACE" ref="af8c3e2794a4f7f9cbd6c253cbacfe177" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">#define <a class="el" href="ppb__video__encoder_8h.html#af8c3e2794a4f7f9cbd6c253cbacfe177">PPB_VIDEOENCODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoEncoder;0.2&quot;</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+</div>
+</div>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/ppb__video__encoder_8h__incl.png b/native_client_sdk/doc_generated/pepper_dev/c/ppb__video__encoder_8h__incl.png
new file mode 100644
index 0000000..6ecf720
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/c/ppb__video__encoder_8h__incl.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___audio_bitstream_buffer.html b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___audio_bitstream_buffer.html
new file mode 100644
index 0000000..8cdf217
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___audio_bitstream_buffer.html
@@ -0,0 +1,52 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PP_AudioBitstreamBuffer Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PP_AudioBitstreamBuffer" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_bitstream_buffer.html#ab76b8c0357d850c84ff417aa1282f3da">size</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_bitstream_buffer.html#a888a0bc135ab6e5e434927309eb5fe9a">buffer</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Struct describing an audio bitstream buffer. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="a888a0bc135ab6e5e434927309eb5fe9a"></a><!-- doxytag: member="PP_AudioBitstreamBuffer::buffer" ref="a888a0bc135ab6e5e434927309eb5fe9a" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void* <a class="el" href="struct_p_p___audio_bitstream_buffer.html#a888a0bc135ab6e5e434927309eb5fe9a">PP_AudioBitstreamBuffer::buffer</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The base address of the bitstream data. </p>
+</div>
+</div>
+<a class="anchor" id="ab76b8c0357d850c84ff417aa1282f3da"></a><!-- doxytag: member="PP_AudioBitstreamBuffer::size" ref="ab76b8c0357d850c84ff417aa1282f3da" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___audio_bitstream_buffer.html#ab76b8c0357d850c84ff417aa1282f3da">PP_AudioBitstreamBuffer::size</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The size, in bytes, of the bitstream data. </p>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="pp__codecs_8h.html">pp_codecs.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___audio_profile_description.html b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___audio_profile_description.html
new file mode 100644
index 0000000..ba55b78
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___audio_profile_description.html
@@ -0,0 +1,95 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PP_AudioProfileDescription Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PP_AudioProfileDescription" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html#a4253ebb9ec2065525a4b9c948111d896">profile</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html#a4806e98fc63b158b26b293c4de803667">max_channels</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html#a1a340d0676442d0dfad60219c6dd3886">sample_size</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html#a266fce27c0c60cd5648ec331da9f04cf">sample_rate</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html#a3f77a750a3d903e565deae13d8d814b4">hardware_accelerated</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Supported audio profile information. </p>
+<p>See the PPB_AudioEncoder function GetSupportedProfiles() for more details. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="a3f77a750a3d903e565deae13d8d814b4"></a><!-- doxytag: member="PP_AudioProfileDescription::hardware_accelerated" ref="a3f77a750a3d903e565deae13d8d814b4" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a> <a class="el" href="struct_p_p___audio_profile_description.html#a3f77a750a3d903e565deae13d8d814b4">PP_AudioProfileDescription::hardware_accelerated</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Whether the profile is hardware accelerated. </p>
+</div>
+</div>
+<a class="anchor" id="a4806e98fc63b158b26b293c4de803667"></a><!-- doxytag: member="PP_AudioProfileDescription::max_channels" ref="a4806e98fc63b158b26b293c4de803667" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___audio_profile_description.html#a4806e98fc63b158b26b293c4de803667">PP_AudioProfileDescription::max_channels</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Maximum number of channels that can be encoded. </p>
+</div>
+</div>
+<a class="anchor" id="a4253ebb9ec2065525a4b9c948111d896"></a><!-- doxytag: member="PP_AudioProfileDescription::profile" ref="a4253ebb9ec2065525a4b9c948111d896" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a> <a class="el" href="struct_p_p___audio_profile_description.html#a4253ebb9ec2065525a4b9c948111d896">PP_AudioProfileDescription::profile</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The codec profile. </p>
+</div>
+</div>
+<a class="anchor" id="a266fce27c0c60cd5648ec331da9f04cf"></a><!-- doxytag: member="PP_AudioProfileDescription::sample_rate" ref="a266fce27c0c60cd5648ec331da9f04cf" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___audio_profile_description.html#a266fce27c0c60cd5648ec331da9f04cf">PP_AudioProfileDescription::sample_rate</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Sampling rate that can be encoded. </p>
+</div>
+</div>
+<a class="anchor" id="a1a340d0676442d0dfad60219c6dd3886"></a><!-- doxytag: member="PP_AudioProfileDescription::sample_size" ref="a1a340d0676442d0dfad60219c6dd3886" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___audio_profile_description.html#a1a340d0676442d0dfad60219c6dd3886">PP_AudioProfileDescription::sample_size</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Sample size. </p>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="pp__codecs_8h.html">pp_codecs.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___bitstream_buffer.html b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___bitstream_buffer.html
new file mode 100644
index 0000000..a97c869
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___bitstream_buffer.html
@@ -0,0 +1,66 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PP_BitstreamBuffer Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PP_BitstreamBuffer" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___bitstream_buffer.html#aaa6f173b3478e960f26d87ae417f5d09">size</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___bitstream_buffer.html#a864bd5618ebcdb6bb743e5699c0dff39">buffer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___bitstream_buffer.html#a4ae08468a70d30e5d8124d713f8e8c47">key_frame</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Struct describing a bitstream buffer. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="a864bd5618ebcdb6bb743e5699c0dff39"></a><!-- doxytag: member="PP_BitstreamBuffer::buffer" ref="a864bd5618ebcdb6bb743e5699c0dff39" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void* <a class="el" href="struct_p_p___bitstream_buffer.html#a864bd5618ebcdb6bb743e5699c0dff39">PP_BitstreamBuffer::buffer</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The base address of the bitstream data. </p>
+</div>
+</div>
+<a class="anchor" id="a4ae08468a70d30e5d8124d713f8e8c47"></a><!-- doxytag: member="PP_BitstreamBuffer::key_frame" ref="a4ae08468a70d30e5d8124d713f8e8c47" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a> <a class="el" href="struct_p_p___bitstream_buffer.html#a4ae08468a70d30e5d8124d713f8e8c47">PP_BitstreamBuffer::key_frame</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Whether the buffer represents a key frame. </p>
+</div>
+</div>
+<a class="anchor" id="aaa6f173b3478e960f26d87ae417f5d09"></a><!-- doxytag: member="PP_BitstreamBuffer::size" ref="aaa6f173b3478e960f26d87ae417f5d09" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___bitstream_buffer.html#aaa6f173b3478e960f26d87ae417f5d09">PP_BitstreamBuffer::size</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The size, in bytes, of the bitstream data. </p>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="pp__codecs_8h.html">pp_codecs.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___video_profile_description.html b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___video_profile_description.html
new file mode 100644
index 0000000..54ea6d9
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___video_profile_description.html
@@ -0,0 +1,95 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PP_VideoProfileDescription Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PP_VideoProfileDescription" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html#aa4cf8bf248f49de606d5bda97c5b4ae1">profile</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="struct_p_p___size.html">PP_Size</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html#aa53694c107dc67256986b95e62ca13a2">max_resolution</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html#a21f8d2e8f5b995afb27edd43667f3eed">max_framerate_numerator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html#aa4b5113713acbb32d92145ac9f3a925f">max_framerate_denominator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html#a10da7a8d059171fcf5bd907a6d9c0e60">hardware_accelerated</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Supported video profile information. </p>
+<p>See the PPB_VideoEncoder function GetSupportedProfiles() for more details. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="a10da7a8d059171fcf5bd907a6d9c0e60"></a><!-- doxytag: member="PP_VideoProfileDescription::hardware_accelerated" ref="a10da7a8d059171fcf5bd907a6d9c0e60" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a> <a class="el" href="struct_p_p___video_profile_description.html#a10da7a8d059171fcf5bd907a6d9c0e60">PP_VideoProfileDescription::hardware_accelerated</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Whether the profile is hardware accelerated. </p>
+</div>
+</div>
+<a class="anchor" id="aa4b5113713acbb32d92145ac9f3a925f"></a><!-- doxytag: member="PP_VideoProfileDescription::max_framerate_denominator" ref="aa4b5113713acbb32d92145ac9f3a925f" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___video_profile_description.html#aa4b5113713acbb32d92145ac9f3a925f">PP_VideoProfileDescription::max_framerate_denominator</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The denominator of the maximum frame rate. </p>
+</div>
+</div>
+<a class="anchor" id="a21f8d2e8f5b995afb27edd43667f3eed"></a><!-- doxytag: member="PP_VideoProfileDescription::max_framerate_numerator" ref="a21f8d2e8f5b995afb27edd43667f3eed" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___video_profile_description.html#a21f8d2e8f5b995afb27edd43667f3eed">PP_VideoProfileDescription::max_framerate_numerator</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The numerator of the maximum frame rate. </p>
+</div>
+</div>
+<a class="anchor" id="aa53694c107dc67256986b95e62ca13a2"></a><!-- doxytag: member="PP_VideoProfileDescription::max_resolution" ref="aa53694c107dc67256986b95e62ca13a2" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">struct <a class="el" href="struct_p_p___size.html">PP_Size</a> <a class="el" href="struct_p_p___video_profile_description.html#aa53694c107dc67256986b95e62ca13a2">PP_VideoProfileDescription::max_resolution</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Dimensions of the maximum resolution of video frames, in pixels. </p>
+</div>
+</div>
+<a class="anchor" id="aa4cf8bf248f49de606d5bda97c5b4ae1"></a><!-- doxytag: member="PP_VideoProfileDescription::profile" ref="aa4cf8bf248f49de606d5bda97c5b4ae1" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> <a class="el" href="struct_p_p___video_profile_description.html#aa4cf8bf248f49de606d5bda97c5b4ae1">PP_VideoProfileDescription::profile</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The codec profile. </p>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="pp__codecs_8h.html">pp_codecs.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___video_profile_description__0__1.html b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___video_profile_description__0__1.html
new file mode 100644
index 0000000..a6d7c86
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p___video_profile_description__0__1.html
@@ -0,0 +1,95 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PP_VideoProfileDescription Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PP_VideoProfileDescription" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html#a97e76f7bc9c271fdd8b8964670711f65">profile</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="struct_p_p___size.html">PP_Size</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html#ab3ffdab3497ff29df3d31e44c560f2f4">max_resolution</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html#a01c7a68c5b96c3d2cc048e35d82330dd">max_framerate_numerator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html#a5339510fd2f94fde1e83f81b9bd47aa8">max_framerate_denominator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html#a4d558d8ca3c8903544cb1f12c07d2a42">acceleration</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Supported video profile information. </p>
+<p>See the PPB_VideoEncoder function GetSupportedProfiles() for more details. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="a4d558d8ca3c8903544cb1f12c07d2a42"></a><!-- doxytag: member="PP_VideoProfileDescription::acceleration" ref="a4d558d8ca3c8903544cb1f12c07d2a42" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> <a class="el" href="struct_p_p___video_profile_description__0__1.html#a4d558d8ca3c8903544cb1f12c07d2a42">PP_VideoProfileDescription::acceleration</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>A value indicating if the profile is available in hardware, software, or both. </p>
+</div>
+</div>
+<a class="anchor" id="a5339510fd2f94fde1e83f81b9bd47aa8"></a><!-- doxytag: member="PP_VideoProfileDescription::max_framerate_denominator" ref="a5339510fd2f94fde1e83f81b9bd47aa8" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___video_profile_description__0__1.html#a5339510fd2f94fde1e83f81b9bd47aa8">PP_VideoProfileDescription::max_framerate_denominator</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The denominator of the maximum frame rate. </p>
+</div>
+</div>
+<a class="anchor" id="a01c7a68c5b96c3d2cc048e35d82330dd"></a><!-- doxytag: member="PP_VideoProfileDescription::max_framerate_numerator" ref="a01c7a68c5b96c3d2cc048e35d82330dd" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___video_profile_description__0__1.html#a01c7a68c5b96c3d2cc048e35d82330dd">PP_VideoProfileDescription::max_framerate_numerator</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The numerator of the maximum frame rate. </p>
+</div>
+</div>
+<a class="anchor" id="ab3ffdab3497ff29df3d31e44c560f2f4"></a><!-- doxytag: member="PP_VideoProfileDescription::max_resolution" ref="ab3ffdab3497ff29df3d31e44c560f2f4" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">struct <a class="el" href="struct_p_p___size.html">PP_Size</a> <a class="el" href="struct_p_p___video_profile_description__0__1.html#ab3ffdab3497ff29df3d31e44c560f2f4">PP_VideoProfileDescription::max_resolution</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Dimensions of the maximum resolution of video frames, in pixels. </p>
+</div>
+</div>
+<a class="anchor" id="a97e76f7bc9c271fdd8b8964670711f65"></a><!-- doxytag: member="PP_VideoProfileDescription::profile" ref="a97e76f7bc9c271fdd8b8964670711f65" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> <a class="el" href="struct_p_p___video_profile_description__0__1.html#a97e76f7bc9c271fdd8b8964670711f65">PP_VideoProfileDescription::profile</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The codec profile. </p>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="pp__codecs_8h.html">pp_codecs.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___audio_encoder__0__1.html b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___audio_encoder__0__1.html
new file mode 100644
index 0000000..1b01f3e
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___audio_encoder__0__1.html
@@ -0,0 +1,286 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PPB_AudioEncoder Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PPB_AudioEncoder" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a116d0908bcdd955e33e00cbd9ae04110">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a63e54ec7e63e940c59c1b365669a5002">IsAudioEncoder</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a2ad5e2334abb35ede4c413e50e92ec61">GetSupportedProfiles</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, struct <a class="el" href="struct_p_p___array_output.html">PP_ArrayOutput</a> output, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70">Initialize</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, uint32_t channels, <a class="el" href="group___enums.html#ga78757d4be14d14d17708071a9466afbd">PP_AudioBuffer_SampleRate</a> input_sample_rate, <a class="el" href="group___enums.html#ga2ba5c3a8eed23fa49a73b218b1bce044">PP_AudioBuffer_SampleSize</a> input_sample_size, <a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a> output_profile, uint32_t initial_bitrate, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a49a627f22227a877391f2f569a4490ff">GetNumberOfSamples</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac154730ff2248134c73d5155c4a7095f">GetBuffer</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *audio_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a61e9304df6da6bbb97236805d702d0a3">Encode</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a7386d14006ed634530d0ad2ecdb61529">GetBitstreamBuffer</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, struct <a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a> *bitstream_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a8046882d9584418d02e017130aa55d80">RecycleBitstreamBuffer</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, const struct <a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a> *bitstream_buffer)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac5a8cbc3578816a15f3418882b6b720c">RequestBitrateChange</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, uint32_t bitrate)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ad472829d0944505ce8cfb2a2b6308165">Close</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder)</td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Audio encoder interface. </p>
+<p>Typical usage:</p>
+<ul>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a116d0908bcdd955e33e00cbd9ae04110" title="Creates a new audio encoder resource.">Create()</a> to create a new audio encoder resource.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a2ad5e2334abb35ede4c413e50e92ec61" title="Gets an array of supported audio encoder profiles.">GetSupportedProfiles()</a> to determine which codecs and profiles are available.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> to initialize the encoder for a supported profile.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac154730ff2248134c73d5155c4a7095f" title="Gets a blank audio buffer (with metadata given by the Initialize() call) which can be filled with aud...">GetBuffer()</a> to get an empty buffer and fill it in, or get an audio buffer from another resource, e.g. <code>PPB_MediaStreamAudioTrack</code>.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a61e9304df6da6bbb97236805d702d0a3" title="Encodes an audio buffer.">Encode()</a> to push the audio buffer to the encoder. If an external buffer is pushed, wait for completion to recycle the buffer.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a7386d14006ed634530d0ad2ecdb61529" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> continuously (waiting for each previous call to complete) to pull encoded buffers from the encoder.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a8046882d9584418d02e017130aa55d80" title="Recycles a bitstream buffer back to the encoder.">RecycleBitstreamBuffer()</a> after consuming the data in the bitstream buffer.</li>
+<li>To destroy the encoder, the plugin should release all of its references to it. Any pending callbacks will abort before the encoder is destroyed.</li>
+</ul>
+<p>Available audio codecs vary by platform. All: opus. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="ad472829d0944505ce8cfb2a2b6308165"></a><!-- doxytag: member="PPB_AudioEncoder::Close" ref="ad472829d0944505ce8cfb2a2b6308165" args=")(PP_Resource audio_encoder)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ad472829d0944505ce8cfb2a2b6308165">PPB_AudioEncoder::Close</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Closes the audio encoder, and cancels any pending encodes. </p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> . It is not valid to call any encoder functions after a call to this method. <b>Note:</b> Destroying the audio encoder closes it implicitly, so you are not required to call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ad472829d0944505ce8cfb2a2b6308165" title="Closes the audio encoder, and cancels any pending encodes.">Close()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="a116d0908bcdd955e33e00cbd9ae04110"></a><!-- doxytag: member="PPB_AudioEncoder::Create" ref="a116d0908bcdd955e33e00cbd9ae04110" args=")(PP_Instance instance)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a116d0908bcdd955e33e00cbd9ae04110">PPB_AudioEncoder::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Creates a new audio encoder resource. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code> identifying the instance with the audio encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> corresponding to an audio encoder if successful or 0 otherwise. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a61e9304df6da6bbb97236805d702d0a3"></a><!-- doxytag: member="PPB_AudioEncoder::Encode" ref="a61e9304df6da6bbb97236805d702d0a3" args=")(PP_Resource audio_encoder, PP_Resource audio_buffer, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a61e9304df6da6bbb97236805d702d0a3">PPB_AudioEncoder::Encode</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Encodes an audio buffer. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_buffer</td><td>The <code>PPB_AudioBuffer</code> to be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion. Plugins that pass <code>PPB_AudioBuffer</code> resources owned by other resources should wait for completion before reusing them.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a7386d14006ed634530d0ad2ecdb61529"></a><!-- doxytag: member="PPB_AudioEncoder::GetBitstreamBuffer" ref="a7386d14006ed634530d0ad2ecdb61529" args=")(PP_Resource audio_encoder, struct PP_AudioBitstreamBuffer *bitstream_buffer, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a7386d14006ed634530d0ad2ecdb61529">PPB_AudioEncoder::GetBitstreamBuffer</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, struct <a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a> *bitstream_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the next encoded bitstream buffer from the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[out]</td><td class="paramname">bitstream_buffer</td><td>A <code><a class="el" href="struct_p_p___bitstream_buffer.html" title="Struct describing a bitstream buffer.">PP_BitstreamBuffer</a></code> containing encoded audio data. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion. The plugin can call GetBitstreamBuffer from the callback in order to continuously "pull" bitstream buffers from the encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> has not successfully completed. Returns PP_ERROR_INPROGRESS if a prior call to <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a7386d14006ed634530d0ad2ecdb61529" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> has not completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="ac154730ff2248134c73d5155c4a7095f"></a><!-- doxytag: member="PPB_AudioEncoder::GetBuffer" ref="ac154730ff2248134c73d5155c4a7095f" args=")(PP_Resource audio_encoder, PP_Resource *audio_buffer, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac154730ff2248134c73d5155c4a7095f">PPB_AudioEncoder::GetBuffer</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *audio_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets a blank audio buffer (with metadata given by the <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> call) which can be filled with audio data and passed to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[out]</td><td class="paramname">audio_buffer</td><td>A blank <code>PPB_AudioBuffer</code> resource. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a49a627f22227a877391f2f569a4490ff"></a><!-- doxytag: member="PPB_AudioEncoder::GetNumberOfSamples" ref="a49a627f22227a877391f2f569a4490ff" args=")(PP_Resource audio_encoder)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a49a627f22227a877391f2f569a4490ff">PPB_AudioEncoder::GetNumberOfSamples</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the number of audio samples per channel that audio buffers must contain in order to be processed by the encoder. </p>
+<p>This will be the number of samples per channels contained in buffers returned by <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac154730ff2248134c73d5155c4a7095f" title="Gets a blank audio buffer (with metadata given by the Initialize() call) which can be filled with aud...">GetBuffer()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing the number of samples required, or an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a2ad5e2334abb35ede4c413e50e92ec61"></a><!-- doxytag: member="PPB_AudioEncoder::GetSupportedProfiles" ref="a2ad5e2334abb35ede4c413e50e92ec61" args=")(PP_Resource audio_encoder, struct PP_ArrayOutput output, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a2ad5e2334abb35ede4c413e50e92ec61">PPB_AudioEncoder::GetSupportedProfiles</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, struct <a class="el" href="struct_p_p___array_output.html">PP_ArrayOutput</a> output, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets an array of supported audio encoder profiles. </p>
+<p>These can be used to choose a profile before calling <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output</td><td>A <code><a class="el" href="struct_p_p___array_output.html" title="A structure that defines a way for the browser to return arrays of data to the plugin.">PP_ArrayOutput</a></code> to receive the supported <code><a class="el" href="struct_p_p___audio_profile_description.html" title="Supported audio profile information.">PP_AudioProfileDescription</a></code> structs. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>If &gt;= 0, the number of supported profiles returned, otherwise an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a676b09b0a98069daea08678a8c9e5d70"></a><!-- doxytag: member="PPB_AudioEncoder::Initialize" ref="a676b09b0a98069daea08678a8c9e5d70" args=")(PP_Resource audio_encoder, uint32_t channels, PP_AudioBuffer_SampleRate input_sample_rate, PP_AudioBuffer_SampleSize input_sample_size, PP_AudioProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70">PPB_AudioEncoder::Initialize</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, uint32_t channels, <a class="el" href="group___enums.html#ga78757d4be14d14d17708071a9466afbd">PP_AudioBuffer_SampleRate</a> input_sample_rate, <a class="el" href="group___enums.html#ga2ba5c3a8eed23fa49a73b218b1bce044">PP_AudioBuffer_SampleSize</a> input_sample_size, <a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a> output_profile, uint32_t initial_bitrate, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Initializes an audio encoder resource. </p>
+<p>The plugin should call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> successfully before calling any of the functions below.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">channels</td><td>The number of audio channels to encode. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_sampling_rate</td><td>The sampling rate of the input audio buffer. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_sample_size</td><td>The sample size of the input audio buffer. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output_profile</td><td>A <code>PP_AudioProfile</code> specifying the codec profile of the encoded output stream. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">initial_bitrate</td><td>The initial bitrate for the encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_NOTSUPPORTED if audio encoding is not available, or the requested codec profile is not supported. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a63e54ec7e63e940c59c1b365669a5002"></a><!-- doxytag: member="PPB_AudioEncoder::IsAudioEncoder" ref="a63e54ec7e63e940c59c1b365669a5002" args=")(PP_Resource resource)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a63e54ec7e63e940c59c1b365669a5002">PPB_AudioEncoder::IsAudioEncoder</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Determines if the given resource is an audio encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">resource</td><td>A <code>PP_Resource</code> identifying a resource.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd><code>PP_TRUE</code> if the resource is a <code>PPB_AudioEncoder</code>, <code>PP_FALSE</code> if the resource is invalid or some other type. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a8046882d9584418d02e017130aa55d80"></a><!-- doxytag: member="PPB_AudioEncoder::RecycleBitstreamBuffer" ref="a8046882d9584418d02e017130aa55d80" args=")(PP_Resource audio_encoder, const struct PP_AudioBitstreamBuffer *bitstream_buffer)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a8046882d9584418d02e017130aa55d80">PPB_AudioEncoder::RecycleBitstreamBuffer</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, const struct <a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a> *bitstream_buffer)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Recycles a bitstream buffer back to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">bitstream_buffer</td><td>A <code><a class="el" href="struct_p_p___bitstream_buffer.html" title="Struct describing a bitstream buffer.">PP_BitstreamBuffer</a></code> that is no longer needed by the plugin. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ac5a8cbc3578816a15f3418882b6b720c"></a><!-- doxytag: member="PPB_AudioEncoder::RequestBitrateChange" ref="ac5a8cbc3578816a15f3418882b6b720c" args=")(PP_Resource audio_encoder, uint32_t bitrate)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac5a8cbc3578816a15f3418882b6b720c">PPB_AudioEncoder::RequestBitrateChange</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, uint32_t bitrate)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Requests a change to the encoding bitrate. </p>
+<p>This is only a request, fulfilled on a best-effort basis.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">bitrate</td><td>The requested new bitrate, in bits per second. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="ppb__audio__encoder_8h.html">ppb_audio_encoder.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___compositor__0__1.html b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___compositor__0__1.html
index 85fcb76..eae2261 100644
--- a/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___compositor__0__1.html
+++ b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___compositor__0__1.html
@@ -50,7 +50,7 @@ Data Fields</h2><table class="memberdecls">
<p>Creates a new <code>PPB_CompositorLayer</code> and adds it to the end of the layer stack. </p>
<p>A <code>PP_Resource</code> containing the layer is returned. It is uninitialized, <code>SetColor()</code>, <code>SetTexture</code> or <code>SetImage</code> should be used to initialize it. The layer will appear above other pre-existing layers. If <code>ResetLayers</code> is called or the <code>PPB_Compositor</code> is released, the returned layer will be invalidated, and any further calls on the layer will return <code>PP_ERROR_BADRESOURCE</code>.</p>
<p>param[in] compositor A <code>PP_Resource</code> corresponding to a compositor layer resource.</p>
-<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> containing the compositor layer resource if sucessful or 0 otherwise. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> containing the compositor layer resource if successful or 0 otherwise. </dd></dl>
</div>
</div>
<a class="anchor" id="a5082b0dce4a58032439bc3dd4ff741fd"></a><!-- doxytag: member="PPB_Compositor::CommitLayers" ref="a5082b0dce4a58032439bc3dd4ff741fd" args=")(PP_Resource compositor, struct PP_CompletionCallback cc)" -->
@@ -91,7 +91,7 @@ Data Fields</h2><table class="memberdecls">
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> containing the compositor resource if sucessful or 0 otherwise. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> containing the compositor resource if successful or 0 otherwise. </dd></dl>
</div>
</div>
<a class="anchor" id="a22fb77daabd3894db97ab1111d111a92"></a><!-- doxytag: member="PPB_Compositor::IsCompositor" ref="a22fb77daabd3894db97ab1111d111a92" args=")(PP_Resource resource)" -->
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___file_mapping__0__1.html b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___file_mapping__0__1.html
deleted file mode 100644
index 6443704..0000000
--- a/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___file_mapping__0__1.html
+++ /dev/null
@@ -1,98 +0,0 @@
-{{+bindTo:partials.standard_nacl_api}}
-<h1>PPB_FileMapping Struct Reference</h1>
-<div id="doxygen-ref">
-{{- dummy div to appease doxygen -}}
- <div>
-<!-- Generated by Doxygen 1.7.6.1 -->
-
-
-</div>
-<!--header-->
-<div class="contents">
-<!-- doxytag: class="PPB_FileMapping" --><h2>
-Data Fields</h2><table class="memberdecls">
-
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb">Map</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> file_io, int64_t length, uint32_t map_protection, uint32_t map_flags, int64_t offset, void **address, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_mapping__0__1.html#a4fa72d6e6660e16ce1ff08453eff172d">Unmap</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance, const void *address, int64_t length, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int64_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_mapping__0__1.html#ae479690b258985b51dda4d438b8156f0">GetMapPageSize</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
-</table>
-<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>PPB_FileMapping contains functions for mapping and unmapping files into and out of memory. </p>
-</div><hr /><h2>Field Documentation</h2>
-<a class="anchor" id="ae479690b258985b51dda4d438b8156f0"></a><!-- doxytag: member="PPB_FileMapping::GetMapPageSize" ref="ae479690b258985b51dda4d438b8156f0" args=")(PP_Instance instance)" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">int64_t(* <a class="el" href="struct_p_p_b___file_mapping__0__1.html#ae479690b258985b51dda4d438b8156f0">PPB_FileMapping::GetMapPageSize</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-<p><a class="el" href="struct_p_p_b___file_mapping__0__1.html#ae479690b258985b51dda4d438b8156f0" title="GetMapPageSize() retrieves the size of pages that Map() uses.">GetMapPageSize()</a> retrieves the size of pages that <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a> uses. </p>
-<dl class="params"><dt><b>Parameters:</b></dt><dd>
-<table class="params">
-<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code> identifying the instance.</td></tr>
-</table>
-</dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The size of pages that <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a> uses. Returns 0 on failure. </dd></dl>
-</div>
-</div>
-<a class="anchor" id="a425d8d5b11de51e8edf539ee13bac1fb"></a><!-- doxytag: member="PPB_FileMapping::Map" ref="a425d8d5b11de51e8edf539ee13bac1fb" args=")(PP_Instance instance, PP_Resource file_io, int64_t length, uint32_t map_protection, uint32_t map_flags, int64_t offset, void **address, struct PP_CompletionCallback callback)" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb">PPB_FileMapping::Map</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> file_io, int64_t length, uint32_t map_protection, uint32_t map_flags, int64_t offset, void **address, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-<p><a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a> maps the contents from an offset of the file into memory. </p>
-<dl class="params"><dt><b>Parameters:</b></dt><dd>
-<table class="params">
-<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code> identifying one instance of a module. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">file_io</td><td>A <code>PPB_FileIO</code> <code>PP_Resource</code> corresponding to the file that should be mapped in to memory. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>The number of bytes to map. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">map_protection</td><td>A bitfield containing values from <code>PP_FileMapProtection</code>, indicating what memory operations should be permitted on the mapped region. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">map_flags</td><td>A bitfield containing values from <code>PP_FileMapFlags</code>, providing options for the behavior of Map. If the region is to be writeable, then exactly one of <code>PP_FILEMAPFLAG_SHARED</code> or <code>PP_FILEMAPFLAG_PRIVATE</code> must be set. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>The offset into the file. Must be a multiple of the Map page size as returned by <a class="el" href="struct_p_p_b___file_mapping__0__1.html#ae479690b258985b51dda4d438b8156f0" title="GetMapPageSize() retrieves the size of pages that Map() uses.">GetMapPageSize()</a>. </td></tr>
-<tr><td class="paramdir"></td><td class="paramname">inout]</td><td>address The value of <code>*address</code>, if non-NULL, will be used as a hint to determine where in memory the file should be mapped. If the value is NULL, the host operating system will choose <code>address</code>. Upon <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a> completing, <code>*address</code> will contain the actual memory location at which the file was mapped. If the plugin provides a non-NULL <code>*address</code>, it must be a multiple of the map page size as returned by <a class="el" href="struct_p_p_b___file_mapping__0__1.html#ae479690b258985b51dda4d438b8156f0" title="GetMapPageSize() retrieves the size of pages that Map() uses.">GetMapPageSize()</a>. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion of <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a>.</td></tr>
-</table>
-</dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
-</div>
-</div>
-<a class="anchor" id="a4fa72d6e6660e16ce1ff08453eff172d"></a><!-- doxytag: member="PPB_FileMapping::Unmap" ref="a4fa72d6e6660e16ce1ff08453eff172d" args=")(PP_Instance instance, const void *address, int64_t length, struct PP_CompletionCallback callback)" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a4fa72d6e6660e16ce1ff08453eff172d">PPB_FileMapping::Unmap</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance, const void *address, int64_t length, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-<p><a class="el" href="struct_p_p_b___file_mapping__0__1.html#a4fa72d6e6660e16ce1ff08453eff172d" title="Unmap() deletes the mapping of the specified address.">Unmap()</a> deletes the mapping of the specified address. </p>
-<p>The specified address must have been retrieved with <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a>. </p>
-<dl class="params"><dt><b>Parameters:</b></dt><dd>
-<table class="params">
-<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code> identifying the instance. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">address</td><td>The starting address of the address in memory to be unmapped. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>The length of the region to unmap. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion of <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a4fa72d6e6660e16ce1ff08453eff172d" title="Unmap() deletes the mapping of the specified address.">Unmap()</a>.</td></tr>
-</table>
-</dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
-</div>
-</div>
-<hr />The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="ppb__file__mapping_8h.html">ppb_file_mapping.h</a></li>
-</ul>
-</div><!-- contents -->
-</div>
-{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___u_d_p_socket__1__1.html b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___u_d_p_socket__1__2.html
index 6307ad0..8e1b0e1 100644
--- a/native_client_sdk/doc_generated/pepper_beta/c/struct_p_p_b___u_d_p_socket__1__1.html
+++ b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___u_d_p_socket__1__2.html
@@ -12,25 +12,27 @@
<!-- doxytag: class="PPB_UDPSocket" --><h2>
Data Fields</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a687ffa461f068fae0e0cc6694b3157bd">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a122be12f51d87e13cbe33bf30b3bef86">IsUDPSocket</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#ab35f5cda2711b220a2b6c090b469d044">Bind</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a33be83f9c8d91811c9ee20fd04ae9be3">GetBoundAddress</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#aa15ebcb5bfc899d2d46f8f25266e4913">RecvFrom</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#ad6b1bd2a28fdc4fa58b8872353524d38">SendTo</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, const char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a9c349fbeb2a9fca70b8ecf0a860d2112">Close</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a7107524b673568e4e69c63c43ecd0eec">SetOption</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#abe2a2dc1170e9ea60f63656152b7b3ce">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a955e5c21c99668dc80fa54f8a12119de">IsUDPSocket</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a07dad506a240b35c8ceb5dcd5f9e12ce">Bind</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a2195768a7698776e83298b86b9670fa4">GetBoundAddress</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#afaf246c84eb76e033ee8794faa997af5">RecvFrom</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ae6764f319a9af980dbb1ba5625a417be">SendTo</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, const char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ae27417e3577d5dbb3a88efa7867df7b9">Close</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ac0656c7002acbb1d9c4b17fb679f63df">SetOption</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a3012f1d7f38fff9d45925e05850cfdb0">JoinGroup</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> group, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a5e46591a3a742ee1a9e3de81a76624d3">LeaveGroup</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> group, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
</table>
<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>The <code>PPB_UDPSocket</code> interface provides UDP socket operations. </p>
-<p>Permissions: Apps permission <code>socket</code> with subrule <code>udp-bind</code> is required for <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#ab35f5cda2711b220a2b6c090b469d044" title="Binds the socket to the given address.">Bind()</a></code>; subrule <code>udp-send-to</code> is required for <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#ad6b1bd2a28fdc4fa58b8872353524d38" title="Sends data to a specific destination.">SendTo()</a></code>. For more details about network communication permissions, please see: <a href="http://developer.chrome.com/apps/app_network.html">http://developer.chrome.com/apps/app_network.html</a> </p>
+<p>Permissions: Apps permission <code>socket</code> with subrule <code>udp-bind</code> is required for <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a07dad506a240b35c8ceb5dcd5f9e12ce" title="Binds the socket to the given address.">Bind()</a></code>; subrule <code>udp-send-to</code> is required for <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ae6764f319a9af980dbb1ba5625a417be" title="Sends data to a specific destination.">SendTo()</a></code>. For more details about network communication permissions, please see: <a href="http://developer.chrome.com/apps/app_network.html">http://developer.chrome.com/apps/app_network.html</a> </p>
</div><hr /><h2>Field Documentation</h2>
-<a class="anchor" id="ab35f5cda2711b220a2b6c090b469d044"></a><!-- doxytag: member="PPB_UDPSocket::Bind" ref="ab35f5cda2711b220a2b6c090b469d044" args=")(PP_Resource udp_socket, PP_Resource addr, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="a07dad506a240b35c8ceb5dcd5f9e12ce"></a><!-- doxytag: member="PPB_UDPSocket::Bind" ref="a07dad506a240b35c8ceb5dcd5f9e12ce" args=")(PP_Resource udp_socket, PP_Resource addr, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#ab35f5cda2711b220a2b6c090b469d044">PPB_UDPSocket::Bind</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a07dad506a240b35c8ceb5dcd5f9e12ce">PPB_UDPSocket::Bind</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
@@ -47,18 +49,18 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have required permissions. <code>PP_ERROR_ADDRESS_IN_USE</code> will be returned if the address is already in use. </dd></dl>
</div>
</div>
-<a class="anchor" id="a9c349fbeb2a9fca70b8ecf0a860d2112"></a><!-- doxytag: member="PPB_UDPSocket::Close" ref="a9c349fbeb2a9fca70b8ecf0a860d2112" args=")(PP_Resource udp_socket)" -->
+<a class="anchor" id="ae27417e3577d5dbb3a88efa7867df7b9"></a><!-- doxytag: member="PPB_UDPSocket::Close" ref="ae27417e3577d5dbb3a88efa7867df7b9" args=")(PP_Resource udp_socket)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">void(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a9c349fbeb2a9fca70b8ecf0a860d2112">PPB_UDPSocket::Close</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ae27417e3577d5dbb3a88efa7867df7b9">PPB_UDPSocket::Close</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Cancels all pending reads and writes, and closes the socket. </p>
-<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> if pending IO was interrupted. After a call to this method, no output parameters passed into previous <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#aa15ebcb5bfc899d2d46f8f25266e4913" title="Receives data from the socket and stores the source address.">RecvFrom()</a></code> calls will be accessed. It is not valid to call <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#ab35f5cda2711b220a2b6c090b469d044" title="Binds the socket to the given address.">Bind()</a></code> again.</p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> if pending IO was interrupted. After a call to this method, no output parameters passed into previous <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#afaf246c84eb76e033ee8794faa997af5" title="Receives data from the socket and stores the source address.">RecvFrom()</a></code> calls will be accessed. It is not valid to call <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a07dad506a240b35c8ceb5dcd5f9e12ce" title="Binds the socket to the given address.">Bind()</a></code> again.</p>
<p>The socket is implicitly closed if it is destroyed, so you are not required to call this method.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
@@ -68,12 +70,12 @@ Data Fields</h2><table class="memberdecls">
</dl>
</div>
</div>
-<a class="anchor" id="a687ffa461f068fae0e0cc6694b3157bd"></a><!-- doxytag: member="PPB_UDPSocket::Create" ref="a687ffa461f068fae0e0cc6694b3157bd" args=")(PP_Instance instance)" -->
+<a class="anchor" id="abe2a2dc1170e9ea60f63656152b7b3ce"></a><!-- doxytag: member="PPB_UDPSocket::Create" ref="abe2a2dc1170e9ea60f63656152b7b3ce" args=")(PP_Instance instance)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a687ffa461f068fae0e0cc6694b3157bd">PPB_UDPSocket::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#abe2a2dc1170e9ea60f63656152b7b3ce">PPB_UDPSocket::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
</tr>
</table>
</div>
@@ -88,12 +90,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> corresponding to a UDP socket or 0 on failure. </dd></dl>
</div>
</div>
-<a class="anchor" id="a33be83f9c8d91811c9ee20fd04ae9be3"></a><!-- doxytag: member="PPB_UDPSocket::GetBoundAddress" ref="a33be83f9c8d91811c9ee20fd04ae9be3" args=")(PP_Resource udp_socket)" -->
+<a class="anchor" id="a2195768a7698776e83298b86b9670fa4"></a><!-- doxytag: member="PPB_UDPSocket::GetBoundAddress" ref="a2195768a7698776e83298b86b9670fa4" args=")(PP_Resource udp_socket)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a33be83f9c8d91811c9ee20fd04ae9be3">PPB_UDPSocket::GetBoundAddress</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a2195768a7698776e83298b86b9670fa4">PPB_UDPSocket::GetBoundAddress</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td>
</tr>
</table>
</div>
@@ -109,12 +111,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PPB_NetAddress</code> resource on success or 0 on failure. </dd></dl>
</div>
</div>
-<a class="anchor" id="a122be12f51d87e13cbe33bf30b3bef86"></a><!-- doxytag: member="PPB_UDPSocket::IsUDPSocket" ref="a122be12f51d87e13cbe33bf30b3bef86" args=")(PP_Resource resource)" -->
+<a class="anchor" id="a955e5c21c99668dc80fa54f8a12119de"></a><!-- doxytag: member="PPB_UDPSocket::IsUDPSocket" ref="a955e5c21c99668dc80fa54f8a12119de" args=")(PP_Resource resource)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a122be12f51d87e13cbe33bf30b3bef86">PPB_UDPSocket::IsUDPSocket</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a955e5c21c99668dc80fa54f8a12119de">PPB_UDPSocket::IsUDPSocket</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
</tr>
</table>
</div>
@@ -129,12 +131,56 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd><code>PP_TRUE</code> if the input is a <code>PPB_UDPSocket</code> resource; <code>PP_FALSE</code> otherwise. </dd></dl>
</div>
</div>
-<a class="anchor" id="aa15ebcb5bfc899d2d46f8f25266e4913"></a><!-- doxytag: member="PPB_UDPSocket::RecvFrom" ref="aa15ebcb5bfc899d2d46f8f25266e4913" args=")(PP_Resource udp_socket, char *buffer, int32_t num_bytes, PP_Resource *addr, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="a3012f1d7f38fff9d45925e05850cfdb0"></a><!-- doxytag: member="PPB_UDPSocket::JoinGroup" ref="a3012f1d7f38fff9d45925e05850cfdb0" args=")(PP_Resource udp_socket, PP_Resource group, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#aa15ebcb5bfc899d2d46f8f25266e4913">PPB_UDPSocket::RecvFrom</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a3012f1d7f38fff9d45925e05850cfdb0">PPB_UDPSocket::JoinGroup</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> group, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Joins the multicast group with address specified by <code>group</code> parameter, which is expected to be a <code>PPB_NetAddress</code> object. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">udp_socket</td><td>A <code>PP_Resource</code> corresponding to a UDP socket. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">group</td><td>A <code>PP_Resource</code> corresponding to the network address of the multicast group. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a5e46591a3a742ee1a9e3de81a76624d3"></a><!-- doxytag: member="PPB_UDPSocket::LeaveGroup" ref="a5e46591a3a742ee1a9e3de81a76624d3" args=")(PP_Resource udp_socket, PP_Resource group, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a5e46591a3a742ee1a9e3de81a76624d3">PPB_UDPSocket::LeaveGroup</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> group, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Leaves the multicast group with address specified by <code>group</code> parameter, which is expected to be a <code>PPB_NetAddress</code> object. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">udp_socket</td><td>A <code>PP_Resource</code> corresponding to a UDP socket. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">group</td><td>A <code>PP_Resource</code> corresponding to the network address of the multicast group. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="afaf246c84eb76e033ee8794faa997af5"></a><!-- doxytag: member="PPB_UDPSocket::RecvFrom" ref="afaf246c84eb76e033ee8794faa997af5" args=")(PP_Resource udp_socket, char *buffer, int32_t num_bytes, PP_Resource *addr, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#afaf246c84eb76e033ee8794faa997af5">PPB_UDPSocket::RecvFrom</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
@@ -154,12 +200,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A non-negative number on success to indicate how many bytes have been received; otherwise, an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
</div>
</div>
-<a class="anchor" id="ad6b1bd2a28fdc4fa58b8872353524d38"></a><!-- doxytag: member="PPB_UDPSocket::SendTo" ref="ad6b1bd2a28fdc4fa58b8872353524d38" args=")(PP_Resource udp_socket, const char *buffer, int32_t num_bytes, PP_Resource addr, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="ae6764f319a9af980dbb1ba5625a417be"></a><!-- doxytag: member="PPB_UDPSocket::SendTo" ref="ae6764f319a9af980dbb1ba5625a417be" args=")(PP_Resource udp_socket, const char *buffer, int32_t num_bytes, PP_Resource addr, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#ad6b1bd2a28fdc4fa58b8872353524d38">PPB_UDPSocket::SendTo</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, const char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ae6764f319a9af980dbb1ba5625a417be">PPB_UDPSocket::SendTo</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, const char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
@@ -179,12 +225,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A non-negative number on success to indicate how many bytes have been sent; otherwise, an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have required permissions. <code>PP_ERROR_INPROGRESS</code> will be returned if the socket is busy sending. The caller should wait until a pending send completes before retrying. </dd></dl>
</div>
</div>
-<a class="anchor" id="a7107524b673568e4e69c63c43ecd0eec"></a><!-- doxytag: member="PPB_UDPSocket::SetOption" ref="a7107524b673568e4e69c63c43ecd0eec" args=")(PP_Resource udp_socket, PP_UDPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="ac0656c7002acbb1d9c4b17fb679f63df"></a><!-- doxytag: member="PPB_UDPSocket::SetOption" ref="ac0656c7002acbb1d9c4b17fb679f63df" args=")(PP_Resource udp_socket, PP_UDPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__1.html#a7107524b673568e4e69c63c43ecd0eec">PPB_UDPSocket::SetOption</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ac0656c7002acbb1d9c4b17fb679f63df">PPB_UDPSocket::SetOption</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___video_decoder__1__0.html b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___video_decoder__1__1.html
index c8dd134..7eb7007 100644
--- a/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___video_decoder__1__0.html
+++ b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___video_decoder__1__1.html
@@ -12,35 +12,35 @@
<!-- doxytag: class="PPB_VideoDecoder" --><h2>
Data Fields</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#a81200f606c493c49a70190ca86ac135c">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#ae2329143c44bd5eaae507074c1fc0ec3">IsVideoDecoder</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#ad115b7705b740b771e7dd9acb2b36f16">Initialize</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> graphics3d_context, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> profile, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366">Decode</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e">GetPicture</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#ac7e6b42866d42eade96519f32755509f">RecyclePicture</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, const struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d">Flush</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e">Reset</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab84df8254cf35702e09425b835b5958f">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#aa32bb990160f3e1fbfa90a2f363c61bc">IsVideoDecoder</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#a65fc7d77135a1c55eb77ad4f7fd1a8a8">Initialize</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> graphics3d_context, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> profile, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, uint32_t min_picture_count, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd">Decode</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c">GetPicture</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb">RecyclePicture</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, const struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413">Flush</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0">Reset</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
</table>
<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Video decoder interface. </p>
<p>Typical usage:</p>
<ul>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a81200f606c493c49a70190ca86ac135c" title="Creates a new video decoder resource.">Create()</a> to create a new video decoder resource.</li>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ad115b7705b740b771e7dd9acb2b36f16" title="Initializes a video decoder resource.">Initialize()</a> to initialize it with a 3d graphics context and the desired codec profile.</li>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> continuously (waiting for each previous call to complete) to push bitstream buffers to the decoder.</li>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> continuously (waiting for each previous call to complete) to pull decoded pictures from the decoder.</li>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d" title="Flushes the decoder.">Flush()</a> to signal end of stream to the decoder and perform shutdown when it completes.</li>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> to quickly stop the decoder (e.g. to implement Seek) and wait for the callback before restarting decoding at another point.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab84df8254cf35702e09425b835b5958f" title="Creates a new video decoder resource.">Create()</a> to create a new video decoder resource.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a65fc7d77135a1c55eb77ad4f7fd1a8a8" title="Initializes a video decoder resource.">Initialize()</a> to initialize it with a 3d graphics context and the desired codec profile.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> continuously (waiting for each previous call to complete) to push bitstream buffers to the decoder.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> continuously (waiting for each previous call to complete) to pull decoded pictures from the decoder.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413" title="Flushes the decoder.">Flush()</a> to signal end of stream to the decoder and perform shutdown when it completes.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> to quickly stop the decoder (e.g. to implement Seek) and wait for the callback before restarting decoding at another point.</li>
<li>To destroy the decoder, the plugin should release all of its references to it. Any pending callbacks will abort before the decoder is destroyed.</li>
</ul>
<p>Available video codecs vary by platform. All: theora, vorbis, vp8. Chrome and ChromeOS: aac, h264. ChromeOS: mpeg4. </p>
</div><hr /><h2>Field Documentation</h2>
-<a class="anchor" id="a81200f606c493c49a70190ca86ac135c"></a><!-- doxytag: member="PPB_VideoDecoder::Create" ref="a81200f606c493c49a70190ca86ac135c" args=")(PP_Instance instance)" -->
+<a class="anchor" id="ab84df8254cf35702e09425b835b5958f"></a><!-- doxytag: member="PPB_VideoDecoder::Create" ref="ab84df8254cf35702e09425b835b5958f" args=")(PP_Instance instance)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a81200f606c493c49a70190ca86ac135c">PPB_VideoDecoder::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab84df8254cf35702e09425b835b5958f">PPB_VideoDecoder::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
</tr>
</table>
</div>
@@ -55,45 +55,45 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> corresponding to a video decoder if successful or 0 otherwise. </dd></dl>
</div>
</div>
-<a class="anchor" id="acc8662be4232325abc545d1ae8b79366"></a><!-- doxytag: member="PPB_VideoDecoder::Decode" ref="acc8662be4232325abc545d1ae8b79366" args=")(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="a5f87d174876dc480029275f94e4669cd"></a><!-- doxytag: member="PPB_VideoDecoder::Decode" ref="a5f87d174876dc480029275f94e4669cd" args=")(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366">PPB_VideoDecoder::Decode</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd">PPB_VideoDecoder::Decode</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Decodes a bitstream buffer. </p>
-<p>Copies |size| bytes of data from the plugin's |buffer|. The plugin should wait until the decoder signals completion by returning PP_OK or by running |callback| before calling <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> again.</p>
+<p>Copies |size| bytes of data from the plugin's |buffer|. The plugin should wait until the decoder signals completion by returning PP_OK or by running |callback| before calling <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> again.</p>
<p>In general, each bitstream buffer should contain a demuxed bitstream frame for the selected video codec. For example, H264 decoders expect to receive one AnnexB NAL unit, including the 4 byte start code prefix, while VP8 decoders expect to receive a bitstream frame without the IVF frame header.</p>
-<p>If the call to <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> eventually results in a picture, the |decode_id| parameter is copied into the returned picture. The plugin can use this to associate decoded pictures with <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> calls (e.g. to assign timestamps or frame numbers to pictures.) This value is opaque to the API so the plugin is free to pass any value.</p>
+<p>If the call to <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> eventually results in a picture, the |decode_id| parameter is copied into the returned picture. The plugin can use this to associate decoded pictures with <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> calls (e.g. to assign timestamps or frame numbers to pictures.) This value is opaque to the API so the plugin is free to pass any value.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">video_decoder</td><td>A <code>PP_Resource</code> identifying the video decoder. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">decode_id</td><td>An optional value, chosen by the plugin, that can be used to associate calls to <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> with decoded pictures returned by <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a>. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">decode_id</td><td>An optional value, chosen by the plugin, that can be used to associate calls to <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> with decoded pictures returned by <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Buffer size in bytes. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Starting address of buffer. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called on completion.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if the decoder isn't initialized or if a <a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d" title="Flushes the decoder.">Flush()</a> or <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> call is pending. Returns PP_ERROR_INPROGRESS if there is another <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> call pending. Returns PP_ERROR_NOMEMORY if a bitstream buffer can't be created. Returns PP_ERROR_ABORTED when <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> is called while <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> is pending. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if the decoder isn't initialized or if a <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413" title="Flushes the decoder.">Flush()</a> or <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> call is pending. Returns PP_ERROR_INPROGRESS if there is another <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> call pending. Returns PP_ERROR_NOMEMORY if a bitstream buffer can't be created. Returns PP_ERROR_ABORTED when <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> is called while <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> is pending. </dd></dl>
</div>
</div>
-<a class="anchor" id="adf3ea0876d1ba686266589a04532e86d"></a><!-- doxytag: member="PPB_VideoDecoder::Flush" ref="adf3ea0876d1ba686266589a04532e86d" args=")(PP_Resource video_decoder, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="a40e2989df1005096fd6fc9832e078413"></a><!-- doxytag: member="PPB_VideoDecoder::Flush" ref="a40e2989df1005096fd6fc9832e078413" args=")(PP_Resource video_decoder, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d">PPB_VideoDecoder::Flush</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413">PPB_VideoDecoder::Flush</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Flushes the decoder. </p>
-<p>The plugin should call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d" title="Flushes the decoder.">Flush()</a> when it reaches the end of its video stream in order to stop cleanly. The decoder will run any pending <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> call to completion. The plugin should make no further calls to the decoder other than <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> and <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ac7e6b42866d42eade96519f32755509f" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a> until the decoder signals completion by running |callback|. Just before completion, any pending <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> call will complete by running its callback with result PP_ERROR_ABORTED to signal that no more pictures are available. Any pictures held by the plugin remain valid during and after the flush and should be recycled back to the decoder.</p>
+<p>The plugin should call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413" title="Flushes the decoder.">Flush()</a> when it reaches the end of its video stream in order to stop cleanly. The decoder will run any pending <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> call to completion. The plugin should make no further calls to the decoder other than <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> and <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a> until the decoder signals completion by running |callback|. Just before completion, any pending <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> call will complete by running its callback with result PP_ERROR_ABORTED to signal that no more pictures are available. Any pictures held by the plugin remain valid during and after the flush and should be recycled back to the decoder.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">video_decoder</td><td>A <code>PP_Resource</code> identifying the video decoder. </td></tr>
@@ -104,18 +104,18 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if the decoder isn't initialized. </dd></dl>
</div>
</div>
-<a class="anchor" id="a2351fe0cf66513ee77df0c1a22306c3e"></a><!-- doxytag: member="PPB_VideoDecoder::GetPicture" ref="a2351fe0cf66513ee77df0c1a22306c3e" args=")(PP_Resource video_decoder, struct PP_VideoPicture *picture, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="adc8b4eb41199cdf96aaa55d9a2df0b6c"></a><!-- doxytag: member="PPB_VideoDecoder::GetPicture" ref="adc8b4eb41199cdf96aaa55d9a2df0b6c" args=")(PP_Resource video_decoder, struct PP_VideoPicture *picture, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e">PPB_VideoDecoder::GetPicture</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c">PPB_VideoDecoder::GetPicture</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the next picture from the decoder. </p>
-<p>The picture is valid after the decoder signals completion by returning PP_OK or running |callback|. The plugin can call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> again after the decoder signals completion. When the plugin is finished using the picture, it should return it to the system by calling <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ac7e6b42866d42eade96519f32755509f" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a>.</p>
+<p>The picture is valid after the decoder signals completion by returning PP_OK or running |callback|. The plugin can call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> again after the decoder signals completion. When the plugin is finished using the picture, it should return it to the system by calling <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">video_decoder</td><td>A <code>PP_Resource</code> identifying the video decoder. </td></tr>
@@ -124,40 +124,41 @@ Data Fields</h2><table class="memberdecls">
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if the decoder isn't initialized or if a <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> call is pending. Returns PP_ERROR_INPROGRESS if there is another <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> call pending. Returns PP_ERROR_ABORTED when <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> is called, or if a call to <a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d" title="Flushes the decoder.">Flush()</a> completes while <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> is pending. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if the decoder isn't initialized or if a <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> call is pending. Returns PP_ERROR_INPROGRESS if there is another <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> call pending. Returns PP_ERROR_ABORTED when <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> is called, or if a call to <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413" title="Flushes the decoder.">Flush()</a> completes while <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> is pending. </dd></dl>
</div>
</div>
-<a class="anchor" id="ad115b7705b740b771e7dd9acb2b36f16"></a><!-- doxytag: member="PPB_VideoDecoder::Initialize" ref="ad115b7705b740b771e7dd9acb2b36f16" args=")(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="a65fc7d77135a1c55eb77ad4f7fd1a8a8"></a><!-- doxytag: member="PPB_VideoDecoder::Initialize" ref="a65fc7d77135a1c55eb77ad4f7fd1a8a8" args=")(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, uint32_t min_picture_count, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ad115b7705b740b771e7dd9acb2b36f16">PPB_VideoDecoder::Initialize</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> graphics3d_context, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> profile, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a65fc7d77135a1c55eb77ad4f7fd1a8a8">PPB_VideoDecoder::Initialize</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> graphics3d_context, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> profile, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, uint32_t min_picture_count, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initializes a video decoder resource. </p>
-<p>This should be called after <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a81200f606c493c49a70190ca86ac135c" title="Creates a new video decoder resource.">Create()</a> and before any other functions.</p>
+<p>This should be called after <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab84df8254cf35702e09425b835b5958f" title="Creates a new video decoder resource.">Create()</a> and before any other functions.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">video_decoder</td><td>A <code>PP_Resource</code> identifying the video decoder. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">graphics3d_context</td><td>A <code>PPB_Graphics3D</code> resource to use during decoding. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">profile</td><td>A <code>PP_VideoProfile</code> specifying the video codec profile. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">min_picture_count</td><td>A count of pictures the plugin would like to have in flight. This is effectively the number of times the plugin can call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> and get a decoded frame without calling <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a>. The decoder has its own internal minimum count, and will take the larger of its internal and this value. A client that doesn't care can therefore just pass in zero for this argument. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the requested profile is not supported. In this case, the client may call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ad115b7705b740b771e7dd9acb2b36f16" title="Initializes a video decoder resource.">Initialize()</a> again with different parameters to find a good configuration. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the requested profile is not supported. In this case, the client may call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a65fc7d77135a1c55eb77ad4f7fd1a8a8" title="Initializes a video decoder resource.">Initialize()</a> again with different parameters to find a good configuration. Returns PP_ERROR_BADARGUMENT if the requested minimum picture count is unreasonably large. </dd></dl>
</div>
</div>
-<a class="anchor" id="ae2329143c44bd5eaae507074c1fc0ec3"></a><!-- doxytag: member="PPB_VideoDecoder::IsVideoDecoder" ref="ae2329143c44bd5eaae507074c1fc0ec3" args=")(PP_Resource resource)" -->
+<a class="anchor" id="aa32bb990160f3e1fbfa90a2f363c61bc"></a><!-- doxytag: member="PPB_VideoDecoder::IsVideoDecoder" ref="aa32bb990160f3e1fbfa90a2f363c61bc" args=")(PP_Resource resource)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ae2329143c44bd5eaae507074c1fc0ec3">PPB_VideoDecoder::IsVideoDecoder</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#aa32bb990160f3e1fbfa90a2f363c61bc">PPB_VideoDecoder::IsVideoDecoder</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
</tr>
</table>
</div>
@@ -172,12 +173,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd><code>PP_TRUE</code> if the resource is a <code>PPB_VideoDecoder</code>, <code>PP_FALSE</code> if the resource is invalid or some other type. </dd></dl>
</div>
</div>
-<a class="anchor" id="ac7e6b42866d42eade96519f32755509f"></a><!-- doxytag: member="PPB_VideoDecoder::RecyclePicture" ref="ac7e6b42866d42eade96519f32755509f" args=")(PP_Resource video_decoder, const struct PP_VideoPicture *picture)" -->
+<a class="anchor" id="ab0b4f4b781cf6c0b347832961a08b6bb"></a><!-- doxytag: member="PPB_VideoDecoder::RecyclePicture" ref="ab0b4f4b781cf6c0b347832961a08b6bb" args=")(PP_Resource video_decoder, const struct PP_VideoPicture *picture)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">void(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ac7e6b42866d42eade96519f32755509f">PPB_VideoDecoder::RecyclePicture</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, const struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture)</td>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb">PPB_VideoDecoder::RecyclePicture</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, const struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture)</td>
</tr>
</table>
</div>
@@ -193,18 +194,18 @@ Data Fields</h2><table class="memberdecls">
</dl>
</div>
</div>
-<a class="anchor" id="aeb4704cfd86a4ad737af19e77f3ffd5e"></a><!-- doxytag: member="PPB_VideoDecoder::Reset" ref="aeb4704cfd86a4ad737af19e77f3ffd5e" args=")(PP_Resource video_decoder, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="ad8151e35df062e82434fb1d6e0629fd0"></a><!-- doxytag: member="PPB_VideoDecoder::Reset" ref="ad8151e35df062e82434fb1d6e0629fd0" args=")(PP_Resource video_decoder, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e">PPB_VideoDecoder::Reset</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0">PPB_VideoDecoder::Reset</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Resets the decoder as quickly as possible. </p>
-<p>The plugin can call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> to skip to another position in the video stream. After <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> returns, any pending calls to <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> and <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a>) abort, causing their callbacks to run with PP_ERROR_ABORTED. The plugin should not make further calls to the decoder other than <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ac7e6b42866d42eade96519f32755509f" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a> until the decoder signals completion by running |callback|. Any pictures held by the plugin remain valid during and after the reset and should be recycled back to the decoder.</p>
+<p>The plugin can call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> to skip to another position in the video stream. After <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> returns, any pending calls to <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> and <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a>) abort, causing their callbacks to run with PP_ERROR_ABORTED. The plugin should not make further calls to the decoder other than <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a> until the decoder signals completion by running |callback|. Any pictures held by the plugin remain valid during and after the reset and should be recycled back to the decoder.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">video_decoder</td><td>A <code>PP_Resource</code> identifying the video decoder. </td></tr>
diff --git a/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___video_encoder__0__2.html b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___video_encoder__0__2.html
new file mode 100644
index 0000000..de97a32
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/c/struct_p_p_b___video_encoder__0__2.html
@@ -0,0 +1,309 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PPB_VideoEncoder Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PPB_VideoEncoder" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a94d87da92ccfb984cef497977d00d80c">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9006f1c2d0d3fe9a71bb2343e22e679a">IsVideoEncoder</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#abe007473d19c6c82555799c0ecff0cc7">GetSupportedProfiles</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___array_output.html">PP_ArrayOutput</a> output, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561">Initialize</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___enums.html#ga4e7cf746d8acbfa268db1f5ebe8061bf">PP_VideoFrame_Format</a> input_format, const struct <a class="el" href="struct_p_p___size.html">PP_Size</a> *input_visible_size, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> output_profile, uint32_t initial_bitrate, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a468e94294b704c002a6532687bb53ed0">GetFramesRequired</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#adbd41c5b25729bbfb1ad90124d9e9528">GetFrameCodedSize</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___size.html">PP_Size</a> *coded_size)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a64a5b77b1130f13184b797828a49587a">GetVideoFrame</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *video_frame, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a873344d65a32d15426cd4424e76bb6d9">Encode</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_frame, <a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a> force_keyframe, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a8b2b489462a35bdc6300bcf1fdadabe4">GetBitstreamBuffer</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a> *bitstream_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a072f3199019aa262fbdf42412678220a">RecycleBitstreamBuffer</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, const struct <a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a> *bitstream_buffer)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#aa1a3fa20e5d8c56e420d169af6f02845">RequestEncodingParametersChange</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, uint32_t bitrate, uint32_t framerate)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#afe91b697d39e41ca9c4b187e1f66749f">Close</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder)</td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Video encoder interface. </p>
+<p>Typical usage:</p>
+<ul>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a94d87da92ccfb984cef497977d00d80c" title="Creates a new video encoder resource.">Create()</a> to create a new video encoder resource.</li>
+<li>Call GetSupportedFormats() to determine which codecs and profiles are available.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> to initialize the encoder for a supported profile.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a64a5b77b1130f13184b797828a49587a" title="Gets a blank video frame which can be filled with video data and passed to the encoder.">GetVideoFrame()</a> to get a blank frame and fill it in, or get a video frame from another resource, e.g. <code>PPB_MediaStreamVideoTrack</code>.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a873344d65a32d15426cd4424e76bb6d9" title="Encodes a video frame.">Encode()</a> to push the video frame to the encoder. If an external frame is pushed, wait for completion to recycle the frame.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a8b2b489462a35bdc6300bcf1fdadabe4" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> continuously (waiting for each previous call to complete) to pull encoded pictures from the encoder.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a072f3199019aa262fbdf42412678220a" title="Recycles a bitstream buffer back to the encoder.">RecycleBitstreamBuffer()</a> after consuming the data in the bitstream buffer.</li>
+<li>To destroy the encoder, the plugin should release all of its references to it. Any pending callbacks will abort before the encoder is destroyed.</li>
+</ul>
+<p>Available video codecs vary by platform. All: vp8 (software). ChromeOS, depending on your device: h264 (hardware), vp8 (hardware) </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="afe91b697d39e41ca9c4b187e1f66749f"></a><!-- doxytag: member="PPB_VideoEncoder::Close" ref="afe91b697d39e41ca9c4b187e1f66749f" args=")(PP_Resource video_encoder)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#afe91b697d39e41ca9c4b187e1f66749f">PPB_VideoEncoder::Close</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Closes the video encoder, and cancels any pending encodes. </p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> . It is not valid to call any encoder functions after a call to this method. <b>Note:</b> Destroying the video encoder closes it implicitly, so you are not required to call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#afe91b697d39e41ca9c4b187e1f66749f" title="Closes the video encoder, and cancels any pending encodes.">Close()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="a94d87da92ccfb984cef497977d00d80c"></a><!-- doxytag: member="PPB_VideoEncoder::Create" ref="a94d87da92ccfb984cef497977d00d80c" args=")(PP_Instance instance)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a94d87da92ccfb984cef497977d00d80c">PPB_VideoEncoder::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Creates a new video encoder resource. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code> identifying the instance with the video encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> corresponding to a video encoder if successful or 0 otherwise. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a873344d65a32d15426cd4424e76bb6d9"></a><!-- doxytag: member="PPB_VideoEncoder::Encode" ref="a873344d65a32d15426cd4424e76bb6d9" args=")(PP_Resource video_encoder, PP_Resource video_frame, PP_Bool force_keyframe, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a873344d65a32d15426cd4424e76bb6d9">PPB_VideoEncoder::Encode</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_frame, <a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a> force_keyframe, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Encodes a video frame. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">video_frame</td><td>The <code>PPB_VideoFrame</code> to be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">force_keyframe</td><td>A <code>PP_Bool&gt; specifying whether the encoder should emit a key frame for this video frame. </code></td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td><code>A </code><code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion. Plugins that pass <code>PPB_VideoFrame</code> resources owned by other resources should wait for completion before reusing them.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd><code> An int32_t containing an error code from </code><code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a8b2b489462a35bdc6300bcf1fdadabe4"></a><!-- doxytag: member="PPB_VideoEncoder::GetBitstreamBuffer" ref="a8b2b489462a35bdc6300bcf1fdadabe4" args=")(PP_Resource video_encoder, struct PP_BitstreamBuffer *bitstream_buffer, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a8b2b489462a35bdc6300bcf1fdadabe4">PPB_VideoEncoder::GetBitstreamBuffer</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a> *bitstream_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the next encoded bitstream buffer from the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[out]</td><td class="paramname">bitstream_buffer</td><td>A <code><a class="el" href="struct_p_p___bitstream_buffer.html" title="Struct describing a bitstream buffer.">PP_BitstreamBuffer</a></code> containing encoded video data. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion. The plugin can call GetBitstreamBuffer from the callback in order to continuously "pull" bitstream buffers from the encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. Returns PP_ERROR_INPROGRESS if a prior call to <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a8b2b489462a35bdc6300bcf1fdadabe4" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> has not completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="adbd41c5b25729bbfb1ad90124d9e9528"></a><!-- doxytag: member="PPB_VideoEncoder::GetFrameCodedSize" ref="adbd41c5b25729bbfb1ad90124d9e9528" args=")(PP_Resource video_encoder, struct PP_Size *coded_size)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#adbd41c5b25729bbfb1ad90124d9e9528">PPB_VideoEncoder::GetFrameCodedSize</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___size.html">PP_Size</a> *coded_size)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the coded size of the video frames required by the encoder. </p>
+<p>Coded size is the logical size of the input frames, in pixels. The encoder may have hardware alignment requirements that make this different from |input_visible_size|, as requested in the call to <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">coded_size</td><td>A <code><a class="el" href="struct_p_p___size.html" title="The PP_Size struct contains the size of a 2D rectangle.">PP_Size</a></code> to hold the coded size. </td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing a result code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a468e94294b704c002a6532687bb53ed0"></a><!-- doxytag: member="PPB_VideoEncoder::GetFramesRequired" ref="a468e94294b704c002a6532687bb53ed0" args=")(PP_Resource video_encoder)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a468e94294b704c002a6532687bb53ed0">PPB_VideoEncoder::GetFramesRequired</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the number of input video frames that the encoder may hold while encoding. </p>
+<p>If the plugin is providing the video frames, it should have at least this many available.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing the number of frames required, or an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="abe007473d19c6c82555799c0ecff0cc7"></a><!-- doxytag: member="PPB_VideoEncoder::GetSupportedProfiles" ref="abe007473d19c6c82555799c0ecff0cc7" args=")(PP_Resource video_encoder, struct PP_ArrayOutput output, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#abe007473d19c6c82555799c0ecff0cc7">PPB_VideoEncoder::GetSupportedProfiles</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___array_output.html">PP_ArrayOutput</a> output, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets an array of supported video encoder profiles. </p>
+<p>These can be used to choose a profile before calling <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output</td><td>A <code><a class="el" href="struct_p_p___array_output.html" title="A structure that defines a way for the browser to return arrays of data to the plugin.">PP_ArrayOutput</a></code> to receive the supported <code><a class="el" href="struct_p_p___video_profile_description.html" title="Supported video profile information.">PP_VideoProfileDescription</a></code> structs. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>If &gt;= 0, the number of supported profiles returned, otherwise an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a64a5b77b1130f13184b797828a49587a"></a><!-- doxytag: member="PPB_VideoEncoder::GetVideoFrame" ref="a64a5b77b1130f13184b797828a49587a" args=")(PP_Resource video_encoder, PP_Resource *video_frame, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a64a5b77b1130f13184b797828a49587a">PPB_VideoEncoder::GetVideoFrame</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *video_frame, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets a blank video frame which can be filled with video data and passed to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[out]</td><td class="paramname">video_frame</td><td>A blank <code>PPB_VideoFrame</code> resource. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a9cd78deaf493477ca7ec96a6e6445561"></a><!-- doxytag: member="PPB_VideoEncoder::Initialize" ref="a9cd78deaf493477ca7ec96a6e6445561" args=")(PP_Resource video_encoder, PP_VideoFrame_Format input_format, const struct PP_Size *input_visible_size, PP_VideoProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561">PPB_VideoEncoder::Initialize</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___enums.html#ga4e7cf746d8acbfa268db1f5ebe8061bf">PP_VideoFrame_Format</a> input_format, const struct <a class="el" href="struct_p_p___size.html">PP_Size</a> *input_visible_size, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> output_profile, uint32_t initial_bitrate, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Initializes a video encoder resource. </p>
+<p>The plugin should call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> successfully before calling any of the functions below.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_format</td><td>The <code>PP_VideoFrame_Format</code> of the frames which will be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_visible_size</td><td>A <code><a class="el" href="struct_p_p___size.html" title="The PP_Size struct contains the size of a 2D rectangle.">PP_Size</a></code> specifying the dimensions of the visible part of the input frames. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output_profile</td><td>A <code>PP_VideoProfile</code> specifying the codec profile of the encoded output stream. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_NOTSUPPORTED if video encoding is not available, or the requested codec profile is not supported. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a9006f1c2d0d3fe9a71bb2343e22e679a"></a><!-- doxytag: member="PPB_VideoEncoder::IsVideoEncoder" ref="a9006f1c2d0d3fe9a71bb2343e22e679a" args=")(PP_Resource resource)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9006f1c2d0d3fe9a71bb2343e22e679a">PPB_VideoEncoder::IsVideoEncoder</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Determines if the given resource is a video encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">resource</td><td>A <code>PP_Resource</code> identifying a resource.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd><code>PP_TRUE</code> if the resource is a <code>PPB_VideoEncoder</code>, <code>PP_FALSE</code> if the resource is invalid or some other type. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a072f3199019aa262fbdf42412678220a"></a><!-- doxytag: member="PPB_VideoEncoder::RecycleBitstreamBuffer" ref="a072f3199019aa262fbdf42412678220a" args=")(PP_Resource video_encoder, const struct PP_BitstreamBuffer *bitstream_buffer)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a072f3199019aa262fbdf42412678220a">PPB_VideoEncoder::RecycleBitstreamBuffer</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, const struct <a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a> *bitstream_buffer)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Recycles a bitstream buffer back to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">bitstream_buffer</td><td>A <code><a class="el" href="struct_p_p___bitstream_buffer.html" title="Struct describing a bitstream buffer.">PP_BitstreamBuffer</a></code> that is no longer needed by the plugin. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="aa1a3fa20e5d8c56e420d169af6f02845"></a><!-- doxytag: member="PPB_VideoEncoder::RequestEncodingParametersChange" ref="aa1a3fa20e5d8c56e420d169af6f02845" args=")(PP_Resource video_encoder, uint32_t bitrate, uint32_t framerate)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#aa1a3fa20e5d8c56e420d169af6f02845">PPB_VideoEncoder::RequestEncodingParametersChange</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, uint32_t bitrate, uint32_t framerate)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Requests a change to encoding parameters. </p>
+<p>This is only a request, fulfilled on a best-effort basis.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">bitrate</td><td>The requested new bitrate, in bits per second. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">framerate</td><td>The requested new framerate, in frames per second. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="ppb__video__encoder_8h.html">ppb_video_encoder.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/audio__encoder_8h.html b/native_client_sdk/doc_generated/pepper_dev/cpp/audio__encoder_8h.html
new file mode 100644
index 0000000..f04836a
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/audio__encoder_8h.html
@@ -0,0 +1,32 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>audio_encoder.h File Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<div class="textblock"><div class="dynheader">
+Include dependency graph for audio_encoder.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="audio__encoder_8h__incl.png" border="0" usemap="#audio__encoder_8h" alt="" /></div>
+<map name="audio__encoder_8h" id="audio__encoder_8h">
+</map>
+</div>
+</div><h2>
+Classes</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classpp_1_1_audio.html" title="An audio resource.">Audio</a> encoder interface. <a href="classpp_1_1_audio_encoder.html#details">More...</a><br /></td></tr>
+</table><h2>
+Namespaces</h2><table class="memberdecls">
+<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepp.html">pp</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file defines the API to create and use a AudioEncoder resource. </p>
+</div></div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/audio__encoder_8h__incl.png b/native_client_sdk/doc_generated/pepper_dev/cpp/audio__encoder_8h__incl.png
new file mode 100644
index 0000000..9eb1bf1
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/audio__encoder_8h__incl.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_audio_encoder-members.html b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_audio_encoder-members.html
new file mode 100644
index 0000000..9872974
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_audio_encoder-members.html
@@ -0,0 +1,39 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>Member List</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+
+</div>
+<!--header-->
+<div class="contents">
+This is the complete list of members for <a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a>, including all inherited members.<table>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#afaf804d519fc0f2370c2d011b4e68378">AudioEncoder</a>()</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a1b5126d5112082bfa782bf5423715030">AudioEncoder</a>(const InstanceHandle &amp;instance)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td><code> [explicit]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#ac4a116ff790ce5dc1cc4847118aabc9d">AudioEncoder</a>(const AudioEncoder &amp;other)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#ad4016f37d3022863ca0188acb26ac9c4">Clear</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a5f5f533624660ca8561fea403da85f5b">Close</a>()</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a81b9246381bdddacca3ac25f6ded2bfd">detach</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a75278dc12dfcc3d000e47e17f014be19">Encode</a>(const AudioBuffer &amp;buffer, const CompletionCallback &amp;cc)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#ad1a2c96562e2baa7a61d63fbb8a49999">GetBitstreamBuffer</a>(const CompletionCallbackWithOutput&lt; PP_AudioBitstreamBuffer &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a113d4a018e987f2f5227c6e0dc8a7687">GetBuffer</a>(const CompletionCallbackWithOutput&lt; AudioBuffer &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a706b305dae8bc5f5e0bca4491c991d59">GetNumberOfSamples</a>()</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a34b94c7bb1f509f4b56bfe7349560669">GetSupportedProfiles</a>(const CompletionCallbackWithOutput&lt; std::vector&lt; PP_AudioProfileDescription &gt; &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933">Initialize</a>(uint32_t channels, PP_AudioBuffer_SampleRate input_sample_rate, PP_AudioBuffer_SampleSize input_sample_size, PP_AudioProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;cc)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9">is_null</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#aaf808a98bdaa7998d82e19514aa87423">operator=</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a3eda014529127a818df8d5bb5ec2fdf0">PassRefFromConstructor</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a46a6123de0b007ad3fcb6f666534ccb4">pp_resource</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a9c5b90b6dbfd81154b28f402197184bc">RecycleBitstreamBuffer</a>(const PP_AudioBitstreamBuffer &amp;bitstream_buffer)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#aa64ea3b0313335817833a72ceed96114">RequestBitrateChange</a>(uint32_t bitrate)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a56679e93a58101c8dce5dc510811a094">Resource</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#ab0f664099ca06367180f220ea7e0b831">Resource</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a555de93fdf4793f7db1183bf71d20580">Resource</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [explicit, protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a907d3d6b7e292587c8cb9ff30d0a418d">Resource</a>(PassRef, PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a081165265e2bd8217eaa2be2aeeb3aa3">~Resource</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [virtual]</code></td></tr>
+</table></div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_audio_encoder.html b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_audio_encoder.html
new file mode 100644
index 0000000..525e399
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_audio_encoder.html
@@ -0,0 +1,381 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>pp::AudioEncoder Class Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="pp::AudioEncoder" --><!-- doxytag: inherits="pp::Resource" --><div class="dynheader">
+Inheritance diagram for pp::AudioEncoder:</div>
+<div class="dyncontent">
+<div class="center"><img src="classpp_1_1_audio_encoder__inherit__graph.png" border="0" usemap="#pp_1_1_audio_encoder_inherit__map" alt="Inheritance graph" /></div>
+<map name="pp_1_1_audio_encoder_inherit__map" id="pp_1_1_audio_encoder_inherit__map">
+<area shape="rect" id="node2" href="classpp_1_1_resource.html" title="A reference counted module resource." alt="" coords="20,5,124,32"></area></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<p><a href="classpp_1_1_audio_encoder-members.html">List of all members.</a></p>
+<h2>
+Public Member Functions</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#afaf804d519fc0f2370c2d011b4e68378">AudioEncoder</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a1b5126d5112082bfa782bf5423715030">AudioEncoder</a> (const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#ac4a116ff790ce5dc1cc4847118aabc9d">AudioEncoder</a> (const <a class="el" href="classpp_1_1_audio_encoder.html">AudioEncoder</a> &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a34b94c7bb1f509f4b56bfe7349560669">GetSupportedProfiles</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; std::vector&lt; PP_AudioProfileDescription &gt; &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933">Initialize</a> (uint32_t channels, PP_AudioBuffer_SampleRate input_sample_rate, PP_AudioBuffer_SampleSize input_sample_size, PP_AudioProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a706b305dae8bc5f5e0bca4491c991d59">GetNumberOfSamples</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a113d4a018e987f2f5227c6e0dc8a7687">GetBuffer</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; <a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a> &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a75278dc12dfcc3d000e47e17f014be19">Encode</a> (const <a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a> &amp;buffer, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#ad1a2c96562e2baa7a61d63fbb8a49999">GetBitstreamBuffer</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; PP_AudioBitstreamBuffer &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a9c5b90b6dbfd81154b28f402197184bc">RecycleBitstreamBuffer</a> (const PP_AudioBitstreamBuffer &amp;bitstream_buffer)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#aa64ea3b0313335817833a72ceed96114">RequestBitrateChange</a> (uint32_t bitrate)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a5f5f533624660ca8561fea403da85f5b">Close</a> ()</td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="classpp_1_1_audio.html" title="An audio resource.">Audio</a> encoder interface. </p>
+<p>Typical usage:</p>
+<ul>
+<li>Call Create() to create a new audio encoder resource.</li>
+<li>Call GetSupportedFormats() to determine which codecs and profiles are available.</li>
+<li>Call <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933" title="Initializes a audio encoder resource.">Initialize()</a> to initialize the encoder for a supported profile.</li>
+<li>Call <a class="el" href="classpp_1_1_audio_encoder.html#a113d4a018e987f2f5227c6e0dc8a7687" title="Gets a blank audio frame which can be filled with audio data and passed to the encoder.">GetBuffer()</a> to get a blank frame and fill it in, or get an audio frame from another resource, e.g. <code>PPB_MediaStreamAudioTrack</code>.</li>
+<li>Call <a class="el" href="classpp_1_1_audio_encoder.html#a75278dc12dfcc3d000e47e17f014be19" title="Encodes an audio buffer.">Encode()</a> to push the audio buffer to the encoder. If an external buffer is pushed, wait for completion to recycle the frame.</li>
+<li>Call <a class="el" href="classpp_1_1_audio_encoder.html#ad1a2c96562e2baa7a61d63fbb8a49999" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> continuously (waiting for each previous call to complete) to pull encoded buffers from the encoder.</li>
+<li>Call <a class="el" href="classpp_1_1_audio_encoder.html#a9c5b90b6dbfd81154b28f402197184bc" title="Recycles a bitstream buffer back to the encoder.">RecycleBitstreamBuffer()</a> after consuming the data in the bitstream buffer.</li>
+<li>To destroy the encoder, the plugin should release all of its references to it. Any pending callbacks will abort before the encoder is destroyed.</li>
+</ul>
+<p>Available audio codecs vary by platform. All: opus. </p>
+</div><hr /><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="afaf804d519fc0f2370c2d011b4e68378"></a><!-- doxytag: member="pp::AudioEncoder::AudioEncoder" ref="afaf804d519fc0f2370c2d011b4e68378" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_audio_encoder.html#afaf804d519fc0f2370c2d011b4e68378">pp::AudioEncoder::AudioEncoder</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Default constructor for creating an <a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9" title="This functions determines if this resource is invalid or uninitialized.">is_null()</a> <code><a class="el" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface.">AudioEncoder</a></code> object. </p>
+</div>
+</div>
+<a class="anchor" id="a1b5126d5112082bfa782bf5423715030"></a><!-- doxytag: member="pp::AudioEncoder::AudioEncoder" ref="a1b5126d5112082bfa782bf5423715030" args="(const InstanceHandle &amp;instance)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_audio_encoder.html#afaf804d519fc0f2370c2d011b4e68378">pp::AudioEncoder::AudioEncoder</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;&#160;</td>
+<td class="paramname"><em>instance</em></td><td>)</td>
+<td><code> [explicit]</code></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>A constructor used to create a <code><a class="el" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface.">AudioEncoder</a></code> and associate it with the provided <code><a class="el" href="classpp_1_1_instance.html">Instance</a></code>. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>The instance with which this resource will be associated. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ac4a116ff790ce5dc1cc4847118aabc9d"></a><!-- doxytag: member="pp::AudioEncoder::AudioEncoder" ref="ac4a116ff790ce5dc1cc4847118aabc9d" args="(const AudioEncoder &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_audio_encoder.html#afaf804d519fc0f2370c2d011b4e68378">pp::AudioEncoder::AudioEncoder</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_audio_encoder.html">AudioEncoder</a> &amp;&#160;</td>
+<td class="paramname"><em>other</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The copy constructor for <code><a class="el" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface.">AudioEncoder</a></code>. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>A reference to a <code><a class="el" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface.">AudioEncoder</a></code>. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr /><h2>Member Function Documentation</h2>
+<a class="anchor" id="a5f5f533624660ca8561fea403da85f5b"></a><!-- doxytag: member="pp::AudioEncoder::Close" ref="a5f5f533624660ca8561fea403da85f5b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_audio_encoder.html#a5f5f533624660ca8561fea403da85f5b">pp::AudioEncoder::Close</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Closes the audio encoder, and cancels any pending encodes. </p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> . It is not valid to call any encoder functions after a call to this method. <b>Note:</b> Destroying the audio encoder closes it implicitly, so you are not required to call <a class="el" href="classpp_1_1_audio_encoder.html#a5f5f533624660ca8561fea403da85f5b" title="Closes the audio encoder, and cancels any pending encodes.">Close()</a>. </p>
+</div>
+</div>
+<a class="anchor" id="a75278dc12dfcc3d000e47e17f014be19"></a><!-- doxytag: member="pp::AudioEncoder::Encode" ref="a75278dc12dfcc3d000e47e17f014be19" args="(const AudioBuffer &amp;buffer, const CompletionCallback &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#a75278dc12dfcc3d000e47e17f014be19">pp::AudioEncoder::Encode</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a> &amp;&#160;</td>
+<td class="paramname"><em>buffer</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
+<td class="paramname"><em>cc</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Encodes an audio buffer. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_buffer</td><td>The <code><a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a></code> to be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion. Plugins that pass <code><a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a></code> resources owned by other resources should wait for completion before reusing them.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933" title="Initializes a audio encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="ad1a2c96562e2baa7a61d63fbb8a49999"></a><!-- doxytag: member="pp::AudioEncoder::GetBitstreamBuffer" ref="ad1a2c96562e2baa7a61d63fbb8a49999" args="(const CompletionCallbackWithOutput&lt; PP_AudioBitstreamBuffer &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#ad1a2c96562e2baa7a61d63fbb8a49999">pp::AudioEncoder::GetBitstreamBuffer</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; PP_AudioBitstreamBuffer &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the next encoded bitstream buffer from the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the next bitstream buffer. The plugin can call GetBitstreamBuffer from the callback in order to continuously "pull" bitstream buffers from the encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933" title="Initializes a audio encoder resource.">Initialize()</a> has not successfully completed. Returns PP_ERROR_INPROGRESS if a prior call to <a class="el" href="classpp_1_1_audio_encoder.html#ad1a2c96562e2baa7a61d63fbb8a49999" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> has not completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a113d4a018e987f2f5227c6e0dc8a7687"></a><!-- doxytag: member="pp::AudioEncoder::GetBuffer" ref="a113d4a018e987f2f5227c6e0dc8a7687" args="(const CompletionCallbackWithOutput&lt; AudioBuffer &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#a113d4a018e987f2f5227c6e0dc8a7687">pp::AudioEncoder::GetBuffer</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; <a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a> &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets a blank audio frame which can be filled with audio data and passed to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the blank <code><a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a></code> resource.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a706b305dae8bc5f5e0bca4491c991d59"></a><!-- doxytag: member="pp::AudioEncoder::GetNumberOfSamples" ref="a706b305dae8bc5f5e0bca4491c991d59" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#a706b305dae8bc5f5e0bca4491c991d59">pp::AudioEncoder::GetNumberOfSamples</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the number of audio samples per channel that audio buffers must contain in order to be processed by the encoder. </p>
+<p>This will be the number of samples per channels contained in buffers returned by <a class="el" href="classpp_1_1_audio_encoder.html#a113d4a018e987f2f5227c6e0dc8a7687" title="Gets a blank audio frame which can be filled with audio data and passed to the encoder.">GetBuffer()</a>.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing the number of samples required, or an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933" title="Initializes a audio encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a34b94c7bb1f509f4b56bfe7349560669"></a><!-- doxytag: member="pp::AudioEncoder::GetSupportedProfiles" ref="a34b94c7bb1f509f4b56bfe7349560669" args="(const CompletionCallbackWithOutput&lt; std::vector&lt; PP_AudioProfileDescription &gt; &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#a34b94c7bb1f509f4b56bfe7349560669">pp::AudioEncoder::GetSupportedProfiles</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; std::vector&lt; PP_AudioProfileDescription &gt; &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets an array of supported audio encoder profiles. </p>
+<p>These can be used to choose a profile before calling <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933" title="Initializes a audio encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the PP_AudioProfileDescription structs.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>If &gt;= 0, the number of supported profiles returned, otherwise an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a28aa43f8c92b387b81e7cf63219c2933"></a><!-- doxytag: member="pp::AudioEncoder::Initialize" ref="a28aa43f8c92b387b81e7cf63219c2933" args="(uint32_t channels, PP_AudioBuffer_SampleRate input_sample_rate, PP_AudioBuffer_SampleSize input_sample_size, PP_AudioProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933">pp::AudioEncoder::Initialize</a> </td>
+<td>(</td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>channels</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">PP_AudioBuffer_SampleRate&#160;</td>
+<td class="paramname"><em>input_sample_rate</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">PP_AudioBuffer_SampleSize&#160;</td>
+<td class="paramname"><em>input_sample_size</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">PP_AudioProfile&#160;</td>
+<td class="paramname"><em>output_profile</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>initial_bitrate</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">PP_HardwareAcceleration&#160;</td>
+<td class="paramname"><em>acceleration</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
+<td class="paramname"><em>cc</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Initializes a audio encoder resource. </p>
+<p>This should be called after <a class="el" href="classpp_1_1_audio_encoder.html#a34b94c7bb1f509f4b56bfe7349560669" title="Gets an array of supported audio encoder profiles.">GetSupportedProfiles()</a> and before any functions below.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">channels</td><td>The number of audio channels to encode. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_sampling_rate</td><td>The sampling rate of the input audio buffer. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_sample_size</td><td>The sample size of the input audio buffer. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output_profile</td><td>A <code>PP_AudioProfile</code> specifying the codec profile of the encoded output stream. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">initial_bitrate</td><td>The initial bitrate for the encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_NOTSUPPORTED if audio encoding is not available, or the requested codec profile is not supported. Returns PP_ERROR_NOMEMORY if bitstream buffers can't be created. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a9c5b90b6dbfd81154b28f402197184bc"></a><!-- doxytag: member="pp::AudioEncoder::RecycleBitstreamBuffer" ref="a9c5b90b6dbfd81154b28f402197184bc" args="(const PP_AudioBitstreamBuffer &amp;bitstream_buffer)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_audio_encoder.html#a9c5b90b6dbfd81154b28f402197184bc">pp::AudioEncoder::RecycleBitstreamBuffer</a> </td>
+<td>(</td>
+<td class="paramtype">const PP_AudioBitstreamBuffer &amp;&#160;</td>
+<td class="paramname"><em>bitstream_buffer</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Recycles a bitstream buffer back to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">bitstream_buffer</td><td>A<code>PP_AudioBitstreamBuffer</code> that is no longer needed by the plugin. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="aa64ea3b0313335817833a72ceed96114"></a><!-- doxytag: member="pp::AudioEncoder::RequestBitrateChange" ref="aa64ea3b0313335817833a72ceed96114" args="(uint32_t bitrate)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_audio_encoder.html#aa64ea3b0313335817833a72ceed96114">pp::AudioEncoder::RequestBitrateChange</a> </td>
+<td>(</td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>bitrate</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Requests a change to the encoding bitrate. </p>
+<p>This is only a request, fulfilled on a best-effort basis.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr />The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="audio__encoder_8h.html">audio_encoder.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_audio_encoder__inherit__graph.png b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_audio_encoder__inherit__graph.png
new file mode 100644
index 0000000..5b2e1e1
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_audio_encoder__inherit__graph.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_instance.html b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_instance.html
index c1426e0..3894b01 100644
--- a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_instance.html
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_instance.html
@@ -113,7 +113,7 @@ Static Public Member Functions</h2><table class="memberdecls">
<div class="memdoc">
<p><a class="el" href="classpp_1_1_instance.html#a9773263ee281405030548fc224eeec08" title="AddPerInstanceObject() associates an instance with an interface, creating an object.">AddPerInstanceObject()</a> associates an instance with an interface, creating an object. </p>
<p>Many optional interfaces are associated with a plugin instance. For example, the find in PPP_Find interface receives updates on a per-instance basis. This "per-instance" tracking allows such objects to associate themselves with an instance as "the" handler for that interface name.</p>
-<p>In the case of the find example, the find object registers with its associated instance in its constructor and unregisters in its destructor. Then whenever it gets updates with a PP_Instance parameter, it can map back to the find object corresponding to that given PP_Instance by calling GetPerInstanceObject</p>
+<p>In the case of the find example, the find object registers with its associated instance in its constructor and unregisters in its destructor. Then whenever it gets updates with a PP_Instance parameter, it can map back to the find object corresponding to that given PP_Instance by calling GetPerInstanceObject.</p>
<p>This lookup is done on a per-interface-name basis. This means you can only have one object of a given interface name associated with an instance.</p>
<p>If you are adding a handler for an additional interface, be sure to register with the module (AddPluginInterface) for your interface name to get the C calls in the first place.</p>
<p>Refer to <a class="el" href="classpp_1_1_instance.html#a33c633189c7c321dac8e0c5dc6e67f5b" title="Refer to AddPerInstanceObject() for further information.">RemovePerInstanceObject()</a> and <a class="el" href="classpp_1_1_instance.html#a6dec498f1d49571be9fd40e23745327f" title="Look up an object previously associated with an instance.">GetPerInstanceObject()</a> for further information.</p>
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_resource.html b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_resource.html
index 7845d8d..9e77949 100644
--- a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_resource.html
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_resource.html
@@ -15,7 +15,7 @@ Inheritance diagram for pp::Resource:</div>
<div class="dyncontent">
<div class="center"><img src="classpp_1_1_resource__inherit__graph.png" border="0" usemap="#pp_1_1_resource_inherit__map" alt="Inheritance graph" /></div>
<map name="pp_1_1_resource_inherit__map" id="pp_1_1_resource_inherit__map">
-<area shape="rect" id="node2" href="classpp_1_1_audio.html" title="An audio resource." alt="" coords="216,5,299,32"></area><area shape="rect" id="node3" href="classpp_1_1_audio_buffer.html" title="pp::AudioBuffer" alt="" coords="197,56,317,83"></area><area shape="rect" id="node4" href="classpp_1_1_audio_config.html" title="A 16 bit stereo AudioConfig resource." alt="" coords="196,107,319,133"></area><area shape="rect" id="node5" href="classpp_1_1_compositor.html" title="The Compositor interface is used for setting CompositorLayer layers to the Chromium compositor for co..." alt="" coords="197,157,317,184"></area><area shape="rect" id="node6" href="classpp_1_1_compositor_layer.html" title="pp::CompositorLayer" alt="" coords="180,208,335,235"></area><area shape="rect" id="node7" href="classpp_1_1_file_i_o.html" title="The FileIO class represents a regular file." alt="" coords="218,259,297,285"></area><area shape="rect" id="node8" href="classpp_1_1_file_ref.html" title='The FileRef class represents a "weak pointer" to a file in a file system.' alt="" coords="215,309,300,336"></area><area shape="rect" id="node9" href="classpp_1_1_file_system.html" title="The FileSystem class identifies the file system type associated with a file." alt="" coords="200,360,315,387"></area><area shape="rect" id="node10" href="classpp_1_1_graphics2_d.html" title="pp::Graphics2D" alt="" coords="197,411,317,437"></area><area shape="rect" id="node11" href="classpp_1_1_graphics3_d.html" title="This class represents a 3D rendering context in the browser." alt="" coords="197,461,317,488"></area><area shape="rect" id="node12" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution." alt="" coords="193,512,322,539"></area><area shape="rect" id="node13" href="classpp_1_1_image_data.html" title="pp::ImageData" alt="" coords="199,563,316,589"></area><area shape="rect" id="node14" href="classpp_1_1_input_event.html" title="This class represents an input event resource." alt="" coords="200,613,315,640"></area><area shape="rect" id="node20" href="classpp_1_1_media_stream_audio_track.html" title="The MediaStreamAudioTrack class contains methods for receiving audio buffers from a MediaStream audio..." alt="" coords="157,664,357,691"></area><area shape="rect" id="node21" href="classpp_1_1_media_stream_video_track.html" title="The MediaStreamVideoTrack class contains methods for receiving video frames from a MediaStream video ..." alt="" coords="157,715,357,741"></area><area shape="rect" id="node22" href="classpp_1_1_message_loop.html" title="A message loop allows PPAPI calls to be issued on a thread." alt="" coords="190,765,325,792"></area><area shape="rect" id="node23" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address." alt="" coords="197,816,318,843"></area><area shape="rect" id="node24" href="classpp_1_1_network_list.html" title="pp::NetworkList" alt="" coords="197,867,317,893"></area><area shape="rect" id="node25" href="classpp_1_1_network_monitor.html" title="pp::NetworkMonitor" alt="" coords="184,917,331,944"></area><area shape="rect" id="node26" href="classpp_1_1_t_c_p_socket.html" title="The TCPSocket class provides TCP socket operations." alt="" coords="201,968,314,995"></area><area shape="rect" id="node27" href="classpp_1_1_u_d_p_socket.html" title="The UDPSocket class provides UDP socket operations." alt="" coords="198,1019,317,1045"></area><area shape="rect" id="node28" href="classpp_1_1_u_r_l_loader.html" title="URLLoader provides an API for loading URLs." alt="" coords="200,1069,315,1096"></area><area shape="rect" id="node29" href="classpp_1_1_u_r_l_request_info.html" title="URLRequestInfo provides an API for creating and manipulating URL requests." alt="" coords="185,1120,330,1147"></area><area shape="rect" id="node30" href="classpp_1_1_u_r_l_response_info.html" title="URLResponseInfo provides an API for examining URL responses." alt="" coords="180,1171,335,1197"></area><area shape="rect" id="node31" href="classpp_1_1_video_decoder.html" title="Video decoder interface." alt="" coords="189,1221,325,1248"></area><area shape="rect" id="node32" href="classpp_1_1_video_frame.html" title="pp::VideoFrame" alt="" coords="196,1272,319,1299"></area><area shape="rect" id="node33" href="classpp_1_1_view.html" title="This class represents the state of the view for an instance and contains functions for retrieving the..." alt="" coords="220,1323,295,1349"></area><area shape="rect" id="node34" href="classpp_1_1_web_socket.html" title="The WebSocket class providing bi-directional, full-duplex, communications over a single TCP socket..." alt="" coords="199,1373,315,1400"></area><area shape="rect" id="node15" href="classpp_1_1_i_m_e_input_event.html" title="pp::IMEInputEvent" alt="" coords="424,512,560,539"></area><area shape="rect" id="node16" href="classpp_1_1_keyboard_input_event.html" title="pp::KeyboardInputEvent" alt="" coords="405,563,579,589"></area><area shape="rect" id="node17" href="classpp_1_1_mouse_input_event.html" title="This class handles mouse events." alt="" coords="414,613,570,640"></area><area shape="rect" id="node18" href="classpp_1_1_touch_input_event.html" title="pp::TouchInputEvent" alt="" coords="417,664,567,691"></area><area shape="rect" id="node19" href="classpp_1_1_wheel_input_event.html" title="pp::WheelInputEvent" alt="" coords="416,715,568,741"></area></map>
+<area shape="rect" id="node2" href="classpp_1_1_audio.html" title="An audio resource." alt="" coords="216,5,299,32"></area><area shape="rect" id="node3" href="classpp_1_1_audio_buffer.html" title="pp::AudioBuffer" alt="" coords="197,56,317,83"></area><area shape="rect" id="node4" href="classpp_1_1_audio_config.html" title="A 16 bit stereo AudioConfig resource." alt="" coords="196,107,319,133"></area><area shape="rect" id="node5" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface." alt="" coords="190,157,325,184"></area><area shape="rect" id="node6" href="classpp_1_1_compositor.html" title="The Compositor interface is used for setting CompositorLayer layers to the Chromium compositor for co..." alt="" coords="197,208,317,235"></area><area shape="rect" id="node7" href="classpp_1_1_compositor_layer.html" title="pp::CompositorLayer" alt="" coords="180,259,335,285"></area><area shape="rect" id="node8" href="classpp_1_1_file_i_o.html" title="The FileIO class represents a regular file." alt="" coords="218,309,297,336"></area><area shape="rect" id="node9" href="classpp_1_1_file_ref.html" title='The FileRef class represents a "weak pointer" to a file in a file system.' alt="" coords="215,360,300,387"></area><area shape="rect" id="node10" href="classpp_1_1_file_system.html" title="The FileSystem class identifies the file system type associated with a file." alt="" coords="200,411,315,437"></area><area shape="rect" id="node11" href="classpp_1_1_graphics2_d.html" title="pp::Graphics2D" alt="" coords="197,461,317,488"></area><area shape="rect" id="node12" href="classpp_1_1_graphics3_d.html" title="This class represents a 3D rendering context in the browser." alt="" coords="197,512,317,539"></area><area shape="rect" id="node13" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution." alt="" coords="193,563,322,589"></area><area shape="rect" id="node14" href="classpp_1_1_image_data.html" title="pp::ImageData" alt="" coords="199,613,316,640"></area><area shape="rect" id="node15" href="classpp_1_1_input_event.html" title="This class represents an input event resource." alt="" coords="200,664,315,691"></area><area shape="rect" id="node21" href="classpp_1_1_media_stream_audio_track.html" title="The MediaStreamAudioTrack class contains methods for receiving audio buffers from a MediaStream audio..." alt="" coords="157,715,357,741"></area><area shape="rect" id="node22" href="classpp_1_1_media_stream_video_track.html" title="The MediaStreamVideoTrack class contains methods for receiving video frames from a MediaStream video ..." alt="" coords="157,765,357,792"></area><area shape="rect" id="node23" href="classpp_1_1_message_loop.html" title="A message loop allows PPAPI calls to be issued on a thread." alt="" coords="190,816,325,843"></area><area shape="rect" id="node24" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address." alt="" coords="197,867,318,893"></area><area shape="rect" id="node25" href="classpp_1_1_network_list.html" title="pp::NetworkList" alt="" coords="197,917,317,944"></area><area shape="rect" id="node26" href="classpp_1_1_network_monitor.html" title="pp::NetworkMonitor" alt="" coords="184,968,331,995"></area><area shape="rect" id="node27" href="classpp_1_1_t_c_p_socket.html" title="The TCPSocket class provides TCP socket operations." alt="" coords="201,1019,314,1045"></area><area shape="rect" id="node28" href="classpp_1_1_u_d_p_socket.html" title="The UDPSocket class provides UDP socket operations." alt="" coords="198,1069,317,1096"></area><area shape="rect" id="node29" href="classpp_1_1_u_r_l_loader.html" title="URLLoader provides an API for loading URLs." alt="" coords="200,1120,315,1147"></area><area shape="rect" id="node30" href="classpp_1_1_u_r_l_request_info.html" title="URLRequestInfo provides an API for creating and manipulating URL requests." alt="" coords="185,1171,330,1197"></area><area shape="rect" id="node31" href="classpp_1_1_u_r_l_response_info.html" title="URLResponseInfo provides an API for examining URL responses." alt="" coords="180,1221,335,1248"></area><area shape="rect" id="node32" href="classpp_1_1_video_decoder.html" title="Video decoder interface." alt="" coords="189,1272,325,1299"></area><area shape="rect" id="node33" href="classpp_1_1_video_encoder.html" title="Video encoder interface." alt="" coords="190,1323,325,1349"></area><area shape="rect" id="node34" href="classpp_1_1_video_frame.html" title="pp::VideoFrame" alt="" coords="196,1373,319,1400"></area><area shape="rect" id="node35" href="classpp_1_1_view.html" title="This class represents the state of the view for an instance and contains functions for retrieving the..." alt="" coords="220,1424,295,1451"></area><area shape="rect" id="node36" href="classpp_1_1_web_socket.html" title="The WebSocket class providing bi-directional, full-duplex, communications over a single TCP socket..." alt="" coords="199,1475,315,1501"></area><area shape="rect" id="node16" href="classpp_1_1_i_m_e_input_event.html" title="pp::IMEInputEvent" alt="" coords="424,563,560,589"></area><area shape="rect" id="node17" href="classpp_1_1_keyboard_input_event.html" title="pp::KeyboardInputEvent" alt="" coords="405,613,579,640"></area><area shape="rect" id="node18" href="classpp_1_1_mouse_input_event.html" title="This class handles mouse events." alt="" coords="414,664,570,691"></area><area shape="rect" id="node19" href="classpp_1_1_touch_input_event.html" title="pp::TouchInputEvent" alt="" coords="417,715,567,741"></area><area shape="rect" id="node20" href="classpp_1_1_wheel_input_event.html" title="pp::WheelInputEvent" alt="" coords="416,765,568,792"></area></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<p><a href="classpp_1_1_resource-members.html">List of all members.</a></p>
<h2>
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_resource__inherit__graph.png b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_resource__inherit__graph.png
index 68d3837..5fd5ac3 100644
--- a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_resource__inherit__graph.png
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_resource__inherit__graph.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_u_d_p_socket-members.html b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_u_d_p_socket-members.html
index 2484890..4bd8553 100644
--- a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_u_d_p_socket-members.html
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_u_d_p_socket-members.html
@@ -18,6 +18,8 @@ This is the complete list of members for <a class="el" href="classpp_1_1_u_d_p_s
<tr class="memlist"><td><a class="el" href="classpp_1_1_u_d_p_socket.html#ae98c9decb3c3ea4ba1006943577b684d">GetBoundAddress</a>()</td><td><a class="el" href="classpp_1_1_u_d_p_socket.html">pp::UDPSocket</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9">is_null</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_u_d_p_socket.html#a76a2e93f2fa01d0dce8d8216d53b4f44">IsAvailable</a>()</td><td><a class="el" href="classpp_1_1_u_d_p_socket.html">pp::UDPSocket</a></td><td><code> [static]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_u_d_p_socket.html#a51bdeaeeef690d741850e7d691fa479d">JoinGroup</a>(const NetAddress &amp;group, const CompletionCallback callback)</td><td><a class="el" href="classpp_1_1_u_d_p_socket.html">pp::UDPSocket</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_u_d_p_socket.html#a7efaa9eda9e58ffbd5f6b5c5c9e8b38c">LeaveGroup</a>(const NetAddress &amp;group, const CompletionCallback callback)</td><td><a class="el" href="classpp_1_1_u_d_p_socket.html">pp::UDPSocket</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_u_d_p_socket.html#a72112f67b757bbbfaaf67ae3cfe2f602">operator=</a>(const UDPSocket &amp;other)</td><td><a class="el" href="classpp_1_1_u_d_p_socket.html">pp::UDPSocket</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#aaf808a98bdaa7998d82e19514aa87423">pp::Resource::operator=</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a3eda014529127a818df8d5bb5ec2fdf0">PassRefFromConstructor</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_u_d_p_socket.html b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_u_d_p_socket.html
index c0bf322..84f508f 100644
--- a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_u_d_p_socket.html
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_u_d_p_socket.html
@@ -33,6 +33,8 @@ Public Member Functions</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#a657309cd3bc38cf28e25f4c71190d1a0">SendTo</a> (const char *buffer, int32_t num_bytes, const <a class="el" href="classpp_1_1_net_address.html">NetAddress</a> &amp;addr, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#aa1f03d8d0e7ef59c40724e2691f165f2">Close</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#a5ff91fd2342e534b57980c0c2e414251">SetOption</a> (PP_UDPSocket_Option name, const <a class="el" href="classpp_1_1_var.html">Var</a> &amp;value, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#a51bdeaeeef690d741850e7d691fa479d">JoinGroup</a> (const <a class="el" href="classpp_1_1_net_address.html">NetAddress</a> &amp;group, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#a7efaa9eda9e58ffbd5f6b5c5c9e8b38c">LeaveGroup</a> (const <a class="el" href="classpp_1_1_net_address.html">NetAddress</a> &amp;group, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> callback)</td></tr>
</table><h2>
Static Public Member Functions</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#a76a2e93f2fa01d0dce8d8216d53b4f44">IsAvailable</a> ()</td></tr>
@@ -241,6 +243,76 @@ Static Public Member Functions</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the interface is available, false otherwise. </dd></dl>
</div>
</div>
+<a class="anchor" id="a51bdeaeeef690d741850e7d691fa479d"></a><!-- doxytag: member="pp::UDPSocket::JoinGroup" ref="a51bdeaeeef690d741850e7d691fa479d" args="(const NetAddress &amp;group, const CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_u_d_p_socket.html#a51bdeaeeef690d741850e7d691fa479d">pp::UDPSocket::JoinGroup</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_net_address.html">NetAddress</a> &amp;&#160;</td>
+<td class="paramname"><em>group</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a>&#160;</td>
+<td class="paramname"><em>callback</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Joins the multicast group with address specified by <code>group</code> parameter, which is expected to be a <code><a class="el" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address.">NetAddress</a></code> object. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">group</td><td>A <code><a class="el" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address.">NetAddress</a></code> corresponding to the network address of the multicast group. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a7efaa9eda9e58ffbd5f6b5c5c9e8b38c"></a><!-- doxytag: member="pp::UDPSocket::LeaveGroup" ref="a7efaa9eda9e58ffbd5f6b5c5c9e8b38c" args="(const NetAddress &amp;group, const CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_u_d_p_socket.html#a7efaa9eda9e58ffbd5f6b5c5c9e8b38c">pp::UDPSocket::LeaveGroup</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_net_address.html">NetAddress</a> &amp;&#160;</td>
+<td class="paramname"><em>group</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a>&#160;</td>
+<td class="paramname"><em>callback</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Leaves the multicast group with address specified by <code>group</code> parameter, which is expected to be a <code><a class="el" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address.">NetAddress</a></code> object. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">group</td><td>A <code><a class="el" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address.">NetAddress</a></code> corresponding to the network address of the multicast group. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
<a class="anchor" id="a72112f67b757bbbfaaf67ae3cfe2f602"></a><!-- doxytag: member="pp::UDPSocket::operator=" ref="a72112f67b757bbbfaaf67ae3cfe2f602" args="(const UDPSocket &amp;other)" -->
<div class="memitem">
<div class="memproto">
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_decoder-members.html b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_decoder-members.html
index f383c8c..68a4c3e 100644
--- a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_decoder-members.html
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_decoder-members.html
@@ -16,7 +16,7 @@ This is the complete list of members for <a class="el" href="classpp_1_1_video_d
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a81b9246381bdddacca3ac25f6ded2bfd">detach</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_video_decoder.html#adb59ebce58f83b1c27e9c427596fb366">Flush</a>(const CompletionCallback &amp;callback)</td><td><a class="el" href="classpp_1_1_video_decoder.html">pp::VideoDecoder</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a">GetPicture</a>(const CompletionCallbackWithOutput&lt; PP_VideoPicture &gt; &amp;callback)</td><td><a class="el" href="classpp_1_1_video_decoder.html">pp::VideoDecoder</a></td><td></td></tr>
-<tr class="memlist"><td><a class="el" href="classpp_1_1_video_decoder.html#a52d1b4e5b5427d3bfb263cdec051274e">Initialize</a>(const Graphics3D &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;callback)</td><td><a class="el" href="classpp_1_1_video_decoder.html">pp::VideoDecoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_decoder.html#a284c6a99f5c3ea83465f7eab81ca4ba8">Initialize</a>(const Graphics3D &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, uint32_t min_picture_count, const CompletionCallback &amp;callback)</td><td><a class="el" href="classpp_1_1_video_decoder.html">pp::VideoDecoder</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9">is_null</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#aaf808a98bdaa7998d82e19514aa87423">operator=</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a3eda014529127a818df8d5bb5ec2fdf0">PassRefFromConstructor</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_decoder.html b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_decoder.html
index a82fcda..d05fd0a 100644
--- a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_decoder.html
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_decoder.html
@@ -24,7 +24,7 @@ Public Member Functions</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#afc9613c960f58ff4c97804da4645cd64">VideoDecoder</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a5c7b1010b42e179cf51e55266eb1491a">VideoDecoder</a> (const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;instance)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a0eec2949dd73ef6d52b6782cee3b427d">VideoDecoder</a> (const <a class="el" href="classpp_1_1_video_decoder.html">VideoDecoder</a> &amp;other)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a52d1b4e5b5427d3bfb263cdec051274e">Initialize</a> (const <a class="el" href="classpp_1_1_graphics3_d.html">Graphics3D</a> &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a284c6a99f5c3ea83465f7eab81ca4ba8">Initialize</a> (const <a class="el" href="classpp_1_1_graphics3_d.html">Graphics3D</a> &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, uint32_t min_picture_count, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a2f1a48cf6d2f1854b20e6a747c9b03e3">Decode</a> (uint32_t decode_id, uint32_t size, const void *buffer, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a">GetPicture</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; PP_VideoPicture &gt; &amp;callback)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a7b9c4917ebd205572a0fe69a34f1bfd9">RecyclePicture</a> (const PP_VideoPicture &amp;picture)</td></tr>
@@ -36,7 +36,7 @@ Public Member Functions</h2><table class="memberdecls">
<p>Typical usage:</p>
<ul>
<li>Call Create() to create a new video decoder resource.</li>
-<li>Call <a class="el" href="classpp_1_1_video_decoder.html#a52d1b4e5b5427d3bfb263cdec051274e" title="Initializes a video decoder resource.">Initialize()</a> to initialize it with a 3d graphics context and the desired codec profile.</li>
+<li>Call <a class="el" href="classpp_1_1_video_decoder.html#a284c6a99f5c3ea83465f7eab81ca4ba8" title="Initializes a video decoder resource.">Initialize()</a> to initialize it with a 3d graphics context and the desired codec profile.</li>
<li>Call <a class="el" href="classpp_1_1_video_decoder.html#a2f1a48cf6d2f1854b20e6a747c9b03e3" title="Decodes a bitstream buffer.">Decode()</a> continuously (waiting for each previous call to complete) to push bitstream buffers to the decoder.</li>
<li>Call <a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a" title="Gets the next picture from the decoder.">GetPicture()</a> continuously (waiting for each previous call to complete) to pull decoded pictures from the decoder.</li>
<li>Call <a class="el" href="classpp_1_1_video_decoder.html#adb59ebce58f83b1c27e9c427596fb366" title="Flushes the decoder.">Flush()</a> to signal end of stream to the decoder and perform shutdown when it completes.</li>
@@ -210,12 +210,12 @@ Public Member Functions</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if the decoder isn't initialized or if a <a class="el" href="classpp_1_1_video_decoder.html#aa05481906b07e929c9567bc22a48917a" title="Resets the decoder as quickly as possible.">Reset()</a> call is pending. Returns PP_ERROR_INPROGRESS if there is another <a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a" title="Gets the next picture from the decoder.">GetPicture()</a> call pending. Returns PP_ERROR_ABORTED when <a class="el" href="classpp_1_1_video_decoder.html#aa05481906b07e929c9567bc22a48917a" title="Resets the decoder as quickly as possible.">Reset()</a> is called, or if a call to <a class="el" href="classpp_1_1_video_decoder.html#adb59ebce58f83b1c27e9c427596fb366" title="Flushes the decoder.">Flush()</a> completes while <a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a" title="Gets the next picture from the decoder.">GetPicture()</a> is pending. </dd></dl>
</div>
</div>
-<a class="anchor" id="a52d1b4e5b5427d3bfb263cdec051274e"></a><!-- doxytag: member="pp::VideoDecoder::Initialize" ref="a52d1b4e5b5427d3bfb263cdec051274e" args="(const Graphics3D &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;callback)" -->
+<a class="anchor" id="a284c6a99f5c3ea83465f7eab81ca4ba8"></a><!-- doxytag: member="pp::VideoDecoder::Initialize" ref="a284c6a99f5c3ea83465f7eab81ca4ba8" args="(const Graphics3D &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, uint32_t min_picture_count, const CompletionCallback &amp;callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t <a class="el" href="classpp_1_1_video_decoder.html#a52d1b4e5b5427d3bfb263cdec051274e">pp::VideoDecoder::Initialize</a> </td>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_decoder.html#a284c6a99f5c3ea83465f7eab81ca4ba8">pp::VideoDecoder::Initialize</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classpp_1_1_graphics3_d.html">Graphics3D</a> &amp;&#160;</td>
<td class="paramname"><em>graphics3d_context</em>, </td>
@@ -235,6 +235,12 @@ Public Member Functions</h2><table class="memberdecls">
<tr>
<td class="paramkey"></td>
<td></td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>min_picture_count</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
<td class="paramname"><em>callback</em>&#160;</td>
</tr>
@@ -253,11 +259,12 @@ Public Member Functions</h2><table class="memberdecls">
<tr><td class="paramdir">[in]</td><td class="paramname">graphics3d_context</td><td>A <code>PPB_Graphics3D</code> resource to use during decoding. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">profile</td><td>A <code>PP_VideoProfile</code> specifying the video codec profile. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">min_picture_count</td><td>A count of pictures the plugin would like to have in flight. This is effectively the number of times the plugin can call <a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a" title="Gets the next picture from the decoder.">GetPicture()</a> and get a decoded frame without calling <a class="el" href="classpp_1_1_video_decoder.html#a7b9c4917ebd205572a0fe69a34f1bfd9" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a>. The decoder has its own internal minimum count, and will take the larger of its internal and this value. A client that doesn't care can therefore just pass in zero for this argument. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code>PP_CompletionCallback</code> to be called upon completion.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the requested profile is not supported. In this case, the client may call <a class="el" href="classpp_1_1_video_decoder.html#a52d1b4e5b5427d3bfb263cdec051274e" title="Initializes a video decoder resource.">Initialize()</a> again with different parameters to find a good configuration. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the requested profile is not supported. In this case, the client may call <a class="el" href="classpp_1_1_video_decoder.html#a284c6a99f5c3ea83465f7eab81ca4ba8" title="Initializes a video decoder resource.">Initialize()</a> again with different parameters to find a good configuration. </dd></dl>
</div>
</div>
<a class="anchor" id="a7b9c4917ebd205572a0fe69a34f1bfd9"></a><!-- doxytag: member="pp::VideoDecoder::RecyclePicture" ref="a7b9c4917ebd205572a0fe69a34f1bfd9" args="(const PP_VideoPicture &amp;picture)" -->
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_encoder-members.html b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_encoder-members.html
new file mode 100644
index 0000000..1f9a454
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_encoder-members.html
@@ -0,0 +1,40 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>Member List</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+
+</div>
+<!--header-->
+<div class="contents">
+This is the complete list of members for <a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a>, including all inherited members.<table>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#ad4016f37d3022863ca0188acb26ac9c4">Clear</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a411036495143eb6484b668e2d26c1170">Close</a>()</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a81b9246381bdddacca3ac25f6ded2bfd">detach</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a39755b4e3aee295d8ba509da9904e5cd">Encode</a>(const VideoFrame &amp;video_frame, bool force_keyframe, const CompletionCallback &amp;cc)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a9c0861d91f7c93cb15cf917ca6d6cf95">GetBitstreamBuffer</a>(const CompletionCallbackWithOutput&lt; PP_BitstreamBuffer &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a2112ec6caf60385c1625b85e3697d777">GetFrameCodedSize</a>(Size *coded_size)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#ae673a5ebfed4fc3198a405cccecfbe54">GetFramesRequired</a>()</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a5c264d3b6ec0a5970cc1dee74dbfaf55">GetSupportedProfiles</a>(const CompletionCallbackWithOutput&lt; std::vector&lt; PP_VideoProfileDescription &gt; &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a5c5fabe6a00afe6b8849bbc612183bb2">GetVideoFrame</a>(const CompletionCallbackWithOutput&lt; VideoFrame &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7">Initialize</a>(const PP_VideoFrame_Format &amp;input_format, const Size &amp;input_visible_size, const PP_VideoProfile &amp;output_profile, const uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;cc)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9">is_null</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#aaf808a98bdaa7998d82e19514aa87423">operator=</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a3eda014529127a818df8d5bb5ec2fdf0">PassRefFromConstructor</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a46a6123de0b007ad3fcb6f666534ccb4">pp_resource</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a81aec23c26a3f9c16ff90efdc38b2895">RecycleBitstreamBuffer</a>(const PP_BitstreamBuffer &amp;bitstream_buffer)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a727159fe366c6ce146dce4c42a608fd7">RequestEncodingParametersChange</a>(uint32_t bitrate, uint32_t framerate)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a56679e93a58101c8dce5dc510811a094">Resource</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#ab0f664099ca06367180f220ea7e0b831">Resource</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a555de93fdf4793f7db1183bf71d20580">Resource</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [explicit, protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a907d3d6b7e292587c8cb9ff30d0a418d">Resource</a>(PassRef, PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a6a84b977ee05e00bb2c00519d1893d08">VideoEncoder</a>()</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a479c6cbd73b497c98871d877ef9e0b29">VideoEncoder</a>(const InstanceHandle &amp;instance)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td><code> [explicit]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#ad9d09d444a0480153aa5086fda13f064">VideoEncoder</a>(const VideoEncoder &amp;other)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a081165265e2bd8217eaa2be2aeeb3aa3">~Resource</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [virtual]</code></td></tr>
+</table></div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_encoder.html b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_encoder.html
new file mode 100644
index 0000000..c653949
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_encoder.html
@@ -0,0 +1,418 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>pp::VideoEncoder Class Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="pp::VideoEncoder" --><!-- doxytag: inherits="pp::Resource" --><div class="dynheader">
+Inheritance diagram for pp::VideoEncoder:</div>
+<div class="dyncontent">
+<div class="center"><img src="classpp_1_1_video_encoder__inherit__graph.png" border="0" usemap="#pp_1_1_video_encoder_inherit__map" alt="Inheritance graph" /></div>
+<map name="pp_1_1_video_encoder_inherit__map" id="pp_1_1_video_encoder_inherit__map">
+<area shape="rect" id="node2" href="classpp_1_1_resource.html" title="A reference counted module resource." alt="" coords="20,5,124,32"></area></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<p><a href="classpp_1_1_video_encoder-members.html">List of all members.</a></p>
+<h2>
+Public Member Functions</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a6a84b977ee05e00bb2c00519d1893d08">VideoEncoder</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a479c6cbd73b497c98871d877ef9e0b29">VideoEncoder</a> (const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#ad9d09d444a0480153aa5086fda13f064">VideoEncoder</a> (const <a class="el" href="classpp_1_1_video_encoder.html">VideoEncoder</a> &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a5c264d3b6ec0a5970cc1dee74dbfaf55">GetSupportedProfiles</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; std::vector&lt; PP_VideoProfileDescription &gt; &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7">Initialize</a> (const PP_VideoFrame_Format &amp;input_format, const <a class="el" href="classpp_1_1_size.html">Size</a> &amp;input_visible_size, const PP_VideoProfile &amp;output_profile, const uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#ae673a5ebfed4fc3198a405cccecfbe54">GetFramesRequired</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a2112ec6caf60385c1625b85e3697d777">GetFrameCodedSize</a> (<a class="el" href="classpp_1_1_size.html">Size</a> *coded_size)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a5c5fabe6a00afe6b8849bbc612183bb2">GetVideoFrame</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; <a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a> &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a39755b4e3aee295d8ba509da9904e5cd">Encode</a> (const <a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a> &amp;video_frame, bool force_keyframe, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a9c0861d91f7c93cb15cf917ca6d6cf95">GetBitstreamBuffer</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; PP_BitstreamBuffer &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a81aec23c26a3f9c16ff90efdc38b2895">RecycleBitstreamBuffer</a> (const PP_BitstreamBuffer &amp;bitstream_buffer)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a727159fe366c6ce146dce4c42a608fd7">RequestEncodingParametersChange</a> (uint32_t bitrate, uint32_t framerate)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a411036495143eb6484b668e2d26c1170">Close</a> ()</td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Video encoder interface. </p>
+<p>Typical usage:</p>
+<ul>
+<li>Call Create() to create a new video encoder resource.</li>
+<li>Call GetSupportedFormats() to determine which codecs and profiles are available.</li>
+<li>Call <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a> to initialize the encoder for a supported profile.</li>
+<li>Call <a class="el" href="classpp_1_1_video_encoder.html#a5c5fabe6a00afe6b8849bbc612183bb2" title="Gets a blank video frame which can be filled with video data and passed to the encoder.">GetVideoFrame()</a> to get a blank frame and fill it in, or get a video frame from another resource, e.g. <code>PPB_MediaStreamVideoTrack</code>.</li>
+<li>Call <a class="el" href="classpp_1_1_video_encoder.html#a39755b4e3aee295d8ba509da9904e5cd" title="Encodes a video frame.">Encode()</a> to push the video frame to the encoder. If an external frame is pushed, wait for completion to recycle the frame.</li>
+<li>Call <a class="el" href="classpp_1_1_video_encoder.html#a9c0861d91f7c93cb15cf917ca6d6cf95" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> continuously (waiting for each previous call to complete) to pull encoded pictures from the encoder.</li>
+<li>Call <a class="el" href="classpp_1_1_video_encoder.html#a81aec23c26a3f9c16ff90efdc38b2895" title="Recycles a bitstream buffer back to the encoder.">RecycleBitstreamBuffer()</a> after consuming the data in the bitstream buffer.</li>
+<li>To destroy the encoder, the plugin should release all of its references to it. Any pending callbacks will abort before the encoder is destroyed.</li>
+</ul>
+<p>Available video codecs vary by platform. All: vp8 (software). ChromeOS, depending on your device: h264 (hardware), vp8 (hardware) </p>
+</div><hr /><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a6a84b977ee05e00bb2c00519d1893d08"></a><!-- doxytag: member="pp::VideoEncoder::VideoEncoder" ref="a6a84b977ee05e00bb2c00519d1893d08" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_video_encoder.html#a6a84b977ee05e00bb2c00519d1893d08">pp::VideoEncoder::VideoEncoder</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Default constructor for creating an <a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9" title="This functions determines if this resource is invalid or uninitialized.">is_null()</a> <code><a class="el" href="classpp_1_1_video_encoder.html" title="Video encoder interface.">VideoEncoder</a></code> object. </p>
+</div>
+</div>
+<a class="anchor" id="a479c6cbd73b497c98871d877ef9e0b29"></a><!-- doxytag: member="pp::VideoEncoder::VideoEncoder" ref="a479c6cbd73b497c98871d877ef9e0b29" args="(const InstanceHandle &amp;instance)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_video_encoder.html#a6a84b977ee05e00bb2c00519d1893d08">pp::VideoEncoder::VideoEncoder</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;&#160;</td>
+<td class="paramname"><em>instance</em></td><td>)</td>
+<td><code> [explicit]</code></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>A constructor used to create a <code><a class="el" href="classpp_1_1_video_encoder.html" title="Video encoder interface.">VideoEncoder</a></code> and associate it with the provided <code><a class="el" href="classpp_1_1_instance.html">Instance</a></code>. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>The instance with which this resource will be associated. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ad9d09d444a0480153aa5086fda13f064"></a><!-- doxytag: member="pp::VideoEncoder::VideoEncoder" ref="ad9d09d444a0480153aa5086fda13f064" args="(const VideoEncoder &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_video_encoder.html#a6a84b977ee05e00bb2c00519d1893d08">pp::VideoEncoder::VideoEncoder</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_video_encoder.html">VideoEncoder</a> &amp;&#160;</td>
+<td class="paramname"><em>other</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The copy constructor for <code><a class="el" href="classpp_1_1_video_encoder.html" title="Video encoder interface.">VideoEncoder</a></code>. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>A reference to a <code><a class="el" href="classpp_1_1_video_encoder.html" title="Video encoder interface.">VideoEncoder</a></code>. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr /><h2>Member Function Documentation</h2>
+<a class="anchor" id="a411036495143eb6484b668e2d26c1170"></a><!-- doxytag: member="pp::VideoEncoder::Close" ref="a411036495143eb6484b668e2d26c1170" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_video_encoder.html#a411036495143eb6484b668e2d26c1170">pp::VideoEncoder::Close</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Closes the video encoder, and cancels any pending encodes. </p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> . It is not valid to call any encoder functions after a call to this method. <b>Note:</b> Destroying the video encoder closes it implicitly, so you are not required to call <a class="el" href="classpp_1_1_video_encoder.html#a411036495143eb6484b668e2d26c1170" title="Closes the video encoder, and cancels any pending encodes.">Close()</a>. </p>
+</div>
+</div>
+<a class="anchor" id="a39755b4e3aee295d8ba509da9904e5cd"></a><!-- doxytag: member="pp::VideoEncoder::Encode" ref="a39755b4e3aee295d8ba509da9904e5cd" args="(const VideoFrame &amp;video_frame, bool force_keyframe, const CompletionCallback &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#a39755b4e3aee295d8ba509da9904e5cd">pp::VideoEncoder::Encode</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a> &amp;&#160;</td>
+<td class="paramname"><em>video_frame</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">bool&#160;</td>
+<td class="paramname"><em>force_keyframe</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
+<td class="paramname"><em>cc</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Encodes a video frame. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_frame</td><td>The <code><a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a></code> to be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">force_keyframe</td><td>A <code>PP_Bool&gt; specifying whether the encoder should emit a key frame for this video frame. </code></td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td><code>A </code><code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion. Plugins that pass <code><a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a></code> resources owned by other resources should wait for completion before reusing them.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd><code> An int32_t containing an error code from </code><code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a9c0861d91f7c93cb15cf917ca6d6cf95"></a><!-- doxytag: member="pp::VideoEncoder::GetBitstreamBuffer" ref="a9c0861d91f7c93cb15cf917ca6d6cf95" args="(const CompletionCallbackWithOutput&lt; PP_BitstreamBuffer &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#a9c0861d91f7c93cb15cf917ca6d6cf95">pp::VideoEncoder::GetBitstreamBuffer</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; PP_BitstreamBuffer &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the next encoded bitstream buffer from the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[out]</td><td class="paramname">bitstream_buffer</td><td>A <code>PP_BitstreamBuffer</code> containing encoded video data. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the next bitstream buffer. The plugin can call GetBitstreamBuffer from the callback in order to continuously "pull" bitstream buffers from the encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. Returns PP_ERROR_INPROGRESS if a prior call to <a class="el" href="classpp_1_1_video_encoder.html#a9c0861d91f7c93cb15cf917ca6d6cf95" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> has not completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a2112ec6caf60385c1625b85e3697d777"></a><!-- doxytag: member="pp::VideoEncoder::GetFrameCodedSize" ref="a2112ec6caf60385c1625b85e3697d777" args="(Size *coded_size)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#a2112ec6caf60385c1625b85e3697d777">pp::VideoEncoder::GetFrameCodedSize</a> </td>
+<td>(</td>
+<td class="paramtype"><a class="el" href="classpp_1_1_size.html">Size</a> *&#160;</td>
+<td class="paramname"><em>coded_size</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the coded size of the video frames required by the encoder. </p>
+<p>Coded size is the logical size of the input frames, in pixels. The encoder may have hardware alignment requirements that make this different from |input_visible_size|, as requested in the call to <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">coded_size</td><td>A <code><a class="el" href="classpp_1_1_size.html" title="A size of an object based on width and height.">Size</a></code> to hold the coded size.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing a result code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="ae673a5ebfed4fc3198a405cccecfbe54"></a><!-- doxytag: member="pp::VideoEncoder::GetFramesRequired" ref="ae673a5ebfed4fc3198a405cccecfbe54" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#ae673a5ebfed4fc3198a405cccecfbe54">pp::VideoEncoder::GetFramesRequired</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the number of input video frames that the encoder may hold while encoding. </p>
+<p>If the plugin is providing the video frames, it should have at least this many available.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing the number of frames required, or an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a5c264d3b6ec0a5970cc1dee74dbfaf55"></a><!-- doxytag: member="pp::VideoEncoder::GetSupportedProfiles" ref="a5c264d3b6ec0a5970cc1dee74dbfaf55" args="(const CompletionCallbackWithOutput&lt; std::vector&lt; PP_VideoProfileDescription &gt; &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#a5c264d3b6ec0a5970cc1dee74dbfaf55">pp::VideoEncoder::GetSupportedProfiles</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; std::vector&lt; PP_VideoProfileDescription &gt; &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets an array of supported video encoder profiles. </p>
+<p>These can be used to choose a profile before calling <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the PP_VideoProfileDescription structs.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>If &gt;= 0, the number of supported profiles returned, otherwise an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a5c5fabe6a00afe6b8849bbc612183bb2"></a><!-- doxytag: member="pp::VideoEncoder::GetVideoFrame" ref="a5c5fabe6a00afe6b8849bbc612183bb2" args="(const CompletionCallbackWithOutput&lt; VideoFrame &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#a5c5fabe6a00afe6b8849bbc612183bb2">pp::VideoEncoder::GetVideoFrame</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; <a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a> &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets a blank video frame which can be filled with video data and passed to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the blank <code><a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a></code> resource.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="ad2c47c10cfe92a3bf41e204d326560c7"></a><!-- doxytag: member="pp::VideoEncoder::Initialize" ref="ad2c47c10cfe92a3bf41e204d326560c7" args="(const PP_VideoFrame_Format &amp;input_format, const Size &amp;input_visible_size, const PP_VideoProfile &amp;output_profile, const uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7">pp::VideoEncoder::Initialize</a> </td>
+<td>(</td>
+<td class="paramtype">const PP_VideoFrame_Format &amp;&#160;</td>
+<td class="paramname"><em>input_format</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_size.html">Size</a> &amp;&#160;</td>
+<td class="paramname"><em>input_visible_size</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const PP_VideoProfile &amp;&#160;</td>
+<td class="paramname"><em>output_profile</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const uint32_t&#160;</td>
+<td class="paramname"><em>initial_bitrate</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">PP_HardwareAcceleration&#160;</td>
+<td class="paramname"><em>acceleration</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
+<td class="paramname"><em>cc</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Initializes a video encoder resource. </p>
+<p>This should be called after <a class="el" href="classpp_1_1_video_encoder.html#a5c264d3b6ec0a5970cc1dee74dbfaf55" title="Gets an array of supported video encoder profiles.">GetSupportedProfiles()</a> and before any functions below.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">input_format</td><td>The <code>PP_VideoFrame_Format</code> of the frames which will be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_visible_size</td><td>A <code><a class="el" href="classpp_1_1_size.html" title="A size of an object based on width and height.">Size</a></code> specifying the dimensions of the visible part of the input frames. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output_profile</td><td>A <code>PP_VideoProfile</code> specifying the codec profile of the encoded output stream. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_NOTSUPPORTED if video encoding is not available, or the requested codec profile is not supported. Returns PP_ERROR_NOMEMORY if frame and bitstream buffers can't be created. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a81aec23c26a3f9c16ff90efdc38b2895"></a><!-- doxytag: member="pp::VideoEncoder::RecycleBitstreamBuffer" ref="a81aec23c26a3f9c16ff90efdc38b2895" args="(const PP_BitstreamBuffer &amp;bitstream_buffer)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_video_encoder.html#a81aec23c26a3f9c16ff90efdc38b2895">pp::VideoEncoder::RecycleBitstreamBuffer</a> </td>
+<td>(</td>
+<td class="paramtype">const PP_BitstreamBuffer &amp;&#160;</td>
+<td class="paramname"><em>bitstream_buffer</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Recycles a bitstream buffer back to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">bitstream_buffer</td><td>A <code>PP_BitstreamBuffer</code> that is no longer needed by the plugin. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="a727159fe366c6ce146dce4c42a608fd7"></a><!-- doxytag: member="pp::VideoEncoder::RequestEncodingParametersChange" ref="a727159fe366c6ce146dce4c42a608fd7" args="(uint32_t bitrate, uint32_t framerate)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_video_encoder.html#a727159fe366c6ce146dce4c42a608fd7">pp::VideoEncoder::RequestEncodingParametersChange</a> </td>
+<td>(</td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>bitrate</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>framerate</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Requests a change to encoding parameters. </p>
+<p>This is only a request, fulfilled on a best-effort basis.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">bitrate</td><td>The requested new bitrate, in bits per second. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">framerate</td><td>The requested new framerate, in frames per second. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr />The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="video__encoder_8h.html">video_encoder.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_encoder__inherit__graph.png b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_encoder__inherit__graph.png
new file mode 100644
index 0000000..14d3b23
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_video_encoder__inherit__graph.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_view-members.html b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_view-members.html
index faae169..a080677 100644
--- a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_view-members.html
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_view-members.html
@@ -30,7 +30,7 @@ This is the complete list of members for <a class="el" href="classpp_1_1_view.ht
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a555de93fdf4793f7db1183bf71d20580">Resource</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [explicit, protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a907d3d6b7e292587c8cb9ff30d0a418d">Resource</a>(PassRef, PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_view.html#aebcd4ab8818a6e1dfe68e2c435823ad9">View</a>()</td><td><a class="el" href="classpp_1_1_view.html">pp::View</a></td><td></td></tr>
-<tr class="memlist"><td><a class="el" href="classpp_1_1_view.html#a89cc79b6731f0e67d0821fe83b3e64fb">View</a>(PP_Resource view_resource)</td><td><a class="el" href="classpp_1_1_view.html">pp::View</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_view.html#a89cc79b6731f0e67d0821fe83b3e64fb">View</a>(PP_Resource view_resource)</td><td><a class="el" href="classpp_1_1_view.html">pp::View</a></td><td><code> [explicit]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a081165265e2bd8217eaa2be2aeeb3aa3">~Resource</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [virtual]</code></td></tr>
</table></div><!-- contents -->
</div>
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_view.html b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_view.html
index a415406..7f23b4d 100644
--- a/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_view.html
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/classpp_1_1_view.html
@@ -60,7 +60,7 @@ Public Member Functions</h2><table class="memberdecls">
<td>(</td>
<td class="paramtype">PP_Resource&#160;</td>
<td class="paramname"><em>view_resource</em></td><td>)</td>
-<td></td>
+<td><code> [explicit]</code></td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/inherit_graph_23.png b/native_client_sdk/doc_generated/pepper_dev/cpp/inherit_graph_23.png
index 6aebbb2..056cffd 100644
--- a/native_client_sdk/doc_generated/pepper_dev/cpp/inherit_graph_23.png
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/inherit_graph_23.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/inherits.html b/native_client_sdk/doc_generated/pepper_dev/cpp/inherits.html
index 150ad2b..f1a43a2 100644
--- a/native_client_sdk/doc_generated/pepper_dev/cpp/inherits.html
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/inherits.html
@@ -106,7 +106,7 @@
</td></tr>
<tr><td><img src="inherit_graph_23.png" border="0" alt="" usemap="#pp_1_1_resource" />
<map name="pp_1_1_resource" id="pp_1_1_resource">
-<area shape="rect" id="node1" href="classpp_1_1_resource.html" title="A reference counted module resource." alt="" coords="5,689,109,716"></area><area shape="rect" id="node2" href="classpp_1_1_audio.html" title="An audio resource." alt="" coords="216,5,299,32"></area><area shape="rect" id="node3" href="classpp_1_1_audio_buffer.html" title="pp::AudioBuffer" alt="" coords="197,56,317,83"></area><area shape="rect" id="node4" href="classpp_1_1_audio_config.html" title="A 16 bit stereo AudioConfig resource." alt="" coords="196,107,319,133"></area><area shape="rect" id="node5" href="classpp_1_1_compositor.html" title="The Compositor interface is used for setting CompositorLayer layers to the Chromium compositor for co..." alt="" coords="197,157,317,184"></area><area shape="rect" id="node6" href="classpp_1_1_compositor_layer.html" title="pp::CompositorLayer" alt="" coords="180,208,335,235"></area><area shape="rect" id="node7" href="classpp_1_1_file_i_o.html" title="The FileIO class represents a regular file." alt="" coords="218,259,297,285"></area><area shape="rect" id="node8" href="classpp_1_1_file_ref.html" title='The FileRef class represents a "weak pointer" to a file in a file system.' alt="" coords="215,309,300,336"></area><area shape="rect" id="node9" href="classpp_1_1_file_system.html" title="The FileSystem class identifies the file system type associated with a file." alt="" coords="200,360,315,387"></area><area shape="rect" id="node10" href="classpp_1_1_graphics2_d.html" title="pp::Graphics2D" alt="" coords="197,411,317,437"></area><area shape="rect" id="node11" href="classpp_1_1_graphics3_d.html" title="This class represents a 3D rendering context in the browser." alt="" coords="197,461,317,488"></area><area shape="rect" id="node12" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution." alt="" coords="193,512,322,539"></area><area shape="rect" id="node13" href="classpp_1_1_image_data.html" title="pp::ImageData" alt="" coords="199,563,316,589"></area><area shape="rect" id="node14" href="classpp_1_1_input_event.html" title="This class represents an input event resource." alt="" coords="200,613,315,640"></area><area shape="rect" id="node20" href="classpp_1_1_media_stream_audio_track.html" title="The MediaStreamAudioTrack class contains methods for receiving audio buffers from a MediaStream audio..." alt="" coords="157,664,357,691"></area><area shape="rect" id="node21" href="classpp_1_1_media_stream_video_track.html" title="The MediaStreamVideoTrack class contains methods for receiving video frames from a MediaStream video ..." alt="" coords="157,715,357,741"></area><area shape="rect" id="node22" href="classpp_1_1_message_loop.html" title="A message loop allows PPAPI calls to be issued on a thread." alt="" coords="190,765,325,792"></area><area shape="rect" id="node23" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address." alt="" coords="197,816,318,843"></area><area shape="rect" id="node24" href="classpp_1_1_network_list.html" title="pp::NetworkList" alt="" coords="197,867,317,893"></area><area shape="rect" id="node25" href="classpp_1_1_network_monitor.html" title="pp::NetworkMonitor" alt="" coords="184,917,331,944"></area><area shape="rect" id="node26" href="classpp_1_1_t_c_p_socket.html" title="The TCPSocket class provides TCP socket operations." alt="" coords="201,968,314,995"></area><area shape="rect" id="node27" href="classpp_1_1_u_d_p_socket.html" title="The UDPSocket class provides UDP socket operations." alt="" coords="198,1019,317,1045"></area><area shape="rect" id="node28" href="classpp_1_1_u_r_l_loader.html" title="URLLoader provides an API for loading URLs." alt="" coords="200,1069,315,1096"></area><area shape="rect" id="node29" href="classpp_1_1_u_r_l_request_info.html" title="URLRequestInfo provides an API for creating and manipulating URL requests." alt="" coords="185,1120,330,1147"></area><area shape="rect" id="node30" href="classpp_1_1_u_r_l_response_info.html" title="URLResponseInfo provides an API for examining URL responses." alt="" coords="180,1171,335,1197"></area><area shape="rect" id="node31" href="classpp_1_1_video_decoder.html" title="Video decoder interface." alt="" coords="189,1221,325,1248"></area><area shape="rect" id="node32" href="classpp_1_1_video_frame.html" title="pp::VideoFrame" alt="" coords="196,1272,319,1299"></area><area shape="rect" id="node33" href="classpp_1_1_view.html" title="This class represents the state of the view for an instance and contains functions for retrieving the..." alt="" coords="220,1323,295,1349"></area><area shape="rect" id="node34" href="classpp_1_1_web_socket.html" title="The WebSocket class providing bi-directional, full-duplex, communications over a single TCP socket..." alt="" coords="199,1373,315,1400"></area><area shape="rect" id="node15" href="classpp_1_1_i_m_e_input_event.html" title="pp::IMEInputEvent" alt="" coords="424,512,560,539"></area><area shape="rect" id="node16" href="classpp_1_1_keyboard_input_event.html" title="pp::KeyboardInputEvent" alt="" coords="405,563,579,589"></area><area shape="rect" id="node17" href="classpp_1_1_mouse_input_event.html" title="This class handles mouse events." alt="" coords="414,613,570,640"></area><area shape="rect" id="node18" href="classpp_1_1_touch_input_event.html" title="pp::TouchInputEvent" alt="" coords="417,664,567,691"></area><area shape="rect" id="node19" href="classpp_1_1_wheel_input_event.html" title="pp::WheelInputEvent" alt="" coords="416,715,568,741"></area></map>
+<area shape="rect" id="node1" href="classpp_1_1_resource.html" title="A reference counted module resource." alt="" coords="5,740,109,767"></area><area shape="rect" id="node2" href="classpp_1_1_audio.html" title="An audio resource." alt="" coords="216,5,299,32"></area><area shape="rect" id="node3" href="classpp_1_1_audio_buffer.html" title="pp::AudioBuffer" alt="" coords="197,56,317,83"></area><area shape="rect" id="node4" href="classpp_1_1_audio_config.html" title="A 16 bit stereo AudioConfig resource." alt="" coords="196,107,319,133"></area><area shape="rect" id="node5" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface." alt="" coords="190,157,325,184"></area><area shape="rect" id="node6" href="classpp_1_1_compositor.html" title="The Compositor interface is used for setting CompositorLayer layers to the Chromium compositor for co..." alt="" coords="197,208,317,235"></area><area shape="rect" id="node7" href="classpp_1_1_compositor_layer.html" title="pp::CompositorLayer" alt="" coords="180,259,335,285"></area><area shape="rect" id="node8" href="classpp_1_1_file_i_o.html" title="The FileIO class represents a regular file." alt="" coords="218,309,297,336"></area><area shape="rect" id="node9" href="classpp_1_1_file_ref.html" title='The FileRef class represents a "weak pointer" to a file in a file system.' alt="" coords="215,360,300,387"></area><area shape="rect" id="node10" href="classpp_1_1_file_system.html" title="The FileSystem class identifies the file system type associated with a file." alt="" coords="200,411,315,437"></area><area shape="rect" id="node11" href="classpp_1_1_graphics2_d.html" title="pp::Graphics2D" alt="" coords="197,461,317,488"></area><area shape="rect" id="node12" href="classpp_1_1_graphics3_d.html" title="This class represents a 3D rendering context in the browser." alt="" coords="197,512,317,539"></area><area shape="rect" id="node13" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution." alt="" coords="193,563,322,589"></area><area shape="rect" id="node14" href="classpp_1_1_image_data.html" title="pp::ImageData" alt="" coords="199,613,316,640"></area><area shape="rect" id="node15" href="classpp_1_1_input_event.html" title="This class represents an input event resource." alt="" coords="200,664,315,691"></area><area shape="rect" id="node21" href="classpp_1_1_media_stream_audio_track.html" title="The MediaStreamAudioTrack class contains methods for receiving audio buffers from a MediaStream audio..." alt="" coords="157,715,357,741"></area><area shape="rect" id="node22" href="classpp_1_1_media_stream_video_track.html" title="The MediaStreamVideoTrack class contains methods for receiving video frames from a MediaStream video ..." alt="" coords="157,765,357,792"></area><area shape="rect" id="node23" href="classpp_1_1_message_loop.html" title="A message loop allows PPAPI calls to be issued on a thread." alt="" coords="190,816,325,843"></area><area shape="rect" id="node24" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address." alt="" coords="197,867,318,893"></area><area shape="rect" id="node25" href="classpp_1_1_network_list.html" title="pp::NetworkList" alt="" coords="197,917,317,944"></area><area shape="rect" id="node26" href="classpp_1_1_network_monitor.html" title="pp::NetworkMonitor" alt="" coords="184,968,331,995"></area><area shape="rect" id="node27" href="classpp_1_1_t_c_p_socket.html" title="The TCPSocket class provides TCP socket operations." alt="" coords="201,1019,314,1045"></area><area shape="rect" id="node28" href="classpp_1_1_u_d_p_socket.html" title="The UDPSocket class provides UDP socket operations." alt="" coords="198,1069,317,1096"></area><area shape="rect" id="node29" href="classpp_1_1_u_r_l_loader.html" title="URLLoader provides an API for loading URLs." alt="" coords="200,1120,315,1147"></area><area shape="rect" id="node30" href="classpp_1_1_u_r_l_request_info.html" title="URLRequestInfo provides an API for creating and manipulating URL requests." alt="" coords="185,1171,330,1197"></area><area shape="rect" id="node31" href="classpp_1_1_u_r_l_response_info.html" title="URLResponseInfo provides an API for examining URL responses." alt="" coords="180,1221,335,1248"></area><area shape="rect" id="node32" href="classpp_1_1_video_decoder.html" title="Video decoder interface." alt="" coords="189,1272,325,1299"></area><area shape="rect" id="node33" href="classpp_1_1_video_encoder.html" title="Video encoder interface." alt="" coords="190,1323,325,1349"></area><area shape="rect" id="node34" href="classpp_1_1_video_frame.html" title="pp::VideoFrame" alt="" coords="196,1373,319,1400"></area><area shape="rect" id="node35" href="classpp_1_1_view.html" title="This class represents the state of the view for an instance and contains functions for retrieving the..." alt="" coords="220,1424,295,1451"></area><area shape="rect" id="node36" href="classpp_1_1_web_socket.html" title="The WebSocket class providing bi-directional, full-duplex, communications over a single TCP socket..." alt="" coords="199,1475,315,1501"></area><area shape="rect" id="node16" href="classpp_1_1_i_m_e_input_event.html" title="pp::IMEInputEvent" alt="" coords="424,563,560,589"></area><area shape="rect" id="node17" href="classpp_1_1_keyboard_input_event.html" title="pp::KeyboardInputEvent" alt="" coords="405,613,579,640"></area><area shape="rect" id="node18" href="classpp_1_1_mouse_input_event.html" title="This class handles mouse events." alt="" coords="414,664,570,691"></area><area shape="rect" id="node19" href="classpp_1_1_touch_input_event.html" title="pp::TouchInputEvent" alt="" coords="417,715,567,741"></area><area shape="rect" id="node20" href="classpp_1_1_wheel_input_event.html" title="pp::WheelInputEvent" alt="" coords="416,765,568,792"></area></map>
</td></tr>
<tr><td><img src="inherit_graph_24.png" border="0" alt="" usemap="#pp_1_1_size" />
<map name="pp_1_1_size" id="pp_1_1_size">
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/namespacepp.html b/native_client_sdk/doc_generated/pepper_dev/cpp/namespacepp.html
index d04f649..e888367 100644
--- a/native_client_sdk/doc_generated/pepper_dev/cpp/namespacepp.html
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/namespacepp.html
@@ -20,6 +20,8 @@ Classes</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_config.html">AudioConfig</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A 16 bit stereo <a class="el" href="classpp_1_1_audio_config.html" title="A 16 bit stereo AudioConfig resource.">AudioConfig</a> resource. <a href="classpp_1_1_audio_config.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html">AudioEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classpp_1_1_audio.html" title="An audio resource.">Audio</a> encoder interface. <a href="classpp_1_1_audio_encoder.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This API enables you to implement and receive callbacks when Pepper operations complete asynchronously. <a href="classpp_1_1_completion_callback.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a></td></tr>
@@ -112,6 +114,8 @@ Classes</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_var_dictionary.html">VarDictionary</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html">VideoDecoder</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video decoder interface. <a href="classpp_1_1_video_decoder.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html">VideoEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video encoder interface. <a href="classpp_1_1_video_encoder.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_view.html">View</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class represents the state of the view for an instance and contains functions for retrieving the current state of that view. <a href="classpp_1_1_view.html#details">More...</a><br /></td></tr>
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/video__encoder_8h.html b/native_client_sdk/doc_generated/pepper_dev/cpp/video__encoder_8h.html
new file mode 100644
index 0000000..2de4073
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/video__encoder_8h.html
@@ -0,0 +1,32 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>video_encoder.h File Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<div class="textblock"><div class="dynheader">
+Include dependency graph for video_encoder.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="video__encoder_8h__incl.png" border="0" usemap="#video__encoder_8h" alt="" /></div>
+<map name="video__encoder_8h" id="video__encoder_8h">
+</map>
+</div>
+</div><h2>
+Classes</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video encoder interface. <a href="classpp_1_1_video_encoder.html#details">More...</a><br /></td></tr>
+</table><h2>
+Namespaces</h2><table class="memberdecls">
+<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepp.html">pp</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file defines the API to create and use a VideoEncoder resource. </p>
+</div></div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_dev/cpp/video__encoder_8h__incl.png b/native_client_sdk/doc_generated/pepper_dev/cpp/video__encoder_8h__incl.png
new file mode 100644
index 0000000..553cbab
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_dev/cpp/video__encoder_8h__incl.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_dev/index.html b/native_client_sdk/doc_generated/pepper_dev/index.html
index f71a18b..d54498e 100644
--- a/native_client_sdk/doc_generated/pepper_dev/index.html
+++ b/native_client_sdk/doc_generated/pepper_dev/index.html
@@ -2,8 +2,8 @@
<section id="pepper-api-reference-dev">
<h1 id="pepper-api-reference-dev">Pepper API Reference (Dev)</h1>
-<p>This page lists the API for Pepper 42. Apps that use this API can
-run in Chrome 42 or higher.</p>
+<p>This page lists the API for Pepper 49. Apps that use this API can
+run in Chrome 49 or higher.</p>
<h2 id="pepper-c-api-reference"><a class="reference internal" href="/native-client/c-api-dev.html#pepper-dev-c-index"><em>Pepper C API Reference</em></a></h2>
<h2 id="id1"><a class="reference internal" href="/native-client/cpp-api-dev.html#pepper-dev-cpp-index"><em>Pepper C++ API Reference</em></a></h2>
</section>
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/globals_defs.html b/native_client_sdk/doc_generated/pepper_stable/c/globals_defs.html
index a088a1b..b08950b 100644
--- a/native_client_sdk/doc_generated/pepper_stable/c/globals_defs.html
+++ b/native_client_sdk/doc_generated/pepper_stable/c/globals_defs.html
@@ -31,6 +31,9 @@
<li>PPB_AUDIOBUFFER_INTERFACE_0_1
: <a class="el" href="ppb__audio__buffer_8h.html#a4fddf6d285021552ba11f4460ba47445">ppb_audio_buffer.h</a>
</li>
+<li>PPB_AUDIOENCODER_INTERFACE_0_1
+: <a class="el" href="ppb__audio__encoder_8h.html#a4c4871532f8ac42a5a98f9f0aaac27a6">ppb_audio_encoder.h</a>
+</li>
<li>PPB_COMPOSITOR_INTERFACE_0_1
: <a class="el" href="ppb__compositor_8h.html#ac8b0ddbdff260dd5531525784556c045">ppb_compositor.h</a>
</li>
@@ -55,9 +58,6 @@
<li>PPB_FILEIO_INTERFACE_1_1
: <a class="el" href="ppb__file__io_8h.html#aee417de3562daef62dbf68ddc16a8477">ppb_file_io.h</a>
</li>
-<li>PPB_FILEMAPPING_INTERFACE_0_1
-: <a class="el" href="ppb__file__mapping_8h.html#a657d5d4684814f79fd2c764fd8aa540e">ppb_file_mapping.h</a>
-</li>
<li>PPB_FILEREF_INTERFACE
: <a class="el" href="ppb__file__ref_8h.html#a00615ce99f7d6774b0fc5c8f0326f0ba">ppb_file_ref.h</a>
</li>
@@ -244,8 +244,8 @@
<li>PPB_TCPSOCKET_INTERFACE
: <a class="el" href="ppb__tcp__socket_8h.html#a29ecaef1552f19b223e6c93475d8788c">ppb_tcp_socket.h</a>
</li>
-<li>PPB_TCPSOCKET_INTERFACE_1_1
-: <a class="el" href="ppb__tcp__socket_8h.html#a12b0fabc454cb99a6d4c8352c6f22d71">ppb_tcp_socket.h</a>
+<li>PPB_TCPSOCKET_INTERFACE_1_2
+: <a class="el" href="ppb__tcp__socket_8h.html#a2f1cedfee70f4bfe4c35849be53fd73f">ppb_tcp_socket.h</a>
</li>
<li>PPB_TEXTINPUTCONTROLLER_INTERFACE
: <a class="el" href="ppb__text__input__controller_8h.html#a9a28f7fd2db84c2cd550ed272070c0ee">ppb_text_input_controller.h</a>
@@ -262,8 +262,8 @@
<li>PPB_UDPSOCKET_INTERFACE
: <a class="el" href="ppb__udp__socket_8h.html#a673aeb3fceb5ed977b7b8683f674cbfd">ppb_udp_socket.h</a>
</li>
-<li>PPB_UDPSOCKET_INTERFACE_1_0
-: <a class="el" href="ppb__udp__socket_8h.html#aafc1aecb9a8f2c3f8eed80a93a77763c">ppb_udp_socket.h</a>
+<li>PPB_UDPSOCKET_INTERFACE_1_2
+: <a class="el" href="ppb__udp__socket_8h.html#ad6bc6ae5b1d72251b6b81fdd7d8009f7">ppb_udp_socket.h</a>
</li>
<li>PPB_URLLOADER_INTERFACE
: <a class="el" href="ppb__url__loader_8h.html#ae1fa8c5cdfccb7ea67e184b1e5e1009e">ppb_url_loader.h</a>
@@ -310,8 +310,14 @@
<li>PPB_VIDEODECODER_INTERFACE
: <a class="el" href="ppb__video__decoder_8h.html#ae369609aebfa745c1836ef92e9b76aa2">ppb_video_decoder.h</a>
</li>
-<li>PPB_VIDEODECODER_INTERFACE_1_0
-: <a class="el" href="ppb__video__decoder_8h.html#af814c8f0028bce254da6fb5c3e61a4d8">ppb_video_decoder.h</a>
+<li>PPB_VIDEODECODER_INTERFACE_1_1
+: <a class="el" href="ppb__video__decoder_8h.html#ac9994bddaa7ccc8f52799a00031d5441">ppb_video_decoder.h</a>
+</li>
+<li>PPB_VIDEOENCODER_INTERFACE
+: <a class="el" href="ppb__video__encoder_8h.html#abdb2ab6ab0553f6b0086aee71996ea3d">ppb_video_encoder.h</a>
+</li>
+<li>PPB_VIDEOENCODER_INTERFACE_0_2
+: <a class="el" href="ppb__video__encoder_8h.html#af8c3e2794a4f7f9cbd6c253cbacfe177">ppb_video_encoder.h</a>
</li>
<li>PPB_VIDEOFRAME_INTERFACE
: <a class="el" href="ppb__video__frame_8h.html#ac161d8c49f583eda31622d9fc010cd0d">ppb_video_frame.h</a>
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/group___enums.html b/native_client_sdk/doc_generated/pepper_stable/c/group___enums.html
index 237129e..f5d7907 100644
--- a/native_client_sdk/doc_generated/pepper_stable/c/group___enums.html
+++ b/native_client_sdk/doc_generated/pepper_stable/c/group___enums.html
@@ -34,6 +34,9 @@ Enumerations</h2><table class="memberdecls">
<a class="el" href="group___enums.html#gga4d50d27186f68b2de578e82162206feaa884e0f18fee1bae2472a15f6fb1d7e79">PP_VIDEOPROFILE_MAX</a> = PP_VIDEOPROFILE_VP9_ANY
<br />
}</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a> { <a class="el" href="group___enums.html#ggadadb1eaddb4ea71cb8620db1f4ce301ea7148c3f24ae9baffeae215261460a191">PP_AUDIOPROFILE_OPUS</a> = 0,
+<a class="el" href="group___enums.html#ggadadb1eaddb4ea71cb8620db1f4ce301ea2d878bc8ba09116d5f62bb4965460e77">PP_AUDIOPROFILE_MAX</a> = PP_AUDIOPROFILE_OPUS
+ }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> { <a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5a6208cea63b7e6c1c8c9c67616df4ba85">PP_HARDWAREACCELERATION_ONLY</a> = 0,
<a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5ad29490655cc25165817de26c5caff7ea">PP_HARDWAREACCELERATION_WITHFALLBACK</a> = 1,
<a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5acf901685e6e14afe89e7d22ad35af4e1">PP_HARDWAREACCELERATION_NONE</a> = 2,
@@ -189,13 +192,6 @@ Enumerations</h2><table class="memberdecls">
<a class="el" href="group___enums.html#gga4c87e6dd19c1d49b66a9b37136a82e82a78c13cbbccebfa9c2b8b2f758397795c">PP_FILEOPENFLAG_APPEND</a> = 1 &lt;&lt; 5
<br />
}</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a> { <a class="el" href="group___enums.html#gga07cb383dee51bc7e8e1f234068652668a88619572d7d081c4b657fd8087a164fb">PP_FILEMAPPROTECTION_READ</a> = 1u &lt;&lt; 0,
-<a class="el" href="group___enums.html#gga07cb383dee51bc7e8e1f234068652668aadebe6625bb49b575195f0d4d165c27e">PP_FILEMAPPROTECTION_WRITE</a> = 1u &lt;&lt; 1
- }</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a> { <a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939bada9233097e19d068b7d4ad0ac00140d03c">PP_FILEMAPFLAG_SHARED</a> = 1u &lt;&lt; 0,
-<a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939bada74f65f6fbedce77b36bda16beab65a03">PP_FILEMAPFLAG_PRIVATE</a> = 1u &lt;&lt; 1,
-<a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939badae37402f728fae4078d76a006d36bc26e">PP_FILEMAPFLAG_FIXED</a> = 1u &lt;&lt; 2
- }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gadcb0a92e6ca510586c3f34088d35dc9f">PP_MakeDirectoryFlags</a> { <a class="el" href="group___enums.html#ggadcb0a92e6ca510586c3f34088d35dc9fafeeef418b62780276c4671a57196ad3f">PP_MAKEDIRECTORYFLAG_NONE</a> = 0 &lt;&lt; 0,
<a class="el" href="group___enums.html#ggadcb0a92e6ca510586c3f34088d35dc9fa5c7f89c8784c9d8abfaeae51d9cb84ba">PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS</a> = 1 &lt;&lt; 0,
<a class="el" href="group___enums.html#ggadcb0a92e6ca510586c3f34088d35dc9fa34dd5b5ba9af9e5c820d3c6e21fc2094">PP_MAKEDIRECTORYFLAG_EXCLUSIVE</a> = 1 &lt;&lt; 1
@@ -373,10 +369,15 @@ Enumerations</h2><table class="memberdecls">
<a class="el" href="group___enums.html#gga5fef49ee4c2cc6dcead825340da0f116ad4371ecdd1a6631a78d4721d83062394">PP_TEXTINPUT_TYPE_URL</a> = 7
<br />
}</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> { <a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a79568403b8927bf98bea0f2d38469984">PP_UDPSOCKET_OPTION_ADDRESS_REUSE</a> = 0,
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> { <br />
+&#160;&#160;<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a79568403b8927bf98bea0f2d38469984">PP_UDPSOCKET_OPTION_ADDRESS_REUSE</a> = 0,
<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2aeceda8fe978a52382b96939de7707c00">PP_UDPSOCKET_OPTION_BROADCAST</a> = 1,
<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a905f0adde2912a5db26883d45fb75d57">PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE</a> = 2,
-<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a1264eb1d6d16eb3a074ee3d21ebb3b64">PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE</a> = 3
+<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a1264eb1d6d16eb3a074ee3d21ebb3b64">PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a0cde43fa32bc72658658f9a20c07194c">PP_UDPSOCKET_OPTION_MULTICAST_LOOP</a> = 4,
+<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a29bfa5fc814589e4a5003a5d1c377b82">PP_UDPSOCKET_OPTION_MULTICAST_TTL</a> = 5
+<br />
}</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga41975630f0a4c49e47d4a21754f8402d">PP_URLRequestProperty</a> { <br />
&#160;&#160;<a class="el" href="group___enums.html#gga41975630f0a4c49e47d4a21754f8402da89e44812e771fed9df0ff8994690e44d">PP_URLREQUESTPROPERTY_URL</a> = 0,
@@ -464,8 +465,6 @@ Variables</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gaee750c350655f2fb0fe04c04029e0ff8">PP_AudioSampleRate</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gac39067c0883ec80b94290dd2a3bae440">PP_LogLevel</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga4c87e6dd19c1d49b66a9b37136a82e82">PP_FileOpenFlags</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gadb4b8db19266831040fc604f73c83a25">PP_HostResolver_Flag</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga2ee7ad01799553e5f17bdaa35dd952ee">PP_ImageDataFormat</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gaca7296cfec99fcb6646b7144d1d6a0c5">PP_InputEvent_Type</a></td></tr>
@@ -713,6 +712,27 @@ Variables</h2><table class="memberdecls">
</dl>
</div>
</div>
+<a class="anchor" id="gadadb1eaddb4ea71cb8620db1f4ce301e"></a><!-- doxytag: member="pp_codecs.h::PP_AudioProfile" ref="gadadb1eaddb4ea71cb8620db1f4ce301e" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">enum <a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Audio profiles. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggadadb1eaddb4ea71cb8620db1f4ce301ea7148c3f24ae9baffeae215261460a191"></a><!-- doxytag: member="PP_AUDIOPROFILE_OPUS" ref="ggadadb1eaddb4ea71cb8620db1f4ce301ea7148c3f24ae9baffeae215261460a191" args="" -->PP_AUDIOPROFILE_OPUS</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggadadb1eaddb4ea71cb8620db1f4ce301ea2d878bc8ba09116d5f62bb4965460e77"></a><!-- doxytag: member="PP_AUDIOPROFILE_MAX" ref="ggadadb1eaddb4ea71cb8620db1f4ce301ea2d878bc8ba09116d5f62bb4965460e77" args="" -->PP_AUDIOPROFILE_MAX</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
<a class="anchor" id="gaee750c350655f2fb0fe04c04029e0ff8"></a><!-- doxytag: member="ppb_audio_config.h::PP_AudioSampleRate" ref="gaee750c350655f2fb0fe04c04029e0ff8" args="" -->
<div class="memitem">
<div class="memproto">
@@ -814,59 +834,6 @@ Variables</h2><table class="memberdecls">
</dl>
</div>
</div>
-<a class="anchor" id="ga47ce032e16d18ba6fc6c16bbe8939bad"></a><!-- doxytag: member="ppb_file_mapping.h::PP_FileMapFlags" ref="ga47ce032e16d18ba6fc6c16bbe8939bad" args="" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">enum <a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a></td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-<p>The PP_FileMapFlags contain flag values for use with Map(). </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="gga47ce032e16d18ba6fc6c16bbe8939bada9233097e19d068b7d4ad0ac00140d03c"></a><!-- doxytag: member="PP_FILEMAPFLAG_SHARED" ref="gga47ce032e16d18ba6fc6c16bbe8939bada9233097e19d068b7d4ad0ac00140d03c" args="" -->PP_FILEMAPFLAG_SHARED</em>&nbsp;</td><td>
-<p>Requests a shared mapping. </p>
-<p>If this flag is set, changes written to the memory region will be reflected in the underlying file and will thus eventually be visible to other processes which have opened the file. The file may not actually be updated until Unmap() is called. This is only valid if the PPB_FileIO resource was opened with write permission. </p>
-</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="gga47ce032e16d18ba6fc6c16bbe8939bada74f65f6fbedce77b36bda16beab65a03"></a><!-- doxytag: member="PP_FILEMAPFLAG_PRIVATE" ref="gga47ce032e16d18ba6fc6c16bbe8939bada74f65f6fbedce77b36bda16beab65a03" args="" -->PP_FILEMAPFLAG_PRIVATE</em>&nbsp;</td><td>
-<p>Requests a copy-on-write mapping. </p>
-<p>If this flag is set, changes are not written to the underlying file, but only in the memory of the process (copy-on-write). </p>
-</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="gga47ce032e16d18ba6fc6c16bbe8939badae37402f728fae4078d76a006d36bc26e"></a><!-- doxytag: member="PP_FILEMAPFLAG_FIXED" ref="gga47ce032e16d18ba6fc6c16bbe8939badae37402f728fae4078d76a006d36bc26e" args="" -->PP_FILEMAPFLAG_FIXED</em>&nbsp;</td><td>
-<p>Forces Map() to map the file contents at the provided |address|. </p>
-<p>If Map() can not comply, Map() will fail. </p>
-</td></tr>
-</table>
-</dd>
-</dl>
-</div>
-</div>
-<a class="anchor" id="ga07cb383dee51bc7e8e1f234068652668"></a><!-- doxytag: member="ppb_file_mapping.h::PP_FileMapProtection" ref="ga07cb383dee51bc7e8e1f234068652668" args="" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">enum <a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a></td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-<p>The PP_FileMapProtection values indicate the permissions requested for the file mapping. </p>
-<p>These should be used in a uint32_t bitfield. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="gga07cb383dee51bc7e8e1f234068652668a88619572d7d081c4b657fd8087a164fb"></a><!-- doxytag: member="PP_FILEMAPPROTECTION_READ" ref="gga07cb383dee51bc7e8e1f234068652668a88619572d7d081c4b657fd8087a164fb" args="" -->PP_FILEMAPPROTECTION_READ</em>&nbsp;</td><td>
-<p>Requests read access to the mapped address. </p>
-</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="gga07cb383dee51bc7e8e1f234068652668aadebe6625bb49b575195f0d4d165c27e"></a><!-- doxytag: member="PP_FILEMAPPROTECTION_WRITE" ref="gga07cb383dee51bc7e8e1f234068652668aadebe6625bb49b575195f0d4d165c27e" args="" -->PP_FILEMAPPROTECTION_WRITE</em>&nbsp;</td><td>
-<p>Requests write access to the mapped address. </p>
-</td></tr>
-</table>
-</dd>
-</dl>
-</div>
-</div>
<a class="anchor" id="ga4c87e6dd19c1d49b66a9b37136a82e82"></a><!-- doxytag: member="ppb_file_io.h::PP_FileOpenFlags" ref="ga4c87e6dd19c1d49b66a9b37136a82e82" args="" -->
<div class="memitem">
<div class="memproto">
@@ -1644,16 +1611,16 @@ Variables</h2><table class="memberdecls">
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga1557c0bbce8739a3418e6027a9c44e12a4b17558654d1df4452aa98f7d2609a10"></a><!-- doxytag: member="PP_TCPSOCKET_OPTION_NO_DELAY" ref="gga1557c0bbce8739a3418e6027a9c44e12a4b17558654d1df4452aa98f7d2609a10" args="" -->PP_TCPSOCKET_OPTION_NO_DELAY</em>&nbsp;</td><td>
<p>Disables coalescing of small writes to make TCP segments, and instead delivers data immediately. </p>
-<p>Value's type is <code>PP_VARTYPE_BOOL</code>. This option can only be set after a successful <code>Connect()</code> call. </p>
+<p>Value's type is <code>PP_VARTYPE_BOOL</code>. On version 1.1 or earlier, this option can only be set after a successful <code>Connect()</code> call. On version 1.2 or later, there is no such limitation. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga1557c0bbce8739a3418e6027a9c44e12a61ce27ba7853d05f7af51be1bed5d1a6"></a><!-- doxytag: member="PP_TCPSOCKET_OPTION_SEND_BUFFER_SIZE" ref="gga1557c0bbce8739a3418e6027a9c44e12a61ce27ba7853d05f7af51be1bed5d1a6" args="" -->PP_TCPSOCKET_OPTION_SEND_BUFFER_SIZE</em>&nbsp;</td><td>
<p>Specifies the total per-socket buffer space reserved for sends. </p>
-<p>Value's type should be <code>PP_VARTYPE_INT32</code>. This option can only be set after a successful <code>Connect()</code> call.</p>
+<p>Value's type should be <code>PP_VARTYPE_INT32</code>. On version 1.1 or earlier, this option can only be set after a successful <code>Connect()</code> call. On version 1.2 or later, there is no such limitation.</p>
<p>Note: This is only treated as a hint for the browser to set the buffer size. Even if <code>SetOption()</code> succeeds, the browser doesn't guarantee it will conform to the size. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga1557c0bbce8739a3418e6027a9c44e12aef57736e294acb30fb7b3b2f4a425f72"></a><!-- doxytag: member="PP_TCPSOCKET_OPTION_RECV_BUFFER_SIZE" ref="gga1557c0bbce8739a3418e6027a9c44e12aef57736e294acb30fb7b3b2f4a425f72" args="" -->PP_TCPSOCKET_OPTION_RECV_BUFFER_SIZE</em>&nbsp;</td><td>
<p>Specifies the total per-socket buffer space reserved for receives. </p>
-<p>Value's type should be <code>PP_VARTYPE_INT32</code>. This option can only be set after a successful <code>Connect()</code> call.</p>
+<p>Value's type should be <code>PP_VARTYPE_INT32</code>. On version 1.1 or earlier, this option can only be set after a successful <code>Connect()</code> call. On version 1.2 or later, there is no such limitation.</p>
<p>Note: This is only treated as a hint for the browser to set the buffer size. Even if <code>SetOption()</code> succeeds, the browser doesn't guarantee it will conform to the size. </p>
</td></tr>
</table>
@@ -1741,18 +1708,28 @@ Variables</h2><table class="memberdecls">
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga1a8472fa3e7150615c45c38fa8c12ce2aeceda8fe978a52382b96939de7707c00"></a><!-- doxytag: member="PP_UDPSOCKET_OPTION_BROADCAST" ref="gga1a8472fa3e7150615c45c38fa8c12ce2aeceda8fe978a52382b96939de7707c00" args="" -->PP_UDPSOCKET_OPTION_BROADCAST</em>&nbsp;</td><td>
<p>Allows sending and receiving packets to and from broadcast addresses. </p>
-<p>Value's type should be <code>PP_VARTYPE_BOOL</code>. This option can only be set before calling <code>Bind()</code>. </p>
+<p>Value's type should be <code>PP_VARTYPE_BOOL</code>. On version 1.0, this option can only be set before calling <code>Bind()</code>. On version 1.1 or later, there is no such limitation. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga1a8472fa3e7150615c45c38fa8c12ce2a905f0adde2912a5db26883d45fb75d57"></a><!-- doxytag: member="PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE" ref="gga1a8472fa3e7150615c45c38fa8c12ce2a905f0adde2912a5db26883d45fb75d57" args="" -->PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE</em>&nbsp;</td><td>
<p>Specifies the total per-socket buffer space reserved for sends. </p>
-<p>Value's type should be <code>PP_VARTYPE_INT32</code>. This option can only be set after a successful <code>Bind()</code> call.</p>
+<p>Value's type should be <code>PP_VARTYPE_INT32</code>. On version 1.0, this option can only be set after a successful <code>Bind()</code> call. On version 1.1 or later, there is no such limitation.</p>
<p>Note: This is only treated as a hint for the browser to set the buffer size. Even if <code>SetOption()</code> succeeds, the browser doesn't guarantee it will conform to the size. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga1a8472fa3e7150615c45c38fa8c12ce2a1264eb1d6d16eb3a074ee3d21ebb3b64"></a><!-- doxytag: member="PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE" ref="gga1a8472fa3e7150615c45c38fa8c12ce2a1264eb1d6d16eb3a074ee3d21ebb3b64" args="" -->PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE</em>&nbsp;</td><td>
<p>Specifies the total per-socket buffer space reserved for receives. </p>
-<p>Value's type should be <code>PP_VARTYPE_INT32</code>. This option can only be set after a successful <code>Bind()</code> call.</p>
+<p>Value's type should be <code>PP_VARTYPE_INT32</code>. On version 1.0, this option can only be set after a successful <code>Bind()</code> call. On version 1.1 or later, there is no such limitation.</p>
<p>Note: This is only treated as a hint for the browser to set the buffer size. Even if <code>SetOption()</code> succeeds, the browser doesn't guarantee it will conform to the size. </p>
</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga1a8472fa3e7150615c45c38fa8c12ce2a0cde43fa32bc72658658f9a20c07194c"></a><!-- doxytag: member="PP_UDPSOCKET_OPTION_MULTICAST_LOOP" ref="gga1a8472fa3e7150615c45c38fa8c12ce2a0cde43fa32bc72658658f9a20c07194c" args="" -->PP_UDPSOCKET_OPTION_MULTICAST_LOOP</em>&nbsp;</td><td>
+<p>Specifies whether the packets sent from the host to the multicast group should be looped back to the host or not. </p>
+<p>Value's type should be <code>PP_VARTYPE_BOOL</code>. This option can only be set before calling <code>Bind()</code>.</p>
+<p>This is only supported in version 1.2 of the API (Chrome 43) and later. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga1a8472fa3e7150615c45c38fa8c12ce2a29bfa5fc814589e4a5003a5d1c377b82"></a><!-- doxytag: member="PP_UDPSOCKET_OPTION_MULTICAST_TTL" ref="gga1a8472fa3e7150615c45c38fa8c12ce2a29bfa5fc814589e4a5003a5d1c377b82" args="" -->PP_UDPSOCKET_OPTION_MULTICAST_TTL</em>&nbsp;</td><td>
+<p>Specifies the time-to-live for packets sent to the multicast group. </p>
+<p>The value should be within 0 to 255 range. The default value is 1 and means that packets will not be routed beyond the local network. Value's type should be <code>PP_VARTYPE_INT32</code>. This option can only be set before calling <code>Bind()</code>.</p>
+<p>This is only supported in version 1.2 of the API (Chrome 43) and later. </p>
+</td></tr>
</table>
</dd>
</dl>
@@ -2178,30 +2155,6 @@ Variables</h2><table class="memberdecls">
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="ga47ce032e16d18ba6fc6c16bbe8939bad"></a><!-- doxytag: member="ppb_file_mapping.h::PP_FileMapFlags" ref="ga47ce032e16d18ba6fc6c16bbe8939bad" args="" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname"><a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a></td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-</div>
-</div>
-<a class="anchor" id="ga07cb383dee51bc7e8e1f234068652668"></a><!-- doxytag: member="ppb_file_mapping.h::PP_FileMapProtection" ref="ga07cb383dee51bc7e8e1f234068652668" args="" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname"><a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a></td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-</div>
-</div>
<a class="anchor" id="ga4c87e6dd19c1d49b66a9b37136a82e82"></a><!-- doxytag: member="ppb_file_io.h::PP_FileOpenFlags" ref="ga4c87e6dd19c1d49b66a9b37136a82e82" args="" -->
<div class="memitem">
<div class="memproto">
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/group___interfaces.html b/native_client_sdk/doc_generated/pepper_stable/c/group___interfaces.html
index 1b8ec48..72f88bb 100644
--- a/native_client_sdk/doc_generated/pepper_stable/c/group___interfaces.html
+++ b/native_client_sdk/doc_generated/pepper_stable/c/group___interfaces.html
@@ -16,6 +16,8 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_buffer__0__1.html">PPB_AudioBuffer</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_config__1__1.html">PPB_AudioConfig</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_AudioConfig</code> interface contains pointers to several functions for establishing your audio configuration within the browser. <a href="struct_p_p_b___audio_config__1__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html">PPB_AudioEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Audio encoder interface. <a href="struct_p_p_b___audio_encoder__0__1.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___compositor__0__1.html">PPB_Compositor</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the <code>PPB_Compositor</code> interface. <a href="struct_p_p_b___compositor__0__1.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___compositor_layer__0__2.html">PPB_CompositorLayer</a></td></tr>
@@ -25,8 +27,6 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_Core</code> interface contains pointers to functions related to memory management, time, and threads on the browser. <a href="struct_p_p_b___core__1__0.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_i_o__1__1.html">PPB_FileIO</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_FileIO</code> struct is used to operate on a regular file (PP_FileType_Regular). <a href="struct_p_p_b___file_i_o__1__1.html#details">More...</a><br /></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_mapping__0__1.html">PPB_FileMapping</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">PPB_FileMapping contains functions for mapping and unmapping files into and out of memory. <a href="struct_p_p_b___file_mapping__0__1.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_ref__1__2.html">PPB_FileRef</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_FileRef</code> struct represents a "weak pointer" to a file in a file system. <a href="struct_p_p_b___file_ref__1__2.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_system__1__0.html">PPB_FileSystem</a></td></tr>
@@ -90,12 +90,12 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___open_g_l_e_s2_query.html">PPB_OpenGLES2Query</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___open_g_l_e_s2_vertex_array_object__1__0.html">PPB_OpenGLES2VertexArrayObject</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___open_g_l_e_s2_vertex_array_object.html">PPB_OpenGLES2VertexArrayObject</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html">PPB_TCPSocket</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_TCPSocket</code> interface provides TCP socket operations. <a href="struct_p_p_b___t_c_p_socket__1__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html">PPB_TCPSocket</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_TCPSocket</code> interface provides TCP socket operations. <a href="struct_p_p_b___t_c_p_socket__1__2.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___text_input_controller__1__0.html">PPB_TextInputController</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>PPB_TextInputController</code> provides a set of functions for giving hints to the browser about the text input status of plugins, and functions for controlling input method editors (IMEs). <a href="struct_p_p_b___text_input_controller__1__0.html#details">More...</a><br /></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html">PPB_UDPSocket</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_UDPSocket</code> interface provides UDP socket operations. <a href="struct_p_p_b___u_d_p_socket__1__0.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_UDPSocket</code> interface provides UDP socket operations. <a href="struct_p_p_b___u_d_p_socket__1__2.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_r_l_loader__1__0.html">PPB_URLLoader</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <b>PPB_URLLoader</b> interface contains pointers to functions for loading URLs. <a href="struct_p_p_b___u_r_l_loader__1__0.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_r_l_request_info__1__0.html">PPB_URLRequestInfo</a></td></tr>
@@ -109,8 +109,10 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_VarArrayBuffer</code> interface provides a way to interact with JavaScript ArrayBuffers, which represent a contiguous sequence of bytes. <a href="struct_p_p_b___var_array_buffer__1__0.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___var_dictionary__1__0.html">PPB_VarDictionary</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A dictionary var contains key-value pairs with unique keys. <a href="struct_p_p_b___var_dictionary__1__0.html#details">More...</a><br /></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video decoder interface. <a href="struct_p_p_b___video_decoder__1__0.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video decoder interface. <a href="struct_p_p_b___video_decoder__1__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video encoder interface. <a href="struct_p_p_b___video_encoder__0__2.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_frame__0__1.html">PPB_VideoFrame</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___view__1__2.html">PPB_View</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>PPB_View</code> represents the state of the view of an instance. <a href="struct_p_p_b___view__1__2.html#details">More...</a><br /></td></tr>
@@ -166,10 +168,10 @@ Typedefs</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak" />
<a class="el" href="struct_p_p_b___network_monitor__1__0.html">PPB_NetworkMonitor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga873d8c5cd49f7b3c8ad5b4caabd1e8e6">PPB_NetworkMonitor</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___network_proxy__1__0.html">PPB_NetworkProxy</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gaf8338a682417267c8525446ef1de85b1">PPB_NetworkProxy</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html">PPB_TCPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga0f72e14a6cf9631bd733ded1f8ba4d9f">PPB_TCPSocket</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html">PPB_TCPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga68e25baffc8cfc72d6c636a3a6217aa0">PPB_TCPSocket</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak" />
<a class="el" href="struct_p_p_b___text_input_controller__1__0.html">PPB_TextInputController</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gab387085f6044f3a0b1631d119d22a942">PPB_TextInputController</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html">PPB_UDPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gaf04d893ccf01c5d1cfcadee5fcc869d1">PPB_UDPSocket</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gac45ce5bed449ca63680c4769663fd2b1">PPB_UDPSocket</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___u_r_l_loader__1__0.html">PPB_URLLoader</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga307f562a9e41991de7c80b75cd7f379c">PPB_URLLoader</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak" />
<a class="el" href="struct_p_p_b___u_r_l_request_info__1__0.html">PPB_URLRequestInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gad60387934d9e235d3d145ee5a1fb4e74">PPB_URLRequestInfo</a></td></tr>
@@ -181,7 +183,8 @@ Typedefs</h2><table class="memberdecls">
<a class="el" href="struct_p_p_b___var_array_buffer__1__0.html">PPB_VarArrayBuffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gab26d5bb032f5438d02faf5bdf7b208cb">PPB_VarArrayBuffer</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak" />
<a class="el" href="struct_p_p_b___var_dictionary__1__0.html">PPB_VarDictionary</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga69826004b5c32232c9639090f3e1db2e">PPB_VarDictionary</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga2b4555d8bd239fa28b60c42df75f7ce5">PPB_VideoDecoder</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga3bfb47f476c3153e5638265c17702ed9">PPB_VideoDecoder</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga1a72f170f2aaa94cd41aa16949e27973">PPB_VideoEncoder</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_frame__0__1.html">PPB_VideoFrame</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gaa76d004c840f6c4f64a0694e7c844ae9">PPB_VideoFrame</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___view__1__2.html">PPB_View</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga116e11e23c92c99094c9704d97636a67">PPB_View</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___web_socket__1__0.html">PPB_WebSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gad0e152d14cefb0b480228f3fc7070faf">PPB_WebSocket</a></td></tr>
@@ -530,12 +533,12 @@ Typedefs</h2><table class="memberdecls">
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="ga0f72e14a6cf9631bd733ded1f8ba4d9f"></a><!-- doxytag: member="ppb_tcp_socket.h::PPB_TCPSocket" ref="ga0f72e14a6cf9631bd733ded1f8ba4d9f" args="" -->
+<a class="anchor" id="ga68e25baffc8cfc72d6c636a3a6217aa0"></a><!-- doxytag: member="ppb_tcp_socket.h::PPB_TCPSocket" ref="ga68e25baffc8cfc72d6c636a3a6217aa0" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">typedef struct <a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html">PPB_TCPSocket</a> <a class="el" href="group___interfaces.html#ga0f72e14a6cf9631bd733ded1f8ba4d9f">PPB_TCPSocket</a></td>
+<td class="memname">typedef struct <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html">PPB_TCPSocket</a> <a class="el" href="group___interfaces.html#ga68e25baffc8cfc72d6c636a3a6217aa0">PPB_TCPSocket</a></td>
</tr>
</table>
</div>
@@ -566,12 +569,12 @@ Typedefs</h2><table class="memberdecls">
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="gaf04d893ccf01c5d1cfcadee5fcc869d1"></a><!-- doxytag: member="ppb_udp_socket.h::PPB_UDPSocket" ref="gaf04d893ccf01c5d1cfcadee5fcc869d1" args="" -->
+<a class="anchor" id="gac45ce5bed449ca63680c4769663fd2b1"></a><!-- doxytag: member="ppb_udp_socket.h::PPB_UDPSocket" ref="gac45ce5bed449ca63680c4769663fd2b1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html">PPB_UDPSocket</a> <a class="el" href="group___interfaces.html#gaf04d893ccf01c5d1cfcadee5fcc869d1">PPB_UDPSocket</a></td>
+<td class="memname">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a> <a class="el" href="group___interfaces.html#gac45ce5bed449ca63680c4769663fd2b1">PPB_UDPSocket</a></td>
</tr>
</table>
</div>
@@ -662,12 +665,24 @@ Typedefs</h2><table class="memberdecls">
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="ga2b4555d8bd239fa28b60c42df75f7ce5"></a><!-- doxytag: member="ppb_video_decoder.h::PPB_VideoDecoder" ref="ga2b4555d8bd239fa28b60c42df75f7ce5" args="" -->
+<a class="anchor" id="ga3bfb47f476c3153e5638265c17702ed9"></a><!-- doxytag: member="ppb_video_decoder.h::PPB_VideoDecoder" ref="ga3bfb47f476c3153e5638265c17702ed9" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a> <a class="el" href="group___interfaces.html#ga2b4555d8bd239fa28b60c42df75f7ce5">PPB_VideoDecoder</a></td>
+<td class="memname">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a> <a class="el" href="group___interfaces.html#ga3bfb47f476c3153e5638265c17702ed9">PPB_VideoDecoder</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+</div>
+</div>
+<a class="anchor" id="ga1a72f170f2aaa94cd41aa16949e27973"></a><!-- doxytag: member="ppb_video_encoder.h::PPB_VideoEncoder" ref="ga1a72f170f2aaa94cd41aa16949e27973" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">typedef struct <a class="el" href="struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a> <a class="el" href="group___interfaces.html#ga1a72f170f2aaa94cd41aa16949e27973">PPB_VideoEncoder</a></td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/group___structs.html b/native_client_sdk/doc_generated/pepper_stable/c/group___structs.html
index 1bf6366..1bbd2a7 100644
--- a/native_client_sdk/doc_generated/pepper_stable/c/group___structs.html
+++ b/native_client_sdk/doc_generated/pepper_stable/c/group___structs.html
@@ -17,6 +17,16 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a decoded video picture. <a href="struct_p_p___video_picture.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_picture__0__1.html">PP_VideoPicture</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a decoded video picture. <a href="struct_p_p___video_picture__0__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html">PP_VideoProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported video profile information. <a href="struct_p_p___video_profile_description.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html">PP_VideoProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported video profile information. <a href="struct_p_p___video_profile_description__0__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html">PP_AudioProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported audio profile information. <a href="struct_p_p___audio_profile_description.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a bitstream buffer. <a href="struct_p_p___bitstream_buffer.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing an audio bitstream buffer. <a href="struct_p_p___audio_bitstream_buffer.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> is a common mechanism for supporting potentially asynchronous calls in browser interfaces. <a href="struct_p_p___completion_callback.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___directory_entry.html">PP_DirectoryEntry</a></td></tr>
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/pp__codecs_8h.html b/native_client_sdk/doc_generated/pepper_stable/c/pp__codecs_8h.html
index c9cbed8..5e4b639 100644
--- a/native_client_sdk/doc_generated/pepper_stable/c/pp__codecs_8h.html
+++ b/native_client_sdk/doc_generated/pepper_stable/c/pp__codecs_8h.html
@@ -23,6 +23,16 @@ Data Structures</h2><table class="memberdecls">
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a decoded video picture. <a href="struct_p_p___video_picture.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_picture__0__1.html">PP_VideoPicture</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a decoded video picture. <a href="struct_p_p___video_picture__0__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html">PP_VideoProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported video profile information. <a href="struct_p_p___video_profile_description.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html">PP_VideoProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported video profile information. <a href="struct_p_p___video_profile_description__0__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html">PP_AudioProfileDescription</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported audio profile information. <a href="struct_p_p___audio_profile_description.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing a bitstream buffer. <a href="struct_p_p___bitstream_buffer.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct describing an audio bitstream buffer. <a href="struct_p_p___audio_bitstream_buffer.html#details">More...</a><br /></td></tr>
</table><h2>
Enumerations</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> { <br />
@@ -45,6 +55,9 @@ Enumerations</h2><table class="memberdecls">
<a class="el" href="group___enums.html#gga4d50d27186f68b2de578e82162206feaa884e0f18fee1bae2472a15f6fb1d7e79">PP_VIDEOPROFILE_MAX</a> = PP_VIDEOPROFILE_VP9_ANY
<br />
}</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a> { <a class="el" href="group___enums.html#ggadadb1eaddb4ea71cb8620db1f4ce301ea7148c3f24ae9baffeae215261460a191">PP_AUDIOPROFILE_OPUS</a> = 0,
+<a class="el" href="group___enums.html#ggadadb1eaddb4ea71cb8620db1f4ce301ea2d878bc8ba09116d5f62bb4965460e77">PP_AUDIOPROFILE_MAX</a> = PP_AUDIOPROFILE_OPUS
+ }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> { <a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5a6208cea63b7e6c1c8c9c67616df4ba85">PP_HARDWAREACCELERATION_ONLY</a> = 0,
<a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5ad29490655cc25165817de26c5caff7ea">PP_HARDWAREACCELERATION_WITHFALLBACK</a> = 1,
<a class="el" href="group___enums.html#gga6a3fd7e22be02521243b52481afadae5acf901685e6e14afe89e7d22ad35af4e1">PP_HARDWAREACCELERATION_NONE</a> = 2,
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/pp__codecs_8h__incl.png b/native_client_sdk/doc_generated/pepper_stable/c/pp__codecs_8h__incl.png
index e74f895..d5c4e9a 100644
--- a/native_client_sdk/doc_generated/pepper_stable/c/pp__codecs_8h__incl.png
+++ b/native_client_sdk/doc_generated/pepper_stable/c/pp__codecs_8h__incl.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/ppb__audio__encoder_8h.html b/native_client_sdk/doc_generated/pepper_stable/c/ppb__audio__encoder_8h.html
new file mode 100644
index 0000000..04270d5
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/c/ppb__audio__encoder_8h.html
@@ -0,0 +1,45 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>ppb_audio_encoder.h File Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<div class="textblock"><div class="dynheader">
+Include dependency graph for ppb_audio_encoder.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="ppb__audio__encoder_8h__incl.png" border="0" usemap="#ppb__audio__encoder_8h" alt="" /></div>
+<map name="ppb__audio__encoder_8h" id="ppb__audio__encoder_8h">
+</map>
+</div>
+</div><h2>
+Data Structures</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html">PPB_AudioEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Audio encoder interface. <a href="struct_p_p_b___audio_encoder__0__1.html#details">More...</a><br /></td></tr>
+</table><h2>
+Defines</h2><table class="memberdecls">
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__audio__encoder_8h.html#a4c4871532f8ac42a5a98f9f0aaac27a6">PPB_AUDIOENCODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_AudioEncoder;0.1&quot; /* dev */</td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file defines the <code>PPB_AudioEncoder</code> interface. </p>
+</div><hr /><h2>Define Documentation</h2>
+<a class="anchor" id="a4c4871532f8ac42a5a98f9f0aaac27a6"></a><!-- doxytag: member="ppb_audio_encoder.h::PPB_AUDIOENCODER_INTERFACE" ref="a4c4871532f8ac42a5a98f9f0aaac27a6" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">#define <a class="el" href="ppb__audio__encoder_8h.html#a4c4871532f8ac42a5a98f9f0aaac27a6">PPB_AUDIOENCODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_AudioEncoder;0.1&quot; /* dev */</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+</div>
+</div>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/ppb__audio__encoder_8h__incl.png b/native_client_sdk/doc_generated/pepper_stable/c/ppb__audio__encoder_8h__incl.png
new file mode 100644
index 0000000..0e98fe6
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/c/ppb__audio__encoder_8h__incl.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/ppb__file__mapping_8h.html b/native_client_sdk/doc_generated/pepper_stable/c/ppb__file__mapping_8h.html
deleted file mode 100644
index c5aba95..0000000
--- a/native_client_sdk/doc_generated/pepper_stable/c/ppb__file__mapping_8h.html
+++ /dev/null
@@ -1,58 +0,0 @@
-{{+bindTo:partials.standard_nacl_api}}
-<h1>ppb_file_mapping.h File Reference</h1>
-<div id="doxygen-ref">
-{{- dummy div to appease doxygen -}}
- <div>
-<!-- Generated by Doxygen 1.7.6.1 -->
-
-
-</div>
-<!--header-->
-<div class="contents">
-<div class="textblock"><div class="dynheader">
-Include dependency graph for ppb_file_mapping.h:</div>
-<div class="dyncontent">
-<div class="center"><img src="ppb__file__mapping_8h__incl.png" border="0" usemap="#ppb__file__mapping_8h" alt="" /></div>
-<map name="ppb__file__mapping_8h" id="ppb__file__mapping_8h">
-</map>
-</div>
-</div><h2>
-Data Structures</h2><table class="memberdecls">
-
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_mapping__0__1.html">PPB_FileMapping</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">PPB_FileMapping contains functions for mapping and unmapping files into and out of memory. <a href="struct_p_p_b___file_mapping__0__1.html#details">More...</a><br /></td></tr>
-</table><h2>
-Defines</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__file__mapping_8h.html#a657d5d4684814f79fd2c764fd8aa540e">PPB_FILEMAPPING_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_FileMapping;0.1&quot; /* dev */</td></tr>
-</table><h2>
-Enumerations</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a> { <a class="el" href="group___enums.html#gga07cb383dee51bc7e8e1f234068652668a88619572d7d081c4b657fd8087a164fb">PP_FILEMAPPROTECTION_READ</a> = 1u &lt;&lt; 0,
-<a class="el" href="group___enums.html#gga07cb383dee51bc7e8e1f234068652668aadebe6625bb49b575195f0d4d165c27e">PP_FILEMAPPROTECTION_WRITE</a> = 1u &lt;&lt; 1
- }</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a> { <a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939bada9233097e19d068b7d4ad0ac00140d03c">PP_FILEMAPFLAG_SHARED</a> = 1u &lt;&lt; 0,
-<a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939bada74f65f6fbedce77b36bda16beab65a03">PP_FILEMAPFLAG_PRIVATE</a> = 1u &lt;&lt; 1,
-<a class="el" href="group___enums.html#gga47ce032e16d18ba6fc6c16bbe8939badae37402f728fae4078d76a006d36bc26e">PP_FILEMAPFLAG_FIXED</a> = 1u &lt;&lt; 2
- }</td></tr>
-</table><h2>
-Variables</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga07cb383dee51bc7e8e1f234068652668">PP_FileMapProtection</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga47ce032e16d18ba6fc6c16bbe8939bad">PP_FileMapFlags</a></td></tr>
-</table>
-<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>This file defines methods for mapping and unmapping files into and out of memory. </p>
-</div><hr /><h2>Define Documentation</h2>
-<a class="anchor" id="a657d5d4684814f79fd2c764fd8aa540e"></a><!-- doxytag: member="ppb_file_mapping.h::PPB_FILEMAPPING_INTERFACE" ref="a657d5d4684814f79fd2c764fd8aa540e" args="" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">#define <a class="el" href="ppb__file__mapping_8h.html#a657d5d4684814f79fd2c764fd8aa540e">PPB_FILEMAPPING_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_FileMapping;0.1&quot; /* dev */</td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-</div>
-</div>
-</div><!-- contents -->
-</div>
-{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/ppb__file__mapping_8h__incl.png b/native_client_sdk/doc_generated/pepper_stable/c/ppb__file__mapping_8h__incl.png
deleted file mode 100644
index 45abc54..0000000
--- a/native_client_sdk/doc_generated/pepper_stable/c/ppb__file__mapping_8h__incl.png
+++ /dev/null
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/ppb__tcp__socket_8h.html b/native_client_sdk/doc_generated/pepper_stable/c/ppb__tcp__socket_8h.html
index 516526e..ea5a225 100644
--- a/native_client_sdk/doc_generated/pepper_stable/c/ppb__tcp__socket_8h.html
+++ b/native_client_sdk/doc_generated/pepper_stable/c/ppb__tcp__socket_8h.html
@@ -19,15 +19,15 @@ Include dependency graph for ppb_tcp_socket.h:</div>
</div><h2>
Data Structures</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html">PPB_TCPSocket</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_TCPSocket</code> interface provides TCP socket operations. <a href="struct_p_p_b___t_c_p_socket__1__1.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html">PPB_TCPSocket</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_TCPSocket</code> interface provides TCP socket operations. <a href="struct_p_p_b___t_c_p_socket__1__2.html#details">More...</a><br /></td></tr>
</table><h2>
Defines</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__tcp__socket_8h.html#a12b0fabc454cb99a6d4c8352c6f22d71">PPB_TCPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_TCPSocket;1.1&quot;</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__tcp__socket_8h.html#a29ecaef1552f19b223e6c93475d8788c">PPB_TCPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__tcp__socket_8h.html#a12b0fabc454cb99a6d4c8352c6f22d71">PPB_TCPSOCKET_INTERFACE</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__tcp__socket_8h.html#a2f1cedfee70f4bfe4c35849be53fd73f">PPB_TCPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_TCPSocket;1.2&quot;</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__tcp__socket_8h.html#a29ecaef1552f19b223e6c93475d8788c">PPB_TCPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__tcp__socket_8h.html#a2f1cedfee70f4bfe4c35849be53fd73f">PPB_TCPSOCKET_INTERFACE</a></td></tr>
</table><h2>
Typedefs</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html">PPB_TCPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga0f72e14a6cf9631bd733ded1f8ba4d9f">PPB_TCPSocket</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html">PPB_TCPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga68e25baffc8cfc72d6c636a3a6217aa0">PPB_TCPSocket</a></td></tr>
</table><h2>
Enumerations</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga1557c0bbce8739a3418e6027a9c44e12">PP_TCPSocket_Option</a> { <a class="el" href="group___enums.html#gga1557c0bbce8739a3418e6027a9c44e12a4b17558654d1df4452aa98f7d2609a10">PP_TCPSOCKET_OPTION_NO_DELAY</a> = 0,
@@ -46,19 +46,19 @@ Variables</h2><table class="memberdecls">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">#define <a class="el" href="ppb__tcp__socket_8h.html#a29ecaef1552f19b223e6c93475d8788c">PPB_TCPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__tcp__socket_8h.html#a12b0fabc454cb99a6d4c8352c6f22d71">PPB_TCPSOCKET_INTERFACE</a></td>
+<td class="memname">#define <a class="el" href="ppb__tcp__socket_8h.html#a29ecaef1552f19b223e6c93475d8788c">PPB_TCPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__tcp__socket_8h.html#a2f1cedfee70f4bfe4c35849be53fd73f">PPB_TCPSOCKET_INTERFACE</a></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="a12b0fabc454cb99a6d4c8352c6f22d71"></a><!-- doxytag: member="ppb_tcp_socket.h::PPB_TCPSOCKET_INTERFACE" ref="a12b0fabc454cb99a6d4c8352c6f22d71" args="" -->
+<a class="anchor" id="a2f1cedfee70f4bfe4c35849be53fd73f"></a><!-- doxytag: member="ppb_tcp_socket.h::PPB_TCPSOCKET_INTERFACE" ref="a2f1cedfee70f4bfe4c35849be53fd73f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">#define <a class="el" href="ppb__tcp__socket_8h.html#a12b0fabc454cb99a6d4c8352c6f22d71">PPB_TCPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_TCPSocket;1.1&quot;</td>
+<td class="memname">#define <a class="el" href="ppb__tcp__socket_8h.html#a2f1cedfee70f4bfe4c35849be53fd73f">PPB_TCPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_TCPSocket;1.2&quot;</td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/ppb__udp__socket_8h.html b/native_client_sdk/doc_generated/pepper_stable/c/ppb__udp__socket_8h.html
index 7cb5823..b26a466 100644
--- a/native_client_sdk/doc_generated/pepper_stable/c/ppb__udp__socket_8h.html
+++ b/native_client_sdk/doc_generated/pepper_stable/c/ppb__udp__socket_8h.html
@@ -19,21 +19,26 @@ Include dependency graph for ppb_udp_socket.h:</div>
</div><h2>
Data Structures</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html">PPB_UDPSocket</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_UDPSocket</code> interface provides UDP socket operations. <a href="struct_p_p_b___u_d_p_socket__1__0.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>PPB_UDPSocket</code> interface provides UDP socket operations. <a href="struct_p_p_b___u_d_p_socket__1__2.html#details">More...</a><br /></td></tr>
</table><h2>
Defines</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__udp__socket_8h.html#aafc1aecb9a8f2c3f8eed80a93a77763c">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_UDPSocket;1.0&quot;</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__udp__socket_8h.html#a673aeb3fceb5ed977b7b8683f674cbfd">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__udp__socket_8h.html#aafc1aecb9a8f2c3f8eed80a93a77763c">PPB_UDPSOCKET_INTERFACE</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__udp__socket_8h.html#ad6bc6ae5b1d72251b6b81fdd7d8009f7">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_UDPSocket;1.2&quot;</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__udp__socket_8h.html#a673aeb3fceb5ed977b7b8683f674cbfd">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__udp__socket_8h.html#ad6bc6ae5b1d72251b6b81fdd7d8009f7">PPB_UDPSOCKET_INTERFACE</a></td></tr>
</table><h2>
Typedefs</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html">PPB_UDPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gaf04d893ccf01c5d1cfcadee5fcc869d1">PPB_UDPSocket</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html">PPB_UDPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#gac45ce5bed449ca63680c4769663fd2b1">PPB_UDPSocket</a></td></tr>
</table><h2>
Enumerations</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> { <a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a79568403b8927bf98bea0f2d38469984">PP_UDPSOCKET_OPTION_ADDRESS_REUSE</a> = 0,
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> { <br />
+&#160;&#160;<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a79568403b8927bf98bea0f2d38469984">PP_UDPSOCKET_OPTION_ADDRESS_REUSE</a> = 0,
<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2aeceda8fe978a52382b96939de7707c00">PP_UDPSOCKET_OPTION_BROADCAST</a> = 1,
<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a905f0adde2912a5db26883d45fb75d57">PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE</a> = 2,
-<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a1264eb1d6d16eb3a074ee3d21ebb3b64">PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE</a> = 3
+<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a1264eb1d6d16eb3a074ee3d21ebb3b64">PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a0cde43fa32bc72658658f9a20c07194c">PP_UDPSOCKET_OPTION_MULTICAST_LOOP</a> = 4,
+<a class="el" href="group___enums.html#gga1a8472fa3e7150615c45c38fa8c12ce2a29bfa5fc814589e4a5003a5d1c377b82">PP_UDPSOCKET_OPTION_MULTICAST_TTL</a> = 5
+<br />
}</td></tr>
</table><h2>
Variables</h2><table class="memberdecls">
@@ -47,19 +52,19 @@ Variables</h2><table class="memberdecls">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">#define <a class="el" href="ppb__udp__socket_8h.html#a673aeb3fceb5ed977b7b8683f674cbfd">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__udp__socket_8h.html#aafc1aecb9a8f2c3f8eed80a93a77763c">PPB_UDPSOCKET_INTERFACE</a></td>
+<td class="memname">#define <a class="el" href="ppb__udp__socket_8h.html#a673aeb3fceb5ed977b7b8683f674cbfd">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__udp__socket_8h.html#ad6bc6ae5b1d72251b6b81fdd7d8009f7">PPB_UDPSOCKET_INTERFACE</a></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="aafc1aecb9a8f2c3f8eed80a93a77763c"></a><!-- doxytag: member="ppb_udp_socket.h::PPB_UDPSOCKET_INTERFACE" ref="aafc1aecb9a8f2c3f8eed80a93a77763c" args="" -->
+<a class="anchor" id="ad6bc6ae5b1d72251b6b81fdd7d8009f7"></a><!-- doxytag: member="ppb_udp_socket.h::PPB_UDPSOCKET_INTERFACE" ref="ad6bc6ae5b1d72251b6b81fdd7d8009f7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">#define <a class="el" href="ppb__udp__socket_8h.html#aafc1aecb9a8f2c3f8eed80a93a77763c">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_UDPSocket;1.0&quot;</td>
+<td class="memname">#define <a class="el" href="ppb__udp__socket_8h.html#ad6bc6ae5b1d72251b6b81fdd7d8009f7">PPB_UDPSOCKET_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_UDPSocket;1.2&quot;</td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/ppb__video__decoder_8h.html b/native_client_sdk/doc_generated/pepper_stable/c/ppb__video__decoder_8h.html
index 212d41a..51449aa 100644
--- a/native_client_sdk/doc_generated/pepper_stable/c/ppb__video__decoder_8h.html
+++ b/native_client_sdk/doc_generated/pepper_stable/c/ppb__video__decoder_8h.html
@@ -19,15 +19,15 @@ Include dependency graph for ppb_video_decoder.h:</div>
</div><h2>
Data Structures</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video decoder interface. <a href="struct_p_p_b___video_decoder__1__0.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video decoder interface. <a href="struct_p_p_b___video_decoder__1__1.html#details">More...</a><br /></td></tr>
</table><h2>
Defines</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__decoder_8h.html#af814c8f0028bce254da6fb5c3e61a4d8">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoDecoder;1.0&quot;</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__decoder_8h.html#ae369609aebfa745c1836ef92e9b76aa2">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__decoder_8h.html#af814c8f0028bce254da6fb5c3e61a4d8">PPB_VIDEODECODER_INTERFACE</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__decoder_8h.html#ac9994bddaa7ccc8f52799a00031d5441">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoDecoder;1.1&quot;</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__decoder_8h.html#ae369609aebfa745c1836ef92e9b76aa2">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__decoder_8h.html#ac9994bddaa7ccc8f52799a00031d5441">PPB_VIDEODECODER_INTERFACE</a></td></tr>
</table><h2>
Typedefs</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__0.html">PPB_VideoDecoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga2b4555d8bd239fa28b60c42df75f7ce5">PPB_VideoDecoder</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_decoder__1__1.html">PPB_VideoDecoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga3bfb47f476c3153e5638265c17702ed9">PPB_VideoDecoder</a></td></tr>
</table>
<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This file defines the <code>PPB_VideoDecoder</code> interface. </p>
@@ -37,19 +37,19 @@ Typedefs</h2><table class="memberdecls">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">#define <a class="el" href="ppb__video__decoder_8h.html#ae369609aebfa745c1836ef92e9b76aa2">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__decoder_8h.html#af814c8f0028bce254da6fb5c3e61a4d8">PPB_VIDEODECODER_INTERFACE</a></td>
+<td class="memname">#define <a class="el" href="ppb__video__decoder_8h.html#ae369609aebfa745c1836ef92e9b76aa2">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__decoder_8h.html#ac9994bddaa7ccc8f52799a00031d5441">PPB_VIDEODECODER_INTERFACE</a></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
-<a class="anchor" id="af814c8f0028bce254da6fb5c3e61a4d8"></a><!-- doxytag: member="ppb_video_decoder.h::PPB_VIDEODECODER_INTERFACE" ref="af814c8f0028bce254da6fb5c3e61a4d8" args="" -->
+<a class="anchor" id="ac9994bddaa7ccc8f52799a00031d5441"></a><!-- doxytag: member="ppb_video_decoder.h::PPB_VIDEODECODER_INTERFACE" ref="ac9994bddaa7ccc8f52799a00031d5441" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">#define <a class="el" href="ppb__video__decoder_8h.html#af814c8f0028bce254da6fb5c3e61a4d8">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoDecoder;1.0&quot;</td>
+<td class="memname">#define <a class="el" href="ppb__video__decoder_8h.html#ac9994bddaa7ccc8f52799a00031d5441">PPB_VIDEODECODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoDecoder;1.1&quot;</td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/ppb__video__encoder_8h.html b/native_client_sdk/doc_generated/pepper_stable/c/ppb__video__encoder_8h.html
new file mode 100644
index 0000000..7c900c3
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/c/ppb__video__encoder_8h.html
@@ -0,0 +1,61 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>ppb_video_encoder.h File Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<div class="textblock"><div class="dynheader">
+Include dependency graph for ppb_video_encoder.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="ppb__video__encoder_8h__incl.png" border="0" usemap="#ppb__video__encoder_8h" alt="" /></div>
+<map name="ppb__video__encoder_8h" id="ppb__video__encoder_8h">
+</map>
+</div>
+</div><h2>
+Data Structures</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video encoder interface. <a href="struct_p_p_b___video_encoder__0__2.html#details">More...</a><br /></td></tr>
+</table><h2>
+Defines</h2><table class="memberdecls">
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__encoder_8h.html#af8c3e2794a4f7f9cbd6c253cbacfe177">PPB_VIDEOENCODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoEncoder;0.2&quot;</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ppb__video__encoder_8h.html#abdb2ab6ab0553f6b0086aee71996ea3d">PPB_VIDEOENCODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__encoder_8h.html#af8c3e2794a4f7f9cbd6c253cbacfe177">PPB_VIDEOENCODER_INTERFACE</a></td></tr>
+</table><h2>
+Typedefs</h2><table class="memberdecls">
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_p_b___video_encoder__0__2.html">PPB_VideoEncoder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___interfaces.html#ga1a72f170f2aaa94cd41aa16949e27973">PPB_VideoEncoder</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file defines the <code>PPB_VideoEncoder</code> interface. </p>
+</div><hr /><h2>Define Documentation</h2>
+<a class="anchor" id="abdb2ab6ab0553f6b0086aee71996ea3d"></a><!-- doxytag: member="ppb_video_encoder.h::PPB_VIDEOENCODER_INTERFACE" ref="abdb2ab6ab0553f6b0086aee71996ea3d" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">#define <a class="el" href="ppb__video__encoder_8h.html#abdb2ab6ab0553f6b0086aee71996ea3d">PPB_VIDEOENCODER_INTERFACE</a>&#160;&#160;&#160;<a class="el" href="ppb__video__encoder_8h.html#af8c3e2794a4f7f9cbd6c253cbacfe177">PPB_VIDEOENCODER_INTERFACE</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+</div>
+</div>
+<a class="anchor" id="af8c3e2794a4f7f9cbd6c253cbacfe177"></a><!-- doxytag: member="ppb_video_encoder.h::PPB_VIDEOENCODER_INTERFACE" ref="af8c3e2794a4f7f9cbd6c253cbacfe177" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">#define <a class="el" href="ppb__video__encoder_8h.html#af8c3e2794a4f7f9cbd6c253cbacfe177">PPB_VIDEOENCODER_INTERFACE</a>&#160;&#160;&#160;&quot;PPB_VideoEncoder;0.2&quot;</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+</div>
+</div>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/ppb__video__encoder_8h__incl.png b/native_client_sdk/doc_generated/pepper_stable/c/ppb__video__encoder_8h__incl.png
new file mode 100644
index 0000000..6ecf720
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/c/ppb__video__encoder_8h__incl.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___audio_bitstream_buffer.html b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___audio_bitstream_buffer.html
new file mode 100644
index 0000000..8cdf217
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___audio_bitstream_buffer.html
@@ -0,0 +1,52 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PP_AudioBitstreamBuffer Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PP_AudioBitstreamBuffer" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_bitstream_buffer.html#ab76b8c0357d850c84ff417aa1282f3da">size</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_bitstream_buffer.html#a888a0bc135ab6e5e434927309eb5fe9a">buffer</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Struct describing an audio bitstream buffer. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="a888a0bc135ab6e5e434927309eb5fe9a"></a><!-- doxytag: member="PP_AudioBitstreamBuffer::buffer" ref="a888a0bc135ab6e5e434927309eb5fe9a" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void* <a class="el" href="struct_p_p___audio_bitstream_buffer.html#a888a0bc135ab6e5e434927309eb5fe9a">PP_AudioBitstreamBuffer::buffer</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The base address of the bitstream data. </p>
+</div>
+</div>
+<a class="anchor" id="ab76b8c0357d850c84ff417aa1282f3da"></a><!-- doxytag: member="PP_AudioBitstreamBuffer::size" ref="ab76b8c0357d850c84ff417aa1282f3da" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___audio_bitstream_buffer.html#ab76b8c0357d850c84ff417aa1282f3da">PP_AudioBitstreamBuffer::size</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The size, in bytes, of the bitstream data. </p>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="pp__codecs_8h.html">pp_codecs.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___audio_profile_description.html b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___audio_profile_description.html
new file mode 100644
index 0000000..ba55b78
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___audio_profile_description.html
@@ -0,0 +1,95 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PP_AudioProfileDescription Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PP_AudioProfileDescription" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html#a4253ebb9ec2065525a4b9c948111d896">profile</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html#a4806e98fc63b158b26b293c4de803667">max_channels</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html#a1a340d0676442d0dfad60219c6dd3886">sample_size</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html#a266fce27c0c60cd5648ec331da9f04cf">sample_rate</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___audio_profile_description.html#a3f77a750a3d903e565deae13d8d814b4">hardware_accelerated</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Supported audio profile information. </p>
+<p>See the PPB_AudioEncoder function GetSupportedProfiles() for more details. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="a3f77a750a3d903e565deae13d8d814b4"></a><!-- doxytag: member="PP_AudioProfileDescription::hardware_accelerated" ref="a3f77a750a3d903e565deae13d8d814b4" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a> <a class="el" href="struct_p_p___audio_profile_description.html#a3f77a750a3d903e565deae13d8d814b4">PP_AudioProfileDescription::hardware_accelerated</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Whether the profile is hardware accelerated. </p>
+</div>
+</div>
+<a class="anchor" id="a4806e98fc63b158b26b293c4de803667"></a><!-- doxytag: member="PP_AudioProfileDescription::max_channels" ref="a4806e98fc63b158b26b293c4de803667" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___audio_profile_description.html#a4806e98fc63b158b26b293c4de803667">PP_AudioProfileDescription::max_channels</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Maximum number of channels that can be encoded. </p>
+</div>
+</div>
+<a class="anchor" id="a4253ebb9ec2065525a4b9c948111d896"></a><!-- doxytag: member="PP_AudioProfileDescription::profile" ref="a4253ebb9ec2065525a4b9c948111d896" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a> <a class="el" href="struct_p_p___audio_profile_description.html#a4253ebb9ec2065525a4b9c948111d896">PP_AudioProfileDescription::profile</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The codec profile. </p>
+</div>
+</div>
+<a class="anchor" id="a266fce27c0c60cd5648ec331da9f04cf"></a><!-- doxytag: member="PP_AudioProfileDescription::sample_rate" ref="a266fce27c0c60cd5648ec331da9f04cf" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___audio_profile_description.html#a266fce27c0c60cd5648ec331da9f04cf">PP_AudioProfileDescription::sample_rate</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Sampling rate that can be encoded. </p>
+</div>
+</div>
+<a class="anchor" id="a1a340d0676442d0dfad60219c6dd3886"></a><!-- doxytag: member="PP_AudioProfileDescription::sample_size" ref="a1a340d0676442d0dfad60219c6dd3886" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___audio_profile_description.html#a1a340d0676442d0dfad60219c6dd3886">PP_AudioProfileDescription::sample_size</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Sample size. </p>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="pp__codecs_8h.html">pp_codecs.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___bitstream_buffer.html b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___bitstream_buffer.html
new file mode 100644
index 0000000..a97c869
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___bitstream_buffer.html
@@ -0,0 +1,66 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PP_BitstreamBuffer Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PP_BitstreamBuffer" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___bitstream_buffer.html#aaa6f173b3478e960f26d87ae417f5d09">size</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___bitstream_buffer.html#a864bd5618ebcdb6bb743e5699c0dff39">buffer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___bitstream_buffer.html#a4ae08468a70d30e5d8124d713f8e8c47">key_frame</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Struct describing a bitstream buffer. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="a864bd5618ebcdb6bb743e5699c0dff39"></a><!-- doxytag: member="PP_BitstreamBuffer::buffer" ref="a864bd5618ebcdb6bb743e5699c0dff39" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void* <a class="el" href="struct_p_p___bitstream_buffer.html#a864bd5618ebcdb6bb743e5699c0dff39">PP_BitstreamBuffer::buffer</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The base address of the bitstream data. </p>
+</div>
+</div>
+<a class="anchor" id="a4ae08468a70d30e5d8124d713f8e8c47"></a><!-- doxytag: member="PP_BitstreamBuffer::key_frame" ref="a4ae08468a70d30e5d8124d713f8e8c47" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a> <a class="el" href="struct_p_p___bitstream_buffer.html#a4ae08468a70d30e5d8124d713f8e8c47">PP_BitstreamBuffer::key_frame</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Whether the buffer represents a key frame. </p>
+</div>
+</div>
+<a class="anchor" id="aaa6f173b3478e960f26d87ae417f5d09"></a><!-- doxytag: member="PP_BitstreamBuffer::size" ref="aaa6f173b3478e960f26d87ae417f5d09" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___bitstream_buffer.html#aaa6f173b3478e960f26d87ae417f5d09">PP_BitstreamBuffer::size</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The size, in bytes, of the bitstream data. </p>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="pp__codecs_8h.html">pp_codecs.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___video_profile_description.html b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___video_profile_description.html
new file mode 100644
index 0000000..54ea6d9
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___video_profile_description.html
@@ -0,0 +1,95 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PP_VideoProfileDescription Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PP_VideoProfileDescription" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html#aa4cf8bf248f49de606d5bda97c5b4ae1">profile</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="struct_p_p___size.html">PP_Size</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html#aa53694c107dc67256986b95e62ca13a2">max_resolution</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html#a21f8d2e8f5b995afb27edd43667f3eed">max_framerate_numerator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html#aa4b5113713acbb32d92145ac9f3a925f">max_framerate_denominator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description.html#a10da7a8d059171fcf5bd907a6d9c0e60">hardware_accelerated</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Supported video profile information. </p>
+<p>See the PPB_VideoEncoder function GetSupportedProfiles() for more details. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="a10da7a8d059171fcf5bd907a6d9c0e60"></a><!-- doxytag: member="PP_VideoProfileDescription::hardware_accelerated" ref="a10da7a8d059171fcf5bd907a6d9c0e60" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a> <a class="el" href="struct_p_p___video_profile_description.html#a10da7a8d059171fcf5bd907a6d9c0e60">PP_VideoProfileDescription::hardware_accelerated</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Whether the profile is hardware accelerated. </p>
+</div>
+</div>
+<a class="anchor" id="aa4b5113713acbb32d92145ac9f3a925f"></a><!-- doxytag: member="PP_VideoProfileDescription::max_framerate_denominator" ref="aa4b5113713acbb32d92145ac9f3a925f" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___video_profile_description.html#aa4b5113713acbb32d92145ac9f3a925f">PP_VideoProfileDescription::max_framerate_denominator</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The denominator of the maximum frame rate. </p>
+</div>
+</div>
+<a class="anchor" id="a21f8d2e8f5b995afb27edd43667f3eed"></a><!-- doxytag: member="PP_VideoProfileDescription::max_framerate_numerator" ref="a21f8d2e8f5b995afb27edd43667f3eed" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___video_profile_description.html#a21f8d2e8f5b995afb27edd43667f3eed">PP_VideoProfileDescription::max_framerate_numerator</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The numerator of the maximum frame rate. </p>
+</div>
+</div>
+<a class="anchor" id="aa53694c107dc67256986b95e62ca13a2"></a><!-- doxytag: member="PP_VideoProfileDescription::max_resolution" ref="aa53694c107dc67256986b95e62ca13a2" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">struct <a class="el" href="struct_p_p___size.html">PP_Size</a> <a class="el" href="struct_p_p___video_profile_description.html#aa53694c107dc67256986b95e62ca13a2">PP_VideoProfileDescription::max_resolution</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Dimensions of the maximum resolution of video frames, in pixels. </p>
+</div>
+</div>
+<a class="anchor" id="aa4cf8bf248f49de606d5bda97c5b4ae1"></a><!-- doxytag: member="PP_VideoProfileDescription::profile" ref="aa4cf8bf248f49de606d5bda97c5b4ae1" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> <a class="el" href="struct_p_p___video_profile_description.html#aa4cf8bf248f49de606d5bda97c5b4ae1">PP_VideoProfileDescription::profile</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The codec profile. </p>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="pp__codecs_8h.html">pp_codecs.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___video_profile_description__0__1.html b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___video_profile_description__0__1.html
new file mode 100644
index 0000000..a6d7c86
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p___video_profile_description__0__1.html
@@ -0,0 +1,95 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PP_VideoProfileDescription Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PP_VideoProfileDescription" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html#a97e76f7bc9c271fdd8b8964670711f65">profile</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="struct_p_p___size.html">PP_Size</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html#ab3ffdab3497ff29df3d31e44c560f2f4">max_resolution</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html#a01c7a68c5b96c3d2cc048e35d82330dd">max_framerate_numerator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html#a5339510fd2f94fde1e83f81b9bd47aa8">max_framerate_denominator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p___video_profile_description__0__1.html#a4d558d8ca3c8903544cb1f12c07d2a42">acceleration</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Supported video profile information. </p>
+<p>See the PPB_VideoEncoder function GetSupportedProfiles() for more details. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="a4d558d8ca3c8903544cb1f12c07d2a42"></a><!-- doxytag: member="PP_VideoProfileDescription::acceleration" ref="a4d558d8ca3c8903544cb1f12c07d2a42" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> <a class="el" href="struct_p_p___video_profile_description__0__1.html#a4d558d8ca3c8903544cb1f12c07d2a42">PP_VideoProfileDescription::acceleration</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>A value indicating if the profile is available in hardware, software, or both. </p>
+</div>
+</div>
+<a class="anchor" id="a5339510fd2f94fde1e83f81b9bd47aa8"></a><!-- doxytag: member="PP_VideoProfileDescription::max_framerate_denominator" ref="a5339510fd2f94fde1e83f81b9bd47aa8" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___video_profile_description__0__1.html#a5339510fd2f94fde1e83f81b9bd47aa8">PP_VideoProfileDescription::max_framerate_denominator</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The denominator of the maximum frame rate. </p>
+</div>
+</div>
+<a class="anchor" id="a01c7a68c5b96c3d2cc048e35d82330dd"></a><!-- doxytag: member="PP_VideoProfileDescription::max_framerate_numerator" ref="a01c7a68c5b96c3d2cc048e35d82330dd" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">uint32_t <a class="el" href="struct_p_p___video_profile_description__0__1.html#a01c7a68c5b96c3d2cc048e35d82330dd">PP_VideoProfileDescription::max_framerate_numerator</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The numerator of the maximum frame rate. </p>
+</div>
+</div>
+<a class="anchor" id="ab3ffdab3497ff29df3d31e44c560f2f4"></a><!-- doxytag: member="PP_VideoProfileDescription::max_resolution" ref="ab3ffdab3497ff29df3d31e44c560f2f4" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">struct <a class="el" href="struct_p_p___size.html">PP_Size</a> <a class="el" href="struct_p_p___video_profile_description__0__1.html#ab3ffdab3497ff29df3d31e44c560f2f4">PP_VideoProfileDescription::max_resolution</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Dimensions of the maximum resolution of video frames, in pixels. </p>
+</div>
+</div>
+<a class="anchor" id="a97e76f7bc9c271fdd8b8964670711f65"></a><!-- doxytag: member="PP_VideoProfileDescription::profile" ref="a97e76f7bc9c271fdd8b8964670711f65" args="" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> <a class="el" href="struct_p_p___video_profile_description__0__1.html#a97e76f7bc9c271fdd8b8964670711f65">PP_VideoProfileDescription::profile</a></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The codec profile. </p>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="pp__codecs_8h.html">pp_codecs.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___audio_encoder__0__1.html b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___audio_encoder__0__1.html
new file mode 100644
index 0000000..1b01f3e
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___audio_encoder__0__1.html
@@ -0,0 +1,286 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PPB_AudioEncoder Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PPB_AudioEncoder" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a116d0908bcdd955e33e00cbd9ae04110">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a63e54ec7e63e940c59c1b365669a5002">IsAudioEncoder</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a2ad5e2334abb35ede4c413e50e92ec61">GetSupportedProfiles</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, struct <a class="el" href="struct_p_p___array_output.html">PP_ArrayOutput</a> output, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70">Initialize</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, uint32_t channels, <a class="el" href="group___enums.html#ga78757d4be14d14d17708071a9466afbd">PP_AudioBuffer_SampleRate</a> input_sample_rate, <a class="el" href="group___enums.html#ga2ba5c3a8eed23fa49a73b218b1bce044">PP_AudioBuffer_SampleSize</a> input_sample_size, <a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a> output_profile, uint32_t initial_bitrate, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a49a627f22227a877391f2f569a4490ff">GetNumberOfSamples</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac154730ff2248134c73d5155c4a7095f">GetBuffer</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *audio_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a61e9304df6da6bbb97236805d702d0a3">Encode</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a7386d14006ed634530d0ad2ecdb61529">GetBitstreamBuffer</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, struct <a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a> *bitstream_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a8046882d9584418d02e017130aa55d80">RecycleBitstreamBuffer</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, const struct <a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a> *bitstream_buffer)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac5a8cbc3578816a15f3418882b6b720c">RequestBitrateChange</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, uint32_t bitrate)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ad472829d0944505ce8cfb2a2b6308165">Close</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder)</td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Audio encoder interface. </p>
+<p>Typical usage:</p>
+<ul>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a116d0908bcdd955e33e00cbd9ae04110" title="Creates a new audio encoder resource.">Create()</a> to create a new audio encoder resource.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a2ad5e2334abb35ede4c413e50e92ec61" title="Gets an array of supported audio encoder profiles.">GetSupportedProfiles()</a> to determine which codecs and profiles are available.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> to initialize the encoder for a supported profile.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac154730ff2248134c73d5155c4a7095f" title="Gets a blank audio buffer (with metadata given by the Initialize() call) which can be filled with aud...">GetBuffer()</a> to get an empty buffer and fill it in, or get an audio buffer from another resource, e.g. <code>PPB_MediaStreamAudioTrack</code>.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a61e9304df6da6bbb97236805d702d0a3" title="Encodes an audio buffer.">Encode()</a> to push the audio buffer to the encoder. If an external buffer is pushed, wait for completion to recycle the buffer.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a7386d14006ed634530d0ad2ecdb61529" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> continuously (waiting for each previous call to complete) to pull encoded buffers from the encoder.</li>
+<li>Call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a8046882d9584418d02e017130aa55d80" title="Recycles a bitstream buffer back to the encoder.">RecycleBitstreamBuffer()</a> after consuming the data in the bitstream buffer.</li>
+<li>To destroy the encoder, the plugin should release all of its references to it. Any pending callbacks will abort before the encoder is destroyed.</li>
+</ul>
+<p>Available audio codecs vary by platform. All: opus. </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="ad472829d0944505ce8cfb2a2b6308165"></a><!-- doxytag: member="PPB_AudioEncoder::Close" ref="ad472829d0944505ce8cfb2a2b6308165" args=")(PP_Resource audio_encoder)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ad472829d0944505ce8cfb2a2b6308165">PPB_AudioEncoder::Close</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Closes the audio encoder, and cancels any pending encodes. </p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> . It is not valid to call any encoder functions after a call to this method. <b>Note:</b> Destroying the audio encoder closes it implicitly, so you are not required to call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ad472829d0944505ce8cfb2a2b6308165" title="Closes the audio encoder, and cancels any pending encodes.">Close()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="a116d0908bcdd955e33e00cbd9ae04110"></a><!-- doxytag: member="PPB_AudioEncoder::Create" ref="a116d0908bcdd955e33e00cbd9ae04110" args=")(PP_Instance instance)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a116d0908bcdd955e33e00cbd9ae04110">PPB_AudioEncoder::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Creates a new audio encoder resource. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code> identifying the instance with the audio encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> corresponding to an audio encoder if successful or 0 otherwise. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a61e9304df6da6bbb97236805d702d0a3"></a><!-- doxytag: member="PPB_AudioEncoder::Encode" ref="a61e9304df6da6bbb97236805d702d0a3" args=")(PP_Resource audio_encoder, PP_Resource audio_buffer, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a61e9304df6da6bbb97236805d702d0a3">PPB_AudioEncoder::Encode</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Encodes an audio buffer. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_buffer</td><td>The <code>PPB_AudioBuffer</code> to be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion. Plugins that pass <code>PPB_AudioBuffer</code> resources owned by other resources should wait for completion before reusing them.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a7386d14006ed634530d0ad2ecdb61529"></a><!-- doxytag: member="PPB_AudioEncoder::GetBitstreamBuffer" ref="a7386d14006ed634530d0ad2ecdb61529" args=")(PP_Resource audio_encoder, struct PP_AudioBitstreamBuffer *bitstream_buffer, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a7386d14006ed634530d0ad2ecdb61529">PPB_AudioEncoder::GetBitstreamBuffer</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, struct <a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a> *bitstream_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the next encoded bitstream buffer from the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[out]</td><td class="paramname">bitstream_buffer</td><td>A <code><a class="el" href="struct_p_p___bitstream_buffer.html" title="Struct describing a bitstream buffer.">PP_BitstreamBuffer</a></code> containing encoded audio data. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion. The plugin can call GetBitstreamBuffer from the callback in order to continuously "pull" bitstream buffers from the encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> has not successfully completed. Returns PP_ERROR_INPROGRESS if a prior call to <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a7386d14006ed634530d0ad2ecdb61529" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> has not completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="ac154730ff2248134c73d5155c4a7095f"></a><!-- doxytag: member="PPB_AudioEncoder::GetBuffer" ref="ac154730ff2248134c73d5155c4a7095f" args=")(PP_Resource audio_encoder, PP_Resource *audio_buffer, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac154730ff2248134c73d5155c4a7095f">PPB_AudioEncoder::GetBuffer</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *audio_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets a blank audio buffer (with metadata given by the <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> call) which can be filled with audio data and passed to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[out]</td><td class="paramname">audio_buffer</td><td>A blank <code>PPB_AudioBuffer</code> resource. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a49a627f22227a877391f2f569a4490ff"></a><!-- doxytag: member="PPB_AudioEncoder::GetNumberOfSamples" ref="a49a627f22227a877391f2f569a4490ff" args=")(PP_Resource audio_encoder)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a49a627f22227a877391f2f569a4490ff">PPB_AudioEncoder::GetNumberOfSamples</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the number of audio samples per channel that audio buffers must contain in order to be processed by the encoder. </p>
+<p>This will be the number of samples per channels contained in buffers returned by <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac154730ff2248134c73d5155c4a7095f" title="Gets a blank audio buffer (with metadata given by the Initialize() call) which can be filled with aud...">GetBuffer()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing the number of samples required, or an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a2ad5e2334abb35ede4c413e50e92ec61"></a><!-- doxytag: member="PPB_AudioEncoder::GetSupportedProfiles" ref="a2ad5e2334abb35ede4c413e50e92ec61" args=")(PP_Resource audio_encoder, struct PP_ArrayOutput output, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a2ad5e2334abb35ede4c413e50e92ec61">PPB_AudioEncoder::GetSupportedProfiles</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, struct <a class="el" href="struct_p_p___array_output.html">PP_ArrayOutput</a> output, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets an array of supported audio encoder profiles. </p>
+<p>These can be used to choose a profile before calling <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output</td><td>A <code><a class="el" href="struct_p_p___array_output.html" title="A structure that defines a way for the browser to return arrays of data to the plugin.">PP_ArrayOutput</a></code> to receive the supported <code><a class="el" href="struct_p_p___audio_profile_description.html" title="Supported audio profile information.">PP_AudioProfileDescription</a></code> structs. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>If &gt;= 0, the number of supported profiles returned, otherwise an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a676b09b0a98069daea08678a8c9e5d70"></a><!-- doxytag: member="PPB_AudioEncoder::Initialize" ref="a676b09b0a98069daea08678a8c9e5d70" args=")(PP_Resource audio_encoder, uint32_t channels, PP_AudioBuffer_SampleRate input_sample_rate, PP_AudioBuffer_SampleSize input_sample_size, PP_AudioProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70">PPB_AudioEncoder::Initialize</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, uint32_t channels, <a class="el" href="group___enums.html#ga78757d4be14d14d17708071a9466afbd">PP_AudioBuffer_SampleRate</a> input_sample_rate, <a class="el" href="group___enums.html#ga2ba5c3a8eed23fa49a73b218b1bce044">PP_AudioBuffer_SampleSize</a> input_sample_size, <a class="el" href="group___enums.html#gadadb1eaddb4ea71cb8620db1f4ce301e">PP_AudioProfile</a> output_profile, uint32_t initial_bitrate, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Initializes an audio encoder resource. </p>
+<p>The plugin should call <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a676b09b0a98069daea08678a8c9e5d70" title="Initializes an audio encoder resource.">Initialize()</a> successfully before calling any of the functions below.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">channels</td><td>The number of audio channels to encode. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_sampling_rate</td><td>The sampling rate of the input audio buffer. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_sample_size</td><td>The sample size of the input audio buffer. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output_profile</td><td>A <code>PP_AudioProfile</code> specifying the codec profile of the encoded output stream. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">initial_bitrate</td><td>The initial bitrate for the encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_NOTSUPPORTED if audio encoding is not available, or the requested codec profile is not supported. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a63e54ec7e63e940c59c1b365669a5002"></a><!-- doxytag: member="PPB_AudioEncoder::IsAudioEncoder" ref="a63e54ec7e63e940c59c1b365669a5002" args=")(PP_Resource resource)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a63e54ec7e63e940c59c1b365669a5002">PPB_AudioEncoder::IsAudioEncoder</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Determines if the given resource is an audio encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">resource</td><td>A <code>PP_Resource</code> identifying a resource.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd><code>PP_TRUE</code> if the resource is a <code>PPB_AudioEncoder</code>, <code>PP_FALSE</code> if the resource is invalid or some other type. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a8046882d9584418d02e017130aa55d80"></a><!-- doxytag: member="PPB_AudioEncoder::RecycleBitstreamBuffer" ref="a8046882d9584418d02e017130aa55d80" args=")(PP_Resource audio_encoder, const struct PP_AudioBitstreamBuffer *bitstream_buffer)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#a8046882d9584418d02e017130aa55d80">PPB_AudioEncoder::RecycleBitstreamBuffer</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, const struct <a class="el" href="struct_p_p___audio_bitstream_buffer.html">PP_AudioBitstreamBuffer</a> *bitstream_buffer)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Recycles a bitstream buffer back to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">bitstream_buffer</td><td>A <code><a class="el" href="struct_p_p___bitstream_buffer.html" title="Struct describing a bitstream buffer.">PP_BitstreamBuffer</a></code> that is no longer needed by the plugin. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ac5a8cbc3578816a15f3418882b6b720c"></a><!-- doxytag: member="PPB_AudioEncoder::RequestBitrateChange" ref="ac5a8cbc3578816a15f3418882b6b720c" args=")(PP_Resource audio_encoder, uint32_t bitrate)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___audio_encoder__0__1.html#ac5a8cbc3578816a15f3418882b6b720c">PPB_AudioEncoder::RequestBitrateChange</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> audio_encoder, uint32_t bitrate)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Requests a change to the encoding bitrate. </p>
+<p>This is only a request, fulfilled on a best-effort basis.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">bitrate</td><td>The requested new bitrate, in bits per second. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="ppb__audio__encoder_8h.html">ppb_audio_encoder.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___compositor__0__1.html b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___compositor__0__1.html
index 85fcb76..eae2261 100644
--- a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___compositor__0__1.html
+++ b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___compositor__0__1.html
@@ -50,7 +50,7 @@ Data Fields</h2><table class="memberdecls">
<p>Creates a new <code>PPB_CompositorLayer</code> and adds it to the end of the layer stack. </p>
<p>A <code>PP_Resource</code> containing the layer is returned. It is uninitialized, <code>SetColor()</code>, <code>SetTexture</code> or <code>SetImage</code> should be used to initialize it. The layer will appear above other pre-existing layers. If <code>ResetLayers</code> is called or the <code>PPB_Compositor</code> is released, the returned layer will be invalidated, and any further calls on the layer will return <code>PP_ERROR_BADRESOURCE</code>.</p>
<p>param[in] compositor A <code>PP_Resource</code> corresponding to a compositor layer resource.</p>
-<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> containing the compositor layer resource if sucessful or 0 otherwise. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> containing the compositor layer resource if successful or 0 otherwise. </dd></dl>
</div>
</div>
<a class="anchor" id="a5082b0dce4a58032439bc3dd4ff741fd"></a><!-- doxytag: member="PPB_Compositor::CommitLayers" ref="a5082b0dce4a58032439bc3dd4ff741fd" args=")(PP_Resource compositor, struct PP_CompletionCallback cc)" -->
@@ -91,7 +91,7 @@ Data Fields</h2><table class="memberdecls">
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> containing the compositor resource if sucessful or 0 otherwise. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> containing the compositor resource if successful or 0 otherwise. </dd></dl>
</div>
</div>
<a class="anchor" id="a22fb77daabd3894db97ab1111d111a92"></a><!-- doxytag: member="PPB_Compositor::IsCompositor" ref="a22fb77daabd3894db97ab1111d111a92" args=")(PP_Resource resource)" -->
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___file_mapping__0__1.html b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___file_mapping__0__1.html
deleted file mode 100644
index 6443704..0000000
--- a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___file_mapping__0__1.html
+++ /dev/null
@@ -1,98 +0,0 @@
-{{+bindTo:partials.standard_nacl_api}}
-<h1>PPB_FileMapping Struct Reference</h1>
-<div id="doxygen-ref">
-{{- dummy div to appease doxygen -}}
- <div>
-<!-- Generated by Doxygen 1.7.6.1 -->
-
-
-</div>
-<!--header-->
-<div class="contents">
-<!-- doxytag: class="PPB_FileMapping" --><h2>
-Data Fields</h2><table class="memberdecls">
-
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb">Map</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> file_io, int64_t length, uint32_t map_protection, uint32_t map_flags, int64_t offset, void **address, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_mapping__0__1.html#a4fa72d6e6660e16ce1ff08453eff172d">Unmap</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance, const void *address, int64_t length, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int64_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___file_mapping__0__1.html#ae479690b258985b51dda4d438b8156f0">GetMapPageSize</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
-</table>
-<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>PPB_FileMapping contains functions for mapping and unmapping files into and out of memory. </p>
-</div><hr /><h2>Field Documentation</h2>
-<a class="anchor" id="ae479690b258985b51dda4d438b8156f0"></a><!-- doxytag: member="PPB_FileMapping::GetMapPageSize" ref="ae479690b258985b51dda4d438b8156f0" args=")(PP_Instance instance)" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">int64_t(* <a class="el" href="struct_p_p_b___file_mapping__0__1.html#ae479690b258985b51dda4d438b8156f0">PPB_FileMapping::GetMapPageSize</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-<p><a class="el" href="struct_p_p_b___file_mapping__0__1.html#ae479690b258985b51dda4d438b8156f0" title="GetMapPageSize() retrieves the size of pages that Map() uses.">GetMapPageSize()</a> retrieves the size of pages that <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a> uses. </p>
-<dl class="params"><dt><b>Parameters:</b></dt><dd>
-<table class="params">
-<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code> identifying the instance.</td></tr>
-</table>
-</dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The size of pages that <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a> uses. Returns 0 on failure. </dd></dl>
-</div>
-</div>
-<a class="anchor" id="a425d8d5b11de51e8edf539ee13bac1fb"></a><!-- doxytag: member="PPB_FileMapping::Map" ref="a425d8d5b11de51e8edf539ee13bac1fb" args=")(PP_Instance instance, PP_Resource file_io, int64_t length, uint32_t map_protection, uint32_t map_flags, int64_t offset, void **address, struct PP_CompletionCallback callback)" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb">PPB_FileMapping::Map</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> file_io, int64_t length, uint32_t map_protection, uint32_t map_flags, int64_t offset, void **address, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-<p><a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a> maps the contents from an offset of the file into memory. </p>
-<dl class="params"><dt><b>Parameters:</b></dt><dd>
-<table class="params">
-<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code> identifying one instance of a module. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">file_io</td><td>A <code>PPB_FileIO</code> <code>PP_Resource</code> corresponding to the file that should be mapped in to memory. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>The number of bytes to map. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">map_protection</td><td>A bitfield containing values from <code>PP_FileMapProtection</code>, indicating what memory operations should be permitted on the mapped region. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">map_flags</td><td>A bitfield containing values from <code>PP_FileMapFlags</code>, providing options for the behavior of Map. If the region is to be writeable, then exactly one of <code>PP_FILEMAPFLAG_SHARED</code> or <code>PP_FILEMAPFLAG_PRIVATE</code> must be set. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>The offset into the file. Must be a multiple of the Map page size as returned by <a class="el" href="struct_p_p_b___file_mapping__0__1.html#ae479690b258985b51dda4d438b8156f0" title="GetMapPageSize() retrieves the size of pages that Map() uses.">GetMapPageSize()</a>. </td></tr>
-<tr><td class="paramdir"></td><td class="paramname">inout]</td><td>address The value of <code>*address</code>, if non-NULL, will be used as a hint to determine where in memory the file should be mapped. If the value is NULL, the host operating system will choose <code>address</code>. Upon <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a> completing, <code>*address</code> will contain the actual memory location at which the file was mapped. If the plugin provides a non-NULL <code>*address</code>, it must be a multiple of the map page size as returned by <a class="el" href="struct_p_p_b___file_mapping__0__1.html#ae479690b258985b51dda4d438b8156f0" title="GetMapPageSize() retrieves the size of pages that Map() uses.">GetMapPageSize()</a>. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion of <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a>.</td></tr>
-</table>
-</dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
-</div>
-</div>
-<a class="anchor" id="a4fa72d6e6660e16ce1ff08453eff172d"></a><!-- doxytag: member="PPB_FileMapping::Unmap" ref="a4fa72d6e6660e16ce1ff08453eff172d" args=")(PP_Instance instance, const void *address, int64_t length, struct PP_CompletionCallback callback)" -->
-<div class="memitem">
-<div class="memproto">
-<table class="memname">
-<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a4fa72d6e6660e16ce1ff08453eff172d">PPB_FileMapping::Unmap</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance, const void *address, int64_t length, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
-</tr>
-</table>
-</div>
-<div class="memdoc">
-<p><a class="el" href="struct_p_p_b___file_mapping__0__1.html#a4fa72d6e6660e16ce1ff08453eff172d" title="Unmap() deletes the mapping of the specified address.">Unmap()</a> deletes the mapping of the specified address. </p>
-<p>The specified address must have been retrieved with <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a425d8d5b11de51e8edf539ee13bac1fb" title="Map() maps the contents from an offset of the file into memory.">Map()</a>. </p>
-<dl class="params"><dt><b>Parameters:</b></dt><dd>
-<table class="params">
-<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code> identifying the instance. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">address</td><td>The starting address of the address in memory to be unmapped. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>The length of the region to unmap. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion of <a class="el" href="struct_p_p_b___file_mapping__0__1.html#a4fa72d6e6660e16ce1ff08453eff172d" title="Unmap() deletes the mapping of the specified address.">Unmap()</a>.</td></tr>
-</table>
-</dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
-</div>
-</div>
-<hr />The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="ppb__file__mapping_8h.html">ppb_file_mapping.h</a></li>
-</ul>
-</div><!-- contents -->
-</div>
-{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___t_c_p_socket__1__1.html b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___t_c_p_socket__1__2.html
index d9d5a0d..7b0a919 100644
--- a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___t_c_p_socket__1__1.html
+++ b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___t_c_p_socket__1__2.html
@@ -12,29 +12,29 @@
<!-- doxytag: class="PPB_TCPSocket" --><h2>
Data Fields</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#a615cb349fbe99e25ae09078091c87b43">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#afe32ae060181370e12c93c206964a58f">IsTCPSocket</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#aae9a2f9ced445ca28a21721a0df5c567">Bind</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#a1d12313b4681e48fa6f9b789d26414cb">Connect</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#ab64edd222b040500767f5c9182358b68">GetLocalAddress</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#af28b600fcdf657ca31dd2e9218a774e1">GetRemoteAddress</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#ab4bd707da2d9d2136c59a08b3de2ce32">Read</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, char *buffer, int32_t bytes_to_read, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#adea2cbc4e8487f2f26c2126983f9c856">Write</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, const char *buffer, int32_t bytes_to_write, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#af3b28d2bf3f44d89e434e158854bea69">Listen</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, int32_t backlog, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#a444d931c7fbb40e47cca8c55d57250f7">Accept</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *accepted_tcp_socket, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#afc2d9d7577df96bd0ac8f3cc6f503266">Close</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#ab64ed8f1f7b4c3dce8d3493fb894ea0d">SetOption</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___enums.html#ga1557c0bbce8739a3418e6027a9c44e12">PP_TCPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#a889fb7b3263304ef5057cd541a197312">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#a5355f00c99cd7fb9563eb9987a73a3c5">IsTCPSocket</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#aeb78a27cd902e93c557a0015812237f9">Bind</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#ad107b3d5541072b14e2b8acc836b3939">Connect</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#a5916aca75506efccaa2905bb758421a2">GetLocalAddress</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#abb362a218eef33522ea9b508d482a015">GetRemoteAddress</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#aac72febd03fe6e6e5adafcfd2b24a8b1">Read</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, char *buffer, int32_t bytes_to_read, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#ac798b76c497f00231bd592ebdb584042">Write</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, const char *buffer, int32_t bytes_to_write, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#acffd2f5faddf094ccd9638128167259d">Listen</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, int32_t backlog, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#ad9b1525032df05cf446f7d7c27c6145a">Accept</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *accepted_tcp_socket, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#a6ca1887389cfaf357054e016adf7fc77">Close</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#aa42176651e65cf589fc310c0b2ed5751">SetOption</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___enums.html#ga1557c0bbce8739a3418e6027a9c44e12">PP_TCPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
</table>
<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>The <code>PPB_TCPSocket</code> interface provides TCP socket operations. </p>
-<p>Permissions: Apps permission <code>socket</code> with subrule <code>tcp-connect</code> is required for <code><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#a1d12313b4681e48fa6f9b789d26414cb" title="Connects the socket to the given address.">Connect()</a></code>; subrule <code>tcp-listen</code> is required for <code><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#af3b28d2bf3f44d89e434e158854bea69" title="Starts listening.">Listen()</a></code>. For more details about network communication permissions, please see: <a href="http://developer.chrome.com/apps/app_network.html">http://developer.chrome.com/apps/app_network.html</a> </p>
+<p>Permissions: Apps permission <code>socket</code> with subrule <code>tcp-connect</code> is required for <code><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#ad107b3d5541072b14e2b8acc836b3939" title="Connects the socket to the given address.">Connect()</a></code>; subrule <code>tcp-listen</code> is required for <code><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#acffd2f5faddf094ccd9638128167259d" title="Starts listening.">Listen()</a></code>. For more details about network communication permissions, please see: <a href="http://developer.chrome.com/apps/app_network.html">http://developer.chrome.com/apps/app_network.html</a> </p>
</div><hr /><h2>Field Documentation</h2>
-<a class="anchor" id="a444d931c7fbb40e47cca8c55d57250f7"></a><!-- doxytag: member="PPB_TCPSocket::Accept" ref="a444d931c7fbb40e47cca8c55d57250f7" args=")(PP_Resource tcp_socket, PP_Resource *accepted_tcp_socket, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="ad9b1525032df05cf446f7d7c27c6145a"></a><!-- doxytag: member="PPB_TCPSocket::Accept" ref="ad9b1525032df05cf446f7d7c27c6145a" args=")(PP_Resource tcp_socket, PP_Resource *accepted_tcp_socket, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#a444d931c7fbb40e47cca8c55d57250f7">PPB_TCPSocket::Accept</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *accepted_tcp_socket, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#ad9b1525032df05cf446f7d7c27c6145a">PPB_TCPSocket::Accept</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *accepted_tcp_socket, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
@@ -55,12 +55,12 @@ Data Fields</h2><table class="memberdecls">
</dd></dl>
</div>
</div>
-<a class="anchor" id="aae9a2f9ced445ca28a21721a0df5c567"></a><!-- doxytag: member="PPB_TCPSocket::Bind" ref="aae9a2f9ced445ca28a21721a0df5c567" args=")(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="aeb78a27cd902e93c557a0015812237f9"></a><!-- doxytag: member="PPB_TCPSocket::Bind" ref="aeb78a27cd902e93c557a0015812237f9" args=")(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#aae9a2f9ced445ca28a21721a0df5c567">PPB_TCPSocket::Bind</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#aeb78a27cd902e93c557a0015812237f9">PPB_TCPSocket::Bind</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
@@ -82,18 +82,18 @@ Data Fields</h2><table class="memberdecls">
</dd></dl>
</div>
</div>
-<a class="anchor" id="afc2d9d7577df96bd0ac8f3cc6f503266"></a><!-- doxytag: member="PPB_TCPSocket::Close" ref="afc2d9d7577df96bd0ac8f3cc6f503266" args=")(PP_Resource tcp_socket)" -->
+<a class="anchor" id="a6ca1887389cfaf357054e016adf7fc77"></a><!-- doxytag: member="PPB_TCPSocket::Close" ref="a6ca1887389cfaf357054e016adf7fc77" args=")(PP_Resource tcp_socket)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">void(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#afc2d9d7577df96bd0ac8f3cc6f503266">PPB_TCPSocket::Close</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket)</td>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#a6ca1887389cfaf357054e016adf7fc77">PPB_TCPSocket::Close</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Cancels all pending operations and closes the socket. </p>
-<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> if pending IO was interrupted. After a call to this method, no output buffer pointers passed into previous <code><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#ab4bd707da2d9d2136c59a08b3de2ce32" title="Reads data from the socket.">Read()</a></code> or <code><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#a444d931c7fbb40e47cca8c55d57250f7" title="Accepts a connection.">Accept()</a></code> calls will be accessed. It is not valid to call <code><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#a1d12313b4681e48fa6f9b789d26414cb" title="Connects the socket to the given address.">Connect()</a></code> or <code><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#af3b28d2bf3f44d89e434e158854bea69" title="Starts listening.">Listen()</a></code> again.</p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> if pending IO was interrupted. After a call to this method, no output buffer pointers passed into previous <code><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#aac72febd03fe6e6e5adafcfd2b24a8b1" title="Reads data from the socket.">Read()</a></code> or <code><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#ad9b1525032df05cf446f7d7c27c6145a" title="Accepts a connection.">Accept()</a></code> calls will be accessed. It is not valid to call <code><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#ad107b3d5541072b14e2b8acc836b3939" title="Connects the socket to the given address.">Connect()</a></code> or <code><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#acffd2f5faddf094ccd9638128167259d" title="Starts listening.">Listen()</a></code> again.</p>
<p>The socket is implicitly closed if it is destroyed, so you are not required to call this method.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
@@ -103,12 +103,12 @@ Data Fields</h2><table class="memberdecls">
</dl>
</div>
</div>
-<a class="anchor" id="a1d12313b4681e48fa6f9b789d26414cb"></a><!-- doxytag: member="PPB_TCPSocket::Connect" ref="a1d12313b4681e48fa6f9b789d26414cb" args=")(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="ad107b3d5541072b14e2b8acc836b3939"></a><!-- doxytag: member="PPB_TCPSocket::Connect" ref="ad107b3d5541072b14e2b8acc836b3939" args=")(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#a1d12313b4681e48fa6f9b789d26414cb">PPB_TCPSocket::Connect</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#ad107b3d5541072b14e2b8acc836b3939">PPB_TCPSocket::Connect</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
@@ -131,15 +131,15 @@ Data Fields</h2><table class="memberdecls">
<li><code>PP_ERROR_CONNECTION_TIMEDOUT</code>: the connection attempt timed out.</li>
</ul>
</dd></dl>
-<p>Since version 1.1, if the socket is listening/connected or has a pending listen/connect request, <code><a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#a1d12313b4681e48fa6f9b789d26414cb" title="Connects the socket to the given address.">Connect()</a></code> will fail without starting a connection attempt; otherwise, any failure during the connection attempt will cause the socket to be closed. </p>
+<p>Since version 1.1, if the socket is listening/connected or has a pending listen/connect request, <code><a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#ad107b3d5541072b14e2b8acc836b3939" title="Connects the socket to the given address.">Connect()</a></code> will fail without starting a connection attempt; otherwise, any failure during the connection attempt will cause the socket to be closed. </p>
</div>
</div>
-<a class="anchor" id="a615cb349fbe99e25ae09078091c87b43"></a><!-- doxytag: member="PPB_TCPSocket::Create" ref="a615cb349fbe99e25ae09078091c87b43" args=")(PP_Instance instance)" -->
+<a class="anchor" id="a889fb7b3263304ef5057cd541a197312"></a><!-- doxytag: member="PPB_TCPSocket::Create" ref="a889fb7b3263304ef5057cd541a197312" args=")(PP_Instance instance)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#a615cb349fbe99e25ae09078091c87b43">PPB_TCPSocket::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#a889fb7b3263304ef5057cd541a197312">PPB_TCPSocket::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
</tr>
</table>
</div>
@@ -154,12 +154,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> corresponding to a TCP socket or 0 on failure. </dd></dl>
</div>
</div>
-<a class="anchor" id="ab64edd222b040500767f5c9182358b68"></a><!-- doxytag: member="PPB_TCPSocket::GetLocalAddress" ref="ab64edd222b040500767f5c9182358b68" args=")(PP_Resource tcp_socket)" -->
+<a class="anchor" id="a5916aca75506efccaa2905bb758421a2"></a><!-- doxytag: member="PPB_TCPSocket::GetLocalAddress" ref="a5916aca75506efccaa2905bb758421a2" args=")(PP_Resource tcp_socket)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#ab64edd222b040500767f5c9182358b68">PPB_TCPSocket::GetLocalAddress</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket)</td>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#a5916aca75506efccaa2905bb758421a2">PPB_TCPSocket::GetLocalAddress</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket)</td>
</tr>
</table>
</div>
@@ -174,12 +174,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PPB_NetAddress</code> resource on success or 0 on failure. </dd></dl>
</div>
</div>
-<a class="anchor" id="af28b600fcdf657ca31dd2e9218a774e1"></a><!-- doxytag: member="PPB_TCPSocket::GetRemoteAddress" ref="af28b600fcdf657ca31dd2e9218a774e1" args=")(PP_Resource tcp_socket)" -->
+<a class="anchor" id="abb362a218eef33522ea9b508d482a015"></a><!-- doxytag: member="PPB_TCPSocket::GetRemoteAddress" ref="abb362a218eef33522ea9b508d482a015" args=")(PP_Resource tcp_socket)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#af28b600fcdf657ca31dd2e9218a774e1">PPB_TCPSocket::GetRemoteAddress</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket)</td>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#abb362a218eef33522ea9b508d482a015">PPB_TCPSocket::GetRemoteAddress</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket)</td>
</tr>
</table>
</div>
@@ -194,12 +194,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PPB_NetAddress</code> resource on success or 0 on failure. </dd></dl>
</div>
</div>
-<a class="anchor" id="afe32ae060181370e12c93c206964a58f"></a><!-- doxytag: member="PPB_TCPSocket::IsTCPSocket" ref="afe32ae060181370e12c93c206964a58f" args=")(PP_Resource resource)" -->
+<a class="anchor" id="a5355f00c99cd7fb9563eb9987a73a3c5"></a><!-- doxytag: member="PPB_TCPSocket::IsTCPSocket" ref="a5355f00c99cd7fb9563eb9987a73a3c5" args=")(PP_Resource resource)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#afe32ae060181370e12c93c206964a58f">PPB_TCPSocket::IsTCPSocket</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#a5355f00c99cd7fb9563eb9987a73a3c5">PPB_TCPSocket::IsTCPSocket</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
</tr>
</table>
</div>
@@ -214,12 +214,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd><code>PP_TRUE</code> if the input is a <code>PPB_TCPSocket</code> resource; <code>PP_FALSE</code> otherwise. </dd></dl>
</div>
</div>
-<a class="anchor" id="af3b28d2bf3f44d89e434e158854bea69"></a><!-- doxytag: member="PPB_TCPSocket::Listen" ref="af3b28d2bf3f44d89e434e158854bea69" args=")(PP_Resource tcp_socket, int32_t backlog, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="acffd2f5faddf094ccd9638128167259d"></a><!-- doxytag: member="PPB_TCPSocket::Listen" ref="acffd2f5faddf094ccd9638128167259d" args=")(PP_Resource tcp_socket, int32_t backlog, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#af3b28d2bf3f44d89e434e158854bea69">PPB_TCPSocket::Listen</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, int32_t backlog, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#acffd2f5faddf094ccd9638128167259d">PPB_TCPSocket::Listen</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, int32_t backlog, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
@@ -241,12 +241,12 @@ Data Fields</h2><table class="memberdecls">
</dd></dl>
</div>
</div>
-<a class="anchor" id="ab4bd707da2d9d2136c59a08b3de2ce32"></a><!-- doxytag: member="PPB_TCPSocket::Read" ref="ab4bd707da2d9d2136c59a08b3de2ce32" args=")(PP_Resource tcp_socket, char *buffer, int32_t bytes_to_read, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="aac72febd03fe6e6e5adafcfd2b24a8b1"></a><!-- doxytag: member="PPB_TCPSocket::Read" ref="aac72febd03fe6e6e5adafcfd2b24a8b1" args=")(PP_Resource tcp_socket, char *buffer, int32_t bytes_to_read, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#ab4bd707da2d9d2136c59a08b3de2ce32">PPB_TCPSocket::Read</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, char *buffer, int32_t bytes_to_read, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#aac72febd03fe6e6e5adafcfd2b24a8b1">PPB_TCPSocket::Read</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, char *buffer, int32_t bytes_to_read, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
@@ -265,12 +265,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A non-negative number on success to indicate how many bytes have been read, 0 means that end-of-file was reached; otherwise, an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
</div>
</div>
-<a class="anchor" id="ab64ed8f1f7b4c3dce8d3493fb894ea0d"></a><!-- doxytag: member="PPB_TCPSocket::SetOption" ref="ab64ed8f1f7b4c3dce8d3493fb894ea0d" args=")(PP_Resource tcp_socket, PP_TCPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="aa42176651e65cf589fc310c0b2ed5751"></a><!-- doxytag: member="PPB_TCPSocket::SetOption" ref="aa42176651e65cf589fc310c0b2ed5751" args=")(PP_Resource tcp_socket, PP_TCPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#ab64ed8f1f7b4c3dce8d3493fb894ea0d">PPB_TCPSocket::SetOption</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___enums.html#ga1557c0bbce8739a3418e6027a9c44e12">PP_TCPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#aa42176651e65cf589fc310c0b2ed5751">PPB_TCPSocket::SetOption</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, <a class="el" href="group___enums.html#ga1557c0bbce8739a3418e6027a9c44e12">PP_TCPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
@@ -289,12 +289,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
</div>
</div>
-<a class="anchor" id="adea2cbc4e8487f2f26c2126983f9c856"></a><!-- doxytag: member="PPB_TCPSocket::Write" ref="adea2cbc4e8487f2f26c2126983f9c856" args=")(PP_Resource tcp_socket, const char *buffer, int32_t bytes_to_write, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="ac798b76c497f00231bd592ebdb584042"></a><!-- doxytag: member="PPB_TCPSocket::Write" ref="ac798b76c497f00231bd592ebdb584042" args=")(PP_Resource tcp_socket, const char *buffer, int32_t bytes_to_write, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__1.html#adea2cbc4e8487f2f26c2126983f9c856">PPB_TCPSocket::Write</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, const char *buffer, int32_t bytes_to_write, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___t_c_p_socket__1__2.html#ac798b76c497f00231bd592ebdb584042">PPB_TCPSocket::Write</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> tcp_socket, const char *buffer, int32_t bytes_to_write, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___u_d_p_socket__1__0.html b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___u_d_p_socket__1__2.html
index 1fe7d5b..8e1b0e1 100644
--- a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___u_d_p_socket__1__0.html
+++ b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___u_d_p_socket__1__2.html
@@ -12,25 +12,27 @@
<!-- doxytag: class="PPB_UDPSocket" --><h2>
Data Fields</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a48dfac97beb8bef209ea79efaf5b0c32">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a90de8c0e342ab04bc6d2439b2e0543a5">IsUDPSocket</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a0cae18760f8e9c4f06f160edab542c46">Bind</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#aa71b3888a2edf12c7bccd69d4ddcbbb6">GetBoundAddress</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a6f7b8cb60ad4279ac52feba6acca9cc2">RecvFrom</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a9b78201046b292b6292f0d5bf55d3f76">SendTo</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, const char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a8b34e95d8f1ca113f2c806fb9b64d3e9">Close</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a3def770b12177d3fa8faf36e184cc528">SetOption</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#abe2a2dc1170e9ea60f63656152b7b3ce">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a955e5c21c99668dc80fa54f8a12119de">IsUDPSocket</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a07dad506a240b35c8ceb5dcd5f9e12ce">Bind</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a2195768a7698776e83298b86b9670fa4">GetBoundAddress</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#afaf246c84eb76e033ee8794faa997af5">RecvFrom</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ae6764f319a9af980dbb1ba5625a417be">SendTo</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, const char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ae27417e3577d5dbb3a88efa7867df7b9">Close</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ac0656c7002acbb1d9c4b17fb679f63df">SetOption</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a3012f1d7f38fff9d45925e05850cfdb0">JoinGroup</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> group, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a5e46591a3a742ee1a9e3de81a76624d3">LeaveGroup</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> group, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
</table>
<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>The <code>PPB_UDPSocket</code> interface provides UDP socket operations. </p>
-<p>Permissions: Apps permission <code>socket</code> with subrule <code>udp-bind</code> is required for <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a0cae18760f8e9c4f06f160edab542c46" title="Binds the socket to the given address.">Bind()</a></code>; subrule <code>udp-send-to</code> is required for <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a9b78201046b292b6292f0d5bf55d3f76" title="Sends data to a specific destination.">SendTo()</a></code>. For more details about network communication permissions, please see: <a href="http://developer.chrome.com/apps/app_network.html">http://developer.chrome.com/apps/app_network.html</a> </p>
+<p>Permissions: Apps permission <code>socket</code> with subrule <code>udp-bind</code> is required for <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a07dad506a240b35c8ceb5dcd5f9e12ce" title="Binds the socket to the given address.">Bind()</a></code>; subrule <code>udp-send-to</code> is required for <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ae6764f319a9af980dbb1ba5625a417be" title="Sends data to a specific destination.">SendTo()</a></code>. For more details about network communication permissions, please see: <a href="http://developer.chrome.com/apps/app_network.html">http://developer.chrome.com/apps/app_network.html</a> </p>
</div><hr /><h2>Field Documentation</h2>
-<a class="anchor" id="a0cae18760f8e9c4f06f160edab542c46"></a><!-- doxytag: member="PPB_UDPSocket::Bind" ref="a0cae18760f8e9c4f06f160edab542c46" args=")(PP_Resource udp_socket, PP_Resource addr, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="a07dad506a240b35c8ceb5dcd5f9e12ce"></a><!-- doxytag: member="PPB_UDPSocket::Bind" ref="a07dad506a240b35c8ceb5dcd5f9e12ce" args=")(PP_Resource udp_socket, PP_Resource addr, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a0cae18760f8e9c4f06f160edab542c46">PPB_UDPSocket::Bind</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a07dad506a240b35c8ceb5dcd5f9e12ce">PPB_UDPSocket::Bind</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
@@ -47,18 +49,18 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have required permissions. <code>PP_ERROR_ADDRESS_IN_USE</code> will be returned if the address is already in use. </dd></dl>
</div>
</div>
-<a class="anchor" id="a8b34e95d8f1ca113f2c806fb9b64d3e9"></a><!-- doxytag: member="PPB_UDPSocket::Close" ref="a8b34e95d8f1ca113f2c806fb9b64d3e9" args=")(PP_Resource udp_socket)" -->
+<a class="anchor" id="ae27417e3577d5dbb3a88efa7867df7b9"></a><!-- doxytag: member="PPB_UDPSocket::Close" ref="ae27417e3577d5dbb3a88efa7867df7b9" args=")(PP_Resource udp_socket)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">void(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a8b34e95d8f1ca113f2c806fb9b64d3e9">PPB_UDPSocket::Close</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ae27417e3577d5dbb3a88efa7867df7b9">PPB_UDPSocket::Close</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Cancels all pending reads and writes, and closes the socket. </p>
-<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> if pending IO was interrupted. After a call to this method, no output parameters passed into previous <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a6f7b8cb60ad4279ac52feba6acca9cc2" title="Receives data from the socket and stores the source address.">RecvFrom()</a></code> calls will be accessed. It is not valid to call <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a0cae18760f8e9c4f06f160edab542c46" title="Binds the socket to the given address.">Bind()</a></code> again.</p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> if pending IO was interrupted. After a call to this method, no output parameters passed into previous <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#afaf246c84eb76e033ee8794faa997af5" title="Receives data from the socket and stores the source address.">RecvFrom()</a></code> calls will be accessed. It is not valid to call <code><a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a07dad506a240b35c8ceb5dcd5f9e12ce" title="Binds the socket to the given address.">Bind()</a></code> again.</p>
<p>The socket is implicitly closed if it is destroyed, so you are not required to call this method.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
@@ -68,12 +70,12 @@ Data Fields</h2><table class="memberdecls">
</dl>
</div>
</div>
-<a class="anchor" id="a48dfac97beb8bef209ea79efaf5b0c32"></a><!-- doxytag: member="PPB_UDPSocket::Create" ref="a48dfac97beb8bef209ea79efaf5b0c32" args=")(PP_Instance instance)" -->
+<a class="anchor" id="abe2a2dc1170e9ea60f63656152b7b3ce"></a><!-- doxytag: member="PPB_UDPSocket::Create" ref="abe2a2dc1170e9ea60f63656152b7b3ce" args=")(PP_Instance instance)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a48dfac97beb8bef209ea79efaf5b0c32">PPB_UDPSocket::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#abe2a2dc1170e9ea60f63656152b7b3ce">PPB_UDPSocket::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
</tr>
</table>
</div>
@@ -88,12 +90,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> corresponding to a UDP socket or 0 on failure. </dd></dl>
</div>
</div>
-<a class="anchor" id="aa71b3888a2edf12c7bccd69d4ddcbbb6"></a><!-- doxytag: member="PPB_UDPSocket::GetBoundAddress" ref="aa71b3888a2edf12c7bccd69d4ddcbbb6" args=")(PP_Resource udp_socket)" -->
+<a class="anchor" id="a2195768a7698776e83298b86b9670fa4"></a><!-- doxytag: member="PPB_UDPSocket::GetBoundAddress" ref="a2195768a7698776e83298b86b9670fa4" args=")(PP_Resource udp_socket)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#aa71b3888a2edf12c7bccd69d4ddcbbb6">PPB_UDPSocket::GetBoundAddress</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a2195768a7698776e83298b86b9670fa4">PPB_UDPSocket::GetBoundAddress</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket)</td>
</tr>
</table>
</div>
@@ -109,12 +111,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PPB_NetAddress</code> resource on success or 0 on failure. </dd></dl>
</div>
</div>
-<a class="anchor" id="a90de8c0e342ab04bc6d2439b2e0543a5"></a><!-- doxytag: member="PPB_UDPSocket::IsUDPSocket" ref="a90de8c0e342ab04bc6d2439b2e0543a5" args=")(PP_Resource resource)" -->
+<a class="anchor" id="a955e5c21c99668dc80fa54f8a12119de"></a><!-- doxytag: member="PPB_UDPSocket::IsUDPSocket" ref="a955e5c21c99668dc80fa54f8a12119de" args=")(PP_Resource resource)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a90de8c0e342ab04bc6d2439b2e0543a5">PPB_UDPSocket::IsUDPSocket</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a955e5c21c99668dc80fa54f8a12119de">PPB_UDPSocket::IsUDPSocket</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
</tr>
</table>
</div>
@@ -129,12 +131,56 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd><code>PP_TRUE</code> if the input is a <code>PPB_UDPSocket</code> resource; <code>PP_FALSE</code> otherwise. </dd></dl>
</div>
</div>
-<a class="anchor" id="a6f7b8cb60ad4279ac52feba6acca9cc2"></a><!-- doxytag: member="PPB_UDPSocket::RecvFrom" ref="a6f7b8cb60ad4279ac52feba6acca9cc2" args=")(PP_Resource udp_socket, char *buffer, int32_t num_bytes, PP_Resource *addr, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="a3012f1d7f38fff9d45925e05850cfdb0"></a><!-- doxytag: member="PPB_UDPSocket::JoinGroup" ref="a3012f1d7f38fff9d45925e05850cfdb0" args=")(PP_Resource udp_socket, PP_Resource group, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a6f7b8cb60ad4279ac52feba6acca9cc2">PPB_UDPSocket::RecvFrom</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a3012f1d7f38fff9d45925e05850cfdb0">PPB_UDPSocket::JoinGroup</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> group, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Joins the multicast group with address specified by <code>group</code> parameter, which is expected to be a <code>PPB_NetAddress</code> object. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">udp_socket</td><td>A <code>PP_Resource</code> corresponding to a UDP socket. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">group</td><td>A <code>PP_Resource</code> corresponding to the network address of the multicast group. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a5e46591a3a742ee1a9e3de81a76624d3"></a><!-- doxytag: member="PPB_UDPSocket::LeaveGroup" ref="a5e46591a3a742ee1a9e3de81a76624d3" args=")(PP_Resource udp_socket, PP_Resource group, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#a5e46591a3a742ee1a9e3de81a76624d3">PPB_UDPSocket::LeaveGroup</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> group, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Leaves the multicast group with address specified by <code>group</code> parameter, which is expected to be a <code>PPB_NetAddress</code> object. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">udp_socket</td><td>A <code>PP_Resource</code> corresponding to a UDP socket. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">group</td><td>A <code>PP_Resource</code> corresponding to the network address of the multicast group. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="afaf246c84eb76e033ee8794faa997af5"></a><!-- doxytag: member="PPB_UDPSocket::RecvFrom" ref="afaf246c84eb76e033ee8794faa997af5" args=")(PP_Resource udp_socket, char *buffer, int32_t num_bytes, PP_Resource *addr, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#afaf246c84eb76e033ee8794faa997af5">PPB_UDPSocket::RecvFrom</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
@@ -154,12 +200,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A non-negative number on success to indicate how many bytes have been received; otherwise, an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
</div>
</div>
-<a class="anchor" id="a9b78201046b292b6292f0d5bf55d3f76"></a><!-- doxytag: member="PPB_UDPSocket::SendTo" ref="a9b78201046b292b6292f0d5bf55d3f76" args=")(PP_Resource udp_socket, const char *buffer, int32_t num_bytes, PP_Resource addr, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="ae6764f319a9af980dbb1ba5625a417be"></a><!-- doxytag: member="PPB_UDPSocket::SendTo" ref="ae6764f319a9af980dbb1ba5625a417be" args=")(PP_Resource udp_socket, const char *buffer, int32_t num_bytes, PP_Resource addr, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a9b78201046b292b6292f0d5bf55d3f76">PPB_UDPSocket::SendTo</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, const char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ae6764f319a9af980dbb1ba5625a417be">PPB_UDPSocket::SendTo</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, const char *buffer, int32_t num_bytes, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> addr, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
@@ -176,15 +222,15 @@ Data Fields</h2><table class="memberdecls">
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>A non-negative number on success to indicate how many bytes have been sent; otherwise, an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have required permissions. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A non-negative number on success to indicate how many bytes have been sent; otherwise, an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have required permissions. <code>PP_ERROR_INPROGRESS</code> will be returned if the socket is busy sending. The caller should wait until a pending send completes before retrying. </dd></dl>
</div>
</div>
-<a class="anchor" id="a3def770b12177d3fa8faf36e184cc528"></a><!-- doxytag: member="PPB_UDPSocket::SetOption" ref="a3def770b12177d3fa8faf36e184cc528" args=")(PP_Resource udp_socket, PP_UDPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="ac0656c7002acbb1d9c4b17fb679f63df"></a><!-- doxytag: member="PPB_UDPSocket::SetOption" ref="ac0656c7002acbb1d9c4b17fb679f63df" args=")(PP_Resource udp_socket, PP_UDPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__0.html#a3def770b12177d3fa8faf36e184cc528">PPB_UDPSocket::SetOption</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___u_d_p_socket__1__2.html#ac0656c7002acbb1d9c4b17fb679f63df">PPB_UDPSocket::SetOption</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> udp_socket, <a class="el" href="group___enums.html#ga1a8472fa3e7150615c45c38fa8c12ce2">PP_UDPSocket_Option</a> name, struct <a class="el" href="struct_p_p___var.html">PP_Var</a> value, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___video_decoder__1__0.html b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___video_decoder__1__1.html
index c8dd134..7eb7007 100644
--- a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___video_decoder__1__0.html
+++ b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___video_decoder__1__1.html
@@ -12,35 +12,35 @@
<!-- doxytag: class="PPB_VideoDecoder" --><h2>
Data Fields</h2><table class="memberdecls">
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#a81200f606c493c49a70190ca86ac135c">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#ae2329143c44bd5eaae507074c1fc0ec3">IsVideoDecoder</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#ad115b7705b740b771e7dd9acb2b36f16">Initialize</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> graphics3d_context, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> profile, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366">Decode</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e">GetPicture</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#ac7e6b42866d42eade96519f32755509f">RecyclePicture</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, const struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d">Flush</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e">Reset</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab84df8254cf35702e09425b835b5958f">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#aa32bb990160f3e1fbfa90a2f363c61bc">IsVideoDecoder</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#a65fc7d77135a1c55eb77ad4f7fd1a8a8">Initialize</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> graphics3d_context, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> profile, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, uint32_t min_picture_count, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd">Decode</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c">GetPicture</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb">RecyclePicture</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, const struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413">Flush</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0">Reset</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
</table>
<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Video decoder interface. </p>
<p>Typical usage:</p>
<ul>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a81200f606c493c49a70190ca86ac135c" title="Creates a new video decoder resource.">Create()</a> to create a new video decoder resource.</li>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ad115b7705b740b771e7dd9acb2b36f16" title="Initializes a video decoder resource.">Initialize()</a> to initialize it with a 3d graphics context and the desired codec profile.</li>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> continuously (waiting for each previous call to complete) to push bitstream buffers to the decoder.</li>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> continuously (waiting for each previous call to complete) to pull decoded pictures from the decoder.</li>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d" title="Flushes the decoder.">Flush()</a> to signal end of stream to the decoder and perform shutdown when it completes.</li>
-<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> to quickly stop the decoder (e.g. to implement Seek) and wait for the callback before restarting decoding at another point.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab84df8254cf35702e09425b835b5958f" title="Creates a new video decoder resource.">Create()</a> to create a new video decoder resource.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a65fc7d77135a1c55eb77ad4f7fd1a8a8" title="Initializes a video decoder resource.">Initialize()</a> to initialize it with a 3d graphics context and the desired codec profile.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> continuously (waiting for each previous call to complete) to push bitstream buffers to the decoder.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> continuously (waiting for each previous call to complete) to pull decoded pictures from the decoder.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413" title="Flushes the decoder.">Flush()</a> to signal end of stream to the decoder and perform shutdown when it completes.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> to quickly stop the decoder (e.g. to implement Seek) and wait for the callback before restarting decoding at another point.</li>
<li>To destroy the decoder, the plugin should release all of its references to it. Any pending callbacks will abort before the decoder is destroyed.</li>
</ul>
<p>Available video codecs vary by platform. All: theora, vorbis, vp8. Chrome and ChromeOS: aac, h264. ChromeOS: mpeg4. </p>
</div><hr /><h2>Field Documentation</h2>
-<a class="anchor" id="a81200f606c493c49a70190ca86ac135c"></a><!-- doxytag: member="PPB_VideoDecoder::Create" ref="a81200f606c493c49a70190ca86ac135c" args=")(PP_Instance instance)" -->
+<a class="anchor" id="ab84df8254cf35702e09425b835b5958f"></a><!-- doxytag: member="PPB_VideoDecoder::Create" ref="ab84df8254cf35702e09425b835b5958f" args=")(PP_Instance instance)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a81200f606c493c49a70190ca86ac135c">PPB_VideoDecoder::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab84df8254cf35702e09425b835b5958f">PPB_VideoDecoder::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
</tr>
</table>
</div>
@@ -55,45 +55,45 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> corresponding to a video decoder if successful or 0 otherwise. </dd></dl>
</div>
</div>
-<a class="anchor" id="acc8662be4232325abc545d1ae8b79366"></a><!-- doxytag: member="PPB_VideoDecoder::Decode" ref="acc8662be4232325abc545d1ae8b79366" args=")(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="a5f87d174876dc480029275f94e4669cd"></a><!-- doxytag: member="PPB_VideoDecoder::Decode" ref="a5f87d174876dc480029275f94e4669cd" args=")(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366">PPB_VideoDecoder::Decode</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd">PPB_VideoDecoder::Decode</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, uint32_t decode_id, uint32_t size, const void *buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Decodes a bitstream buffer. </p>
-<p>Copies |size| bytes of data from the plugin's |buffer|. The plugin should wait until the decoder signals completion by returning PP_OK or by running |callback| before calling <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> again.</p>
+<p>Copies |size| bytes of data from the plugin's |buffer|. The plugin should wait until the decoder signals completion by returning PP_OK or by running |callback| before calling <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> again.</p>
<p>In general, each bitstream buffer should contain a demuxed bitstream frame for the selected video codec. For example, H264 decoders expect to receive one AnnexB NAL unit, including the 4 byte start code prefix, while VP8 decoders expect to receive a bitstream frame without the IVF frame header.</p>
-<p>If the call to <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> eventually results in a picture, the |decode_id| parameter is copied into the returned picture. The plugin can use this to associate decoded pictures with <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> calls (e.g. to assign timestamps or frame numbers to pictures.) This value is opaque to the API so the plugin is free to pass any value.</p>
+<p>If the call to <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> eventually results in a picture, the |decode_id| parameter is copied into the returned picture. The plugin can use this to associate decoded pictures with <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> calls (e.g. to assign timestamps or frame numbers to pictures.) This value is opaque to the API so the plugin is free to pass any value.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">video_decoder</td><td>A <code>PP_Resource</code> identifying the video decoder. </td></tr>
-<tr><td class="paramdir">[in]</td><td class="paramname">decode_id</td><td>An optional value, chosen by the plugin, that can be used to associate calls to <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> with decoded pictures returned by <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a>. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">decode_id</td><td>An optional value, chosen by the plugin, that can be used to associate calls to <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> with decoded pictures returned by <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Buffer size in bytes. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Starting address of buffer. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called on completion.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if the decoder isn't initialized or if a <a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d" title="Flushes the decoder.">Flush()</a> or <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> call is pending. Returns PP_ERROR_INPROGRESS if there is another <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> call pending. Returns PP_ERROR_NOMEMORY if a bitstream buffer can't be created. Returns PP_ERROR_ABORTED when <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> is called while <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> is pending. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if the decoder isn't initialized or if a <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413" title="Flushes the decoder.">Flush()</a> or <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> call is pending. Returns PP_ERROR_INPROGRESS if there is another <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> call pending. Returns PP_ERROR_NOMEMORY if a bitstream buffer can't be created. Returns PP_ERROR_ABORTED when <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> is called while <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> is pending. </dd></dl>
</div>
</div>
-<a class="anchor" id="adf3ea0876d1ba686266589a04532e86d"></a><!-- doxytag: member="PPB_VideoDecoder::Flush" ref="adf3ea0876d1ba686266589a04532e86d" args=")(PP_Resource video_decoder, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="a40e2989df1005096fd6fc9832e078413"></a><!-- doxytag: member="PPB_VideoDecoder::Flush" ref="a40e2989df1005096fd6fc9832e078413" args=")(PP_Resource video_decoder, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d">PPB_VideoDecoder::Flush</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413">PPB_VideoDecoder::Flush</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Flushes the decoder. </p>
-<p>The plugin should call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d" title="Flushes the decoder.">Flush()</a> when it reaches the end of its video stream in order to stop cleanly. The decoder will run any pending <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> call to completion. The plugin should make no further calls to the decoder other than <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> and <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ac7e6b42866d42eade96519f32755509f" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a> until the decoder signals completion by running |callback|. Just before completion, any pending <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> call will complete by running its callback with result PP_ERROR_ABORTED to signal that no more pictures are available. Any pictures held by the plugin remain valid during and after the flush and should be recycled back to the decoder.</p>
+<p>The plugin should call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413" title="Flushes the decoder.">Flush()</a> when it reaches the end of its video stream in order to stop cleanly. The decoder will run any pending <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> call to completion. The plugin should make no further calls to the decoder other than <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> and <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a> until the decoder signals completion by running |callback|. Just before completion, any pending <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> call will complete by running its callback with result PP_ERROR_ABORTED to signal that no more pictures are available. Any pictures held by the plugin remain valid during and after the flush and should be recycled back to the decoder.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">video_decoder</td><td>A <code>PP_Resource</code> identifying the video decoder. </td></tr>
@@ -104,18 +104,18 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if the decoder isn't initialized. </dd></dl>
</div>
</div>
-<a class="anchor" id="a2351fe0cf66513ee77df0c1a22306c3e"></a><!-- doxytag: member="PPB_VideoDecoder::GetPicture" ref="a2351fe0cf66513ee77df0c1a22306c3e" args=")(PP_Resource video_decoder, struct PP_VideoPicture *picture, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="adc8b4eb41199cdf96aaa55d9a2df0b6c"></a><!-- doxytag: member="PPB_VideoDecoder::GetPicture" ref="adc8b4eb41199cdf96aaa55d9a2df0b6c" args=")(PP_Resource video_decoder, struct PP_VideoPicture *picture, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e">PPB_VideoDecoder::GetPicture</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c">PPB_VideoDecoder::GetPicture</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the next picture from the decoder. </p>
-<p>The picture is valid after the decoder signals completion by returning PP_OK or running |callback|. The plugin can call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> again after the decoder signals completion. When the plugin is finished using the picture, it should return it to the system by calling <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ac7e6b42866d42eade96519f32755509f" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a>.</p>
+<p>The picture is valid after the decoder signals completion by returning PP_OK or running |callback|. The plugin can call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> again after the decoder signals completion. When the plugin is finished using the picture, it should return it to the system by calling <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">video_decoder</td><td>A <code>PP_Resource</code> identifying the video decoder. </td></tr>
@@ -124,40 +124,41 @@ Data Fields</h2><table class="memberdecls">
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if the decoder isn't initialized or if a <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> call is pending. Returns PP_ERROR_INPROGRESS if there is another <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> call pending. Returns PP_ERROR_ABORTED when <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> is called, or if a call to <a class="el" href="struct_p_p_b___video_decoder__1__0.html#adf3ea0876d1ba686266589a04532e86d" title="Flushes the decoder.">Flush()</a> completes while <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a> is pending. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if the decoder isn't initialized or if a <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> call is pending. Returns PP_ERROR_INPROGRESS if there is another <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> call pending. Returns PP_ERROR_ABORTED when <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> is called, or if a call to <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a40e2989df1005096fd6fc9832e078413" title="Flushes the decoder.">Flush()</a> completes while <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> is pending. </dd></dl>
</div>
</div>
-<a class="anchor" id="ad115b7705b740b771e7dd9acb2b36f16"></a><!-- doxytag: member="PPB_VideoDecoder::Initialize" ref="ad115b7705b740b771e7dd9acb2b36f16" args=")(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="a65fc7d77135a1c55eb77ad4f7fd1a8a8"></a><!-- doxytag: member="PPB_VideoDecoder::Initialize" ref="a65fc7d77135a1c55eb77ad4f7fd1a8a8" args=")(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, uint32_t min_picture_count, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ad115b7705b740b771e7dd9acb2b36f16">PPB_VideoDecoder::Initialize</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> graphics3d_context, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> profile, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a65fc7d77135a1c55eb77ad4f7fd1a8a8">PPB_VideoDecoder::Initialize</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> graphics3d_context, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> profile, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, uint32_t min_picture_count, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initializes a video decoder resource. </p>
-<p>This should be called after <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a81200f606c493c49a70190ca86ac135c" title="Creates a new video decoder resource.">Create()</a> and before any other functions.</p>
+<p>This should be called after <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab84df8254cf35702e09425b835b5958f" title="Creates a new video decoder resource.">Create()</a> and before any other functions.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">video_decoder</td><td>A <code>PP_Resource</code> identifying the video decoder. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">graphics3d_context</td><td>A <code>PPB_Graphics3D</code> resource to use during decoding. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">profile</td><td>A <code>PP_VideoProfile</code> specifying the video codec profile. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">min_picture_count</td><td>A count of pictures the plugin would like to have in flight. This is effectively the number of times the plugin can call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a> and get a decoded frame without calling <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a>. The decoder has its own internal minimum count, and will take the larger of its internal and this value. A client that doesn't care can therefore just pass in zero for this argument. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the requested profile is not supported. In this case, the client may call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ad115b7705b740b771e7dd9acb2b36f16" title="Initializes a video decoder resource.">Initialize()</a> again with different parameters to find a good configuration. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the requested profile is not supported. In this case, the client may call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a65fc7d77135a1c55eb77ad4f7fd1a8a8" title="Initializes a video decoder resource.">Initialize()</a> again with different parameters to find a good configuration. Returns PP_ERROR_BADARGUMENT if the requested minimum picture count is unreasonably large. </dd></dl>
</div>
</div>
-<a class="anchor" id="ae2329143c44bd5eaae507074c1fc0ec3"></a><!-- doxytag: member="PPB_VideoDecoder::IsVideoDecoder" ref="ae2329143c44bd5eaae507074c1fc0ec3" args=")(PP_Resource resource)" -->
+<a class="anchor" id="aa32bb990160f3e1fbfa90a2f363c61bc"></a><!-- doxytag: member="PPB_VideoDecoder::IsVideoDecoder" ref="aa32bb990160f3e1fbfa90a2f363c61bc" args=")(PP_Resource resource)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ae2329143c44bd5eaae507074c1fc0ec3">PPB_VideoDecoder::IsVideoDecoder</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#aa32bb990160f3e1fbfa90a2f363c61bc">PPB_VideoDecoder::IsVideoDecoder</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
</tr>
</table>
</div>
@@ -172,12 +173,12 @@ Data Fields</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd><code>PP_TRUE</code> if the resource is a <code>PPB_VideoDecoder</code>, <code>PP_FALSE</code> if the resource is invalid or some other type. </dd></dl>
</div>
</div>
-<a class="anchor" id="ac7e6b42866d42eade96519f32755509f"></a><!-- doxytag: member="PPB_VideoDecoder::RecyclePicture" ref="ac7e6b42866d42eade96519f32755509f" args=")(PP_Resource video_decoder, const struct PP_VideoPicture *picture)" -->
+<a class="anchor" id="ab0b4f4b781cf6c0b347832961a08b6bb"></a><!-- doxytag: member="PPB_VideoDecoder::RecyclePicture" ref="ab0b4f4b781cf6c0b347832961a08b6bb" args=")(PP_Resource video_decoder, const struct PP_VideoPicture *picture)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">void(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ac7e6b42866d42eade96519f32755509f">PPB_VideoDecoder::RecyclePicture</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, const struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture)</td>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb">PPB_VideoDecoder::RecyclePicture</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, const struct <a class="el" href="struct_p_p___video_picture.html">PP_VideoPicture</a> *picture)</td>
</tr>
</table>
</div>
@@ -193,18 +194,18 @@ Data Fields</h2><table class="memberdecls">
</dl>
</div>
</div>
-<a class="anchor" id="aeb4704cfd86a4ad737af19e77f3ffd5e"></a><!-- doxytag: member="PPB_VideoDecoder::Reset" ref="aeb4704cfd86a4ad737af19e77f3ffd5e" args=")(PP_Resource video_decoder, struct PP_CompletionCallback callback)" -->
+<a class="anchor" id="ad8151e35df062e82434fb1d6e0629fd0"></a><!-- doxytag: member="PPB_VideoDecoder::Reset" ref="ad8151e35df062e82434fb1d6e0629fd0" args=")(PP_Resource video_decoder, struct PP_CompletionCallback callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e">PPB_VideoDecoder::Reset</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0">PPB_VideoDecoder::Reset</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_decoder, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Resets the decoder as quickly as possible. </p>
-<p>The plugin can call <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> to skip to another position in the video stream. After <a class="el" href="struct_p_p_b___video_decoder__1__0.html#aeb4704cfd86a4ad737af19e77f3ffd5e" title="Resets the decoder as quickly as possible.">Reset()</a> returns, any pending calls to <a class="el" href="struct_p_p_b___video_decoder__1__0.html#acc8662be4232325abc545d1ae8b79366" title="Decodes a bitstream buffer.">Decode()</a> and <a class="el" href="struct_p_p_b___video_decoder__1__0.html#a2351fe0cf66513ee77df0c1a22306c3e" title="Gets the next picture from the decoder.">GetPicture()</a>) abort, causing their callbacks to run with PP_ERROR_ABORTED. The plugin should not make further calls to the decoder other than <a class="el" href="struct_p_p_b___video_decoder__1__0.html#ac7e6b42866d42eade96519f32755509f" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a> until the decoder signals completion by running |callback|. Any pictures held by the plugin remain valid during and after the reset and should be recycled back to the decoder.</p>
+<p>The plugin can call <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> to skip to another position in the video stream. After <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ad8151e35df062e82434fb1d6e0629fd0" title="Resets the decoder as quickly as possible.">Reset()</a> returns, any pending calls to <a class="el" href="struct_p_p_b___video_decoder__1__1.html#a5f87d174876dc480029275f94e4669cd" title="Decodes a bitstream buffer.">Decode()</a> and <a class="el" href="struct_p_p_b___video_decoder__1__1.html#adc8b4eb41199cdf96aaa55d9a2df0b6c" title="Gets the next picture from the decoder.">GetPicture()</a>) abort, causing their callbacks to run with PP_ERROR_ABORTED. The plugin should not make further calls to the decoder other than <a class="el" href="struct_p_p_b___video_decoder__1__1.html#ab0b4f4b781cf6c0b347832961a08b6bb" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a> until the decoder signals completion by running |callback|. Any pictures held by the plugin remain valid during and after the reset and should be recycled back to the decoder.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">video_decoder</td><td>A <code>PP_Resource</code> identifying the video decoder. </td></tr>
diff --git a/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___video_encoder__0__2.html b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___video_encoder__0__2.html
new file mode 100644
index 0000000..de97a32
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/c/struct_p_p_b___video_encoder__0__2.html
@@ -0,0 +1,309 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>PPB_VideoEncoder Struct Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="PPB_VideoEncoder" --><h2>
+Data Fields</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a94d87da92ccfb984cef497977d00d80c">Create</a> )(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9006f1c2d0d3fe9a71bb2343e22e679a">IsVideoEncoder</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#abe007473d19c6c82555799c0ecff0cc7">GetSupportedProfiles</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___array_output.html">PP_ArrayOutput</a> output, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561">Initialize</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___enums.html#ga4e7cf746d8acbfa268db1f5ebe8061bf">PP_VideoFrame_Format</a> input_format, const struct <a class="el" href="struct_p_p___size.html">PP_Size</a> *input_visible_size, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> output_profile, uint32_t initial_bitrate, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a468e94294b704c002a6532687bb53ed0">GetFramesRequired</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#adbd41c5b25729bbfb1ad90124d9e9528">GetFrameCodedSize</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___size.html">PP_Size</a> *coded_size)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a64a5b77b1130f13184b797828a49587a">GetVideoFrame</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *video_frame, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a873344d65a32d15426cd4424e76bb6d9">Encode</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_frame, <a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a> force_keyframe, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a8b2b489462a35bdc6300bcf1fdadabe4">GetBitstreamBuffer</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a> *bitstream_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#a072f3199019aa262fbdf42412678220a">RecycleBitstreamBuffer</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, const struct <a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a> *bitstream_buffer)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#aa1a3fa20e5d8c56e420d169af6f02845">RequestEncodingParametersChange</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, uint32_t bitrate, uint32_t framerate)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_p_b___video_encoder__0__2.html#afe91b697d39e41ca9c4b187e1f66749f">Close</a> )(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder)</td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Video encoder interface. </p>
+<p>Typical usage:</p>
+<ul>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a94d87da92ccfb984cef497977d00d80c" title="Creates a new video encoder resource.">Create()</a> to create a new video encoder resource.</li>
+<li>Call GetSupportedFormats() to determine which codecs and profiles are available.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> to initialize the encoder for a supported profile.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a64a5b77b1130f13184b797828a49587a" title="Gets a blank video frame which can be filled with video data and passed to the encoder.">GetVideoFrame()</a> to get a blank frame and fill it in, or get a video frame from another resource, e.g. <code>PPB_MediaStreamVideoTrack</code>.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a873344d65a32d15426cd4424e76bb6d9" title="Encodes a video frame.">Encode()</a> to push the video frame to the encoder. If an external frame is pushed, wait for completion to recycle the frame.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a8b2b489462a35bdc6300bcf1fdadabe4" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> continuously (waiting for each previous call to complete) to pull encoded pictures from the encoder.</li>
+<li>Call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a072f3199019aa262fbdf42412678220a" title="Recycles a bitstream buffer back to the encoder.">RecycleBitstreamBuffer()</a> after consuming the data in the bitstream buffer.</li>
+<li>To destroy the encoder, the plugin should release all of its references to it. Any pending callbacks will abort before the encoder is destroyed.</li>
+</ul>
+<p>Available video codecs vary by platform. All: vp8 (software). ChromeOS, depending on your device: h264 (hardware), vp8 (hardware) </p>
+</div><hr /><h2>Field Documentation</h2>
+<a class="anchor" id="afe91b697d39e41ca9c4b187e1f66749f"></a><!-- doxytag: member="PPB_VideoEncoder::Close" ref="afe91b697d39e41ca9c4b187e1f66749f" args=")(PP_Resource video_encoder)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#afe91b697d39e41ca9c4b187e1f66749f">PPB_VideoEncoder::Close</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Closes the video encoder, and cancels any pending encodes. </p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> . It is not valid to call any encoder functions after a call to this method. <b>Note:</b> Destroying the video encoder closes it implicitly, so you are not required to call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#afe91b697d39e41ca9c4b187e1f66749f" title="Closes the video encoder, and cancels any pending encodes.">Close()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="a94d87da92ccfb984cef497977d00d80c"></a><!-- doxytag: member="PPB_VideoEncoder::Create" ref="a94d87da92ccfb984cef497977d00d80c" args=")(PP_Instance instance)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a>(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a94d87da92ccfb984cef497977d00d80c">PPB_VideoEncoder::Create</a>)(<a class="el" href="group___typedefs.html#ga89b662403e6a687bb914b80114c0d19d">PP_Instance</a> instance)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Creates a new video encoder resource. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code> identifying the instance with the video encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Resource</code> corresponding to a video encoder if successful or 0 otherwise. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a873344d65a32d15426cd4424e76bb6d9"></a><!-- doxytag: member="PPB_VideoEncoder::Encode" ref="a873344d65a32d15426cd4424e76bb6d9" args=")(PP_Resource video_encoder, PP_Resource video_frame, PP_Bool force_keyframe, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a873344d65a32d15426cd4424e76bb6d9">PPB_VideoEncoder::Encode</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_frame, <a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a> force_keyframe, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Encodes a video frame. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">video_frame</td><td>The <code>PPB_VideoFrame</code> to be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">force_keyframe</td><td>A <code>PP_Bool&gt; specifying whether the encoder should emit a key frame for this video frame. </code></td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td><code>A </code><code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion. Plugins that pass <code>PPB_VideoFrame</code> resources owned by other resources should wait for completion before reusing them.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd><code> An int32_t containing an error code from </code><code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a8b2b489462a35bdc6300bcf1fdadabe4"></a><!-- doxytag: member="PPB_VideoEncoder::GetBitstreamBuffer" ref="a8b2b489462a35bdc6300bcf1fdadabe4" args=")(PP_Resource video_encoder, struct PP_BitstreamBuffer *bitstream_buffer, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a8b2b489462a35bdc6300bcf1fdadabe4">PPB_VideoEncoder::GetBitstreamBuffer</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a> *bitstream_buffer, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the next encoded bitstream buffer from the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[out]</td><td class="paramname">bitstream_buffer</td><td>A <code><a class="el" href="struct_p_p___bitstream_buffer.html" title="Struct describing a bitstream buffer.">PP_BitstreamBuffer</a></code> containing encoded video data. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion. The plugin can call GetBitstreamBuffer from the callback in order to continuously "pull" bitstream buffers from the encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. Returns PP_ERROR_INPROGRESS if a prior call to <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a8b2b489462a35bdc6300bcf1fdadabe4" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> has not completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="adbd41c5b25729bbfb1ad90124d9e9528"></a><!-- doxytag: member="PPB_VideoEncoder::GetFrameCodedSize" ref="adbd41c5b25729bbfb1ad90124d9e9528" args=")(PP_Resource video_encoder, struct PP_Size *coded_size)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#adbd41c5b25729bbfb1ad90124d9e9528">PPB_VideoEncoder::GetFrameCodedSize</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___size.html">PP_Size</a> *coded_size)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the coded size of the video frames required by the encoder. </p>
+<p>Coded size is the logical size of the input frames, in pixels. The encoder may have hardware alignment requirements that make this different from |input_visible_size|, as requested in the call to <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">coded_size</td><td>A <code><a class="el" href="struct_p_p___size.html" title="The PP_Size struct contains the size of a 2D rectangle.">PP_Size</a></code> to hold the coded size. </td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing a result code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a468e94294b704c002a6532687bb53ed0"></a><!-- doxytag: member="PPB_VideoEncoder::GetFramesRequired" ref="a468e94294b704c002a6532687bb53ed0" args=")(PP_Resource video_encoder)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a468e94294b704c002a6532687bb53ed0">PPB_VideoEncoder::GetFramesRequired</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the number of input video frames that the encoder may hold while encoding. </p>
+<p>If the plugin is providing the video frames, it should have at least this many available.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing the number of frames required, or an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="abe007473d19c6c82555799c0ecff0cc7"></a><!-- doxytag: member="PPB_VideoEncoder::GetSupportedProfiles" ref="abe007473d19c6c82555799c0ecff0cc7" args=")(PP_Resource video_encoder, struct PP_ArrayOutput output, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#abe007473d19c6c82555799c0ecff0cc7">PPB_VideoEncoder::GetSupportedProfiles</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, struct <a class="el" href="struct_p_p___array_output.html">PP_ArrayOutput</a> output, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets an array of supported video encoder profiles. </p>
+<p>These can be used to choose a profile before calling <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output</td><td>A <code><a class="el" href="struct_p_p___array_output.html" title="A structure that defines a way for the browser to return arrays of data to the plugin.">PP_ArrayOutput</a></code> to receive the supported <code><a class="el" href="struct_p_p___video_profile_description.html" title="Supported video profile information.">PP_VideoProfileDescription</a></code> structs. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>If &gt;= 0, the number of supported profiles returned, otherwise an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a64a5b77b1130f13184b797828a49587a"></a><!-- doxytag: member="PPB_VideoEncoder::GetVideoFrame" ref="a64a5b77b1130f13184b797828a49587a" args=")(PP_Resource video_encoder, PP_Resource *video_frame, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a64a5b77b1130f13184b797828a49587a">PPB_VideoEncoder::GetVideoFrame</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> *video_frame, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets a blank video frame which can be filled with video data and passed to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[out]</td><td class="paramname">video_frame</td><td>A blank <code>PPB_VideoFrame</code> resource. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_FAILED if <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a9cd78deaf493477ca7ec96a6e6445561"></a><!-- doxytag: member="PPB_VideoEncoder::Initialize" ref="a9cd78deaf493477ca7ec96a6e6445561" args=")(PP_Resource video_encoder, PP_VideoFrame_Format input_format, const struct PP_Size *input_visible_size, PP_VideoProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561">PPB_VideoEncoder::Initialize</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, <a class="el" href="group___enums.html#ga4e7cf746d8acbfa268db1f5ebe8061bf">PP_VideoFrame_Format</a> input_format, const struct <a class="el" href="struct_p_p___size.html">PP_Size</a> *input_visible_size, <a class="el" href="group___enums.html#ga4d50d27186f68b2de578e82162206fea">PP_VideoProfile</a> output_profile, uint32_t initial_bitrate, <a class="el" href="group___enums.html#ga6a3fd7e22be02521243b52481afadae5">PP_HardwareAcceleration</a> acceleration, struct <a class="el" href="struct_p_p___completion_callback.html">PP_CompletionCallback</a> callback)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Initializes a video encoder resource. </p>
+<p>The plugin should call <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9cd78deaf493477ca7ec96a6e6445561" title="Initializes a video encoder resource.">Initialize()</a> successfully before calling any of the functions below.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_format</td><td>The <code>PP_VideoFrame_Format</code> of the frames which will be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_visible_size</td><td>A <code><a class="el" href="struct_p_p___size.html" title="The PP_Size struct contains the size of a 2D rectangle.">PP_Size</a></code> specifying the dimensions of the visible part of the input frames. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output_profile</td><td>A <code>PP_VideoProfile</code> specifying the codec profile of the encoded output stream. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="struct_p_p___completion_callback.html" title="PP_CompletionCallback is a common mechanism for supporting potentially asynchronous calls in browser ...">PP_CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code><a class="el" href="pp__errors_8h.html" title="This file defines an enumeration of all PPAPI error codes.">pp_errors.h</a></code>. Returns PP_ERROR_NOTSUPPORTED if video encoding is not available, or the requested codec profile is not supported. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a9006f1c2d0d3fe9a71bb2343e22e679a"></a><!-- doxytag: member="PPB_VideoEncoder::IsVideoEncoder" ref="a9006f1c2d0d3fe9a71bb2343e22e679a" args=")(PP_Resource resource)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="group___enums.html#ga4f272d99be14aacafe08dfd4ef830918">PP_Bool</a>(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a9006f1c2d0d3fe9a71bb2343e22e679a">PPB_VideoEncoder::IsVideoEncoder</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> resource)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Determines if the given resource is a video encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">resource</td><td>A <code>PP_Resource</code> identifying a resource.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd><code>PP_TRUE</code> if the resource is a <code>PPB_VideoEncoder</code>, <code>PP_FALSE</code> if the resource is invalid or some other type. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a072f3199019aa262fbdf42412678220a"></a><!-- doxytag: member="PPB_VideoEncoder::RecycleBitstreamBuffer" ref="a072f3199019aa262fbdf42412678220a" args=")(PP_Resource video_encoder, const struct PP_BitstreamBuffer *bitstream_buffer)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#a072f3199019aa262fbdf42412678220a">PPB_VideoEncoder::RecycleBitstreamBuffer</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, const struct <a class="el" href="struct_p_p___bitstream_buffer.html">PP_BitstreamBuffer</a> *bitstream_buffer)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Recycles a bitstream buffer back to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">bitstream_buffer</td><td>A <code><a class="el" href="struct_p_p___bitstream_buffer.html" title="Struct describing a bitstream buffer.">PP_BitstreamBuffer</a></code> that is no longer needed by the plugin. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="aa1a3fa20e5d8c56e420d169af6f02845"></a><!-- doxytag: member="PPB_VideoEncoder::RequestEncodingParametersChange" ref="aa1a3fa20e5d8c56e420d169af6f02845" args=")(PP_Resource video_encoder, uint32_t bitrate, uint32_t framerate)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void(* <a class="el" href="struct_p_p_b___video_encoder__0__2.html#aa1a3fa20e5d8c56e420d169af6f02845">PPB_VideoEncoder::RequestEncodingParametersChange</a>)(<a class="el" href="group___typedefs.html#gafdc3895ee80f4750d0d95ae1b677e9b7">PP_Resource</a> video_encoder, uint32_t bitrate, uint32_t framerate)</td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Requests a change to encoding parameters. </p>
+<p>This is only a request, fulfilled on a best-effort basis.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_encoder</td><td>A <code>PP_Resource</code> identifying the video encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">bitrate</td><td>The requested new bitrate, in bits per second. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">framerate</td><td>The requested new framerate, in frames per second. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr />The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="ppb__video__encoder_8h.html">ppb_video_encoder.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/audio__encoder_8h.html b/native_client_sdk/doc_generated/pepper_stable/cpp/audio__encoder_8h.html
new file mode 100644
index 0000000..f04836a
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/audio__encoder_8h.html
@@ -0,0 +1,32 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>audio_encoder.h File Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<div class="textblock"><div class="dynheader">
+Include dependency graph for audio_encoder.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="audio__encoder_8h__incl.png" border="0" usemap="#audio__encoder_8h" alt="" /></div>
+<map name="audio__encoder_8h" id="audio__encoder_8h">
+</map>
+</div>
+</div><h2>
+Classes</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classpp_1_1_audio.html" title="An audio resource.">Audio</a> encoder interface. <a href="classpp_1_1_audio_encoder.html#details">More...</a><br /></td></tr>
+</table><h2>
+Namespaces</h2><table class="memberdecls">
+<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepp.html">pp</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file defines the API to create and use a AudioEncoder resource. </p>
+</div></div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/audio__encoder_8h__incl.png b/native_client_sdk/doc_generated/pepper_stable/cpp/audio__encoder_8h__incl.png
new file mode 100644
index 0000000..9eb1bf1
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/audio__encoder_8h__incl.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_audio_encoder-members.html b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_audio_encoder-members.html
new file mode 100644
index 0000000..9872974
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_audio_encoder-members.html
@@ -0,0 +1,39 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>Member List</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+
+</div>
+<!--header-->
+<div class="contents">
+This is the complete list of members for <a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a>, including all inherited members.<table>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#afaf804d519fc0f2370c2d011b4e68378">AudioEncoder</a>()</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a1b5126d5112082bfa782bf5423715030">AudioEncoder</a>(const InstanceHandle &amp;instance)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td><code> [explicit]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#ac4a116ff790ce5dc1cc4847118aabc9d">AudioEncoder</a>(const AudioEncoder &amp;other)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#ad4016f37d3022863ca0188acb26ac9c4">Clear</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a5f5f533624660ca8561fea403da85f5b">Close</a>()</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a81b9246381bdddacca3ac25f6ded2bfd">detach</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a75278dc12dfcc3d000e47e17f014be19">Encode</a>(const AudioBuffer &amp;buffer, const CompletionCallback &amp;cc)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#ad1a2c96562e2baa7a61d63fbb8a49999">GetBitstreamBuffer</a>(const CompletionCallbackWithOutput&lt; PP_AudioBitstreamBuffer &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a113d4a018e987f2f5227c6e0dc8a7687">GetBuffer</a>(const CompletionCallbackWithOutput&lt; AudioBuffer &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a706b305dae8bc5f5e0bca4491c991d59">GetNumberOfSamples</a>()</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a34b94c7bb1f509f4b56bfe7349560669">GetSupportedProfiles</a>(const CompletionCallbackWithOutput&lt; std::vector&lt; PP_AudioProfileDescription &gt; &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933">Initialize</a>(uint32_t channels, PP_AudioBuffer_SampleRate input_sample_rate, PP_AudioBuffer_SampleSize input_sample_size, PP_AudioProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;cc)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9">is_null</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#aaf808a98bdaa7998d82e19514aa87423">operator=</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a3eda014529127a818df8d5bb5ec2fdf0">PassRefFromConstructor</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a46a6123de0b007ad3fcb6f666534ccb4">pp_resource</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#a9c5b90b6dbfd81154b28f402197184bc">RecycleBitstreamBuffer</a>(const PP_AudioBitstreamBuffer &amp;bitstream_buffer)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_audio_encoder.html#aa64ea3b0313335817833a72ceed96114">RequestBitrateChange</a>(uint32_t bitrate)</td><td><a class="el" href="classpp_1_1_audio_encoder.html">pp::AudioEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a56679e93a58101c8dce5dc510811a094">Resource</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#ab0f664099ca06367180f220ea7e0b831">Resource</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a555de93fdf4793f7db1183bf71d20580">Resource</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [explicit, protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a907d3d6b7e292587c8cb9ff30d0a418d">Resource</a>(PassRef, PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a081165265e2bd8217eaa2be2aeeb3aa3">~Resource</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [virtual]</code></td></tr>
+</table></div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_audio_encoder.html b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_audio_encoder.html
new file mode 100644
index 0000000..525e399
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_audio_encoder.html
@@ -0,0 +1,381 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>pp::AudioEncoder Class Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="pp::AudioEncoder" --><!-- doxytag: inherits="pp::Resource" --><div class="dynheader">
+Inheritance diagram for pp::AudioEncoder:</div>
+<div class="dyncontent">
+<div class="center"><img src="classpp_1_1_audio_encoder__inherit__graph.png" border="0" usemap="#pp_1_1_audio_encoder_inherit__map" alt="Inheritance graph" /></div>
+<map name="pp_1_1_audio_encoder_inherit__map" id="pp_1_1_audio_encoder_inherit__map">
+<area shape="rect" id="node2" href="classpp_1_1_resource.html" title="A reference counted module resource." alt="" coords="20,5,124,32"></area></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<p><a href="classpp_1_1_audio_encoder-members.html">List of all members.</a></p>
+<h2>
+Public Member Functions</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#afaf804d519fc0f2370c2d011b4e68378">AudioEncoder</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a1b5126d5112082bfa782bf5423715030">AudioEncoder</a> (const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#ac4a116ff790ce5dc1cc4847118aabc9d">AudioEncoder</a> (const <a class="el" href="classpp_1_1_audio_encoder.html">AudioEncoder</a> &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a34b94c7bb1f509f4b56bfe7349560669">GetSupportedProfiles</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; std::vector&lt; PP_AudioProfileDescription &gt; &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933">Initialize</a> (uint32_t channels, PP_AudioBuffer_SampleRate input_sample_rate, PP_AudioBuffer_SampleSize input_sample_size, PP_AudioProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a706b305dae8bc5f5e0bca4491c991d59">GetNumberOfSamples</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a113d4a018e987f2f5227c6e0dc8a7687">GetBuffer</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; <a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a> &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a75278dc12dfcc3d000e47e17f014be19">Encode</a> (const <a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a> &amp;buffer, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#ad1a2c96562e2baa7a61d63fbb8a49999">GetBitstreamBuffer</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; PP_AudioBitstreamBuffer &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a9c5b90b6dbfd81154b28f402197184bc">RecycleBitstreamBuffer</a> (const PP_AudioBitstreamBuffer &amp;bitstream_buffer)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#aa64ea3b0313335817833a72ceed96114">RequestBitrateChange</a> (uint32_t bitrate)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html#a5f5f533624660ca8561fea403da85f5b">Close</a> ()</td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="classpp_1_1_audio.html" title="An audio resource.">Audio</a> encoder interface. </p>
+<p>Typical usage:</p>
+<ul>
+<li>Call Create() to create a new audio encoder resource.</li>
+<li>Call GetSupportedFormats() to determine which codecs and profiles are available.</li>
+<li>Call <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933" title="Initializes a audio encoder resource.">Initialize()</a> to initialize the encoder for a supported profile.</li>
+<li>Call <a class="el" href="classpp_1_1_audio_encoder.html#a113d4a018e987f2f5227c6e0dc8a7687" title="Gets a blank audio frame which can be filled with audio data and passed to the encoder.">GetBuffer()</a> to get a blank frame and fill it in, or get an audio frame from another resource, e.g. <code>PPB_MediaStreamAudioTrack</code>.</li>
+<li>Call <a class="el" href="classpp_1_1_audio_encoder.html#a75278dc12dfcc3d000e47e17f014be19" title="Encodes an audio buffer.">Encode()</a> to push the audio buffer to the encoder. If an external buffer is pushed, wait for completion to recycle the frame.</li>
+<li>Call <a class="el" href="classpp_1_1_audio_encoder.html#ad1a2c96562e2baa7a61d63fbb8a49999" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> continuously (waiting for each previous call to complete) to pull encoded buffers from the encoder.</li>
+<li>Call <a class="el" href="classpp_1_1_audio_encoder.html#a9c5b90b6dbfd81154b28f402197184bc" title="Recycles a bitstream buffer back to the encoder.">RecycleBitstreamBuffer()</a> after consuming the data in the bitstream buffer.</li>
+<li>To destroy the encoder, the plugin should release all of its references to it. Any pending callbacks will abort before the encoder is destroyed.</li>
+</ul>
+<p>Available audio codecs vary by platform. All: opus. </p>
+</div><hr /><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="afaf804d519fc0f2370c2d011b4e68378"></a><!-- doxytag: member="pp::AudioEncoder::AudioEncoder" ref="afaf804d519fc0f2370c2d011b4e68378" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_audio_encoder.html#afaf804d519fc0f2370c2d011b4e68378">pp::AudioEncoder::AudioEncoder</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Default constructor for creating an <a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9" title="This functions determines if this resource is invalid or uninitialized.">is_null()</a> <code><a class="el" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface.">AudioEncoder</a></code> object. </p>
+</div>
+</div>
+<a class="anchor" id="a1b5126d5112082bfa782bf5423715030"></a><!-- doxytag: member="pp::AudioEncoder::AudioEncoder" ref="a1b5126d5112082bfa782bf5423715030" args="(const InstanceHandle &amp;instance)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_audio_encoder.html#afaf804d519fc0f2370c2d011b4e68378">pp::AudioEncoder::AudioEncoder</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;&#160;</td>
+<td class="paramname"><em>instance</em></td><td>)</td>
+<td><code> [explicit]</code></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>A constructor used to create a <code><a class="el" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface.">AudioEncoder</a></code> and associate it with the provided <code><a class="el" href="classpp_1_1_instance.html">Instance</a></code>. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>The instance with which this resource will be associated. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ac4a116ff790ce5dc1cc4847118aabc9d"></a><!-- doxytag: member="pp::AudioEncoder::AudioEncoder" ref="ac4a116ff790ce5dc1cc4847118aabc9d" args="(const AudioEncoder &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_audio_encoder.html#afaf804d519fc0f2370c2d011b4e68378">pp::AudioEncoder::AudioEncoder</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_audio_encoder.html">AudioEncoder</a> &amp;&#160;</td>
+<td class="paramname"><em>other</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The copy constructor for <code><a class="el" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface.">AudioEncoder</a></code>. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>A reference to a <code><a class="el" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface.">AudioEncoder</a></code>. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr /><h2>Member Function Documentation</h2>
+<a class="anchor" id="a5f5f533624660ca8561fea403da85f5b"></a><!-- doxytag: member="pp::AudioEncoder::Close" ref="a5f5f533624660ca8561fea403da85f5b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_audio_encoder.html#a5f5f533624660ca8561fea403da85f5b">pp::AudioEncoder::Close</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Closes the audio encoder, and cancels any pending encodes. </p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> . It is not valid to call any encoder functions after a call to this method. <b>Note:</b> Destroying the audio encoder closes it implicitly, so you are not required to call <a class="el" href="classpp_1_1_audio_encoder.html#a5f5f533624660ca8561fea403da85f5b" title="Closes the audio encoder, and cancels any pending encodes.">Close()</a>. </p>
+</div>
+</div>
+<a class="anchor" id="a75278dc12dfcc3d000e47e17f014be19"></a><!-- doxytag: member="pp::AudioEncoder::Encode" ref="a75278dc12dfcc3d000e47e17f014be19" args="(const AudioBuffer &amp;buffer, const CompletionCallback &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#a75278dc12dfcc3d000e47e17f014be19">pp::AudioEncoder::Encode</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a> &amp;&#160;</td>
+<td class="paramname"><em>buffer</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
+<td class="paramname"><em>cc</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Encodes an audio buffer. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_buffer</td><td>The <code><a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a></code> to be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion. Plugins that pass <code><a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a></code> resources owned by other resources should wait for completion before reusing them.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933" title="Initializes a audio encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="ad1a2c96562e2baa7a61d63fbb8a49999"></a><!-- doxytag: member="pp::AudioEncoder::GetBitstreamBuffer" ref="ad1a2c96562e2baa7a61d63fbb8a49999" args="(const CompletionCallbackWithOutput&lt; PP_AudioBitstreamBuffer &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#ad1a2c96562e2baa7a61d63fbb8a49999">pp::AudioEncoder::GetBitstreamBuffer</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; PP_AudioBitstreamBuffer &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the next encoded bitstream buffer from the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the next bitstream buffer. The plugin can call GetBitstreamBuffer from the callback in order to continuously "pull" bitstream buffers from the encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933" title="Initializes a audio encoder resource.">Initialize()</a> has not successfully completed. Returns PP_ERROR_INPROGRESS if a prior call to <a class="el" href="classpp_1_1_audio_encoder.html#ad1a2c96562e2baa7a61d63fbb8a49999" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> has not completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a113d4a018e987f2f5227c6e0dc8a7687"></a><!-- doxytag: member="pp::AudioEncoder::GetBuffer" ref="a113d4a018e987f2f5227c6e0dc8a7687" args="(const CompletionCallbackWithOutput&lt; AudioBuffer &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#a113d4a018e987f2f5227c6e0dc8a7687">pp::AudioEncoder::GetBuffer</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; <a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a> &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets a blank audio frame which can be filled with audio data and passed to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the blank <code><a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a></code> resource.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a706b305dae8bc5f5e0bca4491c991d59"></a><!-- doxytag: member="pp::AudioEncoder::GetNumberOfSamples" ref="a706b305dae8bc5f5e0bca4491c991d59" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#a706b305dae8bc5f5e0bca4491c991d59">pp::AudioEncoder::GetNumberOfSamples</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the number of audio samples per channel that audio buffers must contain in order to be processed by the encoder. </p>
+<p>This will be the number of samples per channels contained in buffers returned by <a class="el" href="classpp_1_1_audio_encoder.html#a113d4a018e987f2f5227c6e0dc8a7687" title="Gets a blank audio frame which can be filled with audio data and passed to the encoder.">GetBuffer()</a>.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing the number of samples required, or an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933" title="Initializes a audio encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a34b94c7bb1f509f4b56bfe7349560669"></a><!-- doxytag: member="pp::AudioEncoder::GetSupportedProfiles" ref="a34b94c7bb1f509f4b56bfe7349560669" args="(const CompletionCallbackWithOutput&lt; std::vector&lt; PP_AudioProfileDescription &gt; &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#a34b94c7bb1f509f4b56bfe7349560669">pp::AudioEncoder::GetSupportedProfiles</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; std::vector&lt; PP_AudioProfileDescription &gt; &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets an array of supported audio encoder profiles. </p>
+<p>These can be used to choose a profile before calling <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933" title="Initializes a audio encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the PP_AudioProfileDescription structs.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>If &gt;= 0, the number of supported profiles returned, otherwise an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a28aa43f8c92b387b81e7cf63219c2933"></a><!-- doxytag: member="pp::AudioEncoder::Initialize" ref="a28aa43f8c92b387b81e7cf63219c2933" args="(uint32_t channels, PP_AudioBuffer_SampleRate input_sample_rate, PP_AudioBuffer_SampleSize input_sample_size, PP_AudioProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_audio_encoder.html#a28aa43f8c92b387b81e7cf63219c2933">pp::AudioEncoder::Initialize</a> </td>
+<td>(</td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>channels</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">PP_AudioBuffer_SampleRate&#160;</td>
+<td class="paramname"><em>input_sample_rate</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">PP_AudioBuffer_SampleSize&#160;</td>
+<td class="paramname"><em>input_sample_size</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">PP_AudioProfile&#160;</td>
+<td class="paramname"><em>output_profile</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>initial_bitrate</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">PP_HardwareAcceleration&#160;</td>
+<td class="paramname"><em>acceleration</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
+<td class="paramname"><em>cc</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Initializes a audio encoder resource. </p>
+<p>This should be called after <a class="el" href="classpp_1_1_audio_encoder.html#a34b94c7bb1f509f4b56bfe7349560669" title="Gets an array of supported audio encoder profiles.">GetSupportedProfiles()</a> and before any functions below.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">channels</td><td>The number of audio channels to encode. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_sampling_rate</td><td>The sampling rate of the input audio buffer. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_sample_size</td><td>The sample size of the input audio buffer. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output_profile</td><td>A <code>PP_AudioProfile</code> specifying the codec profile of the encoded output stream. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">initial_bitrate</td><td>The initial bitrate for the encoder. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_NOTSUPPORTED if audio encoding is not available, or the requested codec profile is not supported. Returns PP_ERROR_NOMEMORY if bitstream buffers can't be created. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a9c5b90b6dbfd81154b28f402197184bc"></a><!-- doxytag: member="pp::AudioEncoder::RecycleBitstreamBuffer" ref="a9c5b90b6dbfd81154b28f402197184bc" args="(const PP_AudioBitstreamBuffer &amp;bitstream_buffer)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_audio_encoder.html#a9c5b90b6dbfd81154b28f402197184bc">pp::AudioEncoder::RecycleBitstreamBuffer</a> </td>
+<td>(</td>
+<td class="paramtype">const PP_AudioBitstreamBuffer &amp;&#160;</td>
+<td class="paramname"><em>bitstream_buffer</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Recycles a bitstream buffer back to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">bitstream_buffer</td><td>A<code>PP_AudioBitstreamBuffer</code> that is no longer needed by the plugin. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="aa64ea3b0313335817833a72ceed96114"></a><!-- doxytag: member="pp::AudioEncoder::RequestBitrateChange" ref="aa64ea3b0313335817833a72ceed96114" args="(uint32_t bitrate)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_audio_encoder.html#aa64ea3b0313335817833a72ceed96114">pp::AudioEncoder::RequestBitrateChange</a> </td>
+<td>(</td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>bitrate</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Requests a change to the encoding bitrate. </p>
+<p>This is only a request, fulfilled on a best-effort basis.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">audio_encoder</td><td>A <code>PP_Resource</code> identifying the audio encoder. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr />The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="audio__encoder_8h.html">audio_encoder.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_audio_encoder__inherit__graph.png b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_audio_encoder__inherit__graph.png
new file mode 100644
index 0000000..5b2e1e1
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_audio_encoder__inherit__graph.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_instance.html b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_instance.html
index c1426e0..3894b01 100644
--- a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_instance.html
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_instance.html
@@ -113,7 +113,7 @@ Static Public Member Functions</h2><table class="memberdecls">
<div class="memdoc">
<p><a class="el" href="classpp_1_1_instance.html#a9773263ee281405030548fc224eeec08" title="AddPerInstanceObject() associates an instance with an interface, creating an object.">AddPerInstanceObject()</a> associates an instance with an interface, creating an object. </p>
<p>Many optional interfaces are associated with a plugin instance. For example, the find in PPP_Find interface receives updates on a per-instance basis. This "per-instance" tracking allows such objects to associate themselves with an instance as "the" handler for that interface name.</p>
-<p>In the case of the find example, the find object registers with its associated instance in its constructor and unregisters in its destructor. Then whenever it gets updates with a PP_Instance parameter, it can map back to the find object corresponding to that given PP_Instance by calling GetPerInstanceObject</p>
+<p>In the case of the find example, the find object registers with its associated instance in its constructor and unregisters in its destructor. Then whenever it gets updates with a PP_Instance parameter, it can map back to the find object corresponding to that given PP_Instance by calling GetPerInstanceObject.</p>
<p>This lookup is done on a per-interface-name basis. This means you can only have one object of a given interface name associated with an instance.</p>
<p>If you are adding a handler for an additional interface, be sure to register with the module (AddPluginInterface) for your interface name to get the C calls in the first place.</p>
<p>Refer to <a class="el" href="classpp_1_1_instance.html#a33c633189c7c321dac8e0c5dc6e67f5b" title="Refer to AddPerInstanceObject() for further information.">RemovePerInstanceObject()</a> and <a class="el" href="classpp_1_1_instance.html#a6dec498f1d49571be9fd40e23745327f" title="Look up an object previously associated with an instance.">GetPerInstanceObject()</a> for further information.</p>
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_resource.html b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_resource.html
index 7845d8d..9e77949 100644
--- a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_resource.html
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_resource.html
@@ -15,7 +15,7 @@ Inheritance diagram for pp::Resource:</div>
<div class="dyncontent">
<div class="center"><img src="classpp_1_1_resource__inherit__graph.png" border="0" usemap="#pp_1_1_resource_inherit__map" alt="Inheritance graph" /></div>
<map name="pp_1_1_resource_inherit__map" id="pp_1_1_resource_inherit__map">
-<area shape="rect" id="node2" href="classpp_1_1_audio.html" title="An audio resource." alt="" coords="216,5,299,32"></area><area shape="rect" id="node3" href="classpp_1_1_audio_buffer.html" title="pp::AudioBuffer" alt="" coords="197,56,317,83"></area><area shape="rect" id="node4" href="classpp_1_1_audio_config.html" title="A 16 bit stereo AudioConfig resource." alt="" coords="196,107,319,133"></area><area shape="rect" id="node5" href="classpp_1_1_compositor.html" title="The Compositor interface is used for setting CompositorLayer layers to the Chromium compositor for co..." alt="" coords="197,157,317,184"></area><area shape="rect" id="node6" href="classpp_1_1_compositor_layer.html" title="pp::CompositorLayer" alt="" coords="180,208,335,235"></area><area shape="rect" id="node7" href="classpp_1_1_file_i_o.html" title="The FileIO class represents a regular file." alt="" coords="218,259,297,285"></area><area shape="rect" id="node8" href="classpp_1_1_file_ref.html" title='The FileRef class represents a "weak pointer" to a file in a file system.' alt="" coords="215,309,300,336"></area><area shape="rect" id="node9" href="classpp_1_1_file_system.html" title="The FileSystem class identifies the file system type associated with a file." alt="" coords="200,360,315,387"></area><area shape="rect" id="node10" href="classpp_1_1_graphics2_d.html" title="pp::Graphics2D" alt="" coords="197,411,317,437"></area><area shape="rect" id="node11" href="classpp_1_1_graphics3_d.html" title="This class represents a 3D rendering context in the browser." alt="" coords="197,461,317,488"></area><area shape="rect" id="node12" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution." alt="" coords="193,512,322,539"></area><area shape="rect" id="node13" href="classpp_1_1_image_data.html" title="pp::ImageData" alt="" coords="199,563,316,589"></area><area shape="rect" id="node14" href="classpp_1_1_input_event.html" title="This class represents an input event resource." alt="" coords="200,613,315,640"></area><area shape="rect" id="node20" href="classpp_1_1_media_stream_audio_track.html" title="The MediaStreamAudioTrack class contains methods for receiving audio buffers from a MediaStream audio..." alt="" coords="157,664,357,691"></area><area shape="rect" id="node21" href="classpp_1_1_media_stream_video_track.html" title="The MediaStreamVideoTrack class contains methods for receiving video frames from a MediaStream video ..." alt="" coords="157,715,357,741"></area><area shape="rect" id="node22" href="classpp_1_1_message_loop.html" title="A message loop allows PPAPI calls to be issued on a thread." alt="" coords="190,765,325,792"></area><area shape="rect" id="node23" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address." alt="" coords="197,816,318,843"></area><area shape="rect" id="node24" href="classpp_1_1_network_list.html" title="pp::NetworkList" alt="" coords="197,867,317,893"></area><area shape="rect" id="node25" href="classpp_1_1_network_monitor.html" title="pp::NetworkMonitor" alt="" coords="184,917,331,944"></area><area shape="rect" id="node26" href="classpp_1_1_t_c_p_socket.html" title="The TCPSocket class provides TCP socket operations." alt="" coords="201,968,314,995"></area><area shape="rect" id="node27" href="classpp_1_1_u_d_p_socket.html" title="The UDPSocket class provides UDP socket operations." alt="" coords="198,1019,317,1045"></area><area shape="rect" id="node28" href="classpp_1_1_u_r_l_loader.html" title="URLLoader provides an API for loading URLs." alt="" coords="200,1069,315,1096"></area><area shape="rect" id="node29" href="classpp_1_1_u_r_l_request_info.html" title="URLRequestInfo provides an API for creating and manipulating URL requests." alt="" coords="185,1120,330,1147"></area><area shape="rect" id="node30" href="classpp_1_1_u_r_l_response_info.html" title="URLResponseInfo provides an API for examining URL responses." alt="" coords="180,1171,335,1197"></area><area shape="rect" id="node31" href="classpp_1_1_video_decoder.html" title="Video decoder interface." alt="" coords="189,1221,325,1248"></area><area shape="rect" id="node32" href="classpp_1_1_video_frame.html" title="pp::VideoFrame" alt="" coords="196,1272,319,1299"></area><area shape="rect" id="node33" href="classpp_1_1_view.html" title="This class represents the state of the view for an instance and contains functions for retrieving the..." alt="" coords="220,1323,295,1349"></area><area shape="rect" id="node34" href="classpp_1_1_web_socket.html" title="The WebSocket class providing bi-directional, full-duplex, communications over a single TCP socket..." alt="" coords="199,1373,315,1400"></area><area shape="rect" id="node15" href="classpp_1_1_i_m_e_input_event.html" title="pp::IMEInputEvent" alt="" coords="424,512,560,539"></area><area shape="rect" id="node16" href="classpp_1_1_keyboard_input_event.html" title="pp::KeyboardInputEvent" alt="" coords="405,563,579,589"></area><area shape="rect" id="node17" href="classpp_1_1_mouse_input_event.html" title="This class handles mouse events." alt="" coords="414,613,570,640"></area><area shape="rect" id="node18" href="classpp_1_1_touch_input_event.html" title="pp::TouchInputEvent" alt="" coords="417,664,567,691"></area><area shape="rect" id="node19" href="classpp_1_1_wheel_input_event.html" title="pp::WheelInputEvent" alt="" coords="416,715,568,741"></area></map>
+<area shape="rect" id="node2" href="classpp_1_1_audio.html" title="An audio resource." alt="" coords="216,5,299,32"></area><area shape="rect" id="node3" href="classpp_1_1_audio_buffer.html" title="pp::AudioBuffer" alt="" coords="197,56,317,83"></area><area shape="rect" id="node4" href="classpp_1_1_audio_config.html" title="A 16 bit stereo AudioConfig resource." alt="" coords="196,107,319,133"></area><area shape="rect" id="node5" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface." alt="" coords="190,157,325,184"></area><area shape="rect" id="node6" href="classpp_1_1_compositor.html" title="The Compositor interface is used for setting CompositorLayer layers to the Chromium compositor for co..." alt="" coords="197,208,317,235"></area><area shape="rect" id="node7" href="classpp_1_1_compositor_layer.html" title="pp::CompositorLayer" alt="" coords="180,259,335,285"></area><area shape="rect" id="node8" href="classpp_1_1_file_i_o.html" title="The FileIO class represents a regular file." alt="" coords="218,309,297,336"></area><area shape="rect" id="node9" href="classpp_1_1_file_ref.html" title='The FileRef class represents a "weak pointer" to a file in a file system.' alt="" coords="215,360,300,387"></area><area shape="rect" id="node10" href="classpp_1_1_file_system.html" title="The FileSystem class identifies the file system type associated with a file." alt="" coords="200,411,315,437"></area><area shape="rect" id="node11" href="classpp_1_1_graphics2_d.html" title="pp::Graphics2D" alt="" coords="197,461,317,488"></area><area shape="rect" id="node12" href="classpp_1_1_graphics3_d.html" title="This class represents a 3D rendering context in the browser." alt="" coords="197,512,317,539"></area><area shape="rect" id="node13" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution." alt="" coords="193,563,322,589"></area><area shape="rect" id="node14" href="classpp_1_1_image_data.html" title="pp::ImageData" alt="" coords="199,613,316,640"></area><area shape="rect" id="node15" href="classpp_1_1_input_event.html" title="This class represents an input event resource." alt="" coords="200,664,315,691"></area><area shape="rect" id="node21" href="classpp_1_1_media_stream_audio_track.html" title="The MediaStreamAudioTrack class contains methods for receiving audio buffers from a MediaStream audio..." alt="" coords="157,715,357,741"></area><area shape="rect" id="node22" href="classpp_1_1_media_stream_video_track.html" title="The MediaStreamVideoTrack class contains methods for receiving video frames from a MediaStream video ..." alt="" coords="157,765,357,792"></area><area shape="rect" id="node23" href="classpp_1_1_message_loop.html" title="A message loop allows PPAPI calls to be issued on a thread." alt="" coords="190,816,325,843"></area><area shape="rect" id="node24" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address." alt="" coords="197,867,318,893"></area><area shape="rect" id="node25" href="classpp_1_1_network_list.html" title="pp::NetworkList" alt="" coords="197,917,317,944"></area><area shape="rect" id="node26" href="classpp_1_1_network_monitor.html" title="pp::NetworkMonitor" alt="" coords="184,968,331,995"></area><area shape="rect" id="node27" href="classpp_1_1_t_c_p_socket.html" title="The TCPSocket class provides TCP socket operations." alt="" coords="201,1019,314,1045"></area><area shape="rect" id="node28" href="classpp_1_1_u_d_p_socket.html" title="The UDPSocket class provides UDP socket operations." alt="" coords="198,1069,317,1096"></area><area shape="rect" id="node29" href="classpp_1_1_u_r_l_loader.html" title="URLLoader provides an API for loading URLs." alt="" coords="200,1120,315,1147"></area><area shape="rect" id="node30" href="classpp_1_1_u_r_l_request_info.html" title="URLRequestInfo provides an API for creating and manipulating URL requests." alt="" coords="185,1171,330,1197"></area><area shape="rect" id="node31" href="classpp_1_1_u_r_l_response_info.html" title="URLResponseInfo provides an API for examining URL responses." alt="" coords="180,1221,335,1248"></area><area shape="rect" id="node32" href="classpp_1_1_video_decoder.html" title="Video decoder interface." alt="" coords="189,1272,325,1299"></area><area shape="rect" id="node33" href="classpp_1_1_video_encoder.html" title="Video encoder interface." alt="" coords="190,1323,325,1349"></area><area shape="rect" id="node34" href="classpp_1_1_video_frame.html" title="pp::VideoFrame" alt="" coords="196,1373,319,1400"></area><area shape="rect" id="node35" href="classpp_1_1_view.html" title="This class represents the state of the view for an instance and contains functions for retrieving the..." alt="" coords="220,1424,295,1451"></area><area shape="rect" id="node36" href="classpp_1_1_web_socket.html" title="The WebSocket class providing bi-directional, full-duplex, communications over a single TCP socket..." alt="" coords="199,1475,315,1501"></area><area shape="rect" id="node16" href="classpp_1_1_i_m_e_input_event.html" title="pp::IMEInputEvent" alt="" coords="424,563,560,589"></area><area shape="rect" id="node17" href="classpp_1_1_keyboard_input_event.html" title="pp::KeyboardInputEvent" alt="" coords="405,613,579,640"></area><area shape="rect" id="node18" href="classpp_1_1_mouse_input_event.html" title="This class handles mouse events." alt="" coords="414,664,570,691"></area><area shape="rect" id="node19" href="classpp_1_1_touch_input_event.html" title="pp::TouchInputEvent" alt="" coords="417,715,567,741"></area><area shape="rect" id="node20" href="classpp_1_1_wheel_input_event.html" title="pp::WheelInputEvent" alt="" coords="416,765,568,792"></area></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<p><a href="classpp_1_1_resource-members.html">List of all members.</a></p>
<h2>
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_resource__inherit__graph.png b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_resource__inherit__graph.png
index 68d3837..5fd5ac3 100644
--- a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_resource__inherit__graph.png
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_resource__inherit__graph.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_u_d_p_socket-members.html b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_u_d_p_socket-members.html
index 2484890..4bd8553 100644
--- a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_u_d_p_socket-members.html
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_u_d_p_socket-members.html
@@ -18,6 +18,8 @@ This is the complete list of members for <a class="el" href="classpp_1_1_u_d_p_s
<tr class="memlist"><td><a class="el" href="classpp_1_1_u_d_p_socket.html#ae98c9decb3c3ea4ba1006943577b684d">GetBoundAddress</a>()</td><td><a class="el" href="classpp_1_1_u_d_p_socket.html">pp::UDPSocket</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9">is_null</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_u_d_p_socket.html#a76a2e93f2fa01d0dce8d8216d53b4f44">IsAvailable</a>()</td><td><a class="el" href="classpp_1_1_u_d_p_socket.html">pp::UDPSocket</a></td><td><code> [static]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_u_d_p_socket.html#a51bdeaeeef690d741850e7d691fa479d">JoinGroup</a>(const NetAddress &amp;group, const CompletionCallback callback)</td><td><a class="el" href="classpp_1_1_u_d_p_socket.html">pp::UDPSocket</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_u_d_p_socket.html#a7efaa9eda9e58ffbd5f6b5c5c9e8b38c">LeaveGroup</a>(const NetAddress &amp;group, const CompletionCallback callback)</td><td><a class="el" href="classpp_1_1_u_d_p_socket.html">pp::UDPSocket</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_u_d_p_socket.html#a72112f67b757bbbfaaf67ae3cfe2f602">operator=</a>(const UDPSocket &amp;other)</td><td><a class="el" href="classpp_1_1_u_d_p_socket.html">pp::UDPSocket</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#aaf808a98bdaa7998d82e19514aa87423">pp::Resource::operator=</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a3eda014529127a818df8d5bb5ec2fdf0">PassRefFromConstructor</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_u_d_p_socket.html b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_u_d_p_socket.html
index e864cb5..84f508f 100644
--- a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_u_d_p_socket.html
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_u_d_p_socket.html
@@ -33,6 +33,8 @@ Public Member Functions</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#a657309cd3bc38cf28e25f4c71190d1a0">SendTo</a> (const char *buffer, int32_t num_bytes, const <a class="el" href="classpp_1_1_net_address.html">NetAddress</a> &amp;addr, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#aa1f03d8d0e7ef59c40724e2691f165f2">Close</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#a5ff91fd2342e534b57980c0c2e414251">SetOption</a> (PP_UDPSocket_Option name, const <a class="el" href="classpp_1_1_var.html">Var</a> &amp;value, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#a51bdeaeeef690d741850e7d691fa479d">JoinGroup</a> (const <a class="el" href="classpp_1_1_net_address.html">NetAddress</a> &amp;group, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#a7efaa9eda9e58ffbd5f6b5c5c9e8b38c">LeaveGroup</a> (const <a class="el" href="classpp_1_1_net_address.html">NetAddress</a> &amp;group, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> callback)</td></tr>
</table><h2>
Static Public Member Functions</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_u_d_p_socket.html#a76a2e93f2fa01d0dce8d8216d53b4f44">IsAvailable</a> ()</td></tr>
@@ -241,6 +243,76 @@ Static Public Member Functions</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the interface is available, false otherwise. </dd></dl>
</div>
</div>
+<a class="anchor" id="a51bdeaeeef690d741850e7d691fa479d"></a><!-- doxytag: member="pp::UDPSocket::JoinGroup" ref="a51bdeaeeef690d741850e7d691fa479d" args="(const NetAddress &amp;group, const CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_u_d_p_socket.html#a51bdeaeeef690d741850e7d691fa479d">pp::UDPSocket::JoinGroup</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_net_address.html">NetAddress</a> &amp;&#160;</td>
+<td class="paramname"><em>group</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a>&#160;</td>
+<td class="paramname"><em>callback</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Joins the multicast group with address specified by <code>group</code> parameter, which is expected to be a <code><a class="el" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address.">NetAddress</a></code> object. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">group</td><td>A <code><a class="el" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address.">NetAddress</a></code> corresponding to the network address of the multicast group. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a7efaa9eda9e58ffbd5f6b5c5c9e8b38c"></a><!-- doxytag: member="pp::UDPSocket::LeaveGroup" ref="a7efaa9eda9e58ffbd5f6b5c5c9e8b38c" args="(const NetAddress &amp;group, const CompletionCallback callback)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_u_d_p_socket.html#a7efaa9eda9e58ffbd5f6b5c5c9e8b38c">pp::UDPSocket::LeaveGroup</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_net_address.html">NetAddress</a> &amp;&#160;</td>
+<td class="paramname"><em>group</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a>&#160;</td>
+<td class="paramname"><em>callback</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Leaves the multicast group with address specified by <code>group</code> parameter, which is expected to be a <code><a class="el" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address.">NetAddress</a></code> object. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">group</td><td>A <code><a class="el" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address.">NetAddress</a></code> corresponding to the network address of the multicast group. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
<a class="anchor" id="a72112f67b757bbbfaaf67ae3cfe2f602"></a><!-- doxytag: member="pp::UDPSocket::operator=" ref="a72112f67b757bbbfaaf67ae3cfe2f602" args="(const UDPSocket &amp;other)" -->
<div class="memitem">
<div class="memproto">
@@ -356,7 +428,7 @@ Static Public Member Functions</h2><table class="memberdecls">
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>A non-negative number on success to indicate how many bytes have been sent; otherwise, an error code from <code>pp_errors.h</code>. <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have required permissions. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A non-negative number on success to indicate how many bytes have been sent; otherwise, an error code from <code>pp_errors.h</code>. <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have required permissions. <code>PP_ERROR_INPROGRESS</code> will be returned if the socket is busy sending. The caller should wait until a pending send completes before retrying. </dd></dl>
</div>
</div>
<a class="anchor" id="a5ff91fd2342e534b57980c0c2e414251"></a><!-- doxytag: member="pp::UDPSocket::SetOption" ref="a5ff91fd2342e534b57980c0c2e414251" args="(PP_UDPSocket_Option name, const Var &amp;value, const CompletionCallback &amp;callback)" -->
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_decoder-members.html b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_decoder-members.html
index f383c8c..68a4c3e 100644
--- a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_decoder-members.html
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_decoder-members.html
@@ -16,7 +16,7 @@ This is the complete list of members for <a class="el" href="classpp_1_1_video_d
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a81b9246381bdddacca3ac25f6ded2bfd">detach</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_video_decoder.html#adb59ebce58f83b1c27e9c427596fb366">Flush</a>(const CompletionCallback &amp;callback)</td><td><a class="el" href="classpp_1_1_video_decoder.html">pp::VideoDecoder</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a">GetPicture</a>(const CompletionCallbackWithOutput&lt; PP_VideoPicture &gt; &amp;callback)</td><td><a class="el" href="classpp_1_1_video_decoder.html">pp::VideoDecoder</a></td><td></td></tr>
-<tr class="memlist"><td><a class="el" href="classpp_1_1_video_decoder.html#a52d1b4e5b5427d3bfb263cdec051274e">Initialize</a>(const Graphics3D &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;callback)</td><td><a class="el" href="classpp_1_1_video_decoder.html">pp::VideoDecoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_decoder.html#a284c6a99f5c3ea83465f7eab81ca4ba8">Initialize</a>(const Graphics3D &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, uint32_t min_picture_count, const CompletionCallback &amp;callback)</td><td><a class="el" href="classpp_1_1_video_decoder.html">pp::VideoDecoder</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9">is_null</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#aaf808a98bdaa7998d82e19514aa87423">operator=</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a3eda014529127a818df8d5bb5ec2fdf0">PassRefFromConstructor</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_decoder.html b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_decoder.html
index a82fcda..d05fd0a 100644
--- a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_decoder.html
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_decoder.html
@@ -24,7 +24,7 @@ Public Member Functions</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#afc9613c960f58ff4c97804da4645cd64">VideoDecoder</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a5c7b1010b42e179cf51e55266eb1491a">VideoDecoder</a> (const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;instance)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a0eec2949dd73ef6d52b6782cee3b427d">VideoDecoder</a> (const <a class="el" href="classpp_1_1_video_decoder.html">VideoDecoder</a> &amp;other)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a52d1b4e5b5427d3bfb263cdec051274e">Initialize</a> (const <a class="el" href="classpp_1_1_graphics3_d.html">Graphics3D</a> &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a284c6a99f5c3ea83465f7eab81ca4ba8">Initialize</a> (const <a class="el" href="classpp_1_1_graphics3_d.html">Graphics3D</a> &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, uint32_t min_picture_count, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a2f1a48cf6d2f1854b20e6a747c9b03e3">Decode</a> (uint32_t decode_id, uint32_t size, const void *buffer, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a">GetPicture</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; PP_VideoPicture &gt; &amp;callback)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html#a7b9c4917ebd205572a0fe69a34f1bfd9">RecyclePicture</a> (const PP_VideoPicture &amp;picture)</td></tr>
@@ -36,7 +36,7 @@ Public Member Functions</h2><table class="memberdecls">
<p>Typical usage:</p>
<ul>
<li>Call Create() to create a new video decoder resource.</li>
-<li>Call <a class="el" href="classpp_1_1_video_decoder.html#a52d1b4e5b5427d3bfb263cdec051274e" title="Initializes a video decoder resource.">Initialize()</a> to initialize it with a 3d graphics context and the desired codec profile.</li>
+<li>Call <a class="el" href="classpp_1_1_video_decoder.html#a284c6a99f5c3ea83465f7eab81ca4ba8" title="Initializes a video decoder resource.">Initialize()</a> to initialize it with a 3d graphics context and the desired codec profile.</li>
<li>Call <a class="el" href="classpp_1_1_video_decoder.html#a2f1a48cf6d2f1854b20e6a747c9b03e3" title="Decodes a bitstream buffer.">Decode()</a> continuously (waiting for each previous call to complete) to push bitstream buffers to the decoder.</li>
<li>Call <a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a" title="Gets the next picture from the decoder.">GetPicture()</a> continuously (waiting for each previous call to complete) to pull decoded pictures from the decoder.</li>
<li>Call <a class="el" href="classpp_1_1_video_decoder.html#adb59ebce58f83b1c27e9c427596fb366" title="Flushes the decoder.">Flush()</a> to signal end of stream to the decoder and perform shutdown when it completes.</li>
@@ -210,12 +210,12 @@ Public Member Functions</h2><table class="memberdecls">
<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if the decoder isn't initialized or if a <a class="el" href="classpp_1_1_video_decoder.html#aa05481906b07e929c9567bc22a48917a" title="Resets the decoder as quickly as possible.">Reset()</a> call is pending. Returns PP_ERROR_INPROGRESS if there is another <a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a" title="Gets the next picture from the decoder.">GetPicture()</a> call pending. Returns PP_ERROR_ABORTED when <a class="el" href="classpp_1_1_video_decoder.html#aa05481906b07e929c9567bc22a48917a" title="Resets the decoder as quickly as possible.">Reset()</a> is called, or if a call to <a class="el" href="classpp_1_1_video_decoder.html#adb59ebce58f83b1c27e9c427596fb366" title="Flushes the decoder.">Flush()</a> completes while <a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a" title="Gets the next picture from the decoder.">GetPicture()</a> is pending. </dd></dl>
</div>
</div>
-<a class="anchor" id="a52d1b4e5b5427d3bfb263cdec051274e"></a><!-- doxytag: member="pp::VideoDecoder::Initialize" ref="a52d1b4e5b5427d3bfb263cdec051274e" args="(const Graphics3D &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;callback)" -->
+<a class="anchor" id="a284c6a99f5c3ea83465f7eab81ca4ba8"></a><!-- doxytag: member="pp::VideoDecoder::Initialize" ref="a284c6a99f5c3ea83465f7eab81ca4ba8" args="(const Graphics3D &amp;graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, uint32_t min_picture_count, const CompletionCallback &amp;callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
-<td class="memname">int32_t <a class="el" href="classpp_1_1_video_decoder.html#a52d1b4e5b5427d3bfb263cdec051274e">pp::VideoDecoder::Initialize</a> </td>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_decoder.html#a284c6a99f5c3ea83465f7eab81ca4ba8">pp::VideoDecoder::Initialize</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classpp_1_1_graphics3_d.html">Graphics3D</a> &amp;&#160;</td>
<td class="paramname"><em>graphics3d_context</em>, </td>
@@ -235,6 +235,12 @@ Public Member Functions</h2><table class="memberdecls">
<tr>
<td class="paramkey"></td>
<td></td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>min_picture_count</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
<td class="paramname"><em>callback</em>&#160;</td>
</tr>
@@ -253,11 +259,12 @@ Public Member Functions</h2><table class="memberdecls">
<tr><td class="paramdir">[in]</td><td class="paramname">graphics3d_context</td><td>A <code>PPB_Graphics3D</code> resource to use during decoding. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">profile</td><td>A <code>PP_VideoProfile</code> specifying the video codec profile. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">min_picture_count</td><td>A count of pictures the plugin would like to have in flight. This is effectively the number of times the plugin can call <a class="el" href="classpp_1_1_video_decoder.html#aec1a1bc95b8d3eea64b942af48dff02a" title="Gets the next picture from the decoder.">GetPicture()</a> and get a decoded frame without calling <a class="el" href="classpp_1_1_video_decoder.html#a7b9c4917ebd205572a0fe69a34f1bfd9" title="Recycles a picture that the plugin has received from the decoder.">RecyclePicture()</a>. The decoder has its own internal minimum count, and will take the larger of its internal and this value. A client that doesn't care can therefore just pass in zero for this argument. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code>PP_CompletionCallback</code> to be called upon completion.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the requested profile is not supported. In this case, the client may call <a class="el" href="classpp_1_1_video_decoder.html#a52d1b4e5b5427d3bfb263cdec051274e" title="Initializes a video decoder resource.">Initialize()</a> again with different parameters to find a good configuration. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the requested profile is not supported. In this case, the client may call <a class="el" href="classpp_1_1_video_decoder.html#a284c6a99f5c3ea83465f7eab81ca4ba8" title="Initializes a video decoder resource.">Initialize()</a> again with different parameters to find a good configuration. </dd></dl>
</div>
</div>
<a class="anchor" id="a7b9c4917ebd205572a0fe69a34f1bfd9"></a><!-- doxytag: member="pp::VideoDecoder::RecyclePicture" ref="a7b9c4917ebd205572a0fe69a34f1bfd9" args="(const PP_VideoPicture &amp;picture)" -->
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_encoder-members.html b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_encoder-members.html
new file mode 100644
index 0000000..1f9a454
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_encoder-members.html
@@ -0,0 +1,40 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>Member List</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+
+</div>
+<!--header-->
+<div class="contents">
+This is the complete list of members for <a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a>, including all inherited members.<table>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#ad4016f37d3022863ca0188acb26ac9c4">Clear</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a411036495143eb6484b668e2d26c1170">Close</a>()</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a81b9246381bdddacca3ac25f6ded2bfd">detach</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a39755b4e3aee295d8ba509da9904e5cd">Encode</a>(const VideoFrame &amp;video_frame, bool force_keyframe, const CompletionCallback &amp;cc)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a9c0861d91f7c93cb15cf917ca6d6cf95">GetBitstreamBuffer</a>(const CompletionCallbackWithOutput&lt; PP_BitstreamBuffer &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a2112ec6caf60385c1625b85e3697d777">GetFrameCodedSize</a>(Size *coded_size)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#ae673a5ebfed4fc3198a405cccecfbe54">GetFramesRequired</a>()</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a5c264d3b6ec0a5970cc1dee74dbfaf55">GetSupportedProfiles</a>(const CompletionCallbackWithOutput&lt; std::vector&lt; PP_VideoProfileDescription &gt; &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a5c5fabe6a00afe6b8849bbc612183bb2">GetVideoFrame</a>(const CompletionCallbackWithOutput&lt; VideoFrame &gt; &amp;cc)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7">Initialize</a>(const PP_VideoFrame_Format &amp;input_format, const Size &amp;input_visible_size, const PP_VideoProfile &amp;output_profile, const uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;cc)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9">is_null</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#aaf808a98bdaa7998d82e19514aa87423">operator=</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a3eda014529127a818df8d5bb5ec2fdf0">PassRefFromConstructor</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a46a6123de0b007ad3fcb6f666534ccb4">pp_resource</a>() const </td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [inline]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a81aec23c26a3f9c16ff90efdc38b2895">RecycleBitstreamBuffer</a>(const PP_BitstreamBuffer &amp;bitstream_buffer)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a727159fe366c6ce146dce4c42a608fd7">RequestEncodingParametersChange</a>(uint32_t bitrate, uint32_t framerate)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a56679e93a58101c8dce5dc510811a094">Resource</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#ab0f664099ca06367180f220ea7e0b831">Resource</a>(const Resource &amp;other)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a555de93fdf4793f7db1183bf71d20580">Resource</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [explicit, protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a907d3d6b7e292587c8cb9ff30d0a418d">Resource</a>(PassRef, PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a6a84b977ee05e00bb2c00519d1893d08">VideoEncoder</a>()</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#a479c6cbd73b497c98871d877ef9e0b29">VideoEncoder</a>(const InstanceHandle &amp;instance)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td><code> [explicit]</code></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_video_encoder.html#ad9d09d444a0480153aa5086fda13f064">VideoEncoder</a>(const VideoEncoder &amp;other)</td><td><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a081165265e2bd8217eaa2be2aeeb3aa3">~Resource</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [virtual]</code></td></tr>
+</table></div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_encoder.html b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_encoder.html
new file mode 100644
index 0000000..c653949
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_encoder.html
@@ -0,0 +1,418 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>pp::VideoEncoder Class Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+
+</div>
+<!--header-->
+<div class="contents">
+<!-- doxytag: class="pp::VideoEncoder" --><!-- doxytag: inherits="pp::Resource" --><div class="dynheader">
+Inheritance diagram for pp::VideoEncoder:</div>
+<div class="dyncontent">
+<div class="center"><img src="classpp_1_1_video_encoder__inherit__graph.png" border="0" usemap="#pp_1_1_video_encoder_inherit__map" alt="Inheritance graph" /></div>
+<map name="pp_1_1_video_encoder_inherit__map" id="pp_1_1_video_encoder_inherit__map">
+<area shape="rect" id="node2" href="classpp_1_1_resource.html" title="A reference counted module resource." alt="" coords="20,5,124,32"></area></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<p><a href="classpp_1_1_video_encoder-members.html">List of all members.</a></p>
+<h2>
+Public Member Functions</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a6a84b977ee05e00bb2c00519d1893d08">VideoEncoder</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a479c6cbd73b497c98871d877ef9e0b29">VideoEncoder</a> (const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;instance)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#ad9d09d444a0480153aa5086fda13f064">VideoEncoder</a> (const <a class="el" href="classpp_1_1_video_encoder.html">VideoEncoder</a> &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a5c264d3b6ec0a5970cc1dee74dbfaf55">GetSupportedProfiles</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; std::vector&lt; PP_VideoProfileDescription &gt; &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7">Initialize</a> (const PP_VideoFrame_Format &amp;input_format, const <a class="el" href="classpp_1_1_size.html">Size</a> &amp;input_visible_size, const PP_VideoProfile &amp;output_profile, const uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#ae673a5ebfed4fc3198a405cccecfbe54">GetFramesRequired</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a2112ec6caf60385c1625b85e3697d777">GetFrameCodedSize</a> (<a class="el" href="classpp_1_1_size.html">Size</a> *coded_size)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a5c5fabe6a00afe6b8849bbc612183bb2">GetVideoFrame</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; <a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a> &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a39755b4e3aee295d8ba509da9904e5cd">Encode</a> (const <a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a> &amp;video_frame, bool force_keyframe, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a9c0861d91f7c93cb15cf917ca6d6cf95">GetBitstreamBuffer</a> (const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; PP_BitstreamBuffer &gt; &amp;cc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a81aec23c26a3f9c16ff90efdc38b2895">RecycleBitstreamBuffer</a> (const PP_BitstreamBuffer &amp;bitstream_buffer)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a727159fe366c6ce146dce4c42a608fd7">RequestEncodingParametersChange</a> (uint32_t bitrate, uint32_t framerate)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html#a411036495143eb6484b668e2d26c1170">Close</a> ()</td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Video encoder interface. </p>
+<p>Typical usage:</p>
+<ul>
+<li>Call Create() to create a new video encoder resource.</li>
+<li>Call GetSupportedFormats() to determine which codecs and profiles are available.</li>
+<li>Call <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a> to initialize the encoder for a supported profile.</li>
+<li>Call <a class="el" href="classpp_1_1_video_encoder.html#a5c5fabe6a00afe6b8849bbc612183bb2" title="Gets a blank video frame which can be filled with video data and passed to the encoder.">GetVideoFrame()</a> to get a blank frame and fill it in, or get a video frame from another resource, e.g. <code>PPB_MediaStreamVideoTrack</code>.</li>
+<li>Call <a class="el" href="classpp_1_1_video_encoder.html#a39755b4e3aee295d8ba509da9904e5cd" title="Encodes a video frame.">Encode()</a> to push the video frame to the encoder. If an external frame is pushed, wait for completion to recycle the frame.</li>
+<li>Call <a class="el" href="classpp_1_1_video_encoder.html#a9c0861d91f7c93cb15cf917ca6d6cf95" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> continuously (waiting for each previous call to complete) to pull encoded pictures from the encoder.</li>
+<li>Call <a class="el" href="classpp_1_1_video_encoder.html#a81aec23c26a3f9c16ff90efdc38b2895" title="Recycles a bitstream buffer back to the encoder.">RecycleBitstreamBuffer()</a> after consuming the data in the bitstream buffer.</li>
+<li>To destroy the encoder, the plugin should release all of its references to it. Any pending callbacks will abort before the encoder is destroyed.</li>
+</ul>
+<p>Available video codecs vary by platform. All: vp8 (software). ChromeOS, depending on your device: h264 (hardware), vp8 (hardware) </p>
+</div><hr /><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a6a84b977ee05e00bb2c00519d1893d08"></a><!-- doxytag: member="pp::VideoEncoder::VideoEncoder" ref="a6a84b977ee05e00bb2c00519d1893d08" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_video_encoder.html#a6a84b977ee05e00bb2c00519d1893d08">pp::VideoEncoder::VideoEncoder</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Default constructor for creating an <a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9" title="This functions determines if this resource is invalid or uninitialized.">is_null()</a> <code><a class="el" href="classpp_1_1_video_encoder.html" title="Video encoder interface.">VideoEncoder</a></code> object. </p>
+</div>
+</div>
+<a class="anchor" id="a479c6cbd73b497c98871d877ef9e0b29"></a><!-- doxytag: member="pp::VideoEncoder::VideoEncoder" ref="a479c6cbd73b497c98871d877ef9e0b29" args="(const InstanceHandle &amp;instance)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_video_encoder.html#a6a84b977ee05e00bb2c00519d1893d08">pp::VideoEncoder::VideoEncoder</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;&#160;</td>
+<td class="paramname"><em>instance</em></td><td>)</td>
+<td><code> [explicit]</code></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>A constructor used to create a <code><a class="el" href="classpp_1_1_video_encoder.html" title="Video encoder interface.">VideoEncoder</a></code> and associate it with the provided <code><a class="el" href="classpp_1_1_instance.html">Instance</a></code>. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>The instance with which this resource will be associated. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ad9d09d444a0480153aa5086fda13f064"></a><!-- doxytag: member="pp::VideoEncoder::VideoEncoder" ref="ad9d09d444a0480153aa5086fda13f064" args="(const VideoEncoder &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname"><a class="el" href="classpp_1_1_video_encoder.html#a6a84b977ee05e00bb2c00519d1893d08">pp::VideoEncoder::VideoEncoder</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_video_encoder.html">VideoEncoder</a> &amp;&#160;</td>
+<td class="paramname"><em>other</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>The copy constructor for <code><a class="el" href="classpp_1_1_video_encoder.html" title="Video encoder interface.">VideoEncoder</a></code>. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>A reference to a <code><a class="el" href="classpp_1_1_video_encoder.html" title="Video encoder interface.">VideoEncoder</a></code>. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr /><h2>Member Function Documentation</h2>
+<a class="anchor" id="a411036495143eb6484b668e2d26c1170"></a><!-- doxytag: member="pp::VideoEncoder::Close" ref="a411036495143eb6484b668e2d26c1170" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_video_encoder.html#a411036495143eb6484b668e2d26c1170">pp::VideoEncoder::Close</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Closes the video encoder, and cancels any pending encodes. </p>
+<p>Any pending callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> . It is not valid to call any encoder functions after a call to this method. <b>Note:</b> Destroying the video encoder closes it implicitly, so you are not required to call <a class="el" href="classpp_1_1_video_encoder.html#a411036495143eb6484b668e2d26c1170" title="Closes the video encoder, and cancels any pending encodes.">Close()</a>. </p>
+</div>
+</div>
+<a class="anchor" id="a39755b4e3aee295d8ba509da9904e5cd"></a><!-- doxytag: member="pp::VideoEncoder::Encode" ref="a39755b4e3aee295d8ba509da9904e5cd" args="(const VideoFrame &amp;video_frame, bool force_keyframe, const CompletionCallback &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#a39755b4e3aee295d8ba509da9904e5cd">pp::VideoEncoder::Encode</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a> &amp;&#160;</td>
+<td class="paramname"><em>video_frame</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">bool&#160;</td>
+<td class="paramname"><em>force_keyframe</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
+<td class="paramname"><em>cc</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Encodes a video frame. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">video_frame</td><td>The <code><a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a></code> to be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">force_keyframe</td><td>A <code>PP_Bool&gt; specifying whether the encoder should emit a key frame for this video frame. </code></td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td><code>A </code><code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion. Plugins that pass <code><a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a></code> resources owned by other resources should wait for completion before reusing them.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd><code> An int32_t containing an error code from </code><code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a9c0861d91f7c93cb15cf917ca6d6cf95"></a><!-- doxytag: member="pp::VideoEncoder::GetBitstreamBuffer" ref="a9c0861d91f7c93cb15cf917ca6d6cf95" args="(const CompletionCallbackWithOutput&lt; PP_BitstreamBuffer &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#a9c0861d91f7c93cb15cf917ca6d6cf95">pp::VideoEncoder::GetBitstreamBuffer</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; PP_BitstreamBuffer &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the next encoded bitstream buffer from the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[out]</td><td class="paramname">bitstream_buffer</td><td>A <code>PP_BitstreamBuffer</code> containing encoded video data. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the next bitstream buffer. The plugin can call GetBitstreamBuffer from the callback in order to continuously "pull" bitstream buffers from the encoder.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. Returns PP_ERROR_INPROGRESS if a prior call to <a class="el" href="classpp_1_1_video_encoder.html#a9c0861d91f7c93cb15cf917ca6d6cf95" title="Gets the next encoded bitstream buffer from the encoder.">GetBitstreamBuffer()</a> has not completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a2112ec6caf60385c1625b85e3697d777"></a><!-- doxytag: member="pp::VideoEncoder::GetFrameCodedSize" ref="a2112ec6caf60385c1625b85e3697d777" args="(Size *coded_size)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#a2112ec6caf60385c1625b85e3697d777">pp::VideoEncoder::GetFrameCodedSize</a> </td>
+<td>(</td>
+<td class="paramtype"><a class="el" href="classpp_1_1_size.html">Size</a> *&#160;</td>
+<td class="paramname"><em>coded_size</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the coded size of the video frames required by the encoder. </p>
+<p>Coded size is the logical size of the input frames, in pixels. The encoder may have hardware alignment requirements that make this different from |input_visible_size|, as requested in the call to <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">coded_size</td><td>A <code><a class="el" href="classpp_1_1_size.html" title="A size of an object based on width and height.">Size</a></code> to hold the coded size.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing a result code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="ae673a5ebfed4fc3198a405cccecfbe54"></a><!-- doxytag: member="pp::VideoEncoder::GetFramesRequired" ref="ae673a5ebfed4fc3198a405cccecfbe54" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#ae673a5ebfed4fc3198a405cccecfbe54">pp::VideoEncoder::GetFramesRequired</a> </td>
+<td>(</td>
+<td class="paramname"></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets the number of input video frames that the encoder may hold while encoding. </p>
+<p>If the plugin is providing the video frames, it should have at least this many available.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing the number of frames required, or an error code from <code>pp_errors.h</code>. Returns PP_ERROR_FAILED if <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a> has not successfully completed. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a5c264d3b6ec0a5970cc1dee74dbfaf55"></a><!-- doxytag: member="pp::VideoEncoder::GetSupportedProfiles" ref="a5c264d3b6ec0a5970cc1dee74dbfaf55" args="(const CompletionCallbackWithOutput&lt; std::vector&lt; PP_VideoProfileDescription &gt; &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#a5c264d3b6ec0a5970cc1dee74dbfaf55">pp::VideoEncoder::GetSupportedProfiles</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; std::vector&lt; PP_VideoProfileDescription &gt; &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets an array of supported video encoder profiles. </p>
+<p>These can be used to choose a profile before calling <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7" title="Initializes a video encoder resource.">Initialize()</a>.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the PP_VideoProfileDescription structs.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>If &gt;= 0, the number of supported profiles returned, otherwise an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a5c5fabe6a00afe6b8849bbc612183bb2"></a><!-- doxytag: member="pp::VideoEncoder::GetVideoFrame" ref="a5c5fabe6a00afe6b8849bbc612183bb2" args="(const CompletionCallbackWithOutput&lt; VideoFrame &gt; &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#a5c5fabe6a00afe6b8849bbc612183bb2">pp::VideoEncoder::GetVideoFrame</a> </td>
+<td>(</td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a>&lt; <a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a> &gt; &amp;&#160;</td>
+<td class="paramname"><em>cc</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Gets a blank video frame which can be filled with video data and passed to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a></code> to be called upon completion with the blank <code><a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a></code> resource.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="ad2c47c10cfe92a3bf41e204d326560c7"></a><!-- doxytag: member="pp::VideoEncoder::Initialize" ref="ad2c47c10cfe92a3bf41e204d326560c7" args="(const PP_VideoFrame_Format &amp;input_format, const Size &amp;input_visible_size, const PP_VideoProfile &amp;output_profile, const uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, const CompletionCallback &amp;cc)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">int32_t <a class="el" href="classpp_1_1_video_encoder.html#ad2c47c10cfe92a3bf41e204d326560c7">pp::VideoEncoder::Initialize</a> </td>
+<td>(</td>
+<td class="paramtype">const PP_VideoFrame_Format &amp;&#160;</td>
+<td class="paramname"><em>input_format</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_size.html">Size</a> &amp;&#160;</td>
+<td class="paramname"><em>input_visible_size</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const PP_VideoProfile &amp;&#160;</td>
+<td class="paramname"><em>output_profile</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const uint32_t&#160;</td>
+<td class="paramname"><em>initial_bitrate</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">PP_HardwareAcceleration&#160;</td>
+<td class="paramname"><em>acceleration</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
+<td class="paramname"><em>cc</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Initializes a video encoder resource. </p>
+<p>This should be called after <a class="el" href="classpp_1_1_video_encoder.html#a5c264d3b6ec0a5970cc1dee74dbfaf55" title="Gets an array of supported video encoder profiles.">GetSupportedProfiles()</a> and before any functions below.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">input_format</td><td>The <code>PP_VideoFrame_Format</code> of the frames which will be encoded. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">input_visible_size</td><td>A <code><a class="el" href="classpp_1_1_size.html" title="A size of an object based on width and height.">Size</a></code> specifying the dimensions of the visible part of the input frames. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">output_profile</td><td>A <code>PP_VideoProfile</code> specifying the codec profile of the encoded output stream. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">acceleration</td><td>A <code>PP_HardwareAcceleration</code> specifying whether to use a hardware accelerated or a software implementation. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion.</td></tr>
+</table>
+</dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. Returns PP_ERROR_NOTSUPPORTED if video encoding is not available, or the requested codec profile is not supported. Returns PP_ERROR_NOMEMORY if frame and bitstream buffers can't be created. </dd></dl>
+</div>
+</div>
+<a class="anchor" id="a81aec23c26a3f9c16ff90efdc38b2895"></a><!-- doxytag: member="pp::VideoEncoder::RecycleBitstreamBuffer" ref="a81aec23c26a3f9c16ff90efdc38b2895" args="(const PP_BitstreamBuffer &amp;bitstream_buffer)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_video_encoder.html#a81aec23c26a3f9c16ff90efdc38b2895">pp::VideoEncoder::RecycleBitstreamBuffer</a> </td>
+<td>(</td>
+<td class="paramtype">const PP_BitstreamBuffer &amp;&#160;</td>
+<td class="paramname"><em>bitstream_buffer</em></td><td>)</td>
+<td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Recycles a bitstream buffer back to the encoder. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">bitstream_buffer</td><td>A <code>PP_BitstreamBuffer</code> that is no longer needed by the plugin. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="a727159fe366c6ce146dce4c42a608fd7"></a><!-- doxytag: member="pp::VideoEncoder::RequestEncodingParametersChange" ref="a727159fe366c6ce146dce4c42a608fd7" args="(uint32_t bitrate, uint32_t framerate)" -->
+<div class="memitem">
+<div class="memproto">
+<table class="memname">
+<tr>
+<td class="memname">void <a class="el" href="classpp_1_1_video_encoder.html#a727159fe366c6ce146dce4c42a608fd7">pp::VideoEncoder::RequestEncodingParametersChange</a> </td>
+<td>(</td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>bitrate</em>, </td>
+</tr>
+<tr>
+<td class="paramkey"></td>
+<td></td>
+<td class="paramtype">uint32_t&#160;</td>
+<td class="paramname"><em>framerate</em>&#160;</td>
+</tr>
+<tr>
+<td></td>
+<td>)</td>
+<td></td><td></td>
+</tr>
+</table>
+</div>
+<div class="memdoc">
+<p>Requests a change to encoding parameters. </p>
+<p>This is only a request, fulfilled on a best-effort basis.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+<table class="params">
+<tr><td class="paramdir">[in]</td><td class="paramname">bitrate</td><td>The requested new bitrate, in bits per second. </td></tr>
+<tr><td class="paramdir">[in]</td><td class="paramname">framerate</td><td>The requested new framerate, in frames per second. </td></tr>
+</table>
+</dd>
+</dl>
+</div>
+</div>
+<hr />The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="video__encoder_8h.html">video_encoder.h</a></li>
+</ul>
+</div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_encoder__inherit__graph.png b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_encoder__inherit__graph.png
new file mode 100644
index 0000000..14d3b23
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_video_encoder__inherit__graph.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_view-members.html b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_view-members.html
index faae169..a080677 100644
--- a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_view-members.html
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_view-members.html
@@ -30,7 +30,7 @@ This is the complete list of members for <a class="el" href="classpp_1_1_view.ht
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a555de93fdf4793f7db1183bf71d20580">Resource</a>(PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [explicit, protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a907d3d6b7e292587c8cb9ff30d0a418d">Resource</a>(PassRef, PP_Resource resource)</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_view.html#aebcd4ab8818a6e1dfe68e2c435823ad9">View</a>()</td><td><a class="el" href="classpp_1_1_view.html">pp::View</a></td><td></td></tr>
-<tr class="memlist"><td><a class="el" href="classpp_1_1_view.html#a89cc79b6731f0e67d0821fe83b3e64fb">View</a>(PP_Resource view_resource)</td><td><a class="el" href="classpp_1_1_view.html">pp::View</a></td><td></td></tr>
+<tr class="memlist"><td><a class="el" href="classpp_1_1_view.html#a89cc79b6731f0e67d0821fe83b3e64fb">View</a>(PP_Resource view_resource)</td><td><a class="el" href="classpp_1_1_view.html">pp::View</a></td><td><code> [explicit]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpp_1_1_resource.html#a081165265e2bd8217eaa2be2aeeb3aa3">~Resource</a>()</td><td><a class="el" href="classpp_1_1_resource.html">pp::Resource</a></td><td><code> [virtual]</code></td></tr>
</table></div><!-- contents -->
</div>
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_view.html b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_view.html
index a415406..7f23b4d 100644
--- a/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_view.html
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/classpp_1_1_view.html
@@ -60,7 +60,7 @@ Public Member Functions</h2><table class="memberdecls">
<td>(</td>
<td class="paramtype">PP_Resource&#160;</td>
<td class="paramname"><em>view_resource</em></td><td>)</td>
-<td></td>
+<td><code> [explicit]</code></td>
</tr>
</table>
</div>
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/inherit_graph_23.png b/native_client_sdk/doc_generated/pepper_stable/cpp/inherit_graph_23.png
index 6aebbb2..056cffd 100644
--- a/native_client_sdk/doc_generated/pepper_stable/cpp/inherit_graph_23.png
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/inherit_graph_23.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/inherits.html b/native_client_sdk/doc_generated/pepper_stable/cpp/inherits.html
index 150ad2b..f1a43a2 100644
--- a/native_client_sdk/doc_generated/pepper_stable/cpp/inherits.html
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/inherits.html
@@ -106,7 +106,7 @@
</td></tr>
<tr><td><img src="inherit_graph_23.png" border="0" alt="" usemap="#pp_1_1_resource" />
<map name="pp_1_1_resource" id="pp_1_1_resource">
-<area shape="rect" id="node1" href="classpp_1_1_resource.html" title="A reference counted module resource." alt="" coords="5,689,109,716"></area><area shape="rect" id="node2" href="classpp_1_1_audio.html" title="An audio resource." alt="" coords="216,5,299,32"></area><area shape="rect" id="node3" href="classpp_1_1_audio_buffer.html" title="pp::AudioBuffer" alt="" coords="197,56,317,83"></area><area shape="rect" id="node4" href="classpp_1_1_audio_config.html" title="A 16 bit stereo AudioConfig resource." alt="" coords="196,107,319,133"></area><area shape="rect" id="node5" href="classpp_1_1_compositor.html" title="The Compositor interface is used for setting CompositorLayer layers to the Chromium compositor for co..." alt="" coords="197,157,317,184"></area><area shape="rect" id="node6" href="classpp_1_1_compositor_layer.html" title="pp::CompositorLayer" alt="" coords="180,208,335,235"></area><area shape="rect" id="node7" href="classpp_1_1_file_i_o.html" title="The FileIO class represents a regular file." alt="" coords="218,259,297,285"></area><area shape="rect" id="node8" href="classpp_1_1_file_ref.html" title='The FileRef class represents a "weak pointer" to a file in a file system.' alt="" coords="215,309,300,336"></area><area shape="rect" id="node9" href="classpp_1_1_file_system.html" title="The FileSystem class identifies the file system type associated with a file." alt="" coords="200,360,315,387"></area><area shape="rect" id="node10" href="classpp_1_1_graphics2_d.html" title="pp::Graphics2D" alt="" coords="197,411,317,437"></area><area shape="rect" id="node11" href="classpp_1_1_graphics3_d.html" title="This class represents a 3D rendering context in the browser." alt="" coords="197,461,317,488"></area><area shape="rect" id="node12" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution." alt="" coords="193,512,322,539"></area><area shape="rect" id="node13" href="classpp_1_1_image_data.html" title="pp::ImageData" alt="" coords="199,563,316,589"></area><area shape="rect" id="node14" href="classpp_1_1_input_event.html" title="This class represents an input event resource." alt="" coords="200,613,315,640"></area><area shape="rect" id="node20" href="classpp_1_1_media_stream_audio_track.html" title="The MediaStreamAudioTrack class contains methods for receiving audio buffers from a MediaStream audio..." alt="" coords="157,664,357,691"></area><area shape="rect" id="node21" href="classpp_1_1_media_stream_video_track.html" title="The MediaStreamVideoTrack class contains methods for receiving video frames from a MediaStream video ..." alt="" coords="157,715,357,741"></area><area shape="rect" id="node22" href="classpp_1_1_message_loop.html" title="A message loop allows PPAPI calls to be issued on a thread." alt="" coords="190,765,325,792"></area><area shape="rect" id="node23" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address." alt="" coords="197,816,318,843"></area><area shape="rect" id="node24" href="classpp_1_1_network_list.html" title="pp::NetworkList" alt="" coords="197,867,317,893"></area><area shape="rect" id="node25" href="classpp_1_1_network_monitor.html" title="pp::NetworkMonitor" alt="" coords="184,917,331,944"></area><area shape="rect" id="node26" href="classpp_1_1_t_c_p_socket.html" title="The TCPSocket class provides TCP socket operations." alt="" coords="201,968,314,995"></area><area shape="rect" id="node27" href="classpp_1_1_u_d_p_socket.html" title="The UDPSocket class provides UDP socket operations." alt="" coords="198,1019,317,1045"></area><area shape="rect" id="node28" href="classpp_1_1_u_r_l_loader.html" title="URLLoader provides an API for loading URLs." alt="" coords="200,1069,315,1096"></area><area shape="rect" id="node29" href="classpp_1_1_u_r_l_request_info.html" title="URLRequestInfo provides an API for creating and manipulating URL requests." alt="" coords="185,1120,330,1147"></area><area shape="rect" id="node30" href="classpp_1_1_u_r_l_response_info.html" title="URLResponseInfo provides an API for examining URL responses." alt="" coords="180,1171,335,1197"></area><area shape="rect" id="node31" href="classpp_1_1_video_decoder.html" title="Video decoder interface." alt="" coords="189,1221,325,1248"></area><area shape="rect" id="node32" href="classpp_1_1_video_frame.html" title="pp::VideoFrame" alt="" coords="196,1272,319,1299"></area><area shape="rect" id="node33" href="classpp_1_1_view.html" title="This class represents the state of the view for an instance and contains functions for retrieving the..." alt="" coords="220,1323,295,1349"></area><area shape="rect" id="node34" href="classpp_1_1_web_socket.html" title="The WebSocket class providing bi-directional, full-duplex, communications over a single TCP socket..." alt="" coords="199,1373,315,1400"></area><area shape="rect" id="node15" href="classpp_1_1_i_m_e_input_event.html" title="pp::IMEInputEvent" alt="" coords="424,512,560,539"></area><area shape="rect" id="node16" href="classpp_1_1_keyboard_input_event.html" title="pp::KeyboardInputEvent" alt="" coords="405,563,579,589"></area><area shape="rect" id="node17" href="classpp_1_1_mouse_input_event.html" title="This class handles mouse events." alt="" coords="414,613,570,640"></area><area shape="rect" id="node18" href="classpp_1_1_touch_input_event.html" title="pp::TouchInputEvent" alt="" coords="417,664,567,691"></area><area shape="rect" id="node19" href="classpp_1_1_wheel_input_event.html" title="pp::WheelInputEvent" alt="" coords="416,715,568,741"></area></map>
+<area shape="rect" id="node1" href="classpp_1_1_resource.html" title="A reference counted module resource." alt="" coords="5,740,109,767"></area><area shape="rect" id="node2" href="classpp_1_1_audio.html" title="An audio resource." alt="" coords="216,5,299,32"></area><area shape="rect" id="node3" href="classpp_1_1_audio_buffer.html" title="pp::AudioBuffer" alt="" coords="197,56,317,83"></area><area shape="rect" id="node4" href="classpp_1_1_audio_config.html" title="A 16 bit stereo AudioConfig resource." alt="" coords="196,107,319,133"></area><area shape="rect" id="node5" href="classpp_1_1_audio_encoder.html" title="Audio encoder interface." alt="" coords="190,157,325,184"></area><area shape="rect" id="node6" href="classpp_1_1_compositor.html" title="The Compositor interface is used for setting CompositorLayer layers to the Chromium compositor for co..." alt="" coords="197,208,317,235"></area><area shape="rect" id="node7" href="classpp_1_1_compositor_layer.html" title="pp::CompositorLayer" alt="" coords="180,259,335,285"></area><area shape="rect" id="node8" href="classpp_1_1_file_i_o.html" title="The FileIO class represents a regular file." alt="" coords="218,309,297,336"></area><area shape="rect" id="node9" href="classpp_1_1_file_ref.html" title='The FileRef class represents a "weak pointer" to a file in a file system.' alt="" coords="215,360,300,387"></area><area shape="rect" id="node10" href="classpp_1_1_file_system.html" title="The FileSystem class identifies the file system type associated with a file." alt="" coords="200,411,315,437"></area><area shape="rect" id="node11" href="classpp_1_1_graphics2_d.html" title="pp::Graphics2D" alt="" coords="197,461,317,488"></area><area shape="rect" id="node12" href="classpp_1_1_graphics3_d.html" title="This class represents a 3D rendering context in the browser." alt="" coords="197,512,317,539"></area><area shape="rect" id="node13" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution." alt="" coords="193,563,322,589"></area><area shape="rect" id="node14" href="classpp_1_1_image_data.html" title="pp::ImageData" alt="" coords="199,613,316,640"></area><area shape="rect" id="node15" href="classpp_1_1_input_event.html" title="This class represents an input event resource." alt="" coords="200,664,315,691"></area><area shape="rect" id="node21" href="classpp_1_1_media_stream_audio_track.html" title="The MediaStreamAudioTrack class contains methods for receiving audio buffers from a MediaStream audio..." alt="" coords="157,715,357,741"></area><area shape="rect" id="node22" href="classpp_1_1_media_stream_video_track.html" title="The MediaStreamVideoTrack class contains methods for receiving video frames from a MediaStream video ..." alt="" coords="157,765,357,792"></area><area shape="rect" id="node23" href="classpp_1_1_message_loop.html" title="A message loop allows PPAPI calls to be issued on a thread." alt="" coords="190,816,325,843"></area><area shape="rect" id="node24" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address." alt="" coords="197,867,318,893"></area><area shape="rect" id="node25" href="classpp_1_1_network_list.html" title="pp::NetworkList" alt="" coords="197,917,317,944"></area><area shape="rect" id="node26" href="classpp_1_1_network_monitor.html" title="pp::NetworkMonitor" alt="" coords="184,968,331,995"></area><area shape="rect" id="node27" href="classpp_1_1_t_c_p_socket.html" title="The TCPSocket class provides TCP socket operations." alt="" coords="201,1019,314,1045"></area><area shape="rect" id="node28" href="classpp_1_1_u_d_p_socket.html" title="The UDPSocket class provides UDP socket operations." alt="" coords="198,1069,317,1096"></area><area shape="rect" id="node29" href="classpp_1_1_u_r_l_loader.html" title="URLLoader provides an API for loading URLs." alt="" coords="200,1120,315,1147"></area><area shape="rect" id="node30" href="classpp_1_1_u_r_l_request_info.html" title="URLRequestInfo provides an API for creating and manipulating URL requests." alt="" coords="185,1171,330,1197"></area><area shape="rect" id="node31" href="classpp_1_1_u_r_l_response_info.html" title="URLResponseInfo provides an API for examining URL responses." alt="" coords="180,1221,335,1248"></area><area shape="rect" id="node32" href="classpp_1_1_video_decoder.html" title="Video decoder interface." alt="" coords="189,1272,325,1299"></area><area shape="rect" id="node33" href="classpp_1_1_video_encoder.html" title="Video encoder interface." alt="" coords="190,1323,325,1349"></area><area shape="rect" id="node34" href="classpp_1_1_video_frame.html" title="pp::VideoFrame" alt="" coords="196,1373,319,1400"></area><area shape="rect" id="node35" href="classpp_1_1_view.html" title="This class represents the state of the view for an instance and contains functions for retrieving the..." alt="" coords="220,1424,295,1451"></area><area shape="rect" id="node36" href="classpp_1_1_web_socket.html" title="The WebSocket class providing bi-directional, full-duplex, communications over a single TCP socket..." alt="" coords="199,1475,315,1501"></area><area shape="rect" id="node16" href="classpp_1_1_i_m_e_input_event.html" title="pp::IMEInputEvent" alt="" coords="424,563,560,589"></area><area shape="rect" id="node17" href="classpp_1_1_keyboard_input_event.html" title="pp::KeyboardInputEvent" alt="" coords="405,613,579,640"></area><area shape="rect" id="node18" href="classpp_1_1_mouse_input_event.html" title="This class handles mouse events." alt="" coords="414,664,570,691"></area><area shape="rect" id="node19" href="classpp_1_1_touch_input_event.html" title="pp::TouchInputEvent" alt="" coords="417,715,567,741"></area><area shape="rect" id="node20" href="classpp_1_1_wheel_input_event.html" title="pp::WheelInputEvent" alt="" coords="416,765,568,792"></area></map>
</td></tr>
<tr><td><img src="inherit_graph_24.png" border="0" alt="" usemap="#pp_1_1_size" />
<map name="pp_1_1_size" id="pp_1_1_size">
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/namespacepp.html b/native_client_sdk/doc_generated/pepper_stable/cpp/namespacepp.html
index d04f649..e888367 100644
--- a/native_client_sdk/doc_generated/pepper_stable/cpp/namespacepp.html
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/namespacepp.html
@@ -20,6 +20,8 @@ Classes</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_buffer.html">AudioBuffer</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_config.html">AudioConfig</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A 16 bit stereo <a class="el" href="classpp_1_1_audio_config.html" title="A 16 bit stereo AudioConfig resource.">AudioConfig</a> resource. <a href="classpp_1_1_audio_config.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_audio_encoder.html">AudioEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classpp_1_1_audio.html" title="An audio resource.">Audio</a> encoder interface. <a href="classpp_1_1_audio_encoder.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This API enables you to implement and receive callbacks when Pepper operations complete asynchronously. <a href="classpp_1_1_completion_callback.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_completion_callback_with_output.html">CompletionCallbackWithOutput</a></td></tr>
@@ -112,6 +114,8 @@ Classes</h2><table class="memberdecls">
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_var_dictionary.html">VarDictionary</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_decoder.html">VideoDecoder</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video decoder interface. <a href="classpp_1_1_video_decoder.html#details">More...</a><br /></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html">VideoEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video encoder interface. <a href="classpp_1_1_video_encoder.html#details">More...</a><br /></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_frame.html">VideoFrame</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_view.html">View</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class represents the state of the view for an instance and contains functions for retrieving the current state of that view. <a href="classpp_1_1_view.html#details">More...</a><br /></td></tr>
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/video__encoder_8h.html b/native_client_sdk/doc_generated/pepper_stable/cpp/video__encoder_8h.html
new file mode 100644
index 0000000..2de4073
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/video__encoder_8h.html
@@ -0,0 +1,32 @@
+{{+bindTo:partials.standard_nacl_api}}
+<h1>video_encoder.h File Reference</h1>
+<div id="doxygen-ref">
+{{- dummy div to appease doxygen -}}
+ <div>
+<!-- Generated by Doxygen 1.7.6.1 -->
+
+
+</div>
+<!--header-->
+<div class="contents">
+<div class="textblock"><div class="dynheader">
+Include dependency graph for video_encoder.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="video__encoder_8h__incl.png" border="0" usemap="#video__encoder_8h" alt="" /></div>
+<map name="video__encoder_8h" id="video__encoder_8h">
+</map>
+</div>
+</div><h2>
+Classes</h2><table class="memberdecls">
+
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_video_encoder.html">pp::VideoEncoder</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Video encoder interface. <a href="classpp_1_1_video_encoder.html#details">More...</a><br /></td></tr>
+</table><h2>
+Namespaces</h2><table class="memberdecls">
+<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepp.html">pp</a></td></tr>
+</table>
+<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file defines the API to create and use a VideoEncoder resource. </p>
+</div></div><!-- contents -->
+</div>
+{{/partials.standard_nacl_api}}
diff --git a/native_client_sdk/doc_generated/pepper_stable/cpp/video__encoder_8h__incl.png b/native_client_sdk/doc_generated/pepper_stable/cpp/video__encoder_8h__incl.png
new file mode 100644
index 0000000..553cbab
--- /dev/null
+++ b/native_client_sdk/doc_generated/pepper_stable/cpp/video__encoder_8h__incl.png
Binary files differ
diff --git a/native_client_sdk/doc_generated/pepper_stable/index.html b/native_client_sdk/doc_generated/pepper_stable/index.html
index c25f5c0..305070b 100644
--- a/native_client_sdk/doc_generated/pepper_stable/index.html
+++ b/native_client_sdk/doc_generated/pepper_stable/index.html
@@ -2,8 +2,8 @@
<section id="pepper-api-reference-stable">
<h1 id="pepper-api-reference-stable">Pepper API Reference (Stable)</h1>
-<p>This page lists the API for Pepper 40. Apps that use this API can
-run in Chrome 40 or higher.</p>
+<p>This page lists the API for Pepper 47. Apps that use this API can
+run in Chrome 47 or higher.</p>
<h2 id="pepper-c-api-reference"><a class="reference internal" href="/native-client/c-api.html#pepper-stable-c-index"><em>Pepper C API Reference</em></a></h2>
<h2 id="id1"><a class="reference internal" href="/native-client/cpp-api.html#pepper-stable-cpp-index"><em>Pepper C++ API Reference</em></a></h2>
</section>
diff --git a/native_client_sdk/doc_generated/sdk/download.html b/native_client_sdk/doc_generated/sdk/download.html
index e2380da2..6052da14 100644
--- a/native_client_sdk/doc_generated/sdk/download.html
+++ b/native_client_sdk/doc_generated/sdk/download.html
@@ -116,7 +116,6 @@ Bundles:
pepper_36 (beta)
pepper_37 (dev)
pepper_canary (canary)
- bionic_canary (canary)
</pre>
<p>The sample output above shows that several bundles are available for
download, and that you have already installed the latest revision of the
@@ -178,7 +177,6 @@ Bundles:
pepper_36 (beta)
pepper_37 (dev)
pepper_canary (canary)
- bionic_canary (canary)
</pre>
<p>If you run <code>naclsdk update</code> now, it warns you with a message similar to
this:</p>
diff --git a/native_client_sdk/src/doc/c-api-beta.rst b/native_client_sdk/src/doc/c-api-beta.rst
index cf32ab7..0cb54d4 100644
--- a/native_client_sdk/src/doc/c-api-beta.rst
+++ b/native_client_sdk/src/doc/c-api-beta.rst
@@ -7,8 +7,8 @@
Pepper C API Reference (Beta)
##########################################
-This page lists the C API for Pepper 41. Apps that use this API can
-run in Chrome 41 or higher.
+This page lists the C API for Pepper 48. Apps that use this API can
+run in Chrome 48 or higher.
`Interfaces <pepper_beta/c/group___interfaces.html>`__
=============================================================
@@ -18,6 +18,8 @@ run in Chrome 41 or higher.
* `PPB_AudioConfig <pepper_beta/c/struct_p_p_b___audio_config__1__1.html>`__
+ * `PPB_AudioEncoder <pepper_beta/c/struct_p_p_b___audio_encoder__0__1.html>`__
+
* `PPB_Compositor <pepper_beta/c/struct_p_p_b___compositor__0__1.html>`__
* `PPB_CompositorLayer <pepper_beta/c/struct_p_p_b___compositor_layer__0__2.html>`__
@@ -28,8 +30,6 @@ run in Chrome 41 or higher.
* `PPB_FileIO <pepper_beta/c/struct_p_p_b___file_i_o__1__1.html>`__
- * `PPB_FileMapping <pepper_beta/c/struct_p_p_b___file_mapping__0__1.html>`__
-
* `PPB_FileRef <pepper_beta/c/struct_p_p_b___file_ref__1__2.html>`__
* `PPB_FileSystem <pepper_beta/c/struct_p_p_b___file_system__1__0.html>`__
@@ -114,7 +114,7 @@ run in Chrome 41 or higher.
* `PPB_TouchInputEvent <pepper_beta/c/struct_p_p_b___touch_input_event__1__0.html>`__
- * `PPB_UDPSocket <pepper_beta/c/struct_p_p_b___u_d_p_socket__1__1.html>`__
+ * `PPB_UDPSocket <pepper_beta/c/struct_p_p_b___u_d_p_socket__1__2.html>`__
* `PPB_URLLoader <pepper_beta/c/struct_p_p_b___u_r_l_loader__1__0.html>`__
@@ -130,7 +130,9 @@ run in Chrome 41 or higher.
* `PPB_VarDictionary <pepper_beta/c/struct_p_p_b___var_dictionary__1__0.html>`__
- * `PPB_VideoDecoder <pepper_beta/c/struct_p_p_b___video_decoder__1__0.html>`__
+ * `PPB_VideoDecoder <pepper_beta/c/struct_p_p_b___video_decoder__1__1.html>`__
+
+ * `PPB_VideoEncoder <pepper_beta/c/struct_p_p_b___video_encoder__0__2.html>`__
* `PPB_VideoFrame <pepper_beta/c/struct_p_p_b___video_frame__0__1.html>`__
@@ -157,6 +159,12 @@ run in Chrome 41 or higher.
==========================================================
* `PP_ArrayOutput <pepper_beta/c/struct_p_p___array_output.html>`__
+ * `PP_AudioBitstreamBuffer <pepper_beta/c/struct_p_p___audio_bitstream_buffer.html>`__
+
+ * `PP_AudioProfileDescription <pepper_beta/c/struct_p_p___audio_profile_description.html>`__
+
+ * `PP_BitstreamBuffer <pepper_beta/c/struct_p_p___bitstream_buffer.html>`__
+
* `PP_CompletionCallback <pepper_beta/c/struct_p_p___completion_callback.html>`__
* `PP_DirectoryEntry <pepper_beta/c/struct_p_p___directory_entry.html>`__
@@ -203,6 +211,10 @@ run in Chrome 41 or higher.
* `PP_VideoPicture <pepper_beta/c/struct_p_p___video_picture__0__1.html>`__
+ * `PP_VideoProfileDescription <pepper_beta/c/struct_p_p___video_profile_description.html>`__
+
+ * `PP_VideoProfileDescription <pepper_beta/c/struct_p_p___video_profile_description__0__1.html>`__
+
* `PP_VarValue <pepper_beta/c/union_p_p___var_value.html>`__
@@ -266,6 +278,8 @@ Files
* `ppb_audio_config.h <pepper_beta/c/ppb__audio__config_8h.html>`__
+ * `ppb_audio_encoder.h <pepper_beta/c/ppb__audio__encoder_8h.html>`__
+
* `ppb_compositor.h <pepper_beta/c/ppb__compositor_8h.html>`__
* `ppb_compositor_layer.h <pepper_beta/c/ppb__compositor__layer_8h.html>`__
@@ -276,8 +290,6 @@ Files
* `ppb_file_io.h <pepper_beta/c/ppb__file__io_8h.html>`__
- * `ppb_file_mapping.h <pepper_beta/c/ppb__file__mapping_8h.html>`__
-
* `ppb_file_ref.h <pepper_beta/c/ppb__file__ref_8h.html>`__
* `ppb_file_system.h <pepper_beta/c/ppb__file__system_8h.html>`__
@@ -342,6 +354,8 @@ Files
* `ppb_video_decoder.h <pepper_beta/c/ppb__video__decoder_8h.html>`__
+ * `ppb_video_encoder.h <pepper_beta/c/ppb__video__encoder_8h.html>`__
+
* `ppb_video_frame.h <pepper_beta/c/ppb__video__frame_8h.html>`__
* `ppb_view.h <pepper_beta/c/ppb__view_8h.html>`__
diff --git a/native_client_sdk/src/doc/c-api-dev.rst b/native_client_sdk/src/doc/c-api-dev.rst
index 41f5886..b37509e 100644
--- a/native_client_sdk/src/doc/c-api-dev.rst
+++ b/native_client_sdk/src/doc/c-api-dev.rst
@@ -7,8 +7,8 @@
Pepper C API Reference (Dev)
##########################################
-This page lists the C API for Pepper 42. Apps that use this API can
-run in Chrome 42 or higher.
+This page lists the C API for Pepper 49. Apps that use this API can
+run in Chrome 49 or higher.
`Interfaces <pepper_dev/c/group___interfaces.html>`__
=============================================================
@@ -18,6 +18,8 @@ run in Chrome 42 or higher.
* `PPB_AudioConfig <pepper_dev/c/struct_p_p_b___audio_config__1__1.html>`__
+ * `PPB_AudioEncoder <pepper_dev/c/struct_p_p_b___audio_encoder__0__1.html>`__
+
* `PPB_Compositor <pepper_dev/c/struct_p_p_b___compositor__0__1.html>`__
* `PPB_CompositorLayer <pepper_dev/c/struct_p_p_b___compositor_layer__0__2.html>`__
@@ -28,8 +30,6 @@ run in Chrome 42 or higher.
* `PPB_FileIO <pepper_dev/c/struct_p_p_b___file_i_o__1__1.html>`__
- * `PPB_FileMapping <pepper_dev/c/struct_p_p_b___file_mapping__0__1.html>`__
-
* `PPB_FileRef <pepper_dev/c/struct_p_p_b___file_ref__1__2.html>`__
* `PPB_FileSystem <pepper_dev/c/struct_p_p_b___file_system__1__0.html>`__
@@ -114,7 +114,7 @@ run in Chrome 42 or higher.
* `PPB_TouchInputEvent <pepper_dev/c/struct_p_p_b___touch_input_event__1__0.html>`__
- * `PPB_UDPSocket <pepper_dev/c/struct_p_p_b___u_d_p_socket__1__1.html>`__
+ * `PPB_UDPSocket <pepper_dev/c/struct_p_p_b___u_d_p_socket__1__2.html>`__
* `PPB_URLLoader <pepper_dev/c/struct_p_p_b___u_r_l_loader__1__0.html>`__
@@ -130,7 +130,9 @@ run in Chrome 42 or higher.
* `PPB_VarDictionary <pepper_dev/c/struct_p_p_b___var_dictionary__1__0.html>`__
- * `PPB_VideoDecoder <pepper_dev/c/struct_p_p_b___video_decoder__1__0.html>`__
+ * `PPB_VideoDecoder <pepper_dev/c/struct_p_p_b___video_decoder__1__1.html>`__
+
+ * `PPB_VideoEncoder <pepper_dev/c/struct_p_p_b___video_encoder__0__2.html>`__
* `PPB_VideoFrame <pepper_dev/c/struct_p_p_b___video_frame__0__1.html>`__
@@ -157,6 +159,12 @@ run in Chrome 42 or higher.
==========================================================
* `PP_ArrayOutput <pepper_dev/c/struct_p_p___array_output.html>`__
+ * `PP_AudioBitstreamBuffer <pepper_dev/c/struct_p_p___audio_bitstream_buffer.html>`__
+
+ * `PP_AudioProfileDescription <pepper_dev/c/struct_p_p___audio_profile_description.html>`__
+
+ * `PP_BitstreamBuffer <pepper_dev/c/struct_p_p___bitstream_buffer.html>`__
+
* `PP_CompletionCallback <pepper_dev/c/struct_p_p___completion_callback.html>`__
* `PP_DirectoryEntry <pepper_dev/c/struct_p_p___directory_entry.html>`__
@@ -203,6 +211,10 @@ run in Chrome 42 or higher.
* `PP_VideoPicture <pepper_dev/c/struct_p_p___video_picture__0__1.html>`__
+ * `PP_VideoProfileDescription <pepper_dev/c/struct_p_p___video_profile_description.html>`__
+
+ * `PP_VideoProfileDescription <pepper_dev/c/struct_p_p___video_profile_description__0__1.html>`__
+
* `PP_VarValue <pepper_dev/c/union_p_p___var_value.html>`__
@@ -266,6 +278,8 @@ Files
* `ppb_audio_config.h <pepper_dev/c/ppb__audio__config_8h.html>`__
+ * `ppb_audio_encoder.h <pepper_dev/c/ppb__audio__encoder_8h.html>`__
+
* `ppb_compositor.h <pepper_dev/c/ppb__compositor_8h.html>`__
* `ppb_compositor_layer.h <pepper_dev/c/ppb__compositor__layer_8h.html>`__
@@ -276,8 +290,6 @@ Files
* `ppb_file_io.h <pepper_dev/c/ppb__file__io_8h.html>`__
- * `ppb_file_mapping.h <pepper_dev/c/ppb__file__mapping_8h.html>`__
-
* `ppb_file_ref.h <pepper_dev/c/ppb__file__ref_8h.html>`__
* `ppb_file_system.h <pepper_dev/c/ppb__file__system_8h.html>`__
@@ -342,6 +354,8 @@ Files
* `ppb_video_decoder.h <pepper_dev/c/ppb__video__decoder_8h.html>`__
+ * `ppb_video_encoder.h <pepper_dev/c/ppb__video__encoder_8h.html>`__
+
* `ppb_video_frame.h <pepper_dev/c/ppb__video__frame_8h.html>`__
* `ppb_view.h <pepper_dev/c/ppb__view_8h.html>`__
diff --git a/native_client_sdk/src/doc/c-api.rst b/native_client_sdk/src/doc/c-api.rst
index 1844cfa..0ce774f 100644
--- a/native_client_sdk/src/doc/c-api.rst
+++ b/native_client_sdk/src/doc/c-api.rst
@@ -7,8 +7,8 @@
Pepper C API Reference (Stable)
##########################################
-This page lists the C API for Pepper 40. Apps that use this API can
-run in Chrome 40 or higher.
+This page lists the C API for Pepper 47. Apps that use this API can
+run in Chrome 47 or higher.
`Interfaces <pepper_stable/c/group___interfaces.html>`__
=============================================================
@@ -18,6 +18,8 @@ run in Chrome 40 or higher.
* `PPB_AudioConfig <pepper_stable/c/struct_p_p_b___audio_config__1__1.html>`__
+ * `PPB_AudioEncoder <pepper_stable/c/struct_p_p_b___audio_encoder__0__1.html>`__
+
* `PPB_Compositor <pepper_stable/c/struct_p_p_b___compositor__0__1.html>`__
* `PPB_CompositorLayer <pepper_stable/c/struct_p_p_b___compositor_layer__0__2.html>`__
@@ -28,8 +30,6 @@ run in Chrome 40 or higher.
* `PPB_FileIO <pepper_stable/c/struct_p_p_b___file_i_o__1__1.html>`__
- * `PPB_FileMapping <pepper_stable/c/struct_p_p_b___file_mapping__0__1.html>`__
-
* `PPB_FileRef <pepper_stable/c/struct_p_p_b___file_ref__1__2.html>`__
* `PPB_FileSystem <pepper_stable/c/struct_p_p_b___file_system__1__0.html>`__
@@ -108,13 +108,13 @@ run in Chrome 40 or higher.
* `PPB_OpenGLES2VertexArrayObject <pepper_stable/c/struct_p_p_b___open_g_l_e_s2_vertex_array_object__1__0.html>`__
- * `PPB_TCPSocket <pepper_stable/c/struct_p_p_b___t_c_p_socket__1__1.html>`__
+ * `PPB_TCPSocket <pepper_stable/c/struct_p_p_b___t_c_p_socket__1__2.html>`__
* `PPB_TextInputController <pepper_stable/c/struct_p_p_b___text_input_controller__1__0.html>`__
* `PPB_TouchInputEvent <pepper_stable/c/struct_p_p_b___touch_input_event__1__0.html>`__
- * `PPB_UDPSocket <pepper_stable/c/struct_p_p_b___u_d_p_socket__1__0.html>`__
+ * `PPB_UDPSocket <pepper_stable/c/struct_p_p_b___u_d_p_socket__1__2.html>`__
* `PPB_URLLoader <pepper_stable/c/struct_p_p_b___u_r_l_loader__1__0.html>`__
@@ -130,7 +130,9 @@ run in Chrome 40 or higher.
* `PPB_VarDictionary <pepper_stable/c/struct_p_p_b___var_dictionary__1__0.html>`__
- * `PPB_VideoDecoder <pepper_stable/c/struct_p_p_b___video_decoder__1__0.html>`__
+ * `PPB_VideoDecoder <pepper_stable/c/struct_p_p_b___video_decoder__1__1.html>`__
+
+ * `PPB_VideoEncoder <pepper_stable/c/struct_p_p_b___video_encoder__0__2.html>`__
* `PPB_VideoFrame <pepper_stable/c/struct_p_p_b___video_frame__0__1.html>`__
@@ -157,6 +159,12 @@ run in Chrome 40 or higher.
==========================================================
* `PP_ArrayOutput <pepper_stable/c/struct_p_p___array_output.html>`__
+ * `PP_AudioBitstreamBuffer <pepper_stable/c/struct_p_p___audio_bitstream_buffer.html>`__
+
+ * `PP_AudioProfileDescription <pepper_stable/c/struct_p_p___audio_profile_description.html>`__
+
+ * `PP_BitstreamBuffer <pepper_stable/c/struct_p_p___bitstream_buffer.html>`__
+
* `PP_CompletionCallback <pepper_stable/c/struct_p_p___completion_callback.html>`__
* `PP_DirectoryEntry <pepper_stable/c/struct_p_p___directory_entry.html>`__
@@ -203,6 +211,10 @@ run in Chrome 40 or higher.
* `PP_VideoPicture <pepper_stable/c/struct_p_p___video_picture__0__1.html>`__
+ * `PP_VideoProfileDescription <pepper_stable/c/struct_p_p___video_profile_description.html>`__
+
+ * `PP_VideoProfileDescription <pepper_stable/c/struct_p_p___video_profile_description__0__1.html>`__
+
* `PP_VarValue <pepper_stable/c/union_p_p___var_value.html>`__
@@ -266,6 +278,8 @@ Files
* `ppb_audio_config.h <pepper_stable/c/ppb__audio__config_8h.html>`__
+ * `ppb_audio_encoder.h <pepper_stable/c/ppb__audio__encoder_8h.html>`__
+
* `ppb_compositor.h <pepper_stable/c/ppb__compositor_8h.html>`__
* `ppb_compositor_layer.h <pepper_stable/c/ppb__compositor__layer_8h.html>`__
@@ -276,8 +290,6 @@ Files
* `ppb_file_io.h <pepper_stable/c/ppb__file__io_8h.html>`__
- * `ppb_file_mapping.h <pepper_stable/c/ppb__file__mapping_8h.html>`__
-
* `ppb_file_ref.h <pepper_stable/c/ppb__file__ref_8h.html>`__
* `ppb_file_system.h <pepper_stable/c/ppb__file__system_8h.html>`__
@@ -342,6 +354,8 @@ Files
* `ppb_video_decoder.h <pepper_stable/c/ppb__video__decoder_8h.html>`__
+ * `ppb_video_encoder.h <pepper_stable/c/ppb__video__encoder_8h.html>`__
+
* `ppb_video_frame.h <pepper_stable/c/ppb__video__frame_8h.html>`__
* `ppb_view.h <pepper_stable/c/ppb__view_8h.html>`__
diff --git a/native_client_sdk/src/doc/cpp-api-beta.rst b/native_client_sdk/src/doc/cpp-api-beta.rst
index ded3e2f5..555e35b 100644
--- a/native_client_sdk/src/doc/cpp-api-beta.rst
+++ b/native_client_sdk/src/doc/cpp-api-beta.rst
@@ -7,8 +7,8 @@
Pepper C++ API Reference (Beta)
############################################
-This page lists the C++ API for Pepper 41. Apps that use this API can
-run in Chrome 41 or higher.
+This page lists the C++ API for Pepper 48. Apps that use this API can
+run in Chrome 48 or higher.
`Classes <pepper_beta/cpp/inherits.html>`__
==================================================
@@ -18,6 +18,8 @@ run in Chrome 41 or higher.
* `AudioConfig <pepper_beta/cpp/classpp_1_1_audio_config.html>`__
+ * `AudioEncoder <pepper_beta/cpp/classpp_1_1_audio_encoder.html>`__
+
* `CompletionCallback <pepper_beta/cpp/classpp_1_1_completion_callback.html>`__
* `CompletionCallbackFactory <pepper_beta/cpp/classpp_1_1_completion_callback_factory.html>`__
@@ -126,6 +128,8 @@ run in Chrome 41 or higher.
* `VideoDecoder <pepper_beta/cpp/classpp_1_1_video_decoder.html>`__
+ * `VideoEncoder <pepper_beta/cpp/classpp_1_1_video_encoder.html>`__
+
* `VideoFrame <pepper_beta/cpp/classpp_1_1_video_frame.html>`__
* `View <pepper_beta/cpp/classpp_1_1_view.html>`__
@@ -145,6 +149,8 @@ Files
* `audio_config.h <pepper_beta/cpp/audio__config_8h.html>`__
+ * `audio_encoder.h <pepper_beta/cpp/audio__encoder_8h.html>`__
+
* `completion_callback.h <pepper_beta/cpp/completion__callback_8h.html>`__
* `completion_callback_factory.h <pepper_beta/cpp/completion__callback__factory_8h.html>`__
@@ -243,6 +249,8 @@ Files
* `video_decoder.h <pepper_beta/cpp/video__decoder_8h.html>`__
+ * `video_encoder.h <pepper_beta/cpp/video__encoder_8h.html>`__
+
* `video_frame.h <pepper_beta/cpp/video__frame_8h.html>`__
* `view.h <pepper_beta/cpp/view_8h.html>`__
diff --git a/native_client_sdk/src/doc/cpp-api-dev.rst b/native_client_sdk/src/doc/cpp-api-dev.rst
index cf678d8..e0211f7 100644
--- a/native_client_sdk/src/doc/cpp-api-dev.rst
+++ b/native_client_sdk/src/doc/cpp-api-dev.rst
@@ -7,8 +7,8 @@
Pepper C++ API Reference (Dev)
############################################
-This page lists the C++ API for Pepper 42. Apps that use this API can
-run in Chrome 42 or higher.
+This page lists the C++ API for Pepper 49. Apps that use this API can
+run in Chrome 49 or higher.
`Classes <pepper_dev/cpp/inherits.html>`__
==================================================
@@ -18,6 +18,8 @@ run in Chrome 42 or higher.
* `AudioConfig <pepper_dev/cpp/classpp_1_1_audio_config.html>`__
+ * `AudioEncoder <pepper_dev/cpp/classpp_1_1_audio_encoder.html>`__
+
* `CompletionCallback <pepper_dev/cpp/classpp_1_1_completion_callback.html>`__
* `CompletionCallbackFactory <pepper_dev/cpp/classpp_1_1_completion_callback_factory.html>`__
@@ -126,6 +128,8 @@ run in Chrome 42 or higher.
* `VideoDecoder <pepper_dev/cpp/classpp_1_1_video_decoder.html>`__
+ * `VideoEncoder <pepper_dev/cpp/classpp_1_1_video_encoder.html>`__
+
* `VideoFrame <pepper_dev/cpp/classpp_1_1_video_frame.html>`__
* `View <pepper_dev/cpp/classpp_1_1_view.html>`__
@@ -145,6 +149,8 @@ Files
* `audio_config.h <pepper_dev/cpp/audio__config_8h.html>`__
+ * `audio_encoder.h <pepper_dev/cpp/audio__encoder_8h.html>`__
+
* `completion_callback.h <pepper_dev/cpp/completion__callback_8h.html>`__
* `completion_callback_factory.h <pepper_dev/cpp/completion__callback__factory_8h.html>`__
@@ -243,6 +249,8 @@ Files
* `video_decoder.h <pepper_dev/cpp/video__decoder_8h.html>`__
+ * `video_encoder.h <pepper_dev/cpp/video__encoder_8h.html>`__
+
* `video_frame.h <pepper_dev/cpp/video__frame_8h.html>`__
* `view.h <pepper_dev/cpp/view_8h.html>`__
diff --git a/native_client_sdk/src/doc/cpp-api.rst b/native_client_sdk/src/doc/cpp-api.rst
index 3e13ab3b..b378274 100644
--- a/native_client_sdk/src/doc/cpp-api.rst
+++ b/native_client_sdk/src/doc/cpp-api.rst
@@ -7,8 +7,8 @@
Pepper C++ API Reference (Stable)
############################################
-This page lists the C++ API for Pepper 40. Apps that use this API can
-run in Chrome 40 or higher.
+This page lists the C++ API for Pepper 47. Apps that use this API can
+run in Chrome 47 or higher.
`Classes <pepper_stable/cpp/inherits.html>`__
==================================================
@@ -18,6 +18,8 @@ run in Chrome 40 or higher.
* `AudioConfig <pepper_stable/cpp/classpp_1_1_audio_config.html>`__
+ * `AudioEncoder <pepper_stable/cpp/classpp_1_1_audio_encoder.html>`__
+
* `CompletionCallback <pepper_stable/cpp/classpp_1_1_completion_callback.html>`__
* `CompletionCallbackFactory <pepper_stable/cpp/classpp_1_1_completion_callback_factory.html>`__
@@ -126,6 +128,8 @@ run in Chrome 40 or higher.
* `VideoDecoder <pepper_stable/cpp/classpp_1_1_video_decoder.html>`__
+ * `VideoEncoder <pepper_stable/cpp/classpp_1_1_video_encoder.html>`__
+
* `VideoFrame <pepper_stable/cpp/classpp_1_1_video_frame.html>`__
* `View <pepper_stable/cpp/classpp_1_1_view.html>`__
@@ -145,6 +149,8 @@ Files
* `audio_config.h <pepper_stable/cpp/audio__config_8h.html>`__
+ * `audio_encoder.h <pepper_stable/cpp/audio__encoder_8h.html>`__
+
* `completion_callback.h <pepper_stable/cpp/completion__callback_8h.html>`__
* `completion_callback_factory.h <pepper_stable/cpp/completion__callback__factory_8h.html>`__
@@ -243,6 +249,8 @@ Files
* `video_decoder.h <pepper_stable/cpp/video__decoder_8h.html>`__
+ * `video_encoder.h <pepper_stable/cpp/video__encoder_8h.html>`__
+
* `video_frame.h <pepper_stable/cpp/video__frame_8h.html>`__
* `view.h <pepper_stable/cpp/view_8h.html>`__
diff --git a/native_client_sdk/src/doc/doxygen/generate_docs.py b/native_client_sdk/src/doc/doxygen/generate_docs.py
index 13316ef..4cc475d 100755
--- a/native_client_sdk/src/doc/doxygen/generate_docs.py
+++ b/native_client_sdk/src/doc/doxygen/generate_docs.py
@@ -200,6 +200,18 @@ def GenerateDoxyfile(template_filename, out_dirname, doc_dirname, doxyfile):
'script_dirname': SCRIPT_DIR})
+def CheckDoxygenVersion(doxygen):
+ version = subprocess.check_output([doxygen, '--version']).strip()
+ url = 'http://ftp.stack.nl/pub/users/dimitri/doxygen-1.7.6.1.linux.bin.tar.gz'
+ if version != '1.7.6.1':
+ print 'Doxygen version 1.7.6.1 is required'
+ print 'The version being used (%s) is version %s' % (doxygen, version)
+ print 'The simplest way to grab this version is to download it directly:'
+ print url
+ print 'Then either add it to your $PATH or set $DOXYGEN to point to binary.'
+ sys.exit(1)
+
+
def RunDoxygen(out_dirname, doxyfile):
Trace('Removing old output directory %s' % out_dirname)
RemoveDir(out_dirname)
@@ -208,6 +220,7 @@ def RunDoxygen(out_dirname, doxyfile):
os.makedirs(out_dirname)
doxygen = os.environ.get('DOXYGEN', 'doxygen')
+ CheckDoxygenVersion(doxygen)
cmd = [doxygen, doxyfile]
Trace('Running Doxygen:\n %s' % ' '.join(cmd))
subprocess.check_call(cmd)
diff --git a/native_client_sdk/src/doc/pepper_beta/index.rst b/native_client_sdk/src/doc/pepper_beta/index.rst
index 8752eb1..e20bc35 100644
--- a/native_client_sdk/src/doc/pepper_beta/index.rst
+++ b/native_client_sdk/src/doc/pepper_beta/index.rst
@@ -9,8 +9,8 @@
Pepper API Reference (Beta)
########################################
-This page lists the API for Pepper 41. Apps that use this API can
-run in Chrome 41 or higher.
+This page lists the API for Pepper 48. Apps that use this API can
+run in Chrome 48 or higher.
:ref:`Pepper C API Reference <pepper_beta_c_index>`
===========================================================
diff --git a/native_client_sdk/src/doc/pepper_dev/index.rst b/native_client_sdk/src/doc/pepper_dev/index.rst
index 4269e59..4ce9ab3 100644
--- a/native_client_sdk/src/doc/pepper_dev/index.rst
+++ b/native_client_sdk/src/doc/pepper_dev/index.rst
@@ -9,8 +9,8 @@
Pepper API Reference (Dev)
########################################
-This page lists the API for Pepper 42. Apps that use this API can
-run in Chrome 42 or higher.
+This page lists the API for Pepper 49. Apps that use this API can
+run in Chrome 49 or higher.
:ref:`Pepper C API Reference <pepper_dev_c_index>`
===========================================================
diff --git a/native_client_sdk/src/doc/pepper_stable/index.rst b/native_client_sdk/src/doc/pepper_stable/index.rst
index 158fac4..66266dd 100644
--- a/native_client_sdk/src/doc/pepper_stable/index.rst
+++ b/native_client_sdk/src/doc/pepper_stable/index.rst
@@ -9,8 +9,8 @@
Pepper API Reference (Stable)
########################################
-This page lists the API for Pepper 40. Apps that use this API can
-run in Chrome 40 or higher.
+This page lists the API for Pepper 47. Apps that use this API can
+run in Chrome 47 or higher.
:ref:`Pepper C API Reference <pepper_stable_c_index>`
===========================================================