/* Copyright (c) 2013 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. */ /** * This file defines the PPB_VideoWriter struct for a video writer * resource. */ label Chrome { M28 = 0.1 }; /** * The PPB_VideoWriter interface contains pointers to several * functions for creating video writer resources and using them to generate * streams of video frames. */ interface PPB_VideoWriter { /** * Creates a video writer resource. * * @param[in] instance A PP_Instance identifying one instance * of a module. * * @return A PP_Resource with a nonzero ID on success or zero on * failure. Failure means the instance was invalid. */ PP_Resource Create([in] PP_Instance instance); /** * Determines if a given resource is a video writer. * * @param[in] resource A PP_Resource corresponding to a resource. * * @return A PP_Bool with PP_TRUE if the given * resource is a video writer or PP_FALSE otherwise. */ PP_Bool IsVideoWriter([in] PP_Resource resource); /** * Opens a video stream with the given id for writing. * * @param[in] writer A PP_Resource corresponding to a video * writer resource. * @param[out] stream_id A PP_Var holding a string uniquely * identifying the stream. This string is generated by the host. * @param[in] callback A PP_CompletionCallback to be called upon * completion of Open(). * * @return An int32_t containing an error code from pp_errors.h. * Returns PP_ERROR_BADRESOURCE if writer isn't a valid video writer. * Returns PP_ERROR_INPROGRESS if the writer has already opened a stream. */ int32_t Open([in] PP_Resource writer, [out] PP_Var stream_id, [in] PP_CompletionCallback callback); /** * Puts a frame of video to the writer's open stream. * * After this call, you should take care to release your references to the * image embedded in the video frame. If you paint to the image after * PutFrame(), there is the possibility of artifacts because the browser may * still be copying the frame to the stream. * * @param[in] writer A PP_Resource corresponding to a video * writer resource. * @param[in] frame A PP_VideoFrame holding a video frame to * write to the open stream. * * @return An int32_t containing an error code from pp_errors.h. * Returns PP_ERROR_BADRESOURCE if writer isn't a valid video writer. * Returns PP_ERROR_FAILED if the writer has not opened a stream, if the video * frame has an invalid image data resource, or if some other error occurs. */ int32_t PutFrame([in] PP_Resource writer, [in] PP_VideoFrame frame); /** * Closes the writer's video stream. * * @param[in] writer A PP_Resource corresponding to a video * writer resource. */ void Close([in] PP_Resource writer); };