OLD | NEW |
(Empty) | |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 module media.mojom; |
| 6 |
| 7 import "media/mojo/interfaces/media_types.mojom"; |
| 8 import "mojo/common/time.mojom"; |
| 9 import "ui/gfx/geometry/mojo/geometry.mojom"; |
| 10 |
| 11 // Decode errors (see media/video/jpeg_decode_accelerator.h). |
| 12 enum Error { |
| 13 NO_ERRORS, |
| 14 INVALID_ARGUMENT, |
| 15 UNREADABLE_INPUT, |
| 16 PARSE_JPEG_FAILED, |
| 17 UNSUPPORTED_JPEG, |
| 18 PLATFORM_FAILURE, |
| 19 }; |
| 20 |
| 21 // This defines a mojo transport format for media::BitstreamBuffer (see |
| 22 // media/base/bitstream_buffer.h). |
| 23 struct BitstreamBuffer { |
| 24 int32 id; |
| 25 handle<shared_buffer> memory_handle; |
| 26 uint32 size; |
| 27 uint64 offset; |
| 28 mojo.common.mojom.TimeDelta timestamp; |
| 29 string key_id; |
| 30 string iv; |
| 31 array<SubsampleEntry> subsamples; |
| 32 }; |
| 33 |
| 34 // GPU process interface exposed to the browser for decoding JPEG images. |
| 35 interface GpuJpegDecodeAccelerator { |
| 36 // Initializes the JPEG decoder. Should be called once per decoder |
| 37 // construction and before using Decode(). This call returns true if |
| 38 // initialization is successful. |
| 39 // TODO(c.padhi): Make this method asynchronous. |
| 40 [Sync] |
| 41 Initialize() => (bool success); |
| 42 |
| 43 // Decodes the given bitstream buffer that contains one JPEG image. |
| 44 // The image is decoded from shared memory |input_buffer.memory_handle| |
| 45 // with size |input_buffer.size|. The input buffer is associated with |
| 46 // |input_buffer.id|and the size of JPEG image is |coded_size|. Decoded I420 |
| 47 // frame data will be put onto shared memory associated with |output_handle| |
| 48 // with allocated size |output_buffer_size|. |
| 49 // Returns |bitstream_buffer_id| and |error| in a callback to notify the |
| 50 // decode status. |bitstream_buffer_id| is the id of BitstreamBuffer |
| 51 // |input_buffer| and |error| is the error code. |
| 52 Decode(BitstreamBuffer input_buffer, gfx.mojom.Size coded_size, |
| 53 handle<shared_buffer> output_handle, uint32 output_buffer_size) |
| 54 => (int32 bitstream_buffer_id, Error error); |
| 55 |
| 56 // TODO(c.padhi): This method might not be required, see |
| 57 // http://crbug.com/699255. |
| 58 Uninitialize(); |
| 59 }; |
OLD | NEW |