mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 14:26:09 +03:00
47 lines
2.0 KiB
Plaintext
47 lines
2.0 KiB
Plaintext
|
// Copyright 2018 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";
|
||
|
|
||
|
// Encode errors (see media/video/jpeg_encode_accelerator.h).
|
||
|
enum EncodeStatus {
|
||
|
ENCODE_OK,
|
||
|
HW_JPEG_ENCODE_NOT_SUPPORTED,
|
||
|
THREAD_CREATION_FAILED,
|
||
|
INVALID_ARGUMENT,
|
||
|
INACCESSIBLE_OUTPUT_BUFFER,
|
||
|
PARSE_IMAGE_FAILED,
|
||
|
PLATFORM_FAILURE,
|
||
|
};
|
||
|
|
||
|
// GPU process interface exposed to the browser for encoding JPEG images.
|
||
|
interface JpegEncodeAccelerator {
|
||
|
// Initializes the JPEG encoder. Should be called once per encoder
|
||
|
// construction and before using EncodeWithFD(). This call returns true if
|
||
|
// initialization is successful.
|
||
|
Initialize() => (bool success);
|
||
|
|
||
|
// Encodes the given buffer that contains one I420 image.
|
||
|
// |input_fd| and |output_fd| are file descriptors of shared memory.
|
||
|
// The image is encoded from memory of |input_fd|
|
||
|
// with size |input_buffer_size|. The output buffer is associated with
|
||
|
// |buffer_id| and the dimension of I420 image is |coded_size_width| and
|
||
|
// |coded_size_height|.
|
||
|
// |exif_fd| is the shared memory buffer, with |exif_buffer_size| as size,
|
||
|
// containing Exif data which will be put onto APP1 segment in the output
|
||
|
// JPEG image.
|
||
|
// Encoded JPEG image 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
|
||
|
// encode status. |buffer_id| is the id of |output_buffer| and |status| is the
|
||
|
// status code. |encoded_buffer_size| is the actual size of the encoded JPEG.
|
||
|
EncodeWithFD(int32 buffer_id, handle input_fd, uint32 input_buffer_size,
|
||
|
int32 coded_size_width, int32 coded_size_height,
|
||
|
handle exif_fd, uint32 exif_buffer_size,
|
||
|
handle output_fd, uint32 output_buffer_size)
|
||
|
=> (int32 buffer_id, uint32 encoded_buffer_size, EncodeStatus status);
|
||
|
};
|