mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
73 lines
2.9 KiB
Plaintext
73 lines
2.9 KiB
Plaintext
|
// Copyright 2017 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.
|
||
|
|
||
|
module media.mojom;
|
||
|
|
||
|
import "media/mojo/interfaces/media_types.mojom";
|
||
|
import "mojo/public/mojom/base/time.mojom";
|
||
|
import "ui/gfx/geometry/mojo/geometry.mojom";
|
||
|
|
||
|
// Decode errors (see media/video/jpeg_decode_accelerator.h).
|
||
|
enum DecodeError {
|
||
|
NO_ERRORS,
|
||
|
INVALID_ARGUMENT,
|
||
|
UNREADABLE_INPUT,
|
||
|
PARSE_JPEG_FAILED,
|
||
|
UNSUPPORTED_JPEG,
|
||
|
PLATFORM_FAILURE,
|
||
|
};
|
||
|
|
||
|
// This defines a mojo transport format for media::BitstreamBuffer (see
|
||
|
// media/base/bitstream_buffer.h).
|
||
|
struct BitstreamBuffer {
|
||
|
int32 id;
|
||
|
handle<shared_buffer> memory_handle;
|
||
|
uint32 size;
|
||
|
int64 offset;
|
||
|
mojo_base.mojom.TimeDelta timestamp;
|
||
|
string key_id;
|
||
|
string iv;
|
||
|
array<SubsampleEntry> subsamples;
|
||
|
};
|
||
|
|
||
|
// GPU process interface exposed to the browser for decoding JPEG images.
|
||
|
interface JpegDecodeAccelerator {
|
||
|
// Initializes the JPEG decoder. Should be called once per decoder
|
||
|
// construction and before using Decode(). This call returns true if
|
||
|
// initialization is successful.
|
||
|
Initialize() => (bool success);
|
||
|
|
||
|
// Decodes the given bitstream buffer that contains one JPEG image.
|
||
|
// The image is decoded from shared memory |input_buffer.memory_handle|
|
||
|
// with size |input_buffer.size|. The input buffer is associated with
|
||
|
// |input_buffer.id|and the size of JPEG image is |coded_size|. Decoded I420
|
||
|
// frame data will be put onto shared memory associated with |output_handle|
|
||
|
// with allocated size |output_buffer_size|.
|
||
|
// Returns |bitstream_buffer_id| and |error| in a callback to notify the
|
||
|
// decode status. |bitstream_buffer_id| is the id of BitstreamBuffer
|
||
|
// |input_buffer| and |error| is the error code.
|
||
|
Decode(BitstreamBuffer input_buffer, gfx.mojom.Size coded_size,
|
||
|
handle<shared_buffer> output_handle, uint32 output_buffer_size)
|
||
|
=> (int32 bitstream_buffer_id, DecodeError error);
|
||
|
|
||
|
// Decodes the given buffer that contains one JPEG image.
|
||
|
// |input_fd| and |output_fd| are file descriptors of shared memory.
|
||
|
// The image is decoded from memory of |input_fd|
|
||
|
// with size |input_buffer_size|. The input buffer is associated with
|
||
|
// |buffer_id| and the size of JPEG image is |coded_size|. Decoded I420
|
||
|
// frame data will be put onto memory associated with |output_fd|
|
||
|
// with allocated size |output_buffer_size|.
|
||
|
// Returns |buffer_id| and |error| in a callback to notify the
|
||
|
// decode status. |buffer_id| is the id of |input_buffer| and |error| is the
|
||
|
// error code.
|
||
|
DecodeWithFD(int32 buffer_id, handle input_fd, uint32 input_buffer_size,
|
||
|
int32 coded_size_width, int32 coded_size_height,
|
||
|
handle output_fd, uint32 output_buffer_size)
|
||
|
=> (int32 buffer_id, DecodeError error);
|
||
|
|
||
|
// TODO(c.padhi): This method might not be required, see
|
||
|
// http://crbug.com/699255.
|
||
|
Uninitialize();
|
||
|
};
|