File: mjpeg_decode_accelerator.mojom

package info (click to toggle)
chromium 139.0.7258.127-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,122,156 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (70 lines) | stat: -rw-r--r-- 2,754 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module chromeos_camera.mojom;

import "components/chromeos_camera/common/dmabuf.mojom";
import "media/mojo/mojom/media_types.mojom";
import "mojo/public/mojom/base/time.mojom";
import "ui/gfx/geometry/mojom/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<media.mojom.SubsampleEntry> subsamples;
};

// GPU process interface exposed to the browser for decoding MJPEG streams.
//
// Deprecated method IDs: 2
// Next method ID: 5
interface MjpegDecodeAccelerator {
  // Initializes the MJPEG decoder. Should be called once per decoder
  // construction and before using Decode(). This call returns true if
  // initialization is successful.
  Initialize@0() => (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@1(BitstreamBuffer input_buffer, gfx.mojom.Size coded_size,
           handle<shared_buffer> output_handle, uint32 output_buffer_size)
      => (int32 bitstream_buffer_id, DecodeError error);

  // Decodes one MJPEG image with the given input and output buffers.
  // |task_id| is used to distinguish different tasks. The input image is stored
  // in the DMA buffer described by |src_dmabuf_fd|, |src_size|, and
  // |src_offset|. The decoded result will be put into |dst_frame| backed by DMA
  // buffer. Returns the decode status |error| in the Mojo callback.
  DecodeWithDmaBuf@3(int32 task_id, handle src_dmabuf_fd, uint32 src_size,
                     uint32 src_offset, DmaBufVideoFrame dst_frame)
      => (DecodeError error);

  // TODO(c.padhi): This method might not be required, see
  // http://crbug.com/699255.
  Uninitialize@4();
};