Remove VideoDecodeAccelerator::Client::NotifyEndOfStream / PPP_VideoDecoder_Dev::EndOfStream
Nobody's ever called it and it doesn't make sense given the API: EOS is
signalled when no more bits are available to Decode(), via Flush().

BUG=109819
TEST=trybots


Review URL: http://codereview.chromium.org/9186022

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117545 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/ppapi/api/dev/ppp_video_decoder_dev.idl b/ppapi/api/dev/ppp_video_decoder_dev.idl
index 529a7eb..2a6e419 100644
--- a/ppapi/api/dev/ppp_video_decoder_dev.idl
+++ b/ppapi/api/dev/ppp_video_decoder_dev.idl
@@ -7,7 +7,8 @@
  * This file defines the <code>PPP_VideoDecoder_Dev</code> interface.
  */
 label Chrome {
-  M14 = 0.9
+  M14 = 0.9,
+  M18 = 0.10
 };
 
 /**
@@ -76,6 +77,7 @@
    *  |instance| the plugin instance to which the callback is responding.
    *  |decoder| the PPB_VideoDecoder_Dev resource.
    */
+  [deprecate=0.10]
   void EndOfStream(
       [in] PP_Instance instance,
       [in] PP_Resource decoder);
diff --git a/ppapi/c/dev/ppp_video_decoder_dev.h b/ppapi/c/dev/ppp_video_decoder_dev.h
index 8ad59f05..a06b582 100644
--- a/ppapi/c/dev/ppp_video_decoder_dev.h
+++ b/ppapi/c/dev/ppp_video_decoder_dev.h
@@ -3,7 +3,7 @@
  * found in the LICENSE file.
  */
 
-/* From dev/ppp_video_decoder_dev.idl modified Tue Oct 11 10:01:39 2011. */
+/* From dev/ppp_video_decoder_dev.idl modified Wed Jan 11 14:58:58 2012. */
 
 #ifndef PPAPI_C_DEV_PPP_VIDEO_DECODER_DEV_H_
 #define PPAPI_C_DEV_PPP_VIDEO_DECODER_DEV_H_
@@ -16,7 +16,8 @@
 #include "ppapi/c/pp_stdint.h"
 
 #define PPP_VIDEODECODER_DEV_INTERFACE_0_9 "PPP_VideoDecoder(Dev);0.9"
-#define PPP_VIDEODECODER_DEV_INTERFACE PPP_VIDEODECODER_DEV_INTERFACE_0_9
+#define PPP_VIDEODECODER_DEV_INTERFACE_0_10 "PPP_VideoDecoder(Dev);0.10"
+#define PPP_VIDEODECODER_DEV_INTERFACE PPP_VIDEODECODER_DEV_INTERFACE_0_10
 
 /**
  * @file
@@ -35,7 +36,7 @@
  *
  * See PPB_VideoDecoder_Dev for general usage tips.
  */
-struct PPP_VideoDecoder_Dev_0_9 {
+struct PPP_VideoDecoder_Dev_0_10 {
   /**
    * Callback function to provide buffers for the decoded output pictures. If
    * succeeds plugin must provide buffers through AssignPictureBuffers function
@@ -80,16 +81,6 @@
                        PP_Resource decoder,
                        const struct PP_Picture_Dev* picture);
   /**
-   * Callback function to tell the plugin that decoder has decoded end of stream
-   * marker and output all the pictures that should be displayed from the
-   * stream.
-   *
-   * Parameters:
-   *  |instance| the plugin instance to which the callback is responding.
-   *  |decoder| the PPB_VideoDecoder_Dev resource.
-   */
-  void (*EndOfStream)(PP_Instance instance, PP_Resource decoder);
-  /**
    * Error handler callback for decoder to deliver information about detected
    * errors to the plugin.
    *
@@ -103,7 +94,24 @@
                       PP_VideoDecodeError_Dev error);
 };
 
-typedef struct PPP_VideoDecoder_Dev_0_9 PPP_VideoDecoder_Dev;
+typedef struct PPP_VideoDecoder_Dev_0_10 PPP_VideoDecoder_Dev;
+
+struct PPP_VideoDecoder_Dev_0_9 {
+  void (*ProvidePictureBuffers)(PP_Instance instance,
+                                PP_Resource decoder,
+                                uint32_t req_num_of_bufs,
+                                const struct PP_Size* dimensions);
+  void (*DismissPictureBuffer)(PP_Instance instance,
+                               PP_Resource decoder,
+                               int32_t picture_buffer_id);
+  void (*PictureReady)(PP_Instance instance,
+                       PP_Resource decoder,
+                       const struct PP_Picture_Dev* picture);
+  void (*EndOfStream)(PP_Instance instance, PP_Resource decoder);
+  void (*NotifyError)(PP_Instance instance,
+                      PP_Resource decoder,
+                      PP_VideoDecodeError_Dev error);
+};
 /**
  * @}
  */
diff --git a/ppapi/cpp/dev/video_decoder_client_dev.cc b/ppapi/cpp/dev/video_decoder_client_dev.cc
index 6186745c..20cd329c 100644
--- a/ppapi/cpp/dev/video_decoder_client_dev.cc
+++ b/ppapi/cpp/dev/video_decoder_client_dev.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -50,15 +50,6 @@
   static_cast<VideoDecoderClient_Dev*>(object)->PictureReady(decoder, *picture);
 }
 
-void EndOfStream(PP_Instance instance,
-                 PP_Resource decoder) {
-  void* object = pp::Instance::GetPerInstanceObject(
-      instance, kPPPVideoDecoderInterface);
-  if (!object)
-    return;
-  static_cast<VideoDecoderClient_Dev*>(object)->EndOfStream(decoder);
-}
-
 void NotifyError(PP_Instance instance,
                  PP_Resource decoder,
                  PP_VideoDecodeError_Dev error) {
@@ -73,7 +64,6 @@
   &ProvidePictureBuffers,
   &DismissPictureBuffer,
   &PictureReady,
-  &EndOfStream,
   &NotifyError,
 };
 
diff --git a/ppapi/cpp/dev/video_decoder_client_dev.h b/ppapi/cpp/dev/video_decoder_client_dev.h
index 5510b4c..7280736 100644
--- a/ppapi/cpp/dev/video_decoder_client_dev.h
+++ b/ppapi/cpp/dev/video_decoder_client_dev.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -36,10 +36,6 @@
   virtual void PictureReady(PP_Resource decoder,
                             const PP_Picture_Dev& picture) = 0;
 
-  // Callback to notify that decoder has decoded end of stream marker and has
-  // outputted all displayable pictures.
-  virtual void EndOfStream(PP_Resource decoder) = 0;
-
   // Callback to notify about decoding errors.
   virtual void NotifyError(PP_Resource decoder,
                            PP_VideoDecodeError_Dev error) = 0;
diff --git a/ppapi/examples/gles2/gles2.cc b/ppapi/examples/gles2/gles2.cc
index 9e0ea6c..a475230 100644
--- a/ppapi/examples/gles2/gles2.cc
+++ b/ppapi/examples/gles2/gles2.cc
@@ -66,7 +66,6 @@
   virtual void DismissPictureBuffer(PP_Resource decoder,
                                     int32_t picture_buffer_id);
   virtual void PictureReady(PP_Resource decoder, const PP_Picture_Dev& picture);
-  virtual void EndOfStream(PP_Resource decoder);
   virtual void NotifyError(PP_Resource decoder, PP_VideoDecodeError_Dev error);
 
  private:
@@ -398,9 +397,6 @@
   assert(context_->SwapBuffers(cb) == PP_OK_COMPLETIONPENDING);
 }
 
-void GLES2DemoInstance::EndOfStream(PP_Resource decoder) {
-}
-
 void GLES2DemoInstance::NotifyError(PP_Resource decoder,
                                     PP_VideoDecodeError_Dev error) {
   LogError(this).s() << "Received error: " << error;
diff --git a/ppapi/proxy/ppapi_messages.h b/ppapi/proxy/ppapi_messages.h
index 0b47a71..085be37a1 100644
--- a/ppapi/proxy/ppapi_messages.h
+++ b/ppapi/proxy/ppapi_messages.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -489,8 +489,6 @@
 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_PictureReady,
                     ppapi::HostResource /* video_decoder */,
                     PP_Picture_Dev /* output picture */)
-IPC_MESSAGE_ROUTED1(PpapiMsg_PPPVideoDecoder_NotifyEndOfStream,
-                    ppapi::HostResource /* video_decoder */)
 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_NotifyError,
                     ppapi::HostResource /* video_decoder */,
                     PP_VideoDecodeError_Dev /* error */)
diff --git a/ppapi/proxy/ppp_video_decoder_proxy.cc b/ppapi/proxy/ppp_video_decoder_proxy.cc
index d0cb1f32..6330b11 100644
--- a/ppapi/proxy/ppp_video_decoder_proxy.cc
+++ b/ppapi/proxy/ppp_video_decoder_proxy.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -53,15 +53,6 @@
           API_ID_PPP_VIDEO_DECODER_DEV, decoder_resource, *picture));
 }
 
-void EndOfStream(PP_Instance instance, PP_Resource decoder) {
-  HostResource decoder_resource;
-  decoder_resource.SetHostResource(instance, decoder);
-
-  HostDispatcher::GetForInstance(instance)->Send(
-      new PpapiMsg_PPPVideoDecoder_NotifyEndOfStream(
-          API_ID_PPP_VIDEO_DECODER_DEV, decoder_resource));
-}
-
 void NotifyError(PP_Instance instance, PP_Resource decoder,
                  PP_VideoDecodeError_Dev error) {
   HostResource decoder_resource;
@@ -76,7 +67,6 @@
   &ProvidePictureBuffers,
   &DismissPictureBuffer,
   &PictureReady,
-  &EndOfStream,
   &NotifyError
 };
 
@@ -119,8 +109,6 @@
                         OnMsgDismissPictureBuffer)
     IPC_MESSAGE_HANDLER(PpapiMsg_PPPVideoDecoder_PictureReady,
                         OnMsgPictureReady)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPVideoDecoder_NotifyEndOfStream,
-                        OnMsgNotifyEndOfStream)
     IPC_MESSAGE_HANDLER(PpapiMsg_PPPVideoDecoder_NotifyError,
                         OnMsgNotifyError)
     IPC_MESSAGE_UNHANDLED(handled = false)
@@ -154,14 +142,6 @@
       decoder.instance(), plugin_decoder, &picture);
 }
 
-void PPP_VideoDecoder_Proxy::OnMsgNotifyEndOfStream(
-    const HostResource& decoder) {
-  PP_Resource plugin_decoder = PluginGlobals::Get()->plugin_resource_tracker()->
-      PluginResourceForHostResource(decoder);
-  ppp_video_decoder_impl_->EndOfStream(decoder.instance(),
-                                          plugin_decoder);
-}
-
 void PPP_VideoDecoder_Proxy::OnMsgNotifyError(
     const HostResource& decoder, PP_VideoDecodeError_Dev error) {
   PP_Resource plugin_decoder = PluginGlobals::Get()->plugin_resource_tracker()->
diff --git a/ppapi/proxy/ppp_video_decoder_proxy.h b/ppapi/proxy/ppp_video_decoder_proxy.h
index e12c668..c4ff4c3 100644
--- a/ppapi/proxy/ppp_video_decoder_proxy.h
+++ b/ppapi/proxy/ppp_video_decoder_proxy.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -35,7 +35,6 @@
                                  int32_t picture_id);
   void OnMsgPictureReady(const ppapi::HostResource& decoder,
                          const PP_Picture_Dev& picture_buffer);
-  void OnMsgNotifyEndOfStream(const ppapi::HostResource& decoder);
   void OnMsgNotifyError(const ppapi::HostResource& decoder,
                         PP_VideoDecodeError_Dev error);
 
diff --git a/ppapi/tests/arch_dependent_sizes_32.h b/ppapi/tests/arch_dependent_sizes_32.h
index 4be5ad7..755907f 100644
--- a/ppapi/tests/arch_dependent_sizes_32.h
+++ b/ppapi/tests/arch_dependent_sizes_32.h
@@ -17,6 +17,6 @@
 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_URLLoaderTrusted_StatusCallback, 4);
 PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_CompletionCallback, 12);
 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PPB_VideoDecoder_Dev, 32);
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PPP_VideoDecoder_Dev, 20);
+PP_COMPILE_ASSERT_SIZE_IN_BYTES(PPP_VideoDecoder_Dev, 16);
 
 #endif  /* PPAPI_TESTS_ARCH_DEPENDENT_SIZES_32_H_ */
diff --git a/ppapi/tests/arch_dependent_sizes_64.h b/ppapi/tests/arch_dependent_sizes_64.h
index 68f4e05..bd30300 100644
--- a/ppapi/tests/arch_dependent_sizes_64.h
+++ b/ppapi/tests/arch_dependent_sizes_64.h
@@ -17,6 +17,6 @@
 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_URLLoaderTrusted_StatusCallback, 8);
 PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_CompletionCallback, 24);
 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PPB_VideoDecoder_Dev, 64);
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PPP_VideoDecoder_Dev, 40);
+PP_COMPILE_ASSERT_SIZE_IN_BYTES(PPP_VideoDecoder_Dev, 32);
 
 #endif  /* PPAPI_TESTS_ARCH_DEPENDENT_SIZES_64_H_ */