diff --git a/doc/lib/js/watch.md b/doc/lib/js/watch.md index 75b9d4b868c..5b3625766cd 100644 --- a/doc/lib/js/watch.md +++ b/doc/lib/js/watch.md @@ -218,30 +218,6 @@ leave the connection's estimate unclaimed. Without a claim, video selects the be `video.target` allows. To stop the relay probing while still adapting, keep the claim and call `connection.viewers.setTarget(0)`. -To chart when each audio frame arrived against when it plays, open an -`arrivals()` handle on the audio decoder. It yields every frame received while it is open, stamped -when the frame came off the transport, and a gap wherever media after an earlier -frame will never arrive (a latency skip, a hole): - -```ts -const arrivals = player.audio.arrivals(); -for await (const entry of arrivals) { - if (entry.kind === "gap") { - // Break the plotted line; nothing arrived from `timestamp` for `duration`. - continue; - } - const { timestamp, arrival, late } = entry; - // `late`: arrived after its playback deadline. -} -``` - -A gap's span is an upper bound: without per-frame durations it starts at the -last frame's timestamp, and it covers any pause the publisher declared. - -Unread frames queue on the handle, so keep reading and keep your own window. -Leaving the loop or calling `arrivals.close()` stops observing and releases -them; nothing is retained without an open handle. - ## Buffered playback By default the player minimizes latency: it time-stretches received audio diff --git a/js/justfile b/js/justfile index ea47805d793..6d174b6668e 100644 --- a/js/justfile +++ b/js/justfile @@ -126,11 +126,6 @@ qmux-bench: bunx tsc --noEmit --project net/bench/tsconfig.json bun net/bench/qmux.ts -# Sweep open arrival handles against their unread backlog. -arrivals-bench: - uv run --no-project python ../sh/js/install.py frozen - bun watch/bench/arrivals.ts - # Reduce and compare the worst known peer grant shapes, swept over AUTH_OK size. pattern-bench: uv run --no-project python ../sh/js/install.py frozen diff --git a/js/net/src/ietf/filter.ts b/js/net/src/ietf/filter.ts index 964b74dad2c..9a5137d8d98 100644 --- a/js/net/src/ietf/filter.ts +++ b/js/net/src/ietf/filter.ts @@ -312,34 +312,6 @@ function decodeTag(data: Uint8Array): Filter { } } -/** - * Read the tagged filter draft-14 carries inline in a SUBSCRIBE body, where the fields - * following the tag have no length to delimit them. - * - * Every tag is read, including the absolute forms we do not serve. Rejecting one would tear - * the session down over a filter the draft lets a subscriber send; what we do with it is - * decided when the range is resolved. - */ -export async function decodeInline(r: Reader): Promise { - const tag = await r.u62(); - switch (tag) { - case TAG_NEXT_GROUP: - return { kind: "relative", groups: 0n }; - case TAG_LARGEST_OBJECT: - return { kind: "nextObject" }; - case TAG_ABSOLUTE_START: - return { kind: "absolute", startGroup: await r.u62(), startObject: await r.u62() }; - case TAG_ABSOLUTE_RANGE: { - const startGroup = await r.u62(); - const startObject = await r.u62(); - const delta = await r.u62(); - return { kind: "absolute", startGroup, startObject, endGroup: startGroup + delta }; - } - default: - throw new Error(`unsupported filter type: ${tag}`); - } -} - function expectEmpty(rest: Uint8Array): void { if (rest.length !== 0) { throw new Error("trailing bytes in LOCATION_FILTER"); diff --git a/js/qmux/README.md b/js/qmux/README.md index d43b0630f85..85d198f8a39 100644 --- a/js/qmux/README.md +++ b/js/qmux/README.md @@ -1,6 +1,6 @@ # @moq/qmux -A [WebTransport](https://developer.mozilla.org/en-US/docs/Web/API/WebTransport_API) implementation using WebSockets as the underlying transport with [QMux](https://www.ietf.org/archive/id/draft-ietf-quic-qmux-02.html) (draft-ietf-quic-qmux-02, negotiating down to draft-01 and draft-00) framing: a polyfill in browsers, and a server on any runtime that can accept a WebSocket. +A [WebTransport](https://developer.mozilla.org/en-US/docs/Web/API/WebTransport_API) implementation using WebSockets as the underlying transport with [QMux](https://www.ietf.org/archive/id/draft-ietf-quic-qmux-02.html) (draft-ietf-quic-qmux-02, negotiating down to draft-01 and draft-00) framing: a WebTransport-compatible client in browsers, and a server on any runtime that can accept a WebSocket. QMux brings QUIC's multiplexed streams and flow control to reliable, ordered byte-stream transports like WebSockets. This allows WebTransport applications to seamlessly fall back when QUIC/UDP is blocked by network middleboxes. @@ -124,20 +124,6 @@ The outgoing code comes off the reason passed to `abort()` / `cancel()`, so any (native or the exported `StreamError`) sends its `streamErrorCode` and anything else sends 0. `STOP_SENDING` works the same way, erroring the sender's writable with the code the peer chose. -### Polyfill - -Install as a global `WebTransport` polyfill: - -```ts -import { install } from "@moq/qmux" - -// Only installs if native WebTransport is unavailable -install() - -// Now use the standard WebTransport API -const transport = new WebTransport("https://example.com/endpoint") -``` - ## License Licensed under either of [Apache License, Version 2.0](../../LICENSE-APACHE) or [MIT license](../../LICENSE-MIT) at your option. diff --git a/js/qmux/api/index.api.md b/js/qmux/api/index.api.md index 9d16b8baa6a..d17c3150b82 100644 --- a/js/qmux/api/index.api.md +++ b/js/qmux/api/index.api.md @@ -22,11 +22,6 @@ export interface Config { streamReceiveWindow?: bigint; } -export interface InstallOptions { - requireProtocol?: boolean; - versions?: Record; -} - export interface SendStream extends WritableStream { getStats(): Promise; sendOrder: number; @@ -136,7 +131,5 @@ export interface WebSocketStreamOpenEvent { writable: WritableStream; } -export function install(options?: InstallOptions): boolean; - export function selectSubprotocol(offered: string | readonly string[] | null | undefined, options?: Pick): string | undefined; ``` diff --git a/js/qmux/package.json b/js/qmux/package.json index 8ee6ab962cc..1cb011f4048 100644 --- a/js/qmux/package.json +++ b/js/qmux/package.json @@ -31,7 +31,6 @@ "qmux", "webtransport", "websocket", - "polyfill", "quic", "streams" ] diff --git a/js/qmux/src/index.ts b/js/qmux/src/index.ts index 0ead167da07..9334b55728d 100644 --- a/js/qmux/src/index.ts +++ b/js/qmux/src/index.ts @@ -1,5 +1,4 @@ -/** WebTransport over WebSockets with QMux framing: a browser polyfill and a server for an accepted socket. @module */ -import { Session, type Version } from "./session.ts"; +/** WebTransport over WebSockets with QMux framing: a browser client and a server for an accepted socket. @module */ export { SessionError, StreamError } from "./error.ts"; export type { @@ -21,33 +20,3 @@ export type { WebSocketStreamLike, WebSocketStreamOpenEvent, } from "./web-socket-stream.ts"; - -/** Options forwarded to every `Session` constructed by {@link install}. */ -export interface InstallOptions { - /** Wire-format version(s) by ALPN. See {@link SessionOptions.versions}. */ - versions?: Record; - /** Require the peer to negotiate an app protocol. See {@link SessionOptions.requireProtocol}. */ - requireProtocol?: boolean; -} - -/** Install `Session` as the global `WebTransport` if the platform doesn't ship one. - * - * The `versions` map and `requireProtocol` flag are forwarded to every - * `Session` constructed via the polyfill. Callers that pass only explicit - * `{qmux-VV}.{alpn}` pairs in their `protocols` list can omit the map. - * - * Returns `true` if the polyfill was installed, `false` if `globalThis.WebTransport` - * already existed. - */ -export function install(options?: InstallOptions): boolean { - if ("WebTransport" in globalThis) return false; - const versions = options?.versions; - const requireProtocol = options?.requireProtocol; - // biome-ignore lint/suspicious/noExplicitAny: polyfill - extending Session to match the WebTransport constructor signature - (globalThis as any).WebTransport = class extends Session { - constructor(url: string | URL, options?: WebTransportOptions) { - super(url, { ...options, versions, requireProtocol }); - } - }; - return true; -} diff --git a/js/watch/api/index.api.md b/js/watch/api/index.api.md index 05da76ed8ed..ee14bdeca90 100644 --- a/js/watch/api/index.api.md +++ b/js/watch/api/index.api.md @@ -1,27 +1,9 @@ # `@moq/watch` ```ts -export type Arrival = { - arrival: Clock.Instant; - kind: "frame"; - late: boolean; - timestamp: Clock.Duration; -} | { - duration: Clock.Duration; - kind: "gap"; - timestamp: Clock.Duration; -}; - -export interface Arrivals { - [Symbol.asyncIterator](): AsyncIterator; - close(): void; - next(): Promise; -} - export namespace Audio { export class Decoder { constructor(props: Audio.DecoderProps); - arrivals(): Arrivals; close(): void; readonly in: Signals.Readonlys; readonly out: Signals.Readonlys; diff --git a/js/watch/bench/arrivals.ts b/js/watch/bench/arrivals.ts deleted file mode 100644 index 2fdf2a4614a..00000000000 --- a/js/watch/bench/arrivals.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Duration, Instant } from "@moq/clock"; -import { Producer } from "../src/arrivals"; - -// Sweep open handles against each handle's unread backlog: a write should cost one push per -// handle, never a slope in the backlog. -const frame = { kind: "frame" as const, timestamp: Duration.millis(0), arrival: Instant.ZERO, late: false }; -const WRITES = 10_000; - -console.log("handles,backlog,ns_per_handle_write"); -for (const count of [1, 4, 16]) { - for (const backlog of [0, 256, 4096]) { - const producer = new Producer(); - const handles = Array.from({ length: count }, () => producer.consume()); - for (let i = 0; i < backlog; i++) producer.write(frame); - - const start = performance.now(); - for (let n = 0; n < WRITES; n++) { - producer.write(frame); - for (const handle of handles) await handle.next(); - } - const ns = ((performance.now() - start) * 1e6) / (WRITES * count); - - for (const handle of handles) { - for (let i = 0; i < backlog; i++) if ((await handle.next()) === undefined) throw new Error("lost arrival"); - handle.close(); - } - console.log(`${count},${backlog},${ns.toFixed(0)}`); - } -} diff --git a/js/watch/package.json b/js/watch/package.json index bde9c362693..69ddc5b1528 100644 --- a/js/watch/package.json +++ b/js/watch/package.json @@ -22,7 +22,7 @@ "./src/support/element.ts" ], "scripts": { - "build": "rm -rf dist && vite build && tsc -p tsconfig.build.json && bun ../common/package.ts && tsc --project test-dts/tsconfig.json", + "build": "rm -rf dist && vite build && tsc -p tsconfig.build.json && bun ../common/package.ts", "check": "tsc --noEmit", "test": "bun test --only-failures", "release": "bun ../common/release.ts" diff --git a/js/watch/src/arrivals.test.ts b/js/watch/src/arrivals.test.ts deleted file mode 100644 index 0cf4cfa326c..00000000000 --- a/js/watch/src/arrivals.test.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { expect, test } from "bun:test"; -import { Duration, Instant } from "@moq/clock"; -import { Producer } from "./arrivals"; - -const frame = (arrival: number) => ({ - kind: "frame" as const, - timestamp: Duration.millis(arrival), - arrival: Instant.ZERO.saturatingAdd(Duration.millis(arrival)), - late: false, -}); - -test("a handle receives every frame written while it is open", async () => { - const producer = new Producer(); - producer.write(frame(0)); - const handle = producer.consume(); - for (let i = 1; i <= 3; i++) producer.write(frame(i)); - for (let i = 1; i <= 3; i++) expect(await handle.next()).toEqual(frame(i)); - - const waiting = handle.next(); - producer.write(frame(4)); - expect(await waiting).toEqual(frame(4)); - handle.close(); -}); - -test("closing a handle releases its unread frames and stops observing", async () => { - const producer = new Producer(); - const closed = producer.consume(); - const open = producer.consume(); - producer.write(frame(0)); - closed.close(); - producer.write(frame(1)); - expect(await closed.next()).toBeUndefined(); - expect(await open.next()).toEqual(frame(0)); - expect(await open.next()).toEqual(frame(1)); - open.close(); -}); - -test("a closed decoder ends its handles once they drain", async () => { - const producer = new Producer(); - const handle = producer.consume(); - producer.write(frame(0)); - producer.close(); - expect(await handle.next()).toEqual(frame(0)); - expect(await handle.next()).toBeUndefined(); - expect(await producer.consume().next()).toBeUndefined(); -}); - -test("a pending read refuses a concurrent one", async () => { - const producer = new Producer(); - const handle = producer.consume(); - const waiting = handle.next(); - await expect(handle.next()).rejects.toThrow("multiple calls to next not supported"); - // Woken but not yet resumed: the queued frame still belongs to the pending read. - producer.write(frame(0)); - await expect(handle.next()).rejects.toThrow("multiple calls to next not supported"); - expect(await waiting).toEqual(frame(0)); - handle.close(); -}); - -test("leaving a for-await loop closes the handle", async () => { - const producer = new Producer(); - const handle = producer.consume(); - producer.write(frame(0)); - for await (const entry of handle) { - expect(entry).toEqual(frame(0)); - break; - } - producer.write(frame(1)); - expect(await handle.next()).toBeUndefined(); -}); diff --git a/js/watch/src/arrivals.ts b/js/watch/src/arrivals.ts deleted file mode 100644 index 26ff6494a7c..00000000000 --- a/js/watch/src/arrivals.ts +++ /dev/null @@ -1,145 +0,0 @@ -import type { Duration, Instant } from "@moq/clock"; -import type * as Container from "@moq/hang/container"; - -/** One received frame, or a gap where media will never arrive, in delivery order. */ -export type Arrival = - | { - kind: "frame"; - /** Media presentation time. */ - timestamp: Duration; - /** Monotonic transport ingress time. */ - arrival: Instant; - /** Whether ingress missed the playback deadline. */ - late: boolean; - } - /** - * Media after an earlier frame never reached the decoder: a latency skip or a hole. The span is - * an upper bound, as on the container read's gap. - */ - | { - kind: "gap"; - /** The furthest presentation point received before the gap. */ - timestamp: Duration; - /** How long until media resumes. */ - duration: Duration; - }; - -/** The arrival entry for a container read's gap. */ -export function gap(read: Extract): Arrival { - return { - kind: "gap", - timestamp: read.timestamp, - duration: read.duration, - }; -} - -interface State { - queue: Arrival[]; - // The next unread index. Advancing it instead of shifting keeps a long backlog O(1) per read. - head: number; - closed: boolean; - wake?: () => void; -} - -let makeArrivals: (state: State, open: Set) => Arrivals; - -/** - * Every frame a decoder receives while this handle is open, and every gap between them, in delivery order. - * - * Unread entries queue until {@link next} takes them, so read continuously or close the handle; - * closing releases the queue. Obtain one from `Audio.Decoder.arrivals()`. - */ -export class Arrivals implements AsyncIterable { - readonly #state: State; - readonly #open: Set; - #reading = false; - - private constructor(state: State, open: Set) { - this.#state = state; - this.#open = open; - } - - static { - makeArrivals = (state, open) => new Arrivals(state, open); - } - - /** Get the next frame or gap, or `undefined` once the handle or its decoder closes. */ - async next(): Promise { - if (this.#reading) throw new Error("multiple calls to next not supported"); - this.#reading = true; - const state = this.#state; - try { - for (;;) { - const entry = state.queue[state.head]; - if (entry) { - state.head++; - // Drop the read prefix once it outweighs the rest, which amortizes to O(1). - if (state.head * 2 >= state.queue.length) { - state.queue.splice(0, state.head); - state.head = 0; - } - return entry; - } - if (state.closed) return undefined; - await new Promise((resolve) => { - state.wake = resolve; - }); - state.wake = undefined; - } - } finally { - this.#reading = false; - } - } - - /** Iterate frames and gaps until the handle or its decoder closes; leaving the loop closes the handle. */ - async *[Symbol.asyncIterator](): AsyncIterator { - try { - for (;;) { - const entry = await this.next(); - if (entry === undefined) return; - yield entry; - } - } finally { - this.close(); - } - } - - /** Stop observing and release unread entries. */ - close(): void { - this.#open.delete(this.#state); - this.#state.queue.length = 0; - this.#state.head = 0; - this.#state.closed = true; - this.#state.wake?.(); - } -} - -/** Fans each frame and gap out to the open {@link Arrivals} handles. @internal */ -export class Producer { - readonly #open = new Set(); - #closed = false; - - /** Open a handle that receives every later frame. */ - consume(): Arrivals { - const state: State = { queue: [], head: 0, closed: this.#closed }; - if (!this.#closed) this.#open.add(state); - return makeArrivals(state, this.#open); - } - - write(arrival: Arrival): void { - for (const state of this.#open) { - state.queue.push(arrival); - state.wake?.(); - } - } - - /** End every handle once it drains what it already received. */ - close(): void { - this.#closed = true; - for (const state of this.#open) { - state.closed = true; - state.wake?.(); - } - this.#open.clear(); - } -} diff --git a/js/watch/src/audio/decoder.test.ts b/js/watch/src/audio/decoder.test.ts index 1d223b1b1fc..064f0b65e4d 100644 --- a/js/watch/src/audio/decoder.test.ts +++ b/js/watch/src/audio/decoder.test.ts @@ -369,7 +369,6 @@ async function play(initial: Delay, buffered = false, cmaf = false) { stats: () => decoder.out.stats.peek(), timestamp: () => decoder.out.timestamp.peek(), feedback: () => decoder.feedback(Moq.Path.from("watched")), - arrivals: () => decoder.arrivals(), error: decoder.out.error, play, // Remove the rendition from the catalog, then restore it. @@ -478,26 +477,12 @@ it("decodes an audio packet inside a group after a gap", async () => { const playback = await play(Duration.millis(100)); try { await playback.play(); - // Opened late, so it observes only the gap and frame below. - const arrivals = playback.arrivals(); playback.push({ kind: "gap", timestamp: Duration.micros(20_000), duration: Duration.micros(40_000) }); const next = frame(); next.frame.keyframe = false; playback.push(next); await microtasks(); expect(playback.inserted()).toContain(next.frame.timestamp.asMicros()); - expect(await arrivals.next()).toEqual({ - kind: "gap", - timestamp: Duration.millis(20), - duration: Duration.millis(40), - }); - expect(await arrivals.next()).toMatchObject({ - kind: "frame", - timestamp: next.frame.timestamp, - arrival: next.frame.arrival, - }); - arrivals.close(); - expect(await arrivals.next()).toBeUndefined(); } finally { playback.close(); await microtasks(); @@ -1252,7 +1237,6 @@ async function livePlayback(burst: number) { return { sync, error: decoder.out.error, - arrivals: () => decoder.arrivals(), // Lose one whole group without changing the following media timestamps or arrival cadence. async hole() { if (held.length) throw new Error("a hole needs an empty delivery burst"); @@ -1327,11 +1311,6 @@ it("a missing live group re-primes without clearing decoded PCM or resetting Syn const playback = await livePlayback(1); const reset = spyOn(playback.sync, "reset"); const prime = spyOn(AudioDecoder.prototype, "reset"); - const arrivals = playback.arrivals(); - const received: { kind: string }[] = []; - const reading = (async () => { - for await (const arrival of arrivals) received.push(arrival); - })(); try { await playback.run(1000); const ring = playback.ring(); @@ -1340,15 +1319,12 @@ it("a missing live group re-primes without clearing decoded PCM or resetting Syn await playback.hole(); expect(ring?.length).toBe(buffered); await playback.run(2000); - expect(received.some((arrival) => arrival.kind === "gap")).toBe(true); expect(prime).toHaveBeenCalledTimes(1); expect(reset).not.toHaveBeenCalled(); expect(playback.ring()).toBe(ring); expect(ring?.stalled).toBe(false); expect(playback.error.peek()).toBeUndefined(); } finally { - arrivals.close(); - await reading; await playback.close(); } }); diff --git a/js/watch/src/audio/decoder.ts b/js/watch/src/audio/decoder.ts index b0f4026f450..76da95dbf83 100644 --- a/js/watch/src/audio/decoder.ts +++ b/js/watch/src/audio/decoder.ts @@ -14,7 +14,6 @@ import { readonlys, Signal, } from "@moq/signals"; -import { Producer as ArrivalProducer, type Arrivals, gap } from "../arrivals"; import { hosted } from "../assets"; import { base64ToBytes } from "../base64"; import { arrivedAt, type Counter, type Key, type Received, Tally } from "../feedback"; @@ -204,9 +203,6 @@ export class Decoder { // The broadcast instance the ring's timeline belongs to. See #runDecoder. #instance?: Moq.Broadcast.Consumer["closed"]; - // Fans received frames out to open `arrivals()` handles; retains nothing without one. - #arrivals = new ArrivalProducer(); - #signals = new Effect(); #phase = new Signal({ kind: "stopped" }); readonly #running: Computed; @@ -660,7 +656,6 @@ export class Decoder { if (this.#onRead(next)) { this.#reprime(decoder, decoderConfig, order); } - if (next.kind === "gap") this.#arrivals.write(gap(next)); continue; } const { frame } = next; @@ -668,7 +663,6 @@ export class Decoder { // Classify ingress before decoder backpressure changes the delivery clock. const timestamp = frame.timestamp; const late = this.#track.received(timestamp, frame.arrival); - this.#arrivals.write({ kind: "frame", timestamp, arrival: frame.arrival, late }); const duration = packetDuration(config.codec, frame); if (duration !== undefined) this.#frame.set(duration); @@ -747,14 +741,12 @@ export class Decoder { if (this.#onRead(next)) { this.#reprime(decoder, decoderConfig, order); } - if (next.kind === "gap") this.#arrivals.write(gap(next)); continue; } const { frame } = next; const timestamp = frame.timestamp; const late = this.#track.received(timestamp, frame.arrival); - this.#arrivals.write({ kind: "frame", timestamp, arrival: frame.arrival, late }); const duration = packetDuration(config.codec, frame); if (duration !== undefined) this.#frame.set(duration); @@ -1054,18 +1046,8 @@ export class Decoder { return true; } - /** - * Observe every frame and gap received from now until the handle or this decoder closes. - * - * Each open handle queues every entry until read, so read it continuously or close it. - */ - arrivals(): Arrivals { - return this.#arrivals.consume(); - } - /** Stop and release everything this holds. */ close() { - this.#arrivals.close(); this.#signals.close(); } diff --git a/js/watch/src/audio/replay.test.ts b/js/watch/src/audio/replay.test.ts index 558a482e0ed..ead7c0aa033 100644 --- a/js/watch/src/audio/replay.test.ts +++ b/js/watch/src/audio/replay.test.ts @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, type Mock, spyOn } from "bun:test"; -import { Duration, Instant } from "@moq/clock"; +import { Duration } from "@moq/clock"; import type * as Catalog from "@moq/hang/catalog"; -import { type Arrival, type Options, QUANTUM, type Quantum, replay } from "./replay"; +import { type Arrival, type Options, QUANTUM, replay } from "./replay"; const RATE = 48000; const CONFIG = { codec: "opus", sampleRate: RATE, numberOfChannels: 1 } as Catalog.AudioConfig; @@ -209,35 +209,6 @@ describe("replay at auto", () => { }); }); -describe("ingress diagnostics", () => { - it("keeps recorded arrival and lateness when delivery is held", async () => { - const trace = [0, 20, 40].map((timestamp) => ({ timestamp, at: timestamp + 1000, group: 0, duration: 20 })); - const run = async (decodeAfter?: number) => { - let window: Quantum["arrivals"] = []; - for await (const quantum of replay(trace, { - rate: RATE, - config: CONFIG, - delay: Duration.millis(100), - duration: 300, - decodeAfter, - })) - window = quantum.arrivals; - return window; - }; - const direct = await run(); - const held = await run(1200); - expect(held).toEqual(direct); - expect(held).toEqual( - trace.map((entry) => ({ - kind: "frame" as const, - timestamp: Duration.millis(entry.timestamp), - arrival: Instant.ZERO.saturatingAdd(Duration.millis(entry.at)), - late: false, - })), - ); - }); -}); - describe("recorded frame durations", () => { it("keeps missing packets out of the codec term even when most packets are absent", async () => { const trace = Array.from({ length: 600 }, (_, i) => ({ diff --git a/js/watch/src/audio/replay.ts b/js/watch/src/audio/replay.ts index 56a0b3a4898..5ad24a3f5f7 100644 --- a/js/watch/src/audio/replay.ts +++ b/js/watch/src/audio/replay.ts @@ -21,7 +21,6 @@ import type * as Catalog from "@moq/hang/catalog"; import * as Container from "@moq/hang/container"; import { type Group, Time, Track } from "@moq/net"; import { Derived, Effect, Signal } from "@moq/signals"; -import { type Arrival as Diagnostic, gap } from "../arrivals"; import { type Delay, Sync } from "../sync"; import { Backpressure } from "./buffer"; import { frameDuration } from "./config"; @@ -72,8 +71,6 @@ export interface Options { /** One render quantum, as the worklet produced it. */ export interface Quantum { - /** Every frame and gap the decoder received so far, in delivery order. Grows between yields. */ - arrivals: readonly Diagnostic[]; /** When it finished rendering, on the trace's clock, in ms. */ at: number; /** The quantum: what the ring supplied at the front, zeros after it. Reused between yields. */ @@ -180,7 +177,6 @@ export async function* replay(trace: Arrival[], options: Options): AsyncGenerato // The decoder's read loop, with the codec taken out. Traces record no declared ends, so a gap is // the only codec epoch a replay meets. A failure is rethrown at the next quantum. - const arrivals: Diagnostic[] = []; const delivery = Promise.withResolvers(); if (options.decodeAfter === undefined) delivery.resolve(); let failure: { error: unknown } | undefined; @@ -190,14 +186,12 @@ export async function* replay(trace: Arrival[], options: Options): AsyncGenerato for (;;) { const next = await consumer.next(); if (!next) return; - if (next.kind === "gap") arrivals.push(gap(next)); if (next.kind !== "frame") continue; const { timestamp: media, arrival } = next.frame; const timestamp = media.asMicros(); read.set(timestamp); - const late = audio.received(media, arrival); - arrivals.push({ kind: "frame", timestamp: media, arrival, late }); + audio.received(media, arrival); const entry = recorded.get(timestamp); if (!entry) throw new Error(`the consumer delivered an unrecorded frame at ${timestamp} us`); frame.set(Duration.millis(entry.duration)); @@ -282,7 +276,6 @@ export async function* replay(trace: Arrival[], options: Options): AsyncGenerato ring.read([output]); observe(); yield { - arrivals, at: now, output, stalled: ring.stalled, diff --git a/js/watch/src/index.ts b/js/watch/src/index.ts index f76c2c6cc9e..0a586a3bc95 100644 --- a/js/watch/src/index.ts +++ b/js/watch/src/index.ts @@ -16,7 +16,6 @@ export type { BufferedRange, BufferedRanges } from "@moq/hang/container"; export * as Net from "@moq/net"; /** Re-export of {@link https://www.npmjs.com/package/@moq/signals | @moq/signals}, the reactive primitives used throughout this package. */ export * as Signals from "@moq/signals"; -export type { Arrival, Arrivals } from "./arrivals"; export { assets } from "./assets"; /** Audio rendition selection, decoding, and playback. */ export * as Audio from "./audio"; diff --git a/js/watch/test-dts/constructors.ts b/js/watch/test-dts/constructors.ts deleted file mode 100644 index a7351fd69dc..00000000000 --- a/js/watch/test-dts/constructors.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Arrivals } from "../dist/arrivals.js"; -import type { Audio, Arrivals as PublicArrivals } from "../dist/index.js"; - -// @ts-expect-error A decoder owns an arrivals handle's queue. -new Arrivals(); -// @ts-expect-error Construction stays private even with arguments. -new Arrivals({ queue: [], head: 0, closed: false }, new Set()); - -declare const decoder: Audio.Decoder; -const arrivals: PublicArrivals = decoder.arrivals(); -void arrivals.next(); -arrivals.close(); diff --git a/js/watch/test-dts/tsconfig.json b/js/watch/test-dts/tsconfig.json deleted file mode 100644 index f06c4a424b2..00000000000 --- a/js/watch/test-dts/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "noEmit": true, - "emitDeclarationOnly": false, - "allowImportingTsExtensions": true, - "types": ["bun", "audioworklet"] - }, - "include": [".", "../../common/worklet.d.ts"] -} diff --git a/quest/m2/api-shape/README.md b/quest/m2/api-shape/README.md index 9f68577d24d..d0ac6f21b88 100644 --- a/quest/m2/api-shape/README.md +++ b/quest/m2/api-shape/README.md @@ -1,45 +1,14 @@ -# [L] Small API fixes before the cut +# Small API fixes before the cut ## Goal The surfaces `main` adds since `release` follow the repository's API rules -before the cut publishes them: one path and one spelling per item, names by -role, no dead or unreachable public items, no setter that a caller can apply -to the wrong role, and Rust, JS, and the bindings mirrored. Each child is a -batch of small, mostly breaking fixes to one area, sized so one PR reviews in -one sitting. +before the cut publishes them. The epic's own pre-cut deletion sweep landed in +[moq-dev/moq#8461](https://github.com/moq-dev/moq/pull/8461); it finishes with +its remaining children. ## Plan -Planned 2026-11-07 (maintainer, /quest-plan) from an audit of `release` -(a005c7ad9a) against `main` (a9d7925123) plus the open quests. Nine -read-only reviewers (net model, net session, transport, media formats, -native media, apps, JS core, browser media, bindings) scored 127 clusters -for performance, usability, testability, and future fit, using -`just api-diff` and consumer searches in this repository and its -downstream applications. The maintainer approved the plan as shown. The larger findings -became their own m1, m2, m3, and m4 quests; this epic holds the rest. - -This audit ran while [moq-dev/moq#8088](https://github.com/moq-dev/moq/pull/8088), -the previous API audit's final pass, was open, and none of its children -repeats an item #8088 changes. #8088 has since merged, so a child rechecks -each item against `main` and drops what is already done. - -Added 2026-11-07 (maintainer, /quest-plan from the 2026-11-07 API sweep of open PRs and remaining quests): fences for -what later quests grow (`#[non_exhaustive]` on structs and enums m3 to m5 -add to), shapes those quests would otherwise break, and this epic's own -work: before the cut, run a "public item used only by its definition" -search over the published crates and JS packages and delete each hit, starting with -`moq_tokio::Server::serve_both`, `hang::Catalog::to_json_pretty`, and -`moq_audio::Format::{is_planar, is_float}`, the shortlist of -[the code audit](/quest/m3/audit-code.md). The audit itself stays -in m3 for private code. - -Decided 2026-11-09 (maintainer, on [moq-dev/moq#8302](https://github.com/moq-dev/moq/pull/8302): -"delete anything unused in general"): ✅ unused public surface is deleted, -not made private, and the pre-cut sweep covers the JS packages too -(rejected: a separate audit quest, since this epic already owns the sweep). - Rules every child follows: - Removal beats addition. A public item with no caller in this repository @@ -49,26 +18,3 @@ Rules every child follows: shipped. - Each child lists its public API and wire impact in its PR, and its Impact section says how to migrate. - -Rejected in planning: - -- One audit PR for every area: each child touches a different owner's code, - and #8088 showed that a 100-file audit PR spends weeks rebasing. -- Folding these items into the larger quests: those wait on decisions or - prototypes, and these do not. - -Added 2026-11-09 (maintainer, /quest-plan from the deletion audit): the -pre-cut sweep also deletes these, which a "used only by its definition" -search misses or which are not items: - -- `@moq/watch`'s `Arrival`/`Arrivals` export and `decoder.arrivals()`: - only `test/audio-quality` uses them, and it can import from source. Not on - `release`, so removing them breaks nobody. -- `@moq/qmux`'s `install()`: no caller, and it cannot help Safari, which - ships a broken WebTransport rather than none. -- `moq-nvenc`'s `src/sys/windows_sys` (680 KB generated): moq-video depends - on moq-nvenc only under `cfg(target_os = "linux")`. -- `moq-sock`'s `fast-apple-datapath` feature (`udp/apple_fast.rs`), which only - `just rs macos-test` enables, and its WASI arm (`udp/wasi.rs`), which no - target builds. Update [cmsg length on send](/quest/m3/cmsg-len-send.md), - which names the feature. diff --git a/quest/m3/audit-code.md b/quest/m3/audit-code.md index eba48fa7b7f..e7fe0f9eb9c 100644 --- a/quest/m3/audit-code.md +++ b/quest/m3/audit-code.md @@ -18,9 +18,15 @@ large to review alongside become follow-ups. Removing or reshaping a public item, narrowing a feature, or removing one of our deprecated exports or hidden CLI spellings is the maintainer's call, so -each is a follow-up with a recommendation. The public-item pass before a cut -belongs to [API shape](/quest/m2/api-shape/README.md); this audit keeps -private code. +each is a follow-up with a recommendation. The public-item pass before the m2 cut +ran as the api-shape epic's own work; this audit keeps private code. + +Decided 2026-11-11 (maintainer, on [moq-dev/moq#8461](https://github.com/moq-dev/moq/pull/8461)): +✅ that sweep's kept hits are this audit's baselines (rejected: a new quest). +Vendored forks kept upstream's surface: moq-v4l 1,666 hits (mostly generated +`videodev2.rs`), moq-vaapi 707 (mostly generated `libva.rs`), moq-nvenc's +generated `sys`, moq-quic's `RetryError::into_incoming`, and moq-rtmp's `rml`. +moq-c kept its 11 entry points, which mirror moq-ffi for outside C callers. Previous runs: dead code [moq-dev/moq#6166](https://github.com/moq-dev/moq/pull/6166), simplification [moq-dev/moq#6527](https://github.com/moq-dev/moq/pull/6527), diff --git a/quest/m3/cmsg-len-send.md b/quest/m3/cmsg-len-send.md index 46ee5801335..5cae64b29e1 100644 --- a/quest/m3/cmsg-len-send.md +++ b/quest/m3/cmsg-len-send.md @@ -27,7 +27,7 @@ Take the larger of the receive and send sums per family, or add a reasoning about which set is bigger. Drop `encode_src_ip` on Apple if it is still unused. Verify with cross-target `cargo check` (macOS, FreeBSD, Linux) or the `platform.yml` workflow, and watch the next -macOS Nightly's `ipv4_source_address_override` (and `fast-apple-datapath`). +macOS Nightly's `ipv4_source_address_override`. The Windows receive path's truncation was fixed separately in [moq-dev/moq#7543](https://github.com/moq-dev/moq/pull/7543). diff --git a/rs/hang/src/catalog/root.rs b/rs/hang/src/catalog/root.rs index 0fa325d0a8b..0384d4fd77a 100644 --- a/rs/hang/src/catalog/root.rs +++ b/rs/hang/src/catalog/root.rs @@ -402,11 +402,6 @@ impl Catalog { Ok(serde_json::to_string(self)?) } - /// Serialize the catalog to a pretty-printed JSON string. - pub fn to_json_pretty(&self) -> Result { - Ok(serde_json::to_string_pretty(self)?) - } - /// Serialize the catalog to a vector of bytes. pub fn to_vec(&self) -> Result> { Ok(serde_json::to_vec(self)?) diff --git a/rs/justfile b/rs/justfile index 6e6477b37d0..d7c3be677b5 100644 --- a/rs/justfile +++ b/rs/justfile @@ -159,7 +159,6 @@ macos-test: source sh/checks.sh run just rs test --manifest-path rs/moq-auth/Cargo.toml run just rs test -p kio -p hang -p moq-tokio -p moq-sock - run just rs test -p moq-sock --features fast-apple-datapath run just rs test -p moq-video --no-default-features -E 'test(encode::backend::videotoolbox::tests)' # Runner has no camera; these tests need none. run just rs test -p moq-video --no-default-features --features capture -E 'test(/^capture::avfoundation::tests::/)' diff --git a/rs/moq-audio/src/format.rs b/rs/moq-audio/src/format.rs index b953e2591ae..1b5bb4d8b22 100644 --- a/rs/moq-audio/src/format.rs +++ b/rs/moq-audio/src/format.rs @@ -44,19 +44,6 @@ impl Format { } } - /// Whether channels are stored planar (each channel contiguous) rather than interleaved. - pub fn is_planar(self) -> bool { - matches!( - self, - Self::U8Planar | Self::S16Planar | Self::S32Planar | Self::F32Planar - ) - } - - /// Whether the underlying sample type is floating-point. - pub fn is_float(self) -> bool { - matches!(self, Self::F32 | Self::F32Planar) - } - /// Convert a raw PCM buffer in this format to interleaved `f32` in `[-1.0, 1.0]`. /// /// Returns a [`Cow::Borrowed`] when the input is already interleaved `f32` diff --git a/rs/moq-auth/src/key.rs b/rs/moq-auth/src/key.rs index e44053066c6..e5e6c5f1f33 100644 --- a/rs/moq-auth/src/key.rs +++ b/rs/moq-auth/src/key.rs @@ -399,12 +399,6 @@ impl Key { std::fs::read_to_string(&path)?.parse() } - /// Async version of [`from_file`](Self::from_file), using `tokio::fs`. - #[cfg(any(feature = "client", feature = "serve"))] - pub async fn from_file_async>(path: P) -> crate::Result { - tokio::fs::read_to_string(path).await?.parse() - } - /// Encode the key as base64url-encoded JSON. pub fn to_str(&self) -> crate::Result { let json = serde_json::to_string(self)?; diff --git a/rs/moq-net/src/ietf/group.rs b/rs/moq-net/src/ietf/group.rs index 95013dbf0d9..a9e3eed088c 100644 --- a/rs/moq-net/src/ietf/group.rs +++ b/rs/moq-net/src/ietf/group.rs @@ -77,14 +77,6 @@ pub enum GroupOrder { } impl GroupOrder { - /// Map `Any` (0x0) to `Descending`, leaving other values unchanged. - pub fn any_to_descending(self) -> Self { - match self { - Self::Any => Self::Descending, - other => other, - } - } - /// The model's order: `Any` leaves the choice to the publisher, which serves newest /// first. pub fn to_order(self) -> crate::track::Order { diff --git a/rs/moq-nvenc/README.md b/rs/moq-nvenc/README.md index b02b24dde60..96e93207693 100644 --- a/rs/moq-nvenc/README.md +++ b/rs/moq-nvenc/README.md @@ -17,10 +17,10 @@ libraries and entry points, rejected loader calls, and drivers older than the vendored SDK are reported as `LoadError` values. The safe encoder facade never panics while loading its driver function table. -The crate compiles on any platform, macOS included: the `sys` bindings are plain -C-ABI definitions and nothing links at build time. It only actually loads NVENC -on Linux (that is the only place `moq-video` calls it); elsewhere it is a -compile-only stub. +The crate compiles on any platform: the `sys` bindings are Linux's plain C-ABI +definitions and nothing links at build time. It only loads NVENC and NVDEC on +Linux, the only place `moq-video` depends on it; elsewhere it is a compile-only +stub. The public encoder facade owns configuration and registered allocations, seals driver handles, and returns a submission that keeps input and output resources diff --git a/rs/moq-nvenc/src/cuvid.rs b/rs/moq-nvenc/src/cuvid.rs index 4099531ce3c..a29c68ddf3e 100644 --- a/rs/moq-nvenc/src/cuvid.rs +++ b/rs/moq-nvenc/src/cuvid.rs @@ -75,14 +75,12 @@ impl Api { fn load() -> Result { // `.so.1` is the versioned SONAME present at runtime; `.so` is the dev - // symlink. Windows ships the DLL with the NVIDIA driver. + // symlink. #[cfg(target_os = "linux")] const CANDIDATES: &[&str] = &["libnvcuvid.so.1", "libnvcuvid.so"]; - #[cfg(target_os = "windows")] - const CANDIDATES: &[&str] = &["nvcuvid.dll"]; - // No NVDEC library exists on other platforms (e.g. macOS); loading - // always fails there with a clear error. - #[cfg(not(any(target_os = "linux", target_os = "windows")))] + // The bindings are Linux's, so other platforms never load the driver; + // loading always fails there with a clear error. + #[cfg(not(target_os = "linux"))] const CANDIDATES: &[&str] = &[]; // SAFETY: loading the NVIDIA driver library runs its initializers, which diff --git a/rs/moq-nvenc/src/safe/api.rs b/rs/moq-nvenc/src/safe/api.rs index 147fc641cd0..2aa821adc80 100644 --- a/rs/moq-nvenc/src/safe/api.rs +++ b/rs/moq-nvenc/src/safe/api.rs @@ -17,9 +17,7 @@ use crate::sys::nvEncodeAPI::{ #[cfg(target_os = "linux")] const CANDIDATES: &[&str] = &["libnvidia-encode.so.1", "libnvidia-encode.so"]; -#[cfg(target_os = "windows")] -const CANDIDATES: &[&str] = &["nvEncodeAPI64.dll", "nvEncodeAPI.dll"]; -#[cfg(not(any(target_os = "linux", target_os = "windows")))] +#[cfg(not(target_os = "linux"))] const CANDIDATES: &[&str] = &[]; /// An error while loading the NVENC driver API. diff --git a/rs/moq-nvenc/src/sys/linux_sys/cuviddec.rs b/rs/moq-nvenc/src/sys/linux_sys/cuviddec.rs index 40e9b0429ee..161bd20d60a 100644 --- a/rs/moq-nvenc/src/sys/linux_sys/cuviddec.rs +++ b/rs/moq-nvenc/src/sys/linux_sys/cuviddec.rs @@ -608,6 +608,7 @@ pub const I_VOP: u32 = 0; pub const P_VOP: u32 = 1; pub const B_VOP: u32 = 2; pub const S_VOP: u32 = 3; +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDDECODECAPS() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDDECODECAPS> = ::core::mem::MaybeUninit::uninit(); @@ -783,6 +784,7 @@ fn bindgen_test_layout__CUVIDDECODECAPS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDDECODECREATEINFO__bindgen_ty_1() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDDECODECREATEINFO__bindgen_ty_1> = @@ -845,6 +847,7 @@ fn bindgen_test_layout__CUVIDDECODECREATEINFO__bindgen_ty_1() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDDECODECREATEINFO__bindgen_ty_2() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDDECODECREATEINFO__bindgen_ty_2> = @@ -907,6 +910,7 @@ fn bindgen_test_layout__CUVIDDECODECREATEINFO__bindgen_ty_2() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDDECODECREATEINFO() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDDECODECREATEINFO> = @@ -1133,6 +1137,7 @@ fn bindgen_test_layout__CUVIDDECODECREATEINFO() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDH264DPBENTRY() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDH264DPBENTRY> = ::core::mem::MaybeUninit::uninit(); @@ -1208,6 +1213,7 @@ fn bindgen_test_layout__CUVIDH264DPBENTRY() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDH264MVCEXT() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDH264MVCEXT> = ::core::mem::MaybeUninit::uninit(); @@ -1303,6 +1309,7 @@ fn bindgen_test_layout__CUVIDH264MVCEXT() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDH264SVCEXT() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDH264SVCEXT> = ::core::mem::MaybeUninit::uninit(); @@ -1634,6 +1641,7 @@ fn bindgen_test_layout__CUVIDH264SVCEXT() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDH264PICPARAMS__bindgen_ty_1() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDH264PICPARAMS__bindgen_ty_1> = @@ -1673,6 +1681,7 @@ fn bindgen_test_layout__CUVIDH264PICPARAMS__bindgen_ty_1() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDH264PICPARAMS__bindgen_ty_2() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDH264PICPARAMS__bindgen_ty_2> = @@ -1712,6 +1721,7 @@ fn bindgen_test_layout__CUVIDH264PICPARAMS__bindgen_ty_2() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDH264PICPARAMS() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDH264PICPARAMS> = @@ -2132,6 +2142,7 @@ fn bindgen_test_layout__CUVIDH264PICPARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDMPEG2PICPARAMS() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDMPEG2PICPARAMS> = @@ -2298,6 +2309,7 @@ fn bindgen_test_layout__CUVIDMPEG2PICPARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDMPEG4PICPARAMS() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDMPEG4PICPARAMS> = @@ -2548,6 +2560,7 @@ fn bindgen_test_layout__CUVIDMPEG4PICPARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDVC1PICPARAMS() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDVC1PICPARAMS> = ::core::mem::MaybeUninit::uninit(); @@ -2893,6 +2906,7 @@ fn bindgen_test_layout__CUVIDVC1PICPARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDJPEGPICPARAMS() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDJPEGPICPARAMS> = @@ -2919,6 +2933,7 @@ fn bindgen_test_layout__CUVIDJPEGPICPARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDHEVCPICPARAMS() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDHEVCPICPARAMS> = @@ -4131,6 +4146,7 @@ fn bindgen_test_layout__CUVIDHEVCPICPARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDVP8PICPARAMS__bindgen_ty_1__bindgen_ty_1() { assert_eq!( @@ -4150,6 +4166,7 @@ fn bindgen_test_layout__CUVIDVP8PICPARAMS__bindgen_ty_1__bindgen_ty_1() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDVP8PICPARAMS__bindgen_ty_1() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDVP8PICPARAMS__bindgen_ty_1> = @@ -4189,6 +4206,7 @@ fn bindgen_test_layout__CUVIDVP8PICPARAMS__bindgen_ty_1() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDVP8PICPARAMS() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDVP8PICPARAMS> = ::core::mem::MaybeUninit::uninit(); @@ -4284,6 +4302,7 @@ fn bindgen_test_layout__CUVIDVP8PICPARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDVP9PICPARAMS() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDVP9PICPARAMS> = ::core::mem::MaybeUninit::uninit(); @@ -4619,6 +4638,7 @@ fn bindgen_test_layout__CUVIDVP9PICPARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDAV1PICPARAMS__bindgen_ty_1() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDAV1PICPARAMS__bindgen_ty_1> = @@ -4678,6 +4698,7 @@ fn bindgen_test_layout__CUVIDAV1PICPARAMS__bindgen_ty_1() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDAV1PICPARAMS__bindgen_ty_2() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDAV1PICPARAMS__bindgen_ty_2> = @@ -4717,6 +4738,7 @@ fn bindgen_test_layout__CUVIDAV1PICPARAMS__bindgen_ty_2() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDAV1PICPARAMS() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDAV1PICPARAMS> = ::core::mem::MaybeUninit::uninit(); @@ -5232,6 +5254,7 @@ fn bindgen_test_layout__CUVIDAV1PICPARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDPICPARAMS__bindgen_ty_1() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDPICPARAMS__bindgen_ty_1> = @@ -5348,6 +5371,7 @@ fn bindgen_test_layout__CUVIDPICPARAMS__bindgen_ty_1() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDPICPARAMS() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDPICPARAMS> = ::core::mem::MaybeUninit::uninit(); @@ -5503,6 +5527,7 @@ fn bindgen_test_layout__CUVIDPICPARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDPROCPARAMS() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDPROCPARAMS> = ::core::mem::MaybeUninit::uninit(); @@ -5678,6 +5703,7 @@ fn bindgen_test_layout__CUVIDPROCPARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDGETDECODESTATUS() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDGETDECODESTATUS> = @@ -5724,6 +5750,7 @@ fn bindgen_test_layout__CUVIDGETDECODESTATUS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDRECONFIGUREDECODERINFO__bindgen_ty_1() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_1> = @@ -5786,6 +5813,7 @@ fn bindgen_test_layout__CUVIDRECONFIGUREDECODERINFO__bindgen_ty_1() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDRECONFIGUREDECODERINFO__bindgen_ty_2() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_2> = @@ -5848,6 +5876,7 @@ fn bindgen_test_layout__CUVIDRECONFIGUREDECODERINFO__bindgen_ty_2() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDRECONFIGUREDECODERINFO() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDRECONFIGUREDECODERINFO> = diff --git a/rs/moq-nvenc/src/sys/linux_sys/nvEncodeAPI.rs b/rs/moq-nvenc/src/sys/linux_sys/nvEncodeAPI.rs index 18aa98d7267..c7ffbfd6acd 100644 --- a/rs/moq-nvenc/src/sys/linux_sys/nvEncodeAPI.rs +++ b/rs/moq-nvenc/src/sys/linux_sys/nvEncodeAPI.rs @@ -1091,6 +1091,7 @@ pub const NVENC_INFINITE_GOPLENGTH: u32 = 4294967295; pub const NV_MAX_SEQ_HDR_LEN: u32 = 512; pub const NV_MAX_TILE_COLS_AV1: u32 = 64; pub const NV_MAX_TILE_ROWS_AV1: u32 = 64; +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__GUID() { const UNINIT: ::core::mem::MaybeUninit<_GUID> = ::core::mem::MaybeUninit::uninit(); @@ -1146,6 +1147,7 @@ fn bindgen_test_layout__GUID() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NVENC_RECT() { const UNINIT: ::core::mem::MaybeUninit<_NVENC_RECT> = ::core::mem::MaybeUninit::uninit(); @@ -1201,6 +1203,7 @@ fn bindgen_test_layout__NVENC_RECT() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_CAPS_PARAM() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CAPS_PARAM> = ::core::mem::MaybeUninit::uninit(); @@ -1246,6 +1249,7 @@ fn bindgen_test_layout__NV_ENC_CAPS_PARAM() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_RESTORE_ENCODER_STATE_PARAMS() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_RESTORE_ENCODER_STATE_PARAMS> = @@ -1338,6 +1342,7 @@ fn bindgen_test_layout__NV_ENC_RESTORE_ENCODER_STATE_PARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_OUTPUT_STATS_BLOCK() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_OUTPUT_STATS_BLOCK> = @@ -1404,6 +1409,7 @@ fn bindgen_test_layout__NV_ENC_OUTPUT_STATS_BLOCK() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_OUTPUT_STATS_ROW() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_OUTPUT_STATS_ROW> = @@ -1470,6 +1476,7 @@ fn bindgen_test_layout__NV_ENC_OUTPUT_STATS_ROW() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_ENCODE_OUT_PARAMS() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_ENCODE_OUT_PARAMS> = @@ -1516,6 +1523,7 @@ fn bindgen_test_layout__NV_ENC_ENCODE_OUT_PARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_LOOKAHEAD_PIC_PARAMS() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_LOOKAHEAD_PIC_PARAMS> = @@ -1582,6 +1590,7 @@ fn bindgen_test_layout__NV_ENC_LOOKAHEAD_PIC_PARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_CREATE_INPUT_BUFFER() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CREATE_INPUT_BUFFER> = @@ -1698,6 +1707,7 @@ fn bindgen_test_layout__NV_ENC_CREATE_INPUT_BUFFER() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_CREATE_BITSTREAM_BUFFER() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CREATE_BITSTREAM_BUFFER> = @@ -1794,6 +1804,7 @@ fn bindgen_test_layout__NV_ENC_CREATE_BITSTREAM_BUFFER() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_MVECTOR() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_MVECTOR> = ::core::mem::MaybeUninit::uninit(); @@ -1829,6 +1840,7 @@ fn bindgen_test_layout__NV_ENC_MVECTOR() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_H264_MV_DATA() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_H264_MV_DATA> = @@ -1895,6 +1907,7 @@ fn bindgen_test_layout__NV_ENC_H264_MV_DATA() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_HEVC_MV_DATA() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_HEVC_MV_DATA> = @@ -1961,6 +1974,7 @@ fn bindgen_test_layout__NV_ENC_HEVC_MV_DATA() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_CREATE_MV_BUFFER() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CREATE_MV_BUFFER> = @@ -2017,6 +2031,7 @@ fn bindgen_test_layout__NV_ENC_CREATE_MV_BUFFER() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_QP() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_QP> = ::core::mem::MaybeUninit::uninit(); @@ -2062,6 +2077,7 @@ fn bindgen_test_layout__NV_ENC_QP() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_RC_PARAMS() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_RC_PARAMS> = ::core::mem::MaybeUninit::uninit(); @@ -2337,6 +2353,7 @@ fn bindgen_test_layout__NV_ENC_RC_PARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_CLOCK_TIMESTAMP_SET() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CLOCK_TIMESTAMP_SET> = @@ -2363,6 +2380,7 @@ fn bindgen_test_layout__NV_ENC_CLOCK_TIMESTAMP_SET() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_TIME_CODE() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_TIME_CODE> = ::core::mem::MaybeUninit::uninit(); @@ -2398,6 +2416,7 @@ fn bindgen_test_layout__NV_ENC_TIME_CODE() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_CONFIG_H264_VUI_PARAMETERS() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_H264_VUI_PARAMETERS> = @@ -2589,6 +2608,7 @@ fn bindgen_test_layout__NV_ENC_CONFIG_H264_VUI_PARAMETERS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE() { const UNINIT: ::core::mem::MaybeUninit<_NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE> = @@ -2621,6 +2641,7 @@ fn bindgen_test_layout__NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NVENC_EXTERNAL_ME_HINT() { assert_eq!( @@ -2634,6 +2655,7 @@ fn bindgen_test_layout__NVENC_EXTERNAL_ME_HINT() { concat!("Alignment of ", stringify!(_NVENC_EXTERNAL_ME_HINT)) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NVENC_EXTERNAL_ME_SB_HINT() { assert_eq!( @@ -2647,6 +2669,7 @@ fn bindgen_test_layout__NVENC_EXTERNAL_ME_SB_HINT() { concat!("Alignment of ", stringify!(_NVENC_EXTERNAL_ME_SB_HINT)) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_CONFIG_H264() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_H264> = @@ -2933,6 +2956,7 @@ fn bindgen_test_layout__NV_ENC_CONFIG_H264() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_CONFIG_HEVC() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_HEVC> = @@ -3169,6 +3193,7 @@ fn bindgen_test_layout__NV_ENC_CONFIG_HEVC() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_FILM_GRAIN_PARAMS_AV1() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_FILM_GRAIN_PARAMS_AV1> = @@ -3345,6 +3370,7 @@ fn bindgen_test_layout__NV_ENC_FILM_GRAIN_PARAMS_AV1() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_CONFIG_AV1() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_AV1> = ::core::mem::MaybeUninit::uninit(); @@ -3600,6 +3626,7 @@ fn bindgen_test_layout__NV_ENC_CONFIG_AV1() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_CONFIG_H264_MEONLY() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_H264_MEONLY> = @@ -3636,6 +3663,7 @@ fn bindgen_test_layout__NV_ENC_CONFIG_H264_MEONLY() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_CONFIG_HEVC_MEONLY() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_HEVC_MEONLY> = @@ -3672,6 +3700,7 @@ fn bindgen_test_layout__NV_ENC_CONFIG_HEVC_MEONLY() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_CODEC_CONFIG() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CODEC_CONFIG> = @@ -3748,6 +3777,7 @@ fn bindgen_test_layout__NV_ENC_CODEC_CONFIG() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_CONFIG() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG> = ::core::mem::MaybeUninit::uninit(); @@ -3873,6 +3903,7 @@ fn bindgen_test_layout__NV_ENC_CONFIG() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_INITIALIZE_PARAMS() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_INITIALIZE_PARAMS> = @@ -4119,6 +4150,7 @@ fn bindgen_test_layout__NV_ENC_INITIALIZE_PARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_RECONFIGURE_PARAMS() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_RECONFIGURE_PARAMS> = @@ -4155,6 +4187,7 @@ fn bindgen_test_layout__NV_ENC_RECONFIGURE_PARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_PRESET_CONFIG() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PRESET_CONFIG> = @@ -4211,6 +4244,7 @@ fn bindgen_test_layout__NV_ENC_PRESET_CONFIG() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_PIC_PARAMS_MVC() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS_MVC> = @@ -4287,6 +4321,7 @@ fn bindgen_test_layout__NV_ENC_PIC_PARAMS_MVC() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_PIC_PARAMS_H264_EXT() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS_H264_EXT> = @@ -4323,6 +4358,7 @@ fn bindgen_test_layout__NV_ENC_PIC_PARAMS_H264_EXT() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_SEI_PAYLOAD() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_SEI_PAYLOAD> = @@ -4369,6 +4405,7 @@ fn bindgen_test_layout__NV_ENC_SEI_PAYLOAD() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_PIC_PARAMS_H264() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS_H264> = @@ -4587,6 +4624,7 @@ fn bindgen_test_layout__NV_ENC_PIC_PARAMS_H264() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_PIC_PARAMS_HEVC() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS_HEVC> = @@ -4775,6 +4813,7 @@ fn bindgen_test_layout__NV_ENC_PIC_PARAMS_HEVC() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_PIC_PARAMS_AV1() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS_AV1> = @@ -4933,6 +4972,7 @@ fn bindgen_test_layout__NV_ENC_PIC_PARAMS_AV1() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_CODEC_PIC_PARAMS() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CODEC_PIC_PARAMS> = @@ -4989,6 +5029,7 @@ fn bindgen_test_layout__NV_ENC_CODEC_PIC_PARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_PIC_PARAMS() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS> = ::core::mem::MaybeUninit::uninit(); @@ -5304,6 +5345,7 @@ fn bindgen_test_layout__NV_ENC_PIC_PARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_MEONLY_PARAMS() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_MEONLY_PARAMS> = @@ -5450,6 +5492,7 @@ fn bindgen_test_layout__NV_ENC_MEONLY_PARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_LOCK_BITSTREAM() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_LOCK_BITSTREAM> = @@ -5746,6 +5789,7 @@ fn bindgen_test_layout__NV_ENC_LOCK_BITSTREAM() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_LOCK_INPUT_BUFFER() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_LOCK_INPUT_BUFFER> = @@ -5822,6 +5866,7 @@ fn bindgen_test_layout__NV_ENC_LOCK_INPUT_BUFFER() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_MAP_INPUT_RESOURCE() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_MAP_INPUT_RESOURCE> = @@ -5918,6 +5963,7 @@ fn bindgen_test_layout__NV_ENC_MAP_INPUT_RESOURCE() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_INPUT_RESOURCE_OPENGL_TEX() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_INPUT_RESOURCE_OPENGL_TEX> = @@ -5957,6 +6003,7 @@ fn bindgen_test_layout__NV_ENC_INPUT_RESOURCE_OPENGL_TEX() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_FENCE_POINT_D3D12() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_FENCE_POINT_D3D12> = @@ -6033,6 +6080,7 @@ fn bindgen_test_layout__NV_ENC_FENCE_POINT_D3D12() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_INPUT_RESOURCE_D3D12() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_INPUT_RESOURCE_D3D12> = @@ -6109,6 +6157,7 @@ fn bindgen_test_layout__NV_ENC_INPUT_RESOURCE_D3D12() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_OUTPUT_RESOURCE_D3D12() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_OUTPUT_RESOURCE_D3D12> = @@ -6185,6 +6234,7 @@ fn bindgen_test_layout__NV_ENC_OUTPUT_RESOURCE_D3D12() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_REGISTER_RESOURCE() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_REGISTER_RESOURCE> = @@ -6341,6 +6391,7 @@ fn bindgen_test_layout__NV_ENC_REGISTER_RESOURCE() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_STAT() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_STAT> = ::core::mem::MaybeUninit::uninit(); @@ -6516,6 +6567,7 @@ fn bindgen_test_layout__NV_ENC_STAT() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_SEQUENCE_PARAM_PAYLOAD() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_SEQUENCE_PARAM_PAYLOAD> = @@ -6612,6 +6664,7 @@ fn bindgen_test_layout__NV_ENC_SEQUENCE_PARAM_PAYLOAD() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_EVENT_PARAMS() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_EVENT_PARAMS> = @@ -6678,6 +6731,7 @@ fn bindgen_test_layout__NV_ENC_EVENT_PARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS> = @@ -6770,6 +6824,7 @@ fn bindgen_test_layout__NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__NV_ENCODE_API_FUNCTION_LIST() { const UNINIT: ::core::mem::MaybeUninit<_NV_ENCODE_API_FUNCTION_LIST> = diff --git a/rs/moq-nvenc/src/sys/linux_sys/nvcuvid.rs b/rs/moq-nvenc/src/sys/linux_sys/nvcuvid.rs index 0952e9929d3..4684170c334 100644 --- a/rs/moq-nvenc/src/sys/linux_sys/nvcuvid.rs +++ b/rs/moq-nvenc/src/sys/linux_sys/nvcuvid.rs @@ -225,6 +225,7 @@ pub struct _CUVIDPARSERPARAMS { pub pExtVideoInfo: *mut CUVIDEOFORMATEX, } pub const MAX_CLOCK_TS: u32 = 3; +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__HEVCTIMECODESET() { const UNINIT: ::core::mem::MaybeUninit<_HEVCTIMECODESET> = ::core::mem::MaybeUninit::uninit(); @@ -400,6 +401,7 @@ fn bindgen_test_layout__HEVCTIMECODESET() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__HEVCSEITIMECODE() { const UNINIT: ::core::mem::MaybeUninit<_HEVCSEITIMECODE> = ::core::mem::MaybeUninit::uninit(); @@ -435,6 +437,7 @@ fn bindgen_test_layout__HEVCSEITIMECODE() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUSEIMESSAGE() { const UNINIT: ::core::mem::MaybeUninit<_CUSEIMESSAGE> = ::core::mem::MaybeUninit::uninit(); @@ -480,6 +483,7 @@ fn bindgen_test_layout__CUSEIMESSAGE() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout_CUVIDEOFORMAT__bindgen_ty_1() { const UNINIT: ::core::mem::MaybeUninit = @@ -516,6 +520,7 @@ fn bindgen_test_layout_CUVIDEOFORMAT__bindgen_ty_1() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout_CUVIDEOFORMAT__bindgen_ty_2() { const UNINIT: ::core::mem::MaybeUninit = @@ -572,6 +577,7 @@ fn bindgen_test_layout_CUVIDEOFORMAT__bindgen_ty_2() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout_CUVIDEOFORMAT__bindgen_ty_3() { const UNINIT: ::core::mem::MaybeUninit = @@ -608,6 +614,7 @@ fn bindgen_test_layout_CUVIDEOFORMAT__bindgen_ty_3() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout_CUVIDEOFORMAT__bindgen_ty_4() { const UNINIT: ::core::mem::MaybeUninit = @@ -654,6 +661,7 @@ fn bindgen_test_layout_CUVIDEOFORMAT__bindgen_ty_4() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout_CUVIDEOFORMAT() { const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); @@ -809,6 +817,7 @@ fn bindgen_test_layout_CUVIDEOFORMAT() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout_CUVIDOPERATINGPOINTINFO__bindgen_ty_1__bindgen_ty_1() { const UNINIT: ::core::mem::MaybeUninit = @@ -861,6 +870,7 @@ fn bindgen_test_layout_CUVIDOPERATINGPOINTINFO__bindgen_ty_1__bindgen_ty_1() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout_CUVIDOPERATINGPOINTINFO__bindgen_ty_1() { const UNINIT: ::core::mem::MaybeUninit = @@ -903,6 +913,7 @@ fn bindgen_test_layout_CUVIDOPERATINGPOINTINFO__bindgen_ty_1() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout_CUVIDOPERATINGPOINTINFO() { const UNINIT: ::core::mem::MaybeUninit = @@ -929,6 +940,7 @@ fn bindgen_test_layout_CUVIDOPERATINGPOINTINFO() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDSEIMESSAGEINFO() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDSEIMESSAGEINFO> = @@ -985,6 +997,7 @@ fn bindgen_test_layout__CUVIDSEIMESSAGEINFO() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout_CUVIDAV1SEQHDR() { const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); @@ -1030,6 +1043,7 @@ fn bindgen_test_layout_CUVIDAV1SEQHDR() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout_CUVIDEOFORMATEX__bindgen_ty_1() { const UNINIT: ::core::mem::MaybeUninit = @@ -1066,6 +1080,7 @@ fn bindgen_test_layout_CUVIDEOFORMATEX__bindgen_ty_1() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout_CUVIDEOFORMATEX() { const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); @@ -1091,6 +1106,7 @@ fn bindgen_test_layout_CUVIDEOFORMATEX() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout_CUAUDIOFORMAT() { const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); @@ -1166,6 +1182,7 @@ fn bindgen_test_layout_CUAUDIOFORMAT() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDSOURCEDATAPACKET() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDSOURCEDATAPACKET> = @@ -1222,6 +1239,7 @@ fn bindgen_test_layout__CUVIDSOURCEDATAPACKET() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDSOURCEPARAMS() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDSOURCEPARAMS> = ::core::mem::MaybeUninit::uninit(); @@ -1297,6 +1315,7 @@ fn bindgen_test_layout__CUVIDSOURCEPARAMS() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDPARSERDISPINFO() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDPARSERDISPINFO> = @@ -1363,6 +1382,7 @@ fn bindgen_test_layout__CUVIDPARSERDISPINFO() { ) ); } +#[cfg(target_os = "linux")] #[test] fn bindgen_test_layout__CUVIDPARSERPARAMS() { const UNINIT: ::core::mem::MaybeUninit<_CUVIDPARSERPARAMS> = ::core::mem::MaybeUninit::uninit(); diff --git a/rs/moq-nvenc/src/sys/mod.rs b/rs/moq-nvenc/src/sys/mod.rs index 7397d6d6925..7ac47053c7b 100644 --- a/rs/moq-nvenc/src/sys/mod.rs +++ b/rs/moq-nvenc/src/sys/mod.rs @@ -7,19 +7,12 @@ mod guid; mod version; -// The bindgen output is plain C-ABI type/enum/fn-pointer definitions, so the -// "linux" bindings compile on any non-Windows target. On macOS the crate only -// needs to compile (NVENC is never actually loaded there), so reuse them. +// The bindgen output is plain C-ABI type/enum/fn-pointer definitions generated +// for Linux, the only target that loads the driver. They compile on every +// target, so the crate builds elsewhere as a stub that never loads NVENC. +// Their layout tests are gated to Linux (re-apply after regenerating): on +// Windows `c_ulong` is 32-bit, so the Linux offsets don't hold there. #[allow(warnings, reason = "bindgen output")] #[rustfmt::skip] -#[cfg(not(target_os = "windows"))] mod linux_sys; -#[cfg(not(target_os = "windows"))] pub use linux_sys::*; - -#[allow(warnings, reason = "bindgen output")] -#[rustfmt::skip] -#[cfg(target_os = "windows")] -mod windows_sys; -#[cfg(target_os = "windows")] -pub use windows_sys::*; diff --git a/rs/moq-nvenc/src/sys/windows_sys/cuviddec.rs b/rs/moq-nvenc/src/sys/windows_sys/cuviddec.rs deleted file mode 100644 index df92655c4d9..00000000000 --- a/rs/moq-nvenc/src/sys/windows_sys/cuviddec.rs +++ /dev/null @@ -1,8174 +0,0 @@ -use cudarc::driver::sys::*; -/* automatically generated by rust-bindgen 0.65.1 */ - -pub type CUvideodecoder = *mut ::core::ffi::c_void; -pub type CUvideoctxlock = *mut _CUcontextlock_st; -pub type CUVIDDECODECAPS = _CUVIDDECODECAPS; -pub type CUVIDDECODECREATEINFO = _CUVIDDECODECREATEINFO; -pub type CUVIDH264DPBENTRY = _CUVIDH264DPBENTRY; -pub type CUVIDH264MVCEXT = _CUVIDH264MVCEXT; -pub type CUVIDH264SVCEXT = _CUVIDH264SVCEXT; -pub type CUVIDH264PICPARAMS = _CUVIDH264PICPARAMS; -pub type CUVIDMPEG2PICPARAMS = _CUVIDMPEG2PICPARAMS; -pub type CUVIDMPEG4PICPARAMS = _CUVIDMPEG4PICPARAMS; -pub type CUVIDVC1PICPARAMS = _CUVIDVC1PICPARAMS; -pub type CUVIDJPEGPICPARAMS = _CUVIDJPEGPICPARAMS; -pub type CUVIDHEVCPICPARAMS = _CUVIDHEVCPICPARAMS; -pub type CUVIDVP8PICPARAMS = _CUVIDVP8PICPARAMS; -pub type CUVIDVP9PICPARAMS = _CUVIDVP9PICPARAMS; -pub type CUVIDAV1PICPARAMS = _CUVIDAV1PICPARAMS; -pub type CUVIDPICPARAMS = _CUVIDPICPARAMS; -pub type CUVIDPROCPARAMS = _CUVIDPROCPARAMS; -pub type CUVIDGETDECODESTATUS = _CUVIDGETDECODESTATUS; -pub type CUVIDRECONFIGUREDECODERINFO = _CUVIDRECONFIGUREDECODERINFO; -#[repr(C)] -#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] -pub struct __BindgenBitfieldUnit { - storage: Storage, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _CUcontextlock_st { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDDECODECAPS { - pub eCodecType: cudaVideoCodec, - pub eChromaFormat: cudaVideoChromaFormat, - pub nBitDepthMinus8: ::core::ffi::c_uint, - pub reserved1: [::core::ffi::c_uint; 3usize], - pub bIsSupported: ::core::ffi::c_uchar, - pub nNumNVDECs: ::core::ffi::c_uchar, - pub nOutputFormatMask: ::core::ffi::c_ushort, - pub nMaxWidth: ::core::ffi::c_uint, - pub nMaxHeight: ::core::ffi::c_uint, - pub nMaxMBCount: ::core::ffi::c_uint, - pub nMinWidth: ::core::ffi::c_ushort, - pub nMinHeight: ::core::ffi::c_ushort, - pub bIsHistogramSupported: ::core::ffi::c_uchar, - pub nCounterBitDepth: ::core::ffi::c_uchar, - pub nMaxHistogramBins: ::core::ffi::c_ushort, - pub reserved3: [::core::ffi::c_uint; 10usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDDECODECREATEINFO { - pub ulWidth: ::core::ffi::c_ulong, - pub ulHeight: ::core::ffi::c_ulong, - pub ulNumDecodeSurfaces: ::core::ffi::c_ulong, - pub CodecType: cudaVideoCodec, - pub ChromaFormat: cudaVideoChromaFormat, - pub ulCreationFlags: ::core::ffi::c_ulong, - pub bitDepthMinus8: ::core::ffi::c_ulong, - pub ulIntraDecodeOnly: ::core::ffi::c_ulong, - pub ulMaxWidth: ::core::ffi::c_ulong, - pub ulMaxHeight: ::core::ffi::c_ulong, - pub Reserved1: ::core::ffi::c_ulong, - pub display_area: _CUVIDDECODECREATEINFO__bindgen_ty_1, - pub OutputFormat: cudaVideoSurfaceFormat, - pub DeinterlaceMode: cudaVideoDeinterlaceMode, - pub ulTargetWidth: ::core::ffi::c_ulong, - pub ulTargetHeight: ::core::ffi::c_ulong, - pub ulNumOutputSurfaces: ::core::ffi::c_ulong, - pub vidLock: CUvideoctxlock, - pub target_rect: _CUVIDDECODECREATEINFO__bindgen_ty_2, - pub enableHistogram: ::core::ffi::c_ulong, - pub Reserved2: [::core::ffi::c_ulong; 4usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDDECODECREATEINFO__bindgen_ty_1 { - pub left: ::core::ffi::c_short, - pub top: ::core::ffi::c_short, - pub right: ::core::ffi::c_short, - pub bottom: ::core::ffi::c_short, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDDECODECREATEINFO__bindgen_ty_2 { - pub left: ::core::ffi::c_short, - pub top: ::core::ffi::c_short, - pub right: ::core::ffi::c_short, - pub bottom: ::core::ffi::c_short, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDH264DPBENTRY { - pub PicIdx: ::core::ffi::c_int, - pub FrameIdx: ::core::ffi::c_int, - pub is_long_term: ::core::ffi::c_int, - pub not_existing: ::core::ffi::c_int, - pub used_for_reference: ::core::ffi::c_int, - pub FieldOrderCnt: [::core::ffi::c_int; 2usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDH264MVCEXT { - pub num_views_minus1: ::core::ffi::c_int, - pub view_id: ::core::ffi::c_int, - pub inter_view_flag: ::core::ffi::c_uchar, - pub num_inter_view_refs_l0: ::core::ffi::c_uchar, - pub num_inter_view_refs_l1: ::core::ffi::c_uchar, - pub MVCReserved8Bits: ::core::ffi::c_uchar, - pub InterViewRefsL0: [::core::ffi::c_int; 16usize], - pub InterViewRefsL1: [::core::ffi::c_int; 16usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDH264SVCEXT { - pub profile_idc: ::core::ffi::c_uchar, - pub level_idc: ::core::ffi::c_uchar, - pub DQId: ::core::ffi::c_uchar, - pub DQIdMax: ::core::ffi::c_uchar, - pub disable_inter_layer_deblocking_filter_idc: ::core::ffi::c_uchar, - pub ref_layer_chroma_phase_y_plus1: ::core::ffi::c_uchar, - pub inter_layer_slice_alpha_c0_offset_div2: ::core::ffi::c_schar, - pub inter_layer_slice_beta_offset_div2: ::core::ffi::c_schar, - pub DPBEntryValidFlag: ::core::ffi::c_ushort, - pub inter_layer_deblocking_filter_control_present_flag: ::core::ffi::c_uchar, - pub extended_spatial_scalability_idc: ::core::ffi::c_uchar, - pub adaptive_tcoeff_level_prediction_flag: ::core::ffi::c_uchar, - pub slice_header_restriction_flag: ::core::ffi::c_uchar, - pub chroma_phase_x_plus1_flag: ::core::ffi::c_uchar, - pub chroma_phase_y_plus1: ::core::ffi::c_uchar, - pub tcoeff_level_prediction_flag: ::core::ffi::c_uchar, - pub constrained_intra_resampling_flag: ::core::ffi::c_uchar, - pub ref_layer_chroma_phase_x_plus1_flag: ::core::ffi::c_uchar, - pub store_ref_base_pic_flag: ::core::ffi::c_uchar, - pub Reserved8BitsA: ::core::ffi::c_uchar, - pub Reserved8BitsB: ::core::ffi::c_uchar, - pub scaled_ref_layer_left_offset: ::core::ffi::c_short, - pub scaled_ref_layer_top_offset: ::core::ffi::c_short, - pub scaled_ref_layer_right_offset: ::core::ffi::c_short, - pub scaled_ref_layer_bottom_offset: ::core::ffi::c_short, - pub Reserved16Bits: ::core::ffi::c_ushort, - pub pNextLayer: *mut _CUVIDPICPARAMS, - pub bRefBaseLayer: ::core::ffi::c_int, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _CUVIDH264PICPARAMS { - pub log2_max_frame_num_minus4: ::core::ffi::c_int, - pub pic_order_cnt_type: ::core::ffi::c_int, - pub log2_max_pic_order_cnt_lsb_minus4: ::core::ffi::c_int, - pub delta_pic_order_always_zero_flag: ::core::ffi::c_int, - pub frame_mbs_only_flag: ::core::ffi::c_int, - pub direct_8x8_inference_flag: ::core::ffi::c_int, - pub num_ref_frames: ::core::ffi::c_int, - pub residual_colour_transform_flag: ::core::ffi::c_uchar, - pub bit_depth_luma_minus8: ::core::ffi::c_uchar, - pub bit_depth_chroma_minus8: ::core::ffi::c_uchar, - pub qpprime_y_zero_transform_bypass_flag: ::core::ffi::c_uchar, - pub entropy_coding_mode_flag: ::core::ffi::c_int, - pub pic_order_present_flag: ::core::ffi::c_int, - pub num_ref_idx_l0_active_minus1: ::core::ffi::c_int, - pub num_ref_idx_l1_active_minus1: ::core::ffi::c_int, - pub weighted_pred_flag: ::core::ffi::c_int, - pub weighted_bipred_idc: ::core::ffi::c_int, - pub pic_init_qp_minus26: ::core::ffi::c_int, - pub deblocking_filter_control_present_flag: ::core::ffi::c_int, - pub redundant_pic_cnt_present_flag: ::core::ffi::c_int, - pub transform_8x8_mode_flag: ::core::ffi::c_int, - pub MbaffFrameFlag: ::core::ffi::c_int, - pub constrained_intra_pred_flag: ::core::ffi::c_int, - pub chroma_qp_index_offset: ::core::ffi::c_int, - pub second_chroma_qp_index_offset: ::core::ffi::c_int, - pub ref_pic_flag: ::core::ffi::c_int, - pub frame_num: ::core::ffi::c_int, - pub CurrFieldOrderCnt: [::core::ffi::c_int; 2usize], - pub dpb: [CUVIDH264DPBENTRY; 16usize], - pub WeightScale4x4: [[::core::ffi::c_uchar; 16usize]; 6usize], - pub WeightScale8x8: [[::core::ffi::c_uchar; 64usize]; 2usize], - pub fmo_aso_enable: ::core::ffi::c_uchar, - pub num_slice_groups_minus1: ::core::ffi::c_uchar, - pub slice_group_map_type: ::core::ffi::c_uchar, - pub pic_init_qs_minus26: ::core::ffi::c_schar, - pub slice_group_change_rate_minus1: ::core::ffi::c_uint, - pub fmo: _CUVIDH264PICPARAMS__bindgen_ty_1, - pub Reserved: [::core::ffi::c_uint; 12usize], - pub __bindgen_anon_1: _CUVIDH264PICPARAMS__bindgen_ty_2, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDMPEG2PICPARAMS { - pub ForwardRefIdx: ::core::ffi::c_int, - pub BackwardRefIdx: ::core::ffi::c_int, - pub picture_coding_type: ::core::ffi::c_int, - pub full_pel_forward_vector: ::core::ffi::c_int, - pub full_pel_backward_vector: ::core::ffi::c_int, - pub f_code: [[::core::ffi::c_int; 2usize]; 2usize], - pub intra_dc_precision: ::core::ffi::c_int, - pub frame_pred_frame_dct: ::core::ffi::c_int, - pub concealment_motion_vectors: ::core::ffi::c_int, - pub q_scale_type: ::core::ffi::c_int, - pub intra_vlc_format: ::core::ffi::c_int, - pub alternate_scan: ::core::ffi::c_int, - pub top_field_first: ::core::ffi::c_int, - pub QuantMatrixIntra: [::core::ffi::c_uchar; 64usize], - pub QuantMatrixInter: [::core::ffi::c_uchar; 64usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDMPEG4PICPARAMS { - pub ForwardRefIdx: ::core::ffi::c_int, - pub BackwardRefIdx: ::core::ffi::c_int, - pub video_object_layer_width: ::core::ffi::c_int, - pub video_object_layer_height: ::core::ffi::c_int, - pub vop_time_increment_bitcount: ::core::ffi::c_int, - pub top_field_first: ::core::ffi::c_int, - pub resync_marker_disable: ::core::ffi::c_int, - pub quant_type: ::core::ffi::c_int, - pub quarter_sample: ::core::ffi::c_int, - pub short_video_header: ::core::ffi::c_int, - pub divx_flags: ::core::ffi::c_int, - pub vop_coding_type: ::core::ffi::c_int, - pub vop_coded: ::core::ffi::c_int, - pub vop_rounding_type: ::core::ffi::c_int, - pub alternate_vertical_scan_flag: ::core::ffi::c_int, - pub interlaced: ::core::ffi::c_int, - pub vop_fcode_forward: ::core::ffi::c_int, - pub vop_fcode_backward: ::core::ffi::c_int, - pub trd: [::core::ffi::c_int; 2usize], - pub trb: [::core::ffi::c_int; 2usize], - pub QuantMatrixIntra: [::core::ffi::c_uchar; 64usize], - pub QuantMatrixInter: [::core::ffi::c_uchar; 64usize], - pub gmc_enabled: ::core::ffi::c_int, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDVC1PICPARAMS { - pub ForwardRefIdx: ::core::ffi::c_int, - pub BackwardRefIdx: ::core::ffi::c_int, - pub FrameWidth: ::core::ffi::c_int, - pub FrameHeight: ::core::ffi::c_int, - pub intra_pic_flag: ::core::ffi::c_int, - pub ref_pic_flag: ::core::ffi::c_int, - pub progressive_fcm: ::core::ffi::c_int, - pub profile: ::core::ffi::c_int, - pub postprocflag: ::core::ffi::c_int, - pub pulldown: ::core::ffi::c_int, - pub interlace: ::core::ffi::c_int, - pub tfcntrflag: ::core::ffi::c_int, - pub finterpflag: ::core::ffi::c_int, - pub psf: ::core::ffi::c_int, - pub multires: ::core::ffi::c_int, - pub syncmarker: ::core::ffi::c_int, - pub rangered: ::core::ffi::c_int, - pub maxbframes: ::core::ffi::c_int, - pub panscan_flag: ::core::ffi::c_int, - pub refdist_flag: ::core::ffi::c_int, - pub extended_mv: ::core::ffi::c_int, - pub dquant: ::core::ffi::c_int, - pub vstransform: ::core::ffi::c_int, - pub loopfilter: ::core::ffi::c_int, - pub fastuvmc: ::core::ffi::c_int, - pub overlap: ::core::ffi::c_int, - pub quantizer: ::core::ffi::c_int, - pub extended_dmv: ::core::ffi::c_int, - pub range_mapy_flag: ::core::ffi::c_int, - pub range_mapy: ::core::ffi::c_int, - pub range_mapuv_flag: ::core::ffi::c_int, - pub range_mapuv: ::core::ffi::c_int, - pub rangeredfrm: ::core::ffi::c_int, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDJPEGPICPARAMS { - pub Reserved: ::core::ffi::c_int, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDHEVCPICPARAMS { - pub pic_width_in_luma_samples: ::core::ffi::c_int, - pub pic_height_in_luma_samples: ::core::ffi::c_int, - pub log2_min_luma_coding_block_size_minus3: ::core::ffi::c_uchar, - pub log2_diff_max_min_luma_coding_block_size: ::core::ffi::c_uchar, - pub log2_min_transform_block_size_minus2: ::core::ffi::c_uchar, - pub log2_diff_max_min_transform_block_size: ::core::ffi::c_uchar, - pub pcm_enabled_flag: ::core::ffi::c_uchar, - pub log2_min_pcm_luma_coding_block_size_minus3: ::core::ffi::c_uchar, - pub log2_diff_max_min_pcm_luma_coding_block_size: ::core::ffi::c_uchar, - pub pcm_sample_bit_depth_luma_minus1: ::core::ffi::c_uchar, - pub pcm_sample_bit_depth_chroma_minus1: ::core::ffi::c_uchar, - pub pcm_loop_filter_disabled_flag: ::core::ffi::c_uchar, - pub strong_intra_smoothing_enabled_flag: ::core::ffi::c_uchar, - pub max_transform_hierarchy_depth_intra: ::core::ffi::c_uchar, - pub max_transform_hierarchy_depth_inter: ::core::ffi::c_uchar, - pub amp_enabled_flag: ::core::ffi::c_uchar, - pub separate_colour_plane_flag: ::core::ffi::c_uchar, - pub log2_max_pic_order_cnt_lsb_minus4: ::core::ffi::c_uchar, - pub num_short_term_ref_pic_sets: ::core::ffi::c_uchar, - pub long_term_ref_pics_present_flag: ::core::ffi::c_uchar, - pub num_long_term_ref_pics_sps: ::core::ffi::c_uchar, - pub sps_temporal_mvp_enabled_flag: ::core::ffi::c_uchar, - pub sample_adaptive_offset_enabled_flag: ::core::ffi::c_uchar, - pub scaling_list_enable_flag: ::core::ffi::c_uchar, - pub IrapPicFlag: ::core::ffi::c_uchar, - pub IdrPicFlag: ::core::ffi::c_uchar, - pub bit_depth_luma_minus8: ::core::ffi::c_uchar, - pub bit_depth_chroma_minus8: ::core::ffi::c_uchar, - pub log2_max_transform_skip_block_size_minus2: ::core::ffi::c_uchar, - pub log2_sao_offset_scale_luma: ::core::ffi::c_uchar, - pub log2_sao_offset_scale_chroma: ::core::ffi::c_uchar, - pub high_precision_offsets_enabled_flag: ::core::ffi::c_uchar, - pub reserved1: [::core::ffi::c_uchar; 10usize], - pub dependent_slice_segments_enabled_flag: ::core::ffi::c_uchar, - pub slice_segment_header_extension_present_flag: ::core::ffi::c_uchar, - pub sign_data_hiding_enabled_flag: ::core::ffi::c_uchar, - pub cu_qp_delta_enabled_flag: ::core::ffi::c_uchar, - pub diff_cu_qp_delta_depth: ::core::ffi::c_uchar, - pub init_qp_minus26: ::core::ffi::c_schar, - pub pps_cb_qp_offset: ::core::ffi::c_schar, - pub pps_cr_qp_offset: ::core::ffi::c_schar, - pub constrained_intra_pred_flag: ::core::ffi::c_uchar, - pub weighted_pred_flag: ::core::ffi::c_uchar, - pub weighted_bipred_flag: ::core::ffi::c_uchar, - pub transform_skip_enabled_flag: ::core::ffi::c_uchar, - pub transquant_bypass_enabled_flag: ::core::ffi::c_uchar, - pub entropy_coding_sync_enabled_flag: ::core::ffi::c_uchar, - pub log2_parallel_merge_level_minus2: ::core::ffi::c_uchar, - pub num_extra_slice_header_bits: ::core::ffi::c_uchar, - pub loop_filter_across_tiles_enabled_flag: ::core::ffi::c_uchar, - pub loop_filter_across_slices_enabled_flag: ::core::ffi::c_uchar, - pub output_flag_present_flag: ::core::ffi::c_uchar, - pub num_ref_idx_l0_default_active_minus1: ::core::ffi::c_uchar, - pub num_ref_idx_l1_default_active_minus1: ::core::ffi::c_uchar, - pub lists_modification_present_flag: ::core::ffi::c_uchar, - pub cabac_init_present_flag: ::core::ffi::c_uchar, - pub pps_slice_chroma_qp_offsets_present_flag: ::core::ffi::c_uchar, - pub deblocking_filter_override_enabled_flag: ::core::ffi::c_uchar, - pub pps_deblocking_filter_disabled_flag: ::core::ffi::c_uchar, - pub pps_beta_offset_div2: ::core::ffi::c_schar, - pub pps_tc_offset_div2: ::core::ffi::c_schar, - pub tiles_enabled_flag: ::core::ffi::c_uchar, - pub uniform_spacing_flag: ::core::ffi::c_uchar, - pub num_tile_columns_minus1: ::core::ffi::c_uchar, - pub num_tile_rows_minus1: ::core::ffi::c_uchar, - pub column_width_minus1: [::core::ffi::c_ushort; 21usize], - pub row_height_minus1: [::core::ffi::c_ushort; 21usize], - pub sps_range_extension_flag: ::core::ffi::c_uchar, - pub transform_skip_rotation_enabled_flag: ::core::ffi::c_uchar, - pub transform_skip_context_enabled_flag: ::core::ffi::c_uchar, - pub implicit_rdpcm_enabled_flag: ::core::ffi::c_uchar, - pub explicit_rdpcm_enabled_flag: ::core::ffi::c_uchar, - pub extended_precision_processing_flag: ::core::ffi::c_uchar, - pub intra_smoothing_disabled_flag: ::core::ffi::c_uchar, - pub persistent_rice_adaptation_enabled_flag: ::core::ffi::c_uchar, - pub cabac_bypass_alignment_enabled_flag: ::core::ffi::c_uchar, - pub pps_range_extension_flag: ::core::ffi::c_uchar, - pub cross_component_prediction_enabled_flag: ::core::ffi::c_uchar, - pub chroma_qp_offset_list_enabled_flag: ::core::ffi::c_uchar, - pub diff_cu_chroma_qp_offset_depth: ::core::ffi::c_uchar, - pub chroma_qp_offset_list_len_minus1: ::core::ffi::c_uchar, - pub cb_qp_offset_list: [::core::ffi::c_schar; 6usize], - pub cr_qp_offset_list: [::core::ffi::c_schar; 6usize], - pub reserved2: [::core::ffi::c_uchar; 2usize], - pub reserved3: [::core::ffi::c_uint; 8usize], - pub NumBitsForShortTermRPSInSlice: ::core::ffi::c_int, - pub NumDeltaPocsOfRefRpsIdx: ::core::ffi::c_int, - pub NumPocTotalCurr: ::core::ffi::c_int, - pub NumPocStCurrBefore: ::core::ffi::c_int, - pub NumPocStCurrAfter: ::core::ffi::c_int, - pub NumPocLtCurr: ::core::ffi::c_int, - pub CurrPicOrderCntVal: ::core::ffi::c_int, - pub RefPicIdx: [::core::ffi::c_int; 16usize], - pub PicOrderCntVal: [::core::ffi::c_int; 16usize], - pub IsLongTerm: [::core::ffi::c_uchar; 16usize], - pub RefPicSetStCurrBefore: [::core::ffi::c_uchar; 8usize], - pub RefPicSetStCurrAfter: [::core::ffi::c_uchar; 8usize], - pub RefPicSetLtCurr: [::core::ffi::c_uchar; 8usize], - pub RefPicSetInterLayer0: [::core::ffi::c_uchar; 8usize], - pub RefPicSetInterLayer1: [::core::ffi::c_uchar; 8usize], - pub reserved4: [::core::ffi::c_uint; 12usize], - pub ScalingList4x4: [[::core::ffi::c_uchar; 16usize]; 6usize], - pub ScalingList8x8: [[::core::ffi::c_uchar; 64usize]; 6usize], - pub ScalingList16x16: [[::core::ffi::c_uchar; 64usize]; 6usize], - pub ScalingList32x32: [[::core::ffi::c_uchar; 64usize]; 2usize], - pub ScalingListDCCoeff16x16: [::core::ffi::c_uchar; 6usize], - pub ScalingListDCCoeff32x32: [::core::ffi::c_uchar; 2usize], -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _CUVIDVP8PICPARAMS { - pub width: ::core::ffi::c_int, - pub height: ::core::ffi::c_int, - pub first_partition_size: ::core::ffi::c_uint, - pub LastRefIdx: ::core::ffi::c_uchar, - pub GoldenRefIdx: ::core::ffi::c_uchar, - pub AltRefIdx: ::core::ffi::c_uchar, - pub __bindgen_anon_1: _CUVIDVP8PICPARAMS__bindgen_ty_1, - pub Reserved1: [::core::ffi::c_uchar; 4usize], - pub Reserved2: [::core::ffi::c_uint; 3usize], -} -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDVP8PICPARAMS__bindgen_ty_1__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDVP9PICPARAMS { - pub width: ::core::ffi::c_uint, - pub height: ::core::ffi::c_uint, - pub LastRefIdx: ::core::ffi::c_uchar, - pub GoldenRefIdx: ::core::ffi::c_uchar, - pub AltRefIdx: ::core::ffi::c_uchar, - pub colorSpace: ::core::ffi::c_uchar, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - pub reserved16Bits: ::core::ffi::c_ushort, - pub refFrameSignBias: [::core::ffi::c_uchar; 4usize], - pub bitDepthMinus8Luma: ::core::ffi::c_uchar, - pub bitDepthMinus8Chroma: ::core::ffi::c_uchar, - pub loopFilterLevel: ::core::ffi::c_uchar, - pub loopFilterSharpness: ::core::ffi::c_uchar, - pub modeRefLfEnabled: ::core::ffi::c_uchar, - pub log2_tile_columns: ::core::ffi::c_uchar, - pub log2_tile_rows: ::core::ffi::c_uchar, - pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>, - pub segmentFeatureEnable: [[::core::ffi::c_uchar; 4usize]; 8usize], - pub segmentFeatureData: [[::core::ffi::c_short; 4usize]; 8usize], - pub mb_segment_tree_probs: [::core::ffi::c_uchar; 7usize], - pub segment_pred_probs: [::core::ffi::c_uchar; 3usize], - pub reservedSegment16Bits: [::core::ffi::c_uchar; 2usize], - pub qpYAc: ::core::ffi::c_int, - pub qpYDc: ::core::ffi::c_int, - pub qpChDc: ::core::ffi::c_int, - pub qpChAc: ::core::ffi::c_int, - pub activeRefIdx: [::core::ffi::c_uint; 3usize], - pub resetFrameContext: ::core::ffi::c_uint, - pub mcomp_filter_type: ::core::ffi::c_uint, - pub mbRefLfDelta: [::core::ffi::c_uint; 4usize], - pub mbModeLfDelta: [::core::ffi::c_uint; 2usize], - pub frameTagSize: ::core::ffi::c_uint, - pub offsetToDctParts: ::core::ffi::c_uint, - pub reserved128Bits: [::core::ffi::c_uint; 4usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDAV1PICPARAMS { - pub width: ::core::ffi::c_uint, - pub height: ::core::ffi::c_uint, - pub frame_offset: ::core::ffi::c_uint, - pub decodePicIdx: ::core::ffi::c_int, - pub _bitfield_align_1: [u16; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 12usize]>, - pub tile_widths: [::core::ffi::c_ushort; 64usize], - pub tile_heights: [::core::ffi::c_ushort; 64usize], - pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>, - pub cdef_y_strength: [::core::ffi::c_uchar; 8usize], - pub cdef_uv_strength: [::core::ffi::c_uchar; 8usize], - pub _bitfield_align_3: [u8; 0], - pub _bitfield_3: __BindgenBitfieldUnit<[u8; 1usize]>, - pub base_qindex: ::core::ffi::c_uchar, - pub qp_y_dc_delta_q: ::core::ffi::c_char, - pub qp_u_dc_delta_q: ::core::ffi::c_char, - pub qp_v_dc_delta_q: ::core::ffi::c_char, - pub qp_u_ac_delta_q: ::core::ffi::c_char, - pub qp_v_ac_delta_q: ::core::ffi::c_char, - pub qm_y: ::core::ffi::c_uchar, - pub qm_u: ::core::ffi::c_uchar, - pub qm_v: ::core::ffi::c_uchar, - pub _bitfield_align_4: [u8; 0], - pub _bitfield_4: __BindgenBitfieldUnit<[u8; 1usize]>, - pub segmentation_feature_data: [[::core::ffi::c_short; 8usize]; 8usize], - pub segmentation_feature_mask: [::core::ffi::c_uchar; 8usize], - pub loop_filter_level: [::core::ffi::c_uchar; 2usize], - pub loop_filter_level_u: ::core::ffi::c_uchar, - pub loop_filter_level_v: ::core::ffi::c_uchar, - pub loop_filter_sharpness: ::core::ffi::c_uchar, - pub loop_filter_ref_deltas: [::core::ffi::c_char; 8usize], - pub loop_filter_mode_deltas: [::core::ffi::c_char; 2usize], - pub _bitfield_align_5: [u8; 0], - pub _bitfield_5: __BindgenBitfieldUnit<[u8; 1usize]>, - pub lr_unit_size: [::core::ffi::c_uchar; 3usize], - pub lr_type: [::core::ffi::c_uchar; 3usize], - pub primary_ref_frame: ::core::ffi::c_uchar, - pub ref_frame_map: [::core::ffi::c_uchar; 8usize], - pub _bitfield_align_6: [u8; 0], - pub _bitfield_6: __BindgenBitfieldUnit<[u8; 1usize]>, - pub reserved5_32bits: [::core::ffi::c_uchar; 4usize], - pub ref_frame: [_CUVIDAV1PICPARAMS__bindgen_ty_1; 7usize], - pub global_motion: [_CUVIDAV1PICPARAMS__bindgen_ty_2; 7usize], - pub _bitfield_align_7: [u8; 0], - pub _bitfield_7: __BindgenBitfieldUnit<[u8; 2usize]>, - pub num_y_points: ::core::ffi::c_uchar, - pub scaling_points_y: [[::core::ffi::c_uchar; 2usize]; 14usize], - pub num_cb_points: ::core::ffi::c_uchar, - pub scaling_points_cb: [[::core::ffi::c_uchar; 2usize]; 10usize], - pub num_cr_points: ::core::ffi::c_uchar, - pub scaling_points_cr: [[::core::ffi::c_uchar; 2usize]; 10usize], - pub reserved7_8bits: ::core::ffi::c_uchar, - pub random_seed: ::core::ffi::c_ushort, - pub ar_coeffs_y: [::core::ffi::c_short; 24usize], - pub ar_coeffs_cb: [::core::ffi::c_short; 25usize], - pub ar_coeffs_cr: [::core::ffi::c_short; 25usize], - pub cb_mult: ::core::ffi::c_uchar, - pub cb_luma_mult: ::core::ffi::c_uchar, - pub cb_offset: ::core::ffi::c_short, - pub cr_mult: ::core::ffi::c_uchar, - pub cr_luma_mult: ::core::ffi::c_uchar, - pub cr_offset: ::core::ffi::c_short, - pub reserved: [::core::ffi::c_int; 7usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDAV1PICPARAMS__bindgen_ty_1 { - pub width: ::core::ffi::c_uint, - pub height: ::core::ffi::c_uint, - pub index: ::core::ffi::c_uchar, - pub reserved24Bits: [::core::ffi::c_uchar; 3usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDAV1PICPARAMS__bindgen_ty_2 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub reserved24Bits: [::core::ffi::c_char; 3usize], - pub wmmat: [::core::ffi::c_int; 6usize], -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _CUVIDPICPARAMS { - pub PicWidthInMbs: ::core::ffi::c_int, - pub FrameHeightInMbs: ::core::ffi::c_int, - pub CurrPicIdx: ::core::ffi::c_int, - pub field_pic_flag: ::core::ffi::c_int, - pub bottom_field_flag: ::core::ffi::c_int, - pub second_field: ::core::ffi::c_int, - pub nBitstreamDataLen: ::core::ffi::c_uint, - pub pBitstreamData: *const ::core::ffi::c_uchar, - pub nNumSlices: ::core::ffi::c_uint, - pub pSliceDataOffsets: *const ::core::ffi::c_uint, - pub ref_pic_flag: ::core::ffi::c_int, - pub intra_pic_flag: ::core::ffi::c_int, - pub Reserved: [::core::ffi::c_uint; 30usize], - pub CodecSpecific: _CUVIDPICPARAMS__bindgen_ty_1, -} -#[repr(C)] -pub struct _CUVIDPROCPARAMS { - pub progressive_frame: ::core::ffi::c_int, - pub second_field: ::core::ffi::c_int, - pub top_field_first: ::core::ffi::c_int, - pub unpaired_field: ::core::ffi::c_int, - pub reserved_flags: ::core::ffi::c_uint, - pub reserved_zero: ::core::ffi::c_uint, - pub raw_input_dptr: ::core::ffi::c_ulonglong, - pub raw_input_pitch: ::core::ffi::c_uint, - pub raw_input_format: ::core::ffi::c_uint, - pub raw_output_dptr: ::core::ffi::c_ulonglong, - pub raw_output_pitch: ::core::ffi::c_uint, - pub Reserved1: ::core::ffi::c_uint, - pub output_stream: CUstream, - pub Reserved: [::core::ffi::c_uint; 46usize], - pub histogram_dptr: *mut ::core::ffi::c_ulonglong, - pub Reserved2: [*mut ::core::ffi::c_void; 1usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDGETDECODESTATUS { - pub decodeStatus: cuvidDecodeStatus, - pub reserved: [::core::ffi::c_uint; 31usize], - pub pReserved: [*mut ::core::ffi::c_void; 8usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDRECONFIGUREDECODERINFO { - pub ulWidth: ::core::ffi::c_uint, - pub ulHeight: ::core::ffi::c_uint, - pub ulTargetWidth: ::core::ffi::c_uint, - pub ulTargetHeight: ::core::ffi::c_uint, - pub ulNumDecodeSurfaces: ::core::ffi::c_uint, - pub reserved1: [::core::ffi::c_uint; 12usize], - pub display_area: _CUVIDRECONFIGUREDECODERINFO__bindgen_ty_1, - pub target_rect: _CUVIDRECONFIGUREDECODERINFO__bindgen_ty_2, - pub reserved2: [::core::ffi::c_uint; 11usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDRECONFIGUREDECODERINFO__bindgen_ty_1 { - pub left: ::core::ffi::c_short, - pub top: ::core::ffi::c_short, - pub right: ::core::ffi::c_short, - pub bottom: ::core::ffi::c_short, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDRECONFIGUREDECODERINFO__bindgen_ty_2 { - pub left: ::core::ffi::c_short, - pub top: ::core::ffi::c_short, - pub right: ::core::ffi::c_short, - pub bottom: ::core::ffi::c_short, -} -#[test] -fn bindgen_test_layout__CUVIDDECODECAPS() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDDECODECAPS> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDDECODECAPS>(), - 88usize, - concat!("Size of: ", stringify!(_CUVIDDECODECAPS)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDDECODECAPS>(), - 4usize, - concat!("Alignment of ", stringify!(_CUVIDDECODECAPS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).eCodecType) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(eCodecType) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).eChromaFormat) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(eChromaFormat) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nBitDepthMinus8) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(nBitDepthMinus8) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bIsSupported) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(bIsSupported) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nNumNVDECs) as usize - ptr as usize }, - 25usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(nNumNVDECs) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nOutputFormatMask) as usize - ptr as usize }, - 26usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(nOutputFormatMask) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nMaxWidth) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(nMaxWidth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nMaxHeight) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(nMaxHeight) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nMaxMBCount) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(nMaxMBCount) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nMinWidth) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(nMinWidth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nMinHeight) as usize - ptr as usize }, - 42usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(nMinHeight) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bIsHistogramSupported) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(bIsHistogramSupported) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nCounterBitDepth) as usize - ptr as usize }, - 45usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(nCounterBitDepth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nMaxHistogramBins) as usize - ptr as usize }, - 46usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(nMaxHistogramBins) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECAPS), - "::", - stringify!(reserved3) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDDECODECREATEINFO__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDDECODECREATEINFO__bindgen_ty_1> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDDECODECREATEINFO__bindgen_ty_1>(), - 8usize, - concat!( - "Size of: ", - stringify!(_CUVIDDECODECREATEINFO__bindgen_ty_1) - ) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDDECODECREATEINFO__bindgen_ty_1>(), - 2usize, - concat!( - "Alignment of ", - stringify!(_CUVIDDECODECREATEINFO__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO__bindgen_ty_1), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO__bindgen_ty_1), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO__bindgen_ty_1), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO__bindgen_ty_1), - "::", - stringify!(bottom) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDDECODECREATEINFO__bindgen_ty_2() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDDECODECREATEINFO__bindgen_ty_2> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDDECODECREATEINFO__bindgen_ty_2>(), - 8usize, - concat!( - "Size of: ", - stringify!(_CUVIDDECODECREATEINFO__bindgen_ty_2) - ) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDDECODECREATEINFO__bindgen_ty_2>(), - 2usize, - concat!( - "Alignment of ", - stringify!(_CUVIDDECODECREATEINFO__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO__bindgen_ty_2), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO__bindgen_ty_2), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO__bindgen_ty_2), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO__bindgen_ty_2), - "::", - stringify!(bottom) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDDECODECREATEINFO() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDDECODECREATEINFO> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDDECODECREATEINFO>(), - 112usize, - concat!("Size of: ", stringify!(_CUVIDDECODECREATEINFO)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDDECODECREATEINFO>(), - 8usize, - concat!("Alignment of ", stringify!(_CUVIDDECODECREATEINFO)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulWidth) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(ulWidth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulHeight) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(ulHeight) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulNumDecodeSurfaces) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(ulNumDecodeSurfaces) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).CodecType) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(CodecType) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ChromaFormat) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(ChromaFormat) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulCreationFlags) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(ulCreationFlags) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bitDepthMinus8) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(bitDepthMinus8) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulIntraDecodeOnly) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(ulIntraDecodeOnly) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulMaxWidth) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(ulMaxWidth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulMaxHeight) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(ulMaxHeight) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Reserved1) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(Reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).display_area) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(display_area) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).OutputFormat) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(OutputFormat) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).DeinterlaceMode) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(DeinterlaceMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulTargetWidth) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(ulTargetWidth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulTargetHeight) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(ulTargetHeight) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulNumOutputSurfaces) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(ulNumOutputSurfaces) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).vidLock) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(vidLock) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).target_rect) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(target_rect) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).enableHistogram) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(enableHistogram) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Reserved2) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDDECODECREATEINFO), - "::", - stringify!(Reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDH264DPBENTRY() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDH264DPBENTRY> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDH264DPBENTRY>(), - 28usize, - concat!("Size of: ", stringify!(_CUVIDH264DPBENTRY)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDH264DPBENTRY>(), - 4usize, - concat!("Alignment of ", stringify!(_CUVIDH264DPBENTRY)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).PicIdx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264DPBENTRY), - "::", - stringify!(PicIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).FrameIdx) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264DPBENTRY), - "::", - stringify!(FrameIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).is_long_term) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264DPBENTRY), - "::", - stringify!(is_long_term) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).not_existing) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264DPBENTRY), - "::", - stringify!(not_existing) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).used_for_reference) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264DPBENTRY), - "::", - stringify!(used_for_reference) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).FieldOrderCnt) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264DPBENTRY), - "::", - stringify!(FieldOrderCnt) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDH264MVCEXT() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDH264MVCEXT> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDH264MVCEXT>(), - 140usize, - concat!("Size of: ", stringify!(_CUVIDH264MVCEXT)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDH264MVCEXT>(), - 4usize, - concat!("Alignment of ", stringify!(_CUVIDH264MVCEXT)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_views_minus1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264MVCEXT), - "::", - stringify!(num_views_minus1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).view_id) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264MVCEXT), - "::", - stringify!(view_id) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inter_view_flag) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264MVCEXT), - "::", - stringify!(inter_view_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_inter_view_refs_l0) as usize - ptr as usize }, - 9usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264MVCEXT), - "::", - stringify!(num_inter_view_refs_l0) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_inter_view_refs_l1) as usize - ptr as usize }, - 10usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264MVCEXT), - "::", - stringify!(num_inter_view_refs_l1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).MVCReserved8Bits) as usize - ptr as usize }, - 11usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264MVCEXT), - "::", - stringify!(MVCReserved8Bits) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).InterViewRefsL0) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264MVCEXT), - "::", - stringify!(InterViewRefsL0) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).InterViewRefsL1) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264MVCEXT), - "::", - stringify!(InterViewRefsL1) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDH264SVCEXT() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDH264SVCEXT> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDH264SVCEXT>(), - 48usize, - concat!("Size of: ", stringify!(_CUVIDH264SVCEXT)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDH264SVCEXT>(), - 8usize, - concat!("Alignment of ", stringify!(_CUVIDH264SVCEXT)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).profile_idc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(profile_idc) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).level_idc) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(level_idc) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).DQId) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(DQId) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).DQIdMax) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(DQIdMax) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).disable_inter_layer_deblocking_filter_idc) as usize - - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(disable_inter_layer_deblocking_filter_idc) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).ref_layer_chroma_phase_y_plus1) as usize - ptr as usize - }, - 5usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(ref_layer_chroma_phase_y_plus1) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).inter_layer_slice_alpha_c0_offset_div2) as usize - - ptr as usize - }, - 6usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(inter_layer_slice_alpha_c0_offset_div2) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).inter_layer_slice_beta_offset_div2) as usize - ptr as usize - }, - 7usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(inter_layer_slice_beta_offset_div2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).DPBEntryValidFlag) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(DPBEntryValidFlag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).inter_layer_deblocking_filter_control_present_flag) - as usize - - ptr as usize - }, - 10usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(inter_layer_deblocking_filter_control_present_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).extended_spatial_scalability_idc) as usize - ptr as usize - }, - 11usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(extended_spatial_scalability_idc) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).adaptive_tcoeff_level_prediction_flag) as usize - - ptr as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(adaptive_tcoeff_level_prediction_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).slice_header_restriction_flag) as usize - ptr as usize - }, - 13usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(slice_header_restriction_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chroma_phase_x_plus1_flag) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(chroma_phase_x_plus1_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chroma_phase_y_plus1) as usize - ptr as usize }, - 15usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(chroma_phase_y_plus1) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).tcoeff_level_prediction_flag) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(tcoeff_level_prediction_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).constrained_intra_resampling_flag) as usize - ptr as usize - }, - 17usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(constrained_intra_resampling_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).ref_layer_chroma_phase_x_plus1_flag) as usize - - ptr as usize - }, - 18usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(ref_layer_chroma_phase_x_plus1_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).store_ref_base_pic_flag) as usize - ptr as usize }, - 19usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(store_ref_base_pic_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Reserved8BitsA) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(Reserved8BitsA) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Reserved8BitsB) as usize - ptr as usize }, - 21usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(Reserved8BitsB) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).scaled_ref_layer_left_offset) as usize - ptr as usize - }, - 22usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(scaled_ref_layer_left_offset) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).scaled_ref_layer_top_offset) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(scaled_ref_layer_top_offset) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).scaled_ref_layer_right_offset) as usize - ptr as usize - }, - 26usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(scaled_ref_layer_right_offset) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).scaled_ref_layer_bottom_offset) as usize - ptr as usize - }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(scaled_ref_layer_bottom_offset) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Reserved16Bits) as usize - ptr as usize }, - 30usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(Reserved16Bits) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pNextLayer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(pNextLayer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bRefBaseLayer) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264SVCEXT), - "::", - stringify!(bRefBaseLayer) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDH264PICPARAMS__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDH264PICPARAMS__bindgen_ty_1> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDH264PICPARAMS__bindgen_ty_1>(), - 8usize, - concat!("Size of: ", stringify!(_CUVIDH264PICPARAMS__bindgen_ty_1)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDH264PICPARAMS__bindgen_ty_1>(), - 8usize, - concat!( - "Alignment of ", - stringify!(_CUVIDH264PICPARAMS__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_group_map_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS__bindgen_ty_1), - "::", - stringify!(slice_group_map_addr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pMb2SliceGroupMap) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS__bindgen_ty_1), - "::", - stringify!(pMb2SliceGroupMap) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDH264PICPARAMS__bindgen_ty_2() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDH264PICPARAMS__bindgen_ty_2> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDH264PICPARAMS__bindgen_ty_2>(), - 144usize, - concat!("Size of: ", stringify!(_CUVIDH264PICPARAMS__bindgen_ty_2)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDH264PICPARAMS__bindgen_ty_2>(), - 8usize, - concat!( - "Alignment of ", - stringify!(_CUVIDH264PICPARAMS__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mvcext) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS__bindgen_ty_2), - "::", - stringify!(mvcext) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).svcext) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS__bindgen_ty_2), - "::", - stringify!(svcext) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDH264PICPARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDH264PICPARAMS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDH264PICPARAMS>(), - 984usize, - concat!("Size of: ", stringify!(_CUVIDH264PICPARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDH264PICPARAMS>(), - 8usize, - concat!("Alignment of ", stringify!(_CUVIDH264PICPARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).log2_max_frame_num_minus4) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(log2_max_frame_num_minus4) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pic_order_cnt_type) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(pic_order_cnt_type) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).log2_max_pic_order_cnt_lsb_minus4) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(log2_max_pic_order_cnt_lsb_minus4) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).delta_pic_order_always_zero_flag) as usize - ptr as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(delta_pic_order_always_zero_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frame_mbs_only_flag) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(frame_mbs_only_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).direct_8x8_inference_flag) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(direct_8x8_inference_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_ref_frames) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(num_ref_frames) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).residual_colour_transform_flag) as usize - ptr as usize - }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(residual_colour_transform_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bit_depth_luma_minus8) as usize - ptr as usize }, - 29usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(bit_depth_luma_minus8) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bit_depth_chroma_minus8) as usize - ptr as usize }, - 30usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(bit_depth_chroma_minus8) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).qpprime_y_zero_transform_bypass_flag) as usize - - ptr as usize - }, - 31usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(qpprime_y_zero_transform_bypass_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).entropy_coding_mode_flag) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(entropy_coding_mode_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pic_order_present_flag) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(pic_order_present_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).num_ref_idx_l0_active_minus1) as usize - ptr as usize - }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(num_ref_idx_l0_active_minus1) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).num_ref_idx_l1_active_minus1) as usize - ptr as usize - }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(num_ref_idx_l1_active_minus1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).weighted_pred_flag) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(weighted_pred_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).weighted_bipred_idc) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(weighted_bipred_idc) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pic_init_qp_minus26) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(pic_init_qp_minus26) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).deblocking_filter_control_present_flag) as usize - - ptr as usize - }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(deblocking_filter_control_present_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).redundant_pic_cnt_present_flag) as usize - ptr as usize - }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(redundant_pic_cnt_present_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).transform_8x8_mode_flag) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(transform_8x8_mode_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).MbaffFrameFlag) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(MbaffFrameFlag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).constrained_intra_pred_flag) as usize - ptr as usize - }, - 76usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(constrained_intra_pred_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chroma_qp_index_offset) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(chroma_qp_index_offset) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).second_chroma_qp_index_offset) as usize - ptr as usize - }, - 84usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(second_chroma_qp_index_offset) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ref_pic_flag) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(ref_pic_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frame_num) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(frame_num) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).CurrFieldOrderCnt) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(CurrFieldOrderCnt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).dpb) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(dpb) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).WeightScale4x4) as usize - ptr as usize }, - 552usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(WeightScale4x4) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).WeightScale8x8) as usize - ptr as usize }, - 648usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(WeightScale8x8) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).fmo_aso_enable) as usize - ptr as usize }, - 776usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(fmo_aso_enable) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_slice_groups_minus1) as usize - ptr as usize }, - 777usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(num_slice_groups_minus1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_group_map_type) as usize - ptr as usize }, - 778usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(slice_group_map_type) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pic_init_qs_minus26) as usize - ptr as usize }, - 779usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(pic_init_qs_minus26) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).slice_group_change_rate_minus1) as usize - ptr as usize - }, - 780usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(slice_group_change_rate_minus1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).fmo) as usize - ptr as usize }, - 784usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(fmo) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Reserved) as usize - ptr as usize }, - 792usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDH264PICPARAMS), - "::", - stringify!(Reserved) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDMPEG2PICPARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDMPEG2PICPARAMS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDMPEG2PICPARAMS>(), - 192usize, - concat!("Size of: ", stringify!(_CUVIDMPEG2PICPARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDMPEG2PICPARAMS>(), - 4usize, - concat!("Alignment of ", stringify!(_CUVIDMPEG2PICPARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ForwardRefIdx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG2PICPARAMS), - "::", - stringify!(ForwardRefIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).BackwardRefIdx) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG2PICPARAMS), - "::", - stringify!(BackwardRefIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).picture_coding_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG2PICPARAMS), - "::", - stringify!(picture_coding_type) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).full_pel_forward_vector) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG2PICPARAMS), - "::", - stringify!(full_pel_forward_vector) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).full_pel_backward_vector) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG2PICPARAMS), - "::", - stringify!(full_pel_backward_vector) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).f_code) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG2PICPARAMS), - "::", - stringify!(f_code) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).intra_dc_precision) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG2PICPARAMS), - "::", - stringify!(intra_dc_precision) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frame_pred_frame_dct) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG2PICPARAMS), - "::", - stringify!(frame_pred_frame_dct) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).concealment_motion_vectors) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG2PICPARAMS), - "::", - stringify!(concealment_motion_vectors) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).q_scale_type) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG2PICPARAMS), - "::", - stringify!(q_scale_type) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).intra_vlc_format) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG2PICPARAMS), - "::", - stringify!(intra_vlc_format) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).alternate_scan) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG2PICPARAMS), - "::", - stringify!(alternate_scan) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).top_field_first) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG2PICPARAMS), - "::", - stringify!(top_field_first) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).QuantMatrixIntra) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG2PICPARAMS), - "::", - stringify!(QuantMatrixIntra) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).QuantMatrixInter) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG2PICPARAMS), - "::", - stringify!(QuantMatrixInter) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDMPEG4PICPARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDMPEG4PICPARAMS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDMPEG4PICPARAMS>(), - 220usize, - concat!("Size of: ", stringify!(_CUVIDMPEG4PICPARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDMPEG4PICPARAMS>(), - 4usize, - concat!("Alignment of ", stringify!(_CUVIDMPEG4PICPARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ForwardRefIdx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(ForwardRefIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).BackwardRefIdx) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(BackwardRefIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).video_object_layer_width) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(video_object_layer_width) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).video_object_layer_height) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(video_object_layer_height) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).vop_time_increment_bitcount) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(vop_time_increment_bitcount) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).top_field_first) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(top_field_first) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).resync_marker_disable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(resync_marker_disable) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).quant_type) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(quant_type) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).quarter_sample) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(quarter_sample) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).short_video_header) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(short_video_header) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).divx_flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(divx_flags) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).vop_coding_type) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(vop_coding_type) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).vop_coded) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(vop_coded) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).vop_rounding_type) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(vop_rounding_type) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).alternate_vertical_scan_flag) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(alternate_vertical_scan_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).interlaced) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(interlaced) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).vop_fcode_forward) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(vop_fcode_forward) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).vop_fcode_backward) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(vop_fcode_backward) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).trd) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(trd) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).trb) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(trb) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).QuantMatrixIntra) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(QuantMatrixIntra) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).QuantMatrixInter) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(QuantMatrixInter) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).gmc_enabled) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDMPEG4PICPARAMS), - "::", - stringify!(gmc_enabled) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDVC1PICPARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDVC1PICPARAMS> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDVC1PICPARAMS>(), - 132usize, - concat!("Size of: ", stringify!(_CUVIDVC1PICPARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDVC1PICPARAMS>(), - 4usize, - concat!("Alignment of ", stringify!(_CUVIDVC1PICPARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ForwardRefIdx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(ForwardRefIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).BackwardRefIdx) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(BackwardRefIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).FrameWidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(FrameWidth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).FrameHeight) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(FrameHeight) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).intra_pic_flag) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(intra_pic_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ref_pic_flag) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(ref_pic_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).progressive_fcm) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(progressive_fcm) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).profile) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(profile) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).postprocflag) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(postprocflag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pulldown) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(pulldown) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).interlace) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(interlace) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tfcntrflag) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(tfcntrflag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).finterpflag) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(finterpflag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).psf) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(psf) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).multires) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(multires) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).syncmarker) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(syncmarker) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).rangered) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(rangered) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).maxbframes) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(maxbframes) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).panscan_flag) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(panscan_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).refdist_flag) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(refdist_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).extended_mv) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(extended_mv) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).dquant) as usize - ptr as usize }, - 84usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(dquant) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).vstransform) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(vstransform) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).loopfilter) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(loopfilter) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).fastuvmc) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(fastuvmc) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).overlap) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(overlap) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).quantizer) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(quantizer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).extended_dmv) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(extended_dmv) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).range_mapy_flag) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(range_mapy_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).range_mapy) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(range_mapy) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).range_mapuv_flag) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(range_mapuv_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).range_mapuv) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(range_mapuv) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).rangeredfrm) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVC1PICPARAMS), - "::", - stringify!(rangeredfrm) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDJPEGPICPARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDJPEGPICPARAMS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDJPEGPICPARAMS>(), - 4usize, - concat!("Size of: ", stringify!(_CUVIDJPEGPICPARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDJPEGPICPARAMS>(), - 4usize, - concat!("Alignment of ", stringify!(_CUVIDJPEGPICPARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Reserved) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDJPEGPICPARAMS), - "::", - stringify!(Reserved) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDHEVCPICPARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDHEVCPICPARAMS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDHEVCPICPARAMS>(), - 1484usize, - concat!("Size of: ", stringify!(_CUVIDHEVCPICPARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDHEVCPICPARAMS>(), - 4usize, - concat!("Alignment of ", stringify!(_CUVIDHEVCPICPARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pic_width_in_luma_samples) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(pic_width_in_luma_samples) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pic_height_in_luma_samples) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(pic_height_in_luma_samples) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).log2_min_luma_coding_block_size_minus3) as usize - - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(log2_min_luma_coding_block_size_minus3) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).log2_diff_max_min_luma_coding_block_size) as usize - - ptr as usize - }, - 9usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(log2_diff_max_min_luma_coding_block_size) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).log2_min_transform_block_size_minus2) as usize - - ptr as usize - }, - 10usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(log2_min_transform_block_size_minus2) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).log2_diff_max_min_transform_block_size) as usize - - ptr as usize - }, - 11usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(log2_diff_max_min_transform_block_size) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pcm_enabled_flag) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(pcm_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).log2_min_pcm_luma_coding_block_size_minus3) as usize - - ptr as usize - }, - 13usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(log2_min_pcm_luma_coding_block_size_minus3) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).log2_diff_max_min_pcm_luma_coding_block_size) as usize - - ptr as usize - }, - 14usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(log2_diff_max_min_pcm_luma_coding_block_size) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).pcm_sample_bit_depth_luma_minus1) as usize - ptr as usize - }, - 15usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(pcm_sample_bit_depth_luma_minus1) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).pcm_sample_bit_depth_chroma_minus1) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(pcm_sample_bit_depth_chroma_minus1) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).pcm_loop_filter_disabled_flag) as usize - ptr as usize - }, - 17usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(pcm_loop_filter_disabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).strong_intra_smoothing_enabled_flag) as usize - - ptr as usize - }, - 18usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(strong_intra_smoothing_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).max_transform_hierarchy_depth_intra) as usize - - ptr as usize - }, - 19usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(max_transform_hierarchy_depth_intra) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).max_transform_hierarchy_depth_inter) as usize - - ptr as usize - }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(max_transform_hierarchy_depth_inter) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).amp_enabled_flag) as usize - ptr as usize }, - 21usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(amp_enabled_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).separate_colour_plane_flag) as usize - ptr as usize }, - 22usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(separate_colour_plane_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).log2_max_pic_order_cnt_lsb_minus4) as usize - ptr as usize - }, - 23usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(log2_max_pic_order_cnt_lsb_minus4) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).num_short_term_ref_pic_sets) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(num_short_term_ref_pic_sets) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).long_term_ref_pics_present_flag) as usize - ptr as usize - }, - 25usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(long_term_ref_pics_present_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_long_term_ref_pics_sps) as usize - ptr as usize }, - 26usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(num_long_term_ref_pics_sps) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).sps_temporal_mvp_enabled_flag) as usize - ptr as usize - }, - 27usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(sps_temporal_mvp_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).sample_adaptive_offset_enabled_flag) as usize - - ptr as usize - }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(sample_adaptive_offset_enabled_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).scaling_list_enable_flag) as usize - ptr as usize }, - 29usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(scaling_list_enable_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).IrapPicFlag) as usize - ptr as usize }, - 30usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(IrapPicFlag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).IdrPicFlag) as usize - ptr as usize }, - 31usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(IdrPicFlag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bit_depth_luma_minus8) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(bit_depth_luma_minus8) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bit_depth_chroma_minus8) as usize - ptr as usize }, - 33usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(bit_depth_chroma_minus8) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).log2_max_transform_skip_block_size_minus2) as usize - - ptr as usize - }, - 34usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(log2_max_transform_skip_block_size_minus2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).log2_sao_offset_scale_luma) as usize - ptr as usize }, - 35usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(log2_sao_offset_scale_luma) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).log2_sao_offset_scale_chroma) as usize - ptr as usize - }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(log2_sao_offset_scale_chroma) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).high_precision_offsets_enabled_flag) as usize - - ptr as usize - }, - 37usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(high_precision_offsets_enabled_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 38usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).dependent_slice_segments_enabled_flag) as usize - - ptr as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(dependent_slice_segments_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).slice_segment_header_extension_present_flag) as usize - - ptr as usize - }, - 49usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(slice_segment_header_extension_present_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).sign_data_hiding_enabled_flag) as usize - ptr as usize - }, - 50usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(sign_data_hiding_enabled_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cu_qp_delta_enabled_flag) as usize - ptr as usize }, - 51usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(cu_qp_delta_enabled_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).diff_cu_qp_delta_depth) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(diff_cu_qp_delta_depth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).init_qp_minus26) as usize - ptr as usize }, - 53usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(init_qp_minus26) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pps_cb_qp_offset) as usize - ptr as usize }, - 54usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(pps_cb_qp_offset) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pps_cr_qp_offset) as usize - ptr as usize }, - 55usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(pps_cr_qp_offset) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).constrained_intra_pred_flag) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(constrained_intra_pred_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).weighted_pred_flag) as usize - ptr as usize }, - 57usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(weighted_pred_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).weighted_bipred_flag) as usize - ptr as usize }, - 58usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(weighted_bipred_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).transform_skip_enabled_flag) as usize - ptr as usize - }, - 59usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(transform_skip_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).transquant_bypass_enabled_flag) as usize - ptr as usize - }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(transquant_bypass_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).entropy_coding_sync_enabled_flag) as usize - ptr as usize - }, - 61usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(entropy_coding_sync_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).log2_parallel_merge_level_minus2) as usize - ptr as usize - }, - 62usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(log2_parallel_merge_level_minus2) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).num_extra_slice_header_bits) as usize - ptr as usize - }, - 63usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(num_extra_slice_header_bits) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).loop_filter_across_tiles_enabled_flag) as usize - - ptr as usize - }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(loop_filter_across_tiles_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).loop_filter_across_slices_enabled_flag) as usize - - ptr as usize - }, - 65usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(loop_filter_across_slices_enabled_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).output_flag_present_flag) as usize - ptr as usize }, - 66usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(output_flag_present_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).num_ref_idx_l0_default_active_minus1) as usize - - ptr as usize - }, - 67usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(num_ref_idx_l0_default_active_minus1) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).num_ref_idx_l1_default_active_minus1) as usize - - ptr as usize - }, - 68usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(num_ref_idx_l1_default_active_minus1) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).lists_modification_present_flag) as usize - ptr as usize - }, - 69usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(lists_modification_present_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cabac_init_present_flag) as usize - ptr as usize }, - 70usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(cabac_init_present_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).pps_slice_chroma_qp_offsets_present_flag) as usize - - ptr as usize - }, - 71usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(pps_slice_chroma_qp_offsets_present_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).deblocking_filter_override_enabled_flag) as usize - - ptr as usize - }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(deblocking_filter_override_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).pps_deblocking_filter_disabled_flag) as usize - - ptr as usize - }, - 73usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(pps_deblocking_filter_disabled_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pps_beta_offset_div2) as usize - ptr as usize }, - 74usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(pps_beta_offset_div2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pps_tc_offset_div2) as usize - ptr as usize }, - 75usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(pps_tc_offset_div2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tiles_enabled_flag) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(tiles_enabled_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).uniform_spacing_flag) as usize - ptr as usize }, - 77usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(uniform_spacing_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_tile_columns_minus1) as usize - ptr as usize }, - 78usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(num_tile_columns_minus1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_tile_rows_minus1) as usize - ptr as usize }, - 79usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(num_tile_rows_minus1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).column_width_minus1) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(column_width_minus1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).row_height_minus1) as usize - ptr as usize }, - 122usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(row_height_minus1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sps_range_extension_flag) as usize - ptr as usize }, - 164usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(sps_range_extension_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).transform_skip_rotation_enabled_flag) as usize - - ptr as usize - }, - 165usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(transform_skip_rotation_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).transform_skip_context_enabled_flag) as usize - - ptr as usize - }, - 166usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(transform_skip_context_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).implicit_rdpcm_enabled_flag) as usize - ptr as usize - }, - 167usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(implicit_rdpcm_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).explicit_rdpcm_enabled_flag) as usize - ptr as usize - }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(explicit_rdpcm_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).extended_precision_processing_flag) as usize - ptr as usize - }, - 169usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(extended_precision_processing_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).intra_smoothing_disabled_flag) as usize - ptr as usize - }, - 170usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(intra_smoothing_disabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).persistent_rice_adaptation_enabled_flag) as usize - - ptr as usize - }, - 171usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(persistent_rice_adaptation_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).cabac_bypass_alignment_enabled_flag) as usize - - ptr as usize - }, - 172usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(cabac_bypass_alignment_enabled_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pps_range_extension_flag) as usize - ptr as usize }, - 173usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(pps_range_extension_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).cross_component_prediction_enabled_flag) as usize - - ptr as usize - }, - 174usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(cross_component_prediction_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).chroma_qp_offset_list_enabled_flag) as usize - ptr as usize - }, - 175usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(chroma_qp_offset_list_enabled_flag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).diff_cu_chroma_qp_offset_depth) as usize - ptr as usize - }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(diff_cu_chroma_qp_offset_depth) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).chroma_qp_offset_list_len_minus1) as usize - ptr as usize - }, - 177usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(chroma_qp_offset_list_len_minus1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cb_qp_offset_list) as usize - ptr as usize }, - 178usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(cb_qp_offset_list) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cr_qp_offset_list) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(cr_qp_offset_list) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 190usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(reserved3) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).NumBitsForShortTermRPSInSlice) as usize - ptr as usize - }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(NumBitsForShortTermRPSInSlice) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).NumDeltaPocsOfRefRpsIdx) as usize - ptr as usize }, - 228usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(NumDeltaPocsOfRefRpsIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).NumPocTotalCurr) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(NumPocTotalCurr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).NumPocStCurrBefore) as usize - ptr as usize }, - 236usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(NumPocStCurrBefore) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).NumPocStCurrAfter) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(NumPocStCurrAfter) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).NumPocLtCurr) as usize - ptr as usize }, - 244usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(NumPocLtCurr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).CurrPicOrderCntVal) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(CurrPicOrderCntVal) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).RefPicIdx) as usize - ptr as usize }, - 252usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(RefPicIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).PicOrderCntVal) as usize - ptr as usize }, - 316usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(PicOrderCntVal) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).IsLongTerm) as usize - ptr as usize }, - 380usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(IsLongTerm) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).RefPicSetStCurrBefore) as usize - ptr as usize }, - 396usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(RefPicSetStCurrBefore) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).RefPicSetStCurrAfter) as usize - ptr as usize }, - 404usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(RefPicSetStCurrAfter) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).RefPicSetLtCurr) as usize - ptr as usize }, - 412usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(RefPicSetLtCurr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).RefPicSetInterLayer0) as usize - ptr as usize }, - 420usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(RefPicSetInterLayer0) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).RefPicSetInterLayer1) as usize - ptr as usize }, - 428usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(RefPicSetInterLayer1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved4) as usize - ptr as usize }, - 436usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(reserved4) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ScalingList4x4) as usize - ptr as usize }, - 484usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(ScalingList4x4) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ScalingList8x8) as usize - ptr as usize }, - 580usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(ScalingList8x8) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ScalingList16x16) as usize - ptr as usize }, - 964usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(ScalingList16x16) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ScalingList32x32) as usize - ptr as usize }, - 1348usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(ScalingList32x32) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ScalingListDCCoeff16x16) as usize - ptr as usize }, - 1476usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(ScalingListDCCoeff16x16) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ScalingListDCCoeff32x32) as usize - ptr as usize }, - 1482usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDHEVCPICPARAMS), - "::", - stringify!(ScalingListDCCoeff32x32) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDVP8PICPARAMS__bindgen_ty_1__bindgen_ty_1() { - assert_eq!( - ::core::mem::size_of::<_CUVIDVP8PICPARAMS__bindgen_ty_1__bindgen_ty_1>(), - 1usize, - concat!( - "Size of: ", - stringify!(_CUVIDVP8PICPARAMS__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDVP8PICPARAMS__bindgen_ty_1__bindgen_ty_1>(), - 1usize, - concat!( - "Alignment of ", - stringify!(_CUVIDVP8PICPARAMS__bindgen_ty_1__bindgen_ty_1) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDVP8PICPARAMS__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDVP8PICPARAMS__bindgen_ty_1> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDVP8PICPARAMS__bindgen_ty_1>(), - 1usize, - concat!("Size of: ", stringify!(_CUVIDVP8PICPARAMS__bindgen_ty_1)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDVP8PICPARAMS__bindgen_ty_1>(), - 1usize, - concat!( - "Alignment of ", - stringify!(_CUVIDVP8PICPARAMS__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).vp8_frame_tag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP8PICPARAMS__bindgen_ty_1), - "::", - stringify!(vp8_frame_tag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).wFrameTagFlags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP8PICPARAMS__bindgen_ty_1), - "::", - stringify!(wFrameTagFlags) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDVP8PICPARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDVP8PICPARAMS> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDVP8PICPARAMS>(), - 32usize, - concat!("Size of: ", stringify!(_CUVIDVP8PICPARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDVP8PICPARAMS>(), - 4usize, - concat!("Alignment of ", stringify!(_CUVIDVP8PICPARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP8PICPARAMS), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP8PICPARAMS), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).first_partition_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP8PICPARAMS), - "::", - stringify!(first_partition_size) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).LastRefIdx) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP8PICPARAMS), - "::", - stringify!(LastRefIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).GoldenRefIdx) as usize - ptr as usize }, - 13usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP8PICPARAMS), - "::", - stringify!(GoldenRefIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).AltRefIdx) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP8PICPARAMS), - "::", - stringify!(AltRefIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Reserved1) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP8PICPARAMS), - "::", - stringify!(Reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Reserved2) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP8PICPARAMS), - "::", - stringify!(Reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDVP9PICPARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDVP9PICPARAMS> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDVP9PICPARAMS>(), - 220usize, - concat!("Size of: ", stringify!(_CUVIDVP9PICPARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDVP9PICPARAMS>(), - 4usize, - concat!("Alignment of ", stringify!(_CUVIDVP9PICPARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).LastRefIdx) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(LastRefIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).GoldenRefIdx) as usize - ptr as usize }, - 9usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(GoldenRefIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).AltRefIdx) as usize - ptr as usize }, - 10usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(AltRefIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).colorSpace) as usize - ptr as usize }, - 11usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(colorSpace) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved16Bits) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(reserved16Bits) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).refFrameSignBias) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(refFrameSignBias) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bitDepthMinus8Luma) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(bitDepthMinus8Luma) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bitDepthMinus8Chroma) as usize - ptr as usize }, - 21usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(bitDepthMinus8Chroma) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).loopFilterLevel) as usize - ptr as usize }, - 22usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(loopFilterLevel) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).loopFilterSharpness) as usize - ptr as usize }, - 23usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(loopFilterSharpness) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).modeRefLfEnabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(modeRefLfEnabled) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).log2_tile_columns) as usize - ptr as usize }, - 25usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(log2_tile_columns) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).log2_tile_rows) as usize - ptr as usize }, - 26usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(log2_tile_rows) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).segmentFeatureEnable) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(segmentFeatureEnable) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).segmentFeatureData) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(segmentFeatureData) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mb_segment_tree_probs) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(mb_segment_tree_probs) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).segment_pred_probs) as usize - ptr as usize }, - 131usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(segment_pred_probs) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reservedSegment16Bits) as usize - ptr as usize }, - 134usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(reservedSegment16Bits) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qpYAc) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(qpYAc) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qpYDc) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(qpYDc) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qpChDc) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(qpChDc) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qpChAc) as usize - ptr as usize }, - 148usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(qpChAc) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).activeRefIdx) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(activeRefIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).resetFrameContext) as usize - ptr as usize }, - 164usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(resetFrameContext) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mcomp_filter_type) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(mcomp_filter_type) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mbRefLfDelta) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(mbRefLfDelta) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mbModeLfDelta) as usize - ptr as usize }, - 188usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(mbModeLfDelta) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frameTagSize) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(frameTagSize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).offsetToDctParts) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(offsetToDctParts) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved128Bits) as usize - ptr as usize }, - 204usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDVP9PICPARAMS), - "::", - stringify!(reserved128Bits) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDAV1PICPARAMS__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDAV1PICPARAMS__bindgen_ty_1> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDAV1PICPARAMS__bindgen_ty_1>(), - 12usize, - concat!("Size of: ", stringify!(_CUVIDAV1PICPARAMS__bindgen_ty_1)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDAV1PICPARAMS__bindgen_ty_1>(), - 4usize, - concat!( - "Alignment of ", - stringify!(_CUVIDAV1PICPARAMS__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS__bindgen_ty_1), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS__bindgen_ty_1), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS__bindgen_ty_1), - "::", - stringify!(index) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved24Bits) as usize - ptr as usize }, - 9usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS__bindgen_ty_1), - "::", - stringify!(reserved24Bits) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDAV1PICPARAMS__bindgen_ty_2() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDAV1PICPARAMS__bindgen_ty_2> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDAV1PICPARAMS__bindgen_ty_2>(), - 28usize, - concat!("Size of: ", stringify!(_CUVIDAV1PICPARAMS__bindgen_ty_2)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDAV1PICPARAMS__bindgen_ty_2>(), - 4usize, - concat!( - "Alignment of ", - stringify!(_CUVIDAV1PICPARAMS__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved24Bits) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS__bindgen_ty_2), - "::", - stringify!(reserved24Bits) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).wmmat) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS__bindgen_ty_2), - "::", - stringify!(wmmat) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDAV1PICPARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDAV1PICPARAMS> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDAV1PICPARAMS>(), - 1024usize, - concat!("Size of: ", stringify!(_CUVIDAV1PICPARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDAV1PICPARAMS>(), - 4usize, - concat!("Alignment of ", stringify!(_CUVIDAV1PICPARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frame_offset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(frame_offset) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).decodePicIdx) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(decodePicIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tile_widths) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(tile_widths) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tile_heights) as usize - ptr as usize }, - 156usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(tile_heights) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cdef_y_strength) as usize - ptr as usize }, - 285usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(cdef_y_strength) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cdef_uv_strength) as usize - ptr as usize }, - 293usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(cdef_uv_strength) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).base_qindex) as usize - ptr as usize }, - 302usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(base_qindex) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qp_y_dc_delta_q) as usize - ptr as usize }, - 303usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(qp_y_dc_delta_q) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qp_u_dc_delta_q) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(qp_u_dc_delta_q) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qp_v_dc_delta_q) as usize - ptr as usize }, - 305usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(qp_v_dc_delta_q) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qp_u_ac_delta_q) as usize - ptr as usize }, - 306usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(qp_u_ac_delta_q) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qp_v_ac_delta_q) as usize - ptr as usize }, - 307usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(qp_v_ac_delta_q) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qm_y) as usize - ptr as usize }, - 308usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(qm_y) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qm_u) as usize - ptr as usize }, - 309usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(qm_u) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qm_v) as usize - ptr as usize }, - 310usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(qm_v) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).segmentation_feature_data) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(segmentation_feature_data) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).segmentation_feature_mask) as usize - ptr as usize }, - 440usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(segmentation_feature_mask) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).loop_filter_level) as usize - ptr as usize }, - 448usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(loop_filter_level) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).loop_filter_level_u) as usize - ptr as usize }, - 450usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(loop_filter_level_u) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).loop_filter_level_v) as usize - ptr as usize }, - 451usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(loop_filter_level_v) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).loop_filter_sharpness) as usize - ptr as usize }, - 452usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(loop_filter_sharpness) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).loop_filter_ref_deltas) as usize - ptr as usize }, - 453usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(loop_filter_ref_deltas) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).loop_filter_mode_deltas) as usize - ptr as usize }, - 461usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(loop_filter_mode_deltas) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).lr_unit_size) as usize - ptr as usize }, - 464usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(lr_unit_size) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).lr_type) as usize - ptr as usize }, - 467usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(lr_type) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).primary_ref_frame) as usize - ptr as usize }, - 470usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(primary_ref_frame) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ref_frame_map) as usize - ptr as usize }, - 471usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(ref_frame_map) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved5_32bits) as usize - ptr as usize }, - 480usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(reserved5_32bits) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ref_frame) as usize - ptr as usize }, - 484usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(ref_frame) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).global_motion) as usize - ptr as usize }, - 568usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(global_motion) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_y_points) as usize - ptr as usize }, - 766usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(num_y_points) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).scaling_points_y) as usize - ptr as usize }, - 767usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(scaling_points_y) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_cb_points) as usize - ptr as usize }, - 795usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(num_cb_points) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).scaling_points_cb) as usize - ptr as usize }, - 796usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(scaling_points_cb) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_cr_points) as usize - ptr as usize }, - 816usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(num_cr_points) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).scaling_points_cr) as usize - ptr as usize }, - 817usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(scaling_points_cr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved7_8bits) as usize - ptr as usize }, - 837usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(reserved7_8bits) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).random_seed) as usize - ptr as usize }, - 838usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(random_seed) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ar_coeffs_y) as usize - ptr as usize }, - 840usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(ar_coeffs_y) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ar_coeffs_cb) as usize - ptr as usize }, - 888usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(ar_coeffs_cb) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ar_coeffs_cr) as usize - ptr as usize }, - 938usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(ar_coeffs_cr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cb_mult) as usize - ptr as usize }, - 988usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(cb_mult) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cb_luma_mult) as usize - ptr as usize }, - 989usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(cb_luma_mult) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cb_offset) as usize - ptr as usize }, - 990usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(cb_offset) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cr_mult) as usize - ptr as usize }, - 992usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(cr_mult) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cr_luma_mult) as usize - ptr as usize }, - 993usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(cr_luma_mult) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cr_offset) as usize - ptr as usize }, - 994usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(cr_offset) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 996usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDAV1PICPARAMS), - "::", - stringify!(reserved) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDPICPARAMS__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDPICPARAMS__bindgen_ty_1> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDPICPARAMS__bindgen_ty_1>(), - 4096usize, - concat!("Size of: ", stringify!(_CUVIDPICPARAMS__bindgen_ty_1)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDPICPARAMS__bindgen_ty_1>(), - 8usize, - concat!("Alignment of ", stringify!(_CUVIDPICPARAMS__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mpeg2) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS__bindgen_ty_1), - "::", - stringify!(mpeg2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).h264) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS__bindgen_ty_1), - "::", - stringify!(h264) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).vc1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS__bindgen_ty_1), - "::", - stringify!(vc1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mpeg4) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS__bindgen_ty_1), - "::", - stringify!(mpeg4) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).jpeg) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS__bindgen_ty_1), - "::", - stringify!(jpeg) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).hevc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS__bindgen_ty_1), - "::", - stringify!(hevc) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).vp8) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS__bindgen_ty_1), - "::", - stringify!(vp8) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).vp9) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS__bindgen_ty_1), - "::", - stringify!(vp9) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).av1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS__bindgen_ty_1), - "::", - stringify!(av1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).CodecReserved) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS__bindgen_ty_1), - "::", - stringify!(CodecReserved) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDPICPARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDPICPARAMS> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDPICPARAMS>(), - 4280usize, - concat!("Size of: ", stringify!(_CUVIDPICPARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDPICPARAMS>(), - 8usize, - concat!("Alignment of ", stringify!(_CUVIDPICPARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).PicWidthInMbs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS), - "::", - stringify!(PicWidthInMbs) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).FrameHeightInMbs) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS), - "::", - stringify!(FrameHeightInMbs) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).CurrPicIdx) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS), - "::", - stringify!(CurrPicIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).field_pic_flag) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS), - "::", - stringify!(field_pic_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bottom_field_flag) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS), - "::", - stringify!(bottom_field_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).second_field) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS), - "::", - stringify!(second_field) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nBitstreamDataLen) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS), - "::", - stringify!(nBitstreamDataLen) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pBitstreamData) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS), - "::", - stringify!(pBitstreamData) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nNumSlices) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS), - "::", - stringify!(nNumSlices) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pSliceDataOffsets) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS), - "::", - stringify!(pSliceDataOffsets) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ref_pic_flag) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS), - "::", - stringify!(ref_pic_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).intra_pic_flag) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS), - "::", - stringify!(intra_pic_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Reserved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS), - "::", - stringify!(Reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).CodecSpecific) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPICPARAMS), - "::", - stringify!(CodecSpecific) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDPROCPARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDPROCPARAMS> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDPROCPARAMS>(), - 264usize, - concat!("Size of: ", stringify!(_CUVIDPROCPARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDPROCPARAMS>(), - 8usize, - concat!("Alignment of ", stringify!(_CUVIDPROCPARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).progressive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(progressive_frame) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).second_field) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(second_field) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).top_field_first) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(top_field_first) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).unpaired_field) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(unpaired_field) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved_flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(reserved_flags) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved_zero) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(reserved_zero) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).raw_input_dptr) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(raw_input_dptr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).raw_input_pitch) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(raw_input_pitch) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).raw_input_format) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(raw_input_format) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).raw_output_dptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(raw_output_dptr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).raw_output_pitch) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(raw_output_pitch) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Reserved1) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(Reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).output_stream) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(output_stream) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Reserved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(Reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).histogram_dptr) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(histogram_dptr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Reserved2) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPROCPARAMS), - "::", - stringify!(Reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDGETDECODESTATUS() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDGETDECODESTATUS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDGETDECODESTATUS>(), - 192usize, - concat!("Size of: ", stringify!(_CUVIDGETDECODESTATUS)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDGETDECODESTATUS>(), - 8usize, - concat!("Alignment of ", stringify!(_CUVIDGETDECODESTATUS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).decodeStatus) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDGETDECODESTATUS), - "::", - stringify!(decodeStatus) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDGETDECODESTATUS), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pReserved) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDGETDECODESTATUS), - "::", - stringify!(pReserved) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDRECONFIGUREDECODERINFO__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_1> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_1>(), - 8usize, - concat!( - "Size of: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_1) - ) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_1>(), - 2usize, - concat!( - "Alignment of ", - stringify!(_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_1), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_1), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_1), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_1), - "::", - stringify!(bottom) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDRECONFIGUREDECODERINFO__bindgen_ty_2() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_2> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_2>(), - 8usize, - concat!( - "Size of: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_2) - ) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_2>(), - 2usize, - concat!( - "Alignment of ", - stringify!(_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_2), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_2), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_2), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO__bindgen_ty_2), - "::", - stringify!(bottom) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDRECONFIGUREDECODERINFO() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDRECONFIGUREDECODERINFO> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDRECONFIGUREDECODERINFO>(), - 128usize, - concat!("Size of: ", stringify!(_CUVIDRECONFIGUREDECODERINFO)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDRECONFIGUREDECODERINFO>(), - 4usize, - concat!("Alignment of ", stringify!(_CUVIDRECONFIGUREDECODERINFO)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulWidth) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO), - "::", - stringify!(ulWidth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulHeight) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO), - "::", - stringify!(ulHeight) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulTargetWidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO), - "::", - stringify!(ulTargetWidth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulTargetHeight) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO), - "::", - stringify!(ulTargetHeight) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulNumDecodeSurfaces) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO), - "::", - stringify!(ulNumDecodeSurfaces) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).display_area) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO), - "::", - stringify!(display_area) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).target_rect) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO), - "::", - stringify!(target_rect) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 84usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDRECONFIGUREDECODERINFO), - "::", - stringify!(reserved2) - ) - ); -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum cudaVideoCodec_enum { - cudaVideoCodec_MPEG1 = 0, - cudaVideoCodec_MPEG2 = 1, - cudaVideoCodec_MPEG4 = 2, - cudaVideoCodec_VC1 = 3, - cudaVideoCodec_H264 = 4, - cudaVideoCodec_JPEG = 5, - cudaVideoCodec_H264_SVC = 6, - cudaVideoCodec_H264_MVC = 7, - cudaVideoCodec_HEVC = 8, - cudaVideoCodec_VP8 = 9, - cudaVideoCodec_VP9 = 10, - cudaVideoCodec_AV1 = 11, - cudaVideoCodec_NumCodecs = 12, - cudaVideoCodec_YUV420 = 1230591318, - cudaVideoCodec_YV12 = 1498820914, - cudaVideoCodec_NV12 = 1314271538, - cudaVideoCodec_YUYV = 1498765654, - cudaVideoCodec_UYVY = 1431918169, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum cudaVideoSurfaceFormat_enum { - cudaVideoSurfaceFormat_NV12 = 0, - cudaVideoSurfaceFormat_P016 = 1, - cudaVideoSurfaceFormat_YUV444 = 2, - cudaVideoSurfaceFormat_YUV444_16Bit = 3, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum cudaVideoDeinterlaceMode_enum { - cudaVideoDeinterlaceMode_Weave = 0, - cudaVideoDeinterlaceMode_Bob = 1, - cudaVideoDeinterlaceMode_Adaptive = 2, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum cudaVideoChromaFormat_enum { - cudaVideoChromaFormat_Monochrome = 0, - cudaVideoChromaFormat_420 = 1, - cudaVideoChromaFormat_422 = 2, - cudaVideoChromaFormat_444 = 3, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum cudaVideoCreateFlags_enum { - cudaVideoCreate_Default = 0, - cudaVideoCreate_PreferCUDA = 1, - cudaVideoCreate_PreferDXVA = 2, - cudaVideoCreate_PreferCUVID = 4, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum cuvidDecodeStatus_enum { - cuvidDecodeStatus_Invalid = 0, - cuvidDecodeStatus_InProgress = 1, - cuvidDecodeStatus_Success = 2, - cuvidDecodeStatus_Error = 8, - cuvidDecodeStatus_Error_Concealed = 9, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _CUVIDH264PICPARAMS__bindgen_ty_1 { - pub slice_group_map_addr: ::core::ffi::c_ulonglong, - pub pMb2SliceGroupMap: *const ::core::ffi::c_uchar, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _CUVIDH264PICPARAMS__bindgen_ty_2 { - pub mvcext: CUVIDH264MVCEXT, - pub svcext: CUVIDH264SVCEXT, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _CUVIDVP8PICPARAMS__bindgen_ty_1 { - pub vp8_frame_tag: _CUVIDVP8PICPARAMS__bindgen_ty_1__bindgen_ty_1, - pub wFrameTagFlags: ::core::ffi::c_uchar, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _CUVIDPICPARAMS__bindgen_ty_1 { - pub mpeg2: CUVIDMPEG2PICPARAMS, - pub h264: CUVIDH264PICPARAMS, - pub vc1: CUVIDVC1PICPARAMS, - pub mpeg4: CUVIDMPEG4PICPARAMS, - pub jpeg: CUVIDJPEGPICPARAMS, - pub hevc: CUVIDHEVCPICPARAMS, - pub vp8: CUVIDVP8PICPARAMS, - pub vp9: CUVIDVP9PICPARAMS, - pub av1: CUVIDAV1PICPARAMS, - pub CodecReserved: [::core::ffi::c_uint; 1024usize], -} -impl __BindgenBitfieldUnit { - #[inline] - pub const fn new(storage: Storage) -> Self { - Self { storage } - } -} -impl __BindgenBitfieldUnit -where - Storage: AsRef<[u8]> + AsMut<[u8]>, -{ - #[inline] - pub fn get_bit(&self, index: usize) -> bool { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = self.storage.as_ref()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - byte & mask == mask - } - - #[inline] - pub fn set_bit(&mut self, index: usize, val: bool) { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = &mut self.storage.as_mut()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - if val { - *byte |= mask; - } else { - *byte &= !mask; - } - } - - #[inline] - pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - let mut val = 0; - for i in 0..(bit_width as usize) { - if self.get_bit(i + bit_offset) { - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - val |= 1 << index; - } - } - val - } - - #[inline] - pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - for i in 0..(bit_width as usize) { - let mask = 1 << i; - let val_bit_is_set = val & mask == mask; - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - self.set_bit(index + bit_offset, val_bit_is_set); - } - } -} -impl Default for _CUVIDDECODECAPS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _CUVIDDECODECREATEINFO { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _CUVIDH264SVCEXT { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _CUVIDH264PICPARAMS__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _CUVIDH264PICPARAMS__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _CUVIDH264PICPARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _CUVIDMPEG2PICPARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _CUVIDMPEG4PICPARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _CUVIDHEVCPICPARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _CUVIDVP8PICPARAMS__bindgen_ty_1__bindgen_ty_1 { - #[inline] - pub fn frame_type(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } - } - - #[inline] - pub fn set_frame_type(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn version(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 3u8) as u8) } - } - - #[inline] - pub fn set_version(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 3u8, val as u64) - } - } - - #[inline] - pub fn show_frame(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } - } - - #[inline] - pub fn set_show_frame(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - - #[inline] - pub fn update_mb_segmentation_data(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } - } - - #[inline] - pub fn set_update_mb_segmentation_data(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - - #[inline] - pub fn Reserved2Bits(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) } - } - - #[inline] - pub fn set_Reserved2Bits(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 2u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - frame_type: ::core::ffi::c_uchar, - version: ::core::ffi::c_uchar, - show_frame: ::core::ffi::c_uchar, - update_mb_segmentation_data: ::core::ffi::c_uchar, - Reserved2Bits: ::core::ffi::c_uchar, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let frame_type: u8 = unsafe { ::core::mem::transmute(frame_type) }; - frame_type as u64 - }); - __bindgen_bitfield_unit.set(1usize, 3u8, { - let version: u8 = unsafe { ::core::mem::transmute(version) }; - version as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let show_frame: u8 = unsafe { ::core::mem::transmute(show_frame) }; - show_frame as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let update_mb_segmentation_data: u8 = - unsafe { ::core::mem::transmute(update_mb_segmentation_data) }; - update_mb_segmentation_data as u64 - }); - __bindgen_bitfield_unit.set(6usize, 2u8, { - let Reserved2Bits: u8 = unsafe { ::core::mem::transmute(Reserved2Bits) }; - Reserved2Bits as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _CUVIDVP8PICPARAMS__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _CUVIDVP8PICPARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _CUVIDVP9PICPARAMS { - #[inline] - pub fn profile(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u16) } - } - - #[inline] - pub fn set_profile(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 3u8, val as u64) - } - } - - #[inline] - pub fn frameContextIdx(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 2u8) as u16) } - } - - #[inline] - pub fn set_frameContextIdx(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 2u8, val as u64) - } - } - - #[inline] - pub fn frameType(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u16) } - } - - #[inline] - pub fn set_frameType(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - - #[inline] - pub fn showFrame(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u16) } - } - - #[inline] - pub fn set_showFrame(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - - #[inline] - pub fn errorResilient(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u16) } - } - - #[inline] - pub fn set_errorResilient(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - - #[inline] - pub fn frameParallelDecoding(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } - } - - #[inline] - pub fn set_frameParallelDecoding(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - - #[inline] - pub fn subSamplingX(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } - } - - #[inline] - pub fn set_subSamplingX(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - - #[inline] - pub fn subSamplingY(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } - } - - #[inline] - pub fn set_subSamplingY(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - - #[inline] - pub fn intraOnly(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } - } - - #[inline] - pub fn set_intraOnly(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - - #[inline] - pub fn allow_high_precision_mv(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } - } - - #[inline] - pub fn set_allow_high_precision_mv(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(12usize, 1u8, val as u64) - } - } - - #[inline] - pub fn refreshEntropyProbs(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } - } - - #[inline] - pub fn set_refreshEntropyProbs(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reserved2Bits(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 2u8) as u16) } - } - - #[inline] - pub fn set_reserved2Bits(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(14usize, 2u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - profile: ::core::ffi::c_ushort, - frameContextIdx: ::core::ffi::c_ushort, - frameType: ::core::ffi::c_ushort, - showFrame: ::core::ffi::c_ushort, - errorResilient: ::core::ffi::c_ushort, - frameParallelDecoding: ::core::ffi::c_ushort, - subSamplingX: ::core::ffi::c_ushort, - subSamplingY: ::core::ffi::c_ushort, - intraOnly: ::core::ffi::c_ushort, - allow_high_precision_mv: ::core::ffi::c_ushort, - refreshEntropyProbs: ::core::ffi::c_ushort, - reserved2Bits: ::core::ffi::c_ushort, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 3u8, { - let profile: u16 = unsafe { ::core::mem::transmute(profile) }; - profile as u64 - }); - __bindgen_bitfield_unit.set(3usize, 2u8, { - let frameContextIdx: u16 = unsafe { ::core::mem::transmute(frameContextIdx) }; - frameContextIdx as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let frameType: u16 = unsafe { ::core::mem::transmute(frameType) }; - frameType as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let showFrame: u16 = unsafe { ::core::mem::transmute(showFrame) }; - showFrame as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let errorResilient: u16 = unsafe { ::core::mem::transmute(errorResilient) }; - errorResilient as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let frameParallelDecoding: u16 = - unsafe { ::core::mem::transmute(frameParallelDecoding) }; - frameParallelDecoding as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let subSamplingX: u16 = unsafe { ::core::mem::transmute(subSamplingX) }; - subSamplingX as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let subSamplingY: u16 = unsafe { ::core::mem::transmute(subSamplingY) }; - subSamplingY as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let intraOnly: u16 = unsafe { ::core::mem::transmute(intraOnly) }; - intraOnly as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let allow_high_precision_mv: u16 = - unsafe { ::core::mem::transmute(allow_high_precision_mv) }; - allow_high_precision_mv as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let refreshEntropyProbs: u16 = unsafe { ::core::mem::transmute(refreshEntropyProbs) }; - refreshEntropyProbs as u64 - }); - __bindgen_bitfield_unit.set(14usize, 2u8, { - let reserved2Bits: u16 = unsafe { ::core::mem::transmute(reserved2Bits) }; - reserved2Bits as u64 - }); - __bindgen_bitfield_unit - } - - #[inline] - pub fn segmentEnabled(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u8) } - } - - #[inline] - pub fn set_segmentEnabled(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn segmentMapUpdate(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_2.get(1usize, 1u8) as u8) } - } - - #[inline] - pub fn set_segmentMapUpdate(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn segmentMapTemporalUpdate(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 1u8) as u8) } - } - - #[inline] - pub fn set_segmentMapTemporalUpdate(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(2usize, 1u8, val as u64) - } - } - - #[inline] - pub fn segmentFeatureMode(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 1u8) as u8) } - } - - #[inline] - pub fn set_segmentFeatureMode(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(3usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reserved4Bits(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 4u8) as u8) } - } - - #[inline] - pub fn set_reserved4Bits(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(4usize, 4u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_2( - segmentEnabled: ::core::ffi::c_uchar, - segmentMapUpdate: ::core::ffi::c_uchar, - segmentMapTemporalUpdate: ::core::ffi::c_uchar, - segmentFeatureMode: ::core::ffi::c_uchar, - reserved4Bits: ::core::ffi::c_uchar, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let segmentEnabled: u8 = unsafe { ::core::mem::transmute(segmentEnabled) }; - segmentEnabled as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let segmentMapUpdate: u8 = unsafe { ::core::mem::transmute(segmentMapUpdate) }; - segmentMapUpdate as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let segmentMapTemporalUpdate: u8 = - unsafe { ::core::mem::transmute(segmentMapTemporalUpdate) }; - segmentMapTemporalUpdate as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let segmentFeatureMode: u8 = unsafe { ::core::mem::transmute(segmentFeatureMode) }; - segmentFeatureMode as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let reserved4Bits: u8 = unsafe { ::core::mem::transmute(reserved4Bits) }; - reserved4Bits as u64 - }); - __bindgen_bitfield_unit - } -} -impl _CUVIDAV1PICPARAMS__bindgen_ty_2 { - #[inline] - pub fn invalid(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } - } - - #[inline] - pub fn set_invalid(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn wmtype(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u8) } - } - - #[inline] - pub fn set_wmtype(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 2u8, val as u64) - } - } - - #[inline] - pub fn reserved5Bits(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 5u8) as u8) } - } - - #[inline] - pub fn set_reserved5Bits(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 5u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - invalid: ::core::ffi::c_uchar, - wmtype: ::core::ffi::c_uchar, - reserved5Bits: ::core::ffi::c_uchar, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let invalid: u8 = unsafe { ::core::mem::transmute(invalid) }; - invalid as u64 - }); - __bindgen_bitfield_unit.set(1usize, 2u8, { - let wmtype: u8 = unsafe { ::core::mem::transmute(wmtype) }; - wmtype as u64 - }); - __bindgen_bitfield_unit.set(3usize, 5u8, { - let reserved5Bits: u8 = unsafe { ::core::mem::transmute(reserved5Bits) }; - reserved5Bits as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _CUVIDAV1PICPARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _CUVIDAV1PICPARAMS { - #[inline] - pub fn profile(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) } - } - - #[inline] - pub fn set_profile(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 3u8, val as u64) - } - } - - #[inline] - pub fn use_128x128_superblock(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - - #[inline] - pub fn set_use_128x128_superblock(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - - #[inline] - pub fn subsampling_x(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - - #[inline] - pub fn set_subsampling_x(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - - #[inline] - pub fn subsampling_y(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - - #[inline] - pub fn set_subsampling_y(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - - #[inline] - pub fn mono_chrome(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - - #[inline] - pub fn set_mono_chrome(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - - #[inline] - pub fn bit_depth_minus8(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 4u8) as u32) } - } - - #[inline] - pub fn set_bit_depth_minus8(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(7usize, 4u8, val as u64) - } - } - - #[inline] - pub fn enable_filter_intra(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enable_filter_intra(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enable_intra_edge_filter(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enable_intra_edge_filter(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(12usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enable_interintra_compound(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enable_interintra_compound(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enable_masked_compound(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enable_masked_compound(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(14usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enable_dual_filter(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enable_dual_filter(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(15usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enable_order_hint(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enable_order_hint(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(16usize, 1u8, val as u64) - } - } - - #[inline] - pub fn order_hint_bits_minus1(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 3u8) as u32) } - } - - #[inline] - pub fn set_order_hint_bits_minus1(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(17usize, 3u8, val as u64) - } - } - - #[inline] - pub fn enable_jnt_comp(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enable_jnt_comp(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(20usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enable_superres(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enable_superres(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(21usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enable_cdef(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enable_cdef(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(22usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enable_restoration(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enable_restoration(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(23usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enable_fgs(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enable_fgs(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(24usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reserved0_7bits(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(25usize, 7u8) as u32) } - } - - #[inline] - pub fn set_reserved0_7bits(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(25usize, 7u8, val as u64) - } - } - - #[inline] - pub fn frame_type(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(32usize, 2u8) as u32) } - } - - #[inline] - pub fn set_frame_type(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(32usize, 2u8, val as u64) - } - } - - #[inline] - pub fn show_frame(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u32) } - } - - #[inline] - pub fn set_show_frame(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(34usize, 1u8, val as u64) - } - } - - #[inline] - pub fn disable_cdf_update(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u32) } - } - - #[inline] - pub fn set_disable_cdf_update(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(35usize, 1u8, val as u64) - } - } - - #[inline] - pub fn allow_screen_content_tools(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u32) } - } - - #[inline] - pub fn set_allow_screen_content_tools(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(36usize, 1u8, val as u64) - } - } - - #[inline] - pub fn force_integer_mv(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u32) } - } - - #[inline] - pub fn set_force_integer_mv(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(37usize, 1u8, val as u64) - } - } - - #[inline] - pub fn coded_denom(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(38usize, 3u8) as u32) } - } - - #[inline] - pub fn set_coded_denom(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(38usize, 3u8, val as u64) - } - } - - #[inline] - pub fn allow_intrabc(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(41usize, 1u8) as u32) } - } - - #[inline] - pub fn set_allow_intrabc(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(41usize, 1u8, val as u64) - } - } - - #[inline] - pub fn allow_high_precision_mv(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(42usize, 1u8) as u32) } - } - - #[inline] - pub fn set_allow_high_precision_mv(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(42usize, 1u8, val as u64) - } - } - - #[inline] - pub fn interp_filter(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(43usize, 3u8) as u32) } - } - - #[inline] - pub fn set_interp_filter(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(43usize, 3u8, val as u64) - } - } - - #[inline] - pub fn switchable_motion_mode(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(46usize, 1u8) as u32) } - } - - #[inline] - pub fn set_switchable_motion_mode(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(46usize, 1u8, val as u64) - } - } - - #[inline] - pub fn use_ref_frame_mvs(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(47usize, 1u8) as u32) } - } - - #[inline] - pub fn set_use_ref_frame_mvs(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(47usize, 1u8, val as u64) - } - } - - #[inline] - pub fn disable_frame_end_update_cdf(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(48usize, 1u8) as u32) } - } - - #[inline] - pub fn set_disable_frame_end_update_cdf(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(48usize, 1u8, val as u64) - } - } - - #[inline] - pub fn delta_q_present(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(49usize, 1u8) as u32) } - } - - #[inline] - pub fn set_delta_q_present(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(49usize, 1u8, val as u64) - } - } - - #[inline] - pub fn delta_q_res(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(50usize, 2u8) as u32) } - } - - #[inline] - pub fn set_delta_q_res(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(50usize, 2u8, val as u64) - } - } - - #[inline] - pub fn using_qmatrix(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(52usize, 1u8) as u32) } - } - - #[inline] - pub fn set_using_qmatrix(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(52usize, 1u8, val as u64) - } - } - - #[inline] - pub fn coded_lossless(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(53usize, 1u8) as u32) } - } - - #[inline] - pub fn set_coded_lossless(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(53usize, 1u8, val as u64) - } - } - - #[inline] - pub fn use_superres(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(54usize, 1u8) as u32) } - } - - #[inline] - pub fn set_use_superres(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(54usize, 1u8, val as u64) - } - } - - #[inline] - pub fn tx_mode(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(55usize, 2u8) as u32) } - } - - #[inline] - pub fn set_tx_mode(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(55usize, 2u8, val as u64) - } - } - - #[inline] - pub fn reference_mode(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(57usize, 1u8) as u32) } - } - - #[inline] - pub fn set_reference_mode(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(57usize, 1u8, val as u64) - } - } - - #[inline] - pub fn allow_warped_motion(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(58usize, 1u8) as u32) } - } - - #[inline] - pub fn set_allow_warped_motion(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(58usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reduced_tx_set(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(59usize, 1u8) as u32) } - } - - #[inline] - pub fn set_reduced_tx_set(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(59usize, 1u8, val as u64) - } - } - - #[inline] - pub fn skip_mode(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(60usize, 1u8) as u32) } - } - - #[inline] - pub fn set_skip_mode(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(60usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reserved1_3bits(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(61usize, 3u8) as u32) } - } - - #[inline] - pub fn set_reserved1_3bits(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(61usize, 3u8, val as u64) - } - } - - #[inline] - pub fn num_tile_cols(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(64usize, 8u8) as u32) } - } - - #[inline] - pub fn set_num_tile_cols(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(64usize, 8u8, val as u64) - } - } - - #[inline] - pub fn num_tile_rows(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(72usize, 8u8) as u32) } - } - - #[inline] - pub fn set_num_tile_rows(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(72usize, 8u8, val as u64) - } - } - - #[inline] - pub fn context_update_tile_id(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(80usize, 16u8) as u32) } - } - - #[inline] - pub fn set_context_update_tile_id(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(80usize, 16u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - profile: ::core::ffi::c_uint, - use_128x128_superblock: ::core::ffi::c_uint, - subsampling_x: ::core::ffi::c_uint, - subsampling_y: ::core::ffi::c_uint, - mono_chrome: ::core::ffi::c_uint, - bit_depth_minus8: ::core::ffi::c_uint, - enable_filter_intra: ::core::ffi::c_uint, - enable_intra_edge_filter: ::core::ffi::c_uint, - enable_interintra_compound: ::core::ffi::c_uint, - enable_masked_compound: ::core::ffi::c_uint, - enable_dual_filter: ::core::ffi::c_uint, - enable_order_hint: ::core::ffi::c_uint, - order_hint_bits_minus1: ::core::ffi::c_uint, - enable_jnt_comp: ::core::ffi::c_uint, - enable_superres: ::core::ffi::c_uint, - enable_cdef: ::core::ffi::c_uint, - enable_restoration: ::core::ffi::c_uint, - enable_fgs: ::core::ffi::c_uint, - reserved0_7bits: ::core::ffi::c_uint, - frame_type: ::core::ffi::c_uint, - show_frame: ::core::ffi::c_uint, - disable_cdf_update: ::core::ffi::c_uint, - allow_screen_content_tools: ::core::ffi::c_uint, - force_integer_mv: ::core::ffi::c_uint, - coded_denom: ::core::ffi::c_uint, - allow_intrabc: ::core::ffi::c_uint, - allow_high_precision_mv: ::core::ffi::c_uint, - interp_filter: ::core::ffi::c_uint, - switchable_motion_mode: ::core::ffi::c_uint, - use_ref_frame_mvs: ::core::ffi::c_uint, - disable_frame_end_update_cdf: ::core::ffi::c_uint, - delta_q_present: ::core::ffi::c_uint, - delta_q_res: ::core::ffi::c_uint, - using_qmatrix: ::core::ffi::c_uint, - coded_lossless: ::core::ffi::c_uint, - use_superres: ::core::ffi::c_uint, - tx_mode: ::core::ffi::c_uint, - reference_mode: ::core::ffi::c_uint, - allow_warped_motion: ::core::ffi::c_uint, - reduced_tx_set: ::core::ffi::c_uint, - skip_mode: ::core::ffi::c_uint, - reserved1_3bits: ::core::ffi::c_uint, - num_tile_cols: ::core::ffi::c_uint, - num_tile_rows: ::core::ffi::c_uint, - context_update_tile_id: ::core::ffi::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 12usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 12usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 3u8, { - let profile: u32 = unsafe { ::core::mem::transmute(profile) }; - profile as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let use_128x128_superblock: u32 = - unsafe { ::core::mem::transmute(use_128x128_superblock) }; - use_128x128_superblock as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let subsampling_x: u32 = unsafe { ::core::mem::transmute(subsampling_x) }; - subsampling_x as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let subsampling_y: u32 = unsafe { ::core::mem::transmute(subsampling_y) }; - subsampling_y as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let mono_chrome: u32 = unsafe { ::core::mem::transmute(mono_chrome) }; - mono_chrome as u64 - }); - __bindgen_bitfield_unit.set(7usize, 4u8, { - let bit_depth_minus8: u32 = unsafe { ::core::mem::transmute(bit_depth_minus8) }; - bit_depth_minus8 as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let enable_filter_intra: u32 = unsafe { ::core::mem::transmute(enable_filter_intra) }; - enable_filter_intra as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let enable_intra_edge_filter: u32 = - unsafe { ::core::mem::transmute(enable_intra_edge_filter) }; - enable_intra_edge_filter as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let enable_interintra_compound: u32 = - unsafe { ::core::mem::transmute(enable_interintra_compound) }; - enable_interintra_compound as u64 - }); - __bindgen_bitfield_unit.set(14usize, 1u8, { - let enable_masked_compound: u32 = - unsafe { ::core::mem::transmute(enable_masked_compound) }; - enable_masked_compound as u64 - }); - __bindgen_bitfield_unit.set(15usize, 1u8, { - let enable_dual_filter: u32 = unsafe { ::core::mem::transmute(enable_dual_filter) }; - enable_dual_filter as u64 - }); - __bindgen_bitfield_unit.set(16usize, 1u8, { - let enable_order_hint: u32 = unsafe { ::core::mem::transmute(enable_order_hint) }; - enable_order_hint as u64 - }); - __bindgen_bitfield_unit.set(17usize, 3u8, { - let order_hint_bits_minus1: u32 = - unsafe { ::core::mem::transmute(order_hint_bits_minus1) }; - order_hint_bits_minus1 as u64 - }); - __bindgen_bitfield_unit.set(20usize, 1u8, { - let enable_jnt_comp: u32 = unsafe { ::core::mem::transmute(enable_jnt_comp) }; - enable_jnt_comp as u64 - }); - __bindgen_bitfield_unit.set(21usize, 1u8, { - let enable_superres: u32 = unsafe { ::core::mem::transmute(enable_superres) }; - enable_superres as u64 - }); - __bindgen_bitfield_unit.set(22usize, 1u8, { - let enable_cdef: u32 = unsafe { ::core::mem::transmute(enable_cdef) }; - enable_cdef as u64 - }); - __bindgen_bitfield_unit.set(23usize, 1u8, { - let enable_restoration: u32 = unsafe { ::core::mem::transmute(enable_restoration) }; - enable_restoration as u64 - }); - __bindgen_bitfield_unit.set(24usize, 1u8, { - let enable_fgs: u32 = unsafe { ::core::mem::transmute(enable_fgs) }; - enable_fgs as u64 - }); - __bindgen_bitfield_unit.set(25usize, 7u8, { - let reserved0_7bits: u32 = unsafe { ::core::mem::transmute(reserved0_7bits) }; - reserved0_7bits as u64 - }); - __bindgen_bitfield_unit.set(32usize, 2u8, { - let frame_type: u32 = unsafe { ::core::mem::transmute(frame_type) }; - frame_type as u64 - }); - __bindgen_bitfield_unit.set(34usize, 1u8, { - let show_frame: u32 = unsafe { ::core::mem::transmute(show_frame) }; - show_frame as u64 - }); - __bindgen_bitfield_unit.set(35usize, 1u8, { - let disable_cdf_update: u32 = unsafe { ::core::mem::transmute(disable_cdf_update) }; - disable_cdf_update as u64 - }); - __bindgen_bitfield_unit.set(36usize, 1u8, { - let allow_screen_content_tools: u32 = - unsafe { ::core::mem::transmute(allow_screen_content_tools) }; - allow_screen_content_tools as u64 - }); - __bindgen_bitfield_unit.set(37usize, 1u8, { - let force_integer_mv: u32 = unsafe { ::core::mem::transmute(force_integer_mv) }; - force_integer_mv as u64 - }); - __bindgen_bitfield_unit.set(38usize, 3u8, { - let coded_denom: u32 = unsafe { ::core::mem::transmute(coded_denom) }; - coded_denom as u64 - }); - __bindgen_bitfield_unit.set(41usize, 1u8, { - let allow_intrabc: u32 = unsafe { ::core::mem::transmute(allow_intrabc) }; - allow_intrabc as u64 - }); - __bindgen_bitfield_unit.set(42usize, 1u8, { - let allow_high_precision_mv: u32 = - unsafe { ::core::mem::transmute(allow_high_precision_mv) }; - allow_high_precision_mv as u64 - }); - __bindgen_bitfield_unit.set(43usize, 3u8, { - let interp_filter: u32 = unsafe { ::core::mem::transmute(interp_filter) }; - interp_filter as u64 - }); - __bindgen_bitfield_unit.set(46usize, 1u8, { - let switchable_motion_mode: u32 = - unsafe { ::core::mem::transmute(switchable_motion_mode) }; - switchable_motion_mode as u64 - }); - __bindgen_bitfield_unit.set(47usize, 1u8, { - let use_ref_frame_mvs: u32 = unsafe { ::core::mem::transmute(use_ref_frame_mvs) }; - use_ref_frame_mvs as u64 - }); - __bindgen_bitfield_unit.set(48usize, 1u8, { - let disable_frame_end_update_cdf: u32 = - unsafe { ::core::mem::transmute(disable_frame_end_update_cdf) }; - disable_frame_end_update_cdf as u64 - }); - __bindgen_bitfield_unit.set(49usize, 1u8, { - let delta_q_present: u32 = unsafe { ::core::mem::transmute(delta_q_present) }; - delta_q_present as u64 - }); - __bindgen_bitfield_unit.set(50usize, 2u8, { - let delta_q_res: u32 = unsafe { ::core::mem::transmute(delta_q_res) }; - delta_q_res as u64 - }); - __bindgen_bitfield_unit.set(52usize, 1u8, { - let using_qmatrix: u32 = unsafe { ::core::mem::transmute(using_qmatrix) }; - using_qmatrix as u64 - }); - __bindgen_bitfield_unit.set(53usize, 1u8, { - let coded_lossless: u32 = unsafe { ::core::mem::transmute(coded_lossless) }; - coded_lossless as u64 - }); - __bindgen_bitfield_unit.set(54usize, 1u8, { - let use_superres: u32 = unsafe { ::core::mem::transmute(use_superres) }; - use_superres as u64 - }); - __bindgen_bitfield_unit.set(55usize, 2u8, { - let tx_mode: u32 = unsafe { ::core::mem::transmute(tx_mode) }; - tx_mode as u64 - }); - __bindgen_bitfield_unit.set(57usize, 1u8, { - let reference_mode: u32 = unsafe { ::core::mem::transmute(reference_mode) }; - reference_mode as u64 - }); - __bindgen_bitfield_unit.set(58usize, 1u8, { - let allow_warped_motion: u32 = unsafe { ::core::mem::transmute(allow_warped_motion) }; - allow_warped_motion as u64 - }); - __bindgen_bitfield_unit.set(59usize, 1u8, { - let reduced_tx_set: u32 = unsafe { ::core::mem::transmute(reduced_tx_set) }; - reduced_tx_set as u64 - }); - __bindgen_bitfield_unit.set(60usize, 1u8, { - let skip_mode: u32 = unsafe { ::core::mem::transmute(skip_mode) }; - skip_mode as u64 - }); - __bindgen_bitfield_unit.set(61usize, 3u8, { - let reserved1_3bits: u32 = unsafe { ::core::mem::transmute(reserved1_3bits) }; - reserved1_3bits as u64 - }); - __bindgen_bitfield_unit.set(64usize, 8u8, { - let num_tile_cols: u32 = unsafe { ::core::mem::transmute(num_tile_cols) }; - num_tile_cols as u64 - }); - __bindgen_bitfield_unit.set(72usize, 8u8, { - let num_tile_rows: u32 = unsafe { ::core::mem::transmute(num_tile_rows) }; - num_tile_rows as u64 - }); - __bindgen_bitfield_unit.set(80usize, 16u8, { - let context_update_tile_id: u32 = - unsafe { ::core::mem::transmute(context_update_tile_id) }; - context_update_tile_id as u64 - }); - __bindgen_bitfield_unit - } - - #[inline] - pub fn cdef_damping_minus_3(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 2u8) as u8) } - } - - #[inline] - pub fn set_cdef_damping_minus_3(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(0usize, 2u8, val as u64) - } - } - - #[inline] - pub fn cdef_bits(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 2u8) as u8) } - } - - #[inline] - pub fn set_cdef_bits(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(2usize, 2u8, val as u64) - } - } - - #[inline] - pub fn reserved2_4bits(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 4u8) as u8) } - } - - #[inline] - pub fn set_reserved2_4bits(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(4usize, 4u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_2( - cdef_damping_minus_3: ::core::ffi::c_uchar, - cdef_bits: ::core::ffi::c_uchar, - reserved2_4bits: ::core::ffi::c_uchar, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let cdef_damping_minus_3: u8 = unsafe { ::core::mem::transmute(cdef_damping_minus_3) }; - cdef_damping_minus_3 as u64 - }); - __bindgen_bitfield_unit.set(2usize, 2u8, { - let cdef_bits: u8 = unsafe { ::core::mem::transmute(cdef_bits) }; - cdef_bits as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let reserved2_4bits: u8 = unsafe { ::core::mem::transmute(reserved2_4bits) }; - reserved2_4bits as u64 - }); - __bindgen_bitfield_unit - } - - #[inline] - pub fn SkipModeFrame0(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_3.get(0usize, 4u8) as u8) } - } - - #[inline] - pub fn set_SkipModeFrame0(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_3.set(0usize, 4u8, val as u64) - } - } - - #[inline] - pub fn SkipModeFrame1(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_3.get(4usize, 4u8) as u8) } - } - - #[inline] - pub fn set_SkipModeFrame1(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_3.set(4usize, 4u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_3( - SkipModeFrame0: ::core::ffi::c_uchar, - SkipModeFrame1: ::core::ffi::c_uchar, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let SkipModeFrame0: u8 = unsafe { ::core::mem::transmute(SkipModeFrame0) }; - SkipModeFrame0 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let SkipModeFrame1: u8 = unsafe { ::core::mem::transmute(SkipModeFrame1) }; - SkipModeFrame1 as u64 - }); - __bindgen_bitfield_unit - } - - #[inline] - pub fn segmentation_enabled(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_4.get(0usize, 1u8) as u8) } - } - - #[inline] - pub fn set_segmentation_enabled(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_4.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn segmentation_update_map(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_4.get(1usize, 1u8) as u8) } - } - - #[inline] - pub fn set_segmentation_update_map(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_4.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn segmentation_update_data(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_4.get(2usize, 1u8) as u8) } - } - - #[inline] - pub fn set_segmentation_update_data(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_4.set(2usize, 1u8, val as u64) - } - } - - #[inline] - pub fn segmentation_temporal_update(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_4.get(3usize, 1u8) as u8) } - } - - #[inline] - pub fn set_segmentation_temporal_update(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_4.set(3usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reserved3_4bits(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_4.get(4usize, 4u8) as u8) } - } - - #[inline] - pub fn set_reserved3_4bits(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_4.set(4usize, 4u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_4( - segmentation_enabled: ::core::ffi::c_uchar, - segmentation_update_map: ::core::ffi::c_uchar, - segmentation_update_data: ::core::ffi::c_uchar, - segmentation_temporal_update: ::core::ffi::c_uchar, - reserved3_4bits: ::core::ffi::c_uchar, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let segmentation_enabled: u8 = unsafe { ::core::mem::transmute(segmentation_enabled) }; - segmentation_enabled as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let segmentation_update_map: u8 = - unsafe { ::core::mem::transmute(segmentation_update_map) }; - segmentation_update_map as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let segmentation_update_data: u8 = - unsafe { ::core::mem::transmute(segmentation_update_data) }; - segmentation_update_data as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let segmentation_temporal_update: u8 = - unsafe { ::core::mem::transmute(segmentation_temporal_update) }; - segmentation_temporal_update as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let reserved3_4bits: u8 = unsafe { ::core::mem::transmute(reserved3_4bits) }; - reserved3_4bits as u64 - }); - __bindgen_bitfield_unit - } - - #[inline] - pub fn loop_filter_delta_enabled(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_5.get(0usize, 1u8) as u8) } - } - - #[inline] - pub fn set_loop_filter_delta_enabled(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_5.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn loop_filter_delta_update(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_5.get(1usize, 1u8) as u8) } - } - - #[inline] - pub fn set_loop_filter_delta_update(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_5.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn delta_lf_present(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_5.get(2usize, 1u8) as u8) } - } - - #[inline] - pub fn set_delta_lf_present(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_5.set(2usize, 1u8, val as u64) - } - } - - #[inline] - pub fn delta_lf_res(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_5.get(3usize, 2u8) as u8) } - } - - #[inline] - pub fn set_delta_lf_res(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_5.set(3usize, 2u8, val as u64) - } - } - - #[inline] - pub fn delta_lf_multi(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_5.get(5usize, 1u8) as u8) } - } - - #[inline] - pub fn set_delta_lf_multi(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_5.set(5usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reserved4_2bits(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_5.get(6usize, 2u8) as u8) } - } - - #[inline] - pub fn set_reserved4_2bits(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_5.set(6usize, 2u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_5( - loop_filter_delta_enabled: ::core::ffi::c_uchar, - loop_filter_delta_update: ::core::ffi::c_uchar, - delta_lf_present: ::core::ffi::c_uchar, - delta_lf_res: ::core::ffi::c_uchar, - delta_lf_multi: ::core::ffi::c_uchar, - reserved4_2bits: ::core::ffi::c_uchar, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let loop_filter_delta_enabled: u8 = - unsafe { ::core::mem::transmute(loop_filter_delta_enabled) }; - loop_filter_delta_enabled as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let loop_filter_delta_update: u8 = - unsafe { ::core::mem::transmute(loop_filter_delta_update) }; - loop_filter_delta_update as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let delta_lf_present: u8 = unsafe { ::core::mem::transmute(delta_lf_present) }; - delta_lf_present as u64 - }); - __bindgen_bitfield_unit.set(3usize, 2u8, { - let delta_lf_res: u8 = unsafe { ::core::mem::transmute(delta_lf_res) }; - delta_lf_res as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let delta_lf_multi: u8 = unsafe { ::core::mem::transmute(delta_lf_multi) }; - delta_lf_multi as u64 - }); - __bindgen_bitfield_unit.set(6usize, 2u8, { - let reserved4_2bits: u8 = unsafe { ::core::mem::transmute(reserved4_2bits) }; - reserved4_2bits as u64 - }); - __bindgen_bitfield_unit - } - - #[inline] - pub fn temporal_layer_id(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_6.get(0usize, 4u8) as u8) } - } - - #[inline] - pub fn set_temporal_layer_id(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_6.set(0usize, 4u8, val as u64) - } - } - - #[inline] - pub fn spatial_layer_id(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_6.get(4usize, 4u8) as u8) } - } - - #[inline] - pub fn set_spatial_layer_id(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_6.set(4usize, 4u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_6( - temporal_layer_id: ::core::ffi::c_uchar, - spatial_layer_id: ::core::ffi::c_uchar, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let temporal_layer_id: u8 = unsafe { ::core::mem::transmute(temporal_layer_id) }; - temporal_layer_id as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let spatial_layer_id: u8 = unsafe { ::core::mem::transmute(spatial_layer_id) }; - spatial_layer_id as u64 - }); - __bindgen_bitfield_unit - } - - #[inline] - pub fn apply_grain(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_7.get(0usize, 1u8) as u16) } - } - - #[inline] - pub fn set_apply_grain(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_7.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn overlap_flag(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_7.get(1usize, 1u8) as u16) } - } - - #[inline] - pub fn set_overlap_flag(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_7.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn scaling_shift_minus8(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_7.get(2usize, 2u8) as u16) } - } - - #[inline] - pub fn set_scaling_shift_minus8(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_7.set(2usize, 2u8, val as u64) - } - } - - #[inline] - pub fn chroma_scaling_from_luma(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_7.get(4usize, 1u8) as u16) } - } - - #[inline] - pub fn set_chroma_scaling_from_luma(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_7.set(4usize, 1u8, val as u64) - } - } - - #[inline] - pub fn ar_coeff_lag(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_7.get(5usize, 2u8) as u16) } - } - - #[inline] - pub fn set_ar_coeff_lag(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_7.set(5usize, 2u8, val as u64) - } - } - - #[inline] - pub fn ar_coeff_shift_minus6(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_7.get(7usize, 2u8) as u16) } - } - - #[inline] - pub fn set_ar_coeff_shift_minus6(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_7.set(7usize, 2u8, val as u64) - } - } - - #[inline] - pub fn grain_scale_shift(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_7.get(9usize, 2u8) as u16) } - } - - #[inline] - pub fn set_grain_scale_shift(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_7.set(9usize, 2u8, val as u64) - } - } - - #[inline] - pub fn clip_to_restricted_range(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_7.get(11usize, 1u8) as u16) } - } - - #[inline] - pub fn set_clip_to_restricted_range(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_7.set(11usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reserved6_4bits(&self) -> ::core::ffi::c_ushort { - unsafe { ::core::mem::transmute(self._bitfield_7.get(12usize, 4u8) as u16) } - } - - #[inline] - pub fn set_reserved6_4bits(&mut self, val: ::core::ffi::c_ushort) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_7.set(12usize, 4u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_7( - apply_grain: ::core::ffi::c_ushort, - overlap_flag: ::core::ffi::c_ushort, - scaling_shift_minus8: ::core::ffi::c_ushort, - chroma_scaling_from_luma: ::core::ffi::c_ushort, - ar_coeff_lag: ::core::ffi::c_ushort, - ar_coeff_shift_minus6: ::core::ffi::c_ushort, - grain_scale_shift: ::core::ffi::c_ushort, - clip_to_restricted_range: ::core::ffi::c_ushort, - reserved6_4bits: ::core::ffi::c_ushort, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let apply_grain: u16 = unsafe { ::core::mem::transmute(apply_grain) }; - apply_grain as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let overlap_flag: u16 = unsafe { ::core::mem::transmute(overlap_flag) }; - overlap_flag as u64 - }); - __bindgen_bitfield_unit.set(2usize, 2u8, { - let scaling_shift_minus8: u16 = unsafe { ::core::mem::transmute(scaling_shift_minus8) }; - scaling_shift_minus8 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let chroma_scaling_from_luma: u16 = - unsafe { ::core::mem::transmute(chroma_scaling_from_luma) }; - chroma_scaling_from_luma as u64 - }); - __bindgen_bitfield_unit.set(5usize, 2u8, { - let ar_coeff_lag: u16 = unsafe { ::core::mem::transmute(ar_coeff_lag) }; - ar_coeff_lag as u64 - }); - __bindgen_bitfield_unit.set(7usize, 2u8, { - let ar_coeff_shift_minus6: u16 = - unsafe { ::core::mem::transmute(ar_coeff_shift_minus6) }; - ar_coeff_shift_minus6 as u64 - }); - __bindgen_bitfield_unit.set(9usize, 2u8, { - let grain_scale_shift: u16 = unsafe { ::core::mem::transmute(grain_scale_shift) }; - grain_scale_shift as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let clip_to_restricted_range: u16 = - unsafe { ::core::mem::transmute(clip_to_restricted_range) }; - clip_to_restricted_range as u64 - }); - __bindgen_bitfield_unit.set(12usize, 4u8, { - let reserved6_4bits: u16 = unsafe { ::core::mem::transmute(reserved6_4bits) }; - reserved6_4bits as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _CUVIDPICPARAMS__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _CUVIDPICPARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _CUVIDPROCPARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _CUVIDGETDECODESTATUS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub use self::{ - cudaVideoChromaFormat_enum as cudaVideoChromaFormat, - cudaVideoCodec_enum as cudaVideoCodec, - cudaVideoCreateFlags_enum as cudaVideoCreateFlags, - cudaVideoDeinterlaceMode_enum as cudaVideoDeinterlaceMode, - cudaVideoSurfaceFormat_enum as cudaVideoSurfaceFormat, - cuvidDecodeStatus_enum as cuvidDecodeStatus, -}; -extern "C" { - #[must_use] - pub fn cuvidGetDecoderCaps(pdc: *mut CUVIDDECODECAPS) -> CUresult; - #[must_use] - pub fn cuvidCreateDecoder( - phDecoder: *mut CUvideodecoder, - pdci: *mut CUVIDDECODECREATEINFO, - ) -> CUresult; - #[must_use] - pub fn cuvidDestroyDecoder(hDecoder: CUvideodecoder) -> CUresult; - #[must_use] - pub fn cuvidDecodePicture( - hDecoder: CUvideodecoder, - pPicParams: *mut CUVIDPICPARAMS, - ) -> CUresult; - #[must_use] - pub fn cuvidGetDecodeStatus( - hDecoder: CUvideodecoder, - nPicIdx: ::core::ffi::c_int, - pDecodeStatus: *mut CUVIDGETDECODESTATUS, - ) -> CUresult; - #[must_use] - pub fn cuvidReconfigureDecoder( - hDecoder: CUvideodecoder, - pDecReconfigParams: *mut CUVIDRECONFIGUREDECODERINFO, - ) -> CUresult; - #[must_use] - pub fn cuvidMapVideoFrame64( - hDecoder: CUvideodecoder, - nPicIdx: ::core::ffi::c_int, - pDevPtr: *mut ::core::ffi::c_ulonglong, - pPitch: *mut ::core::ffi::c_uint, - pVPP: *mut CUVIDPROCPARAMS, - ) -> CUresult; - #[must_use] - pub fn cuvidUnmapVideoFrame64( - hDecoder: CUvideodecoder, - DevPtr: ::core::ffi::c_ulonglong, - ) -> CUresult; - #[must_use] - pub fn cuvidCtxLockCreate(pLock: *mut CUvideoctxlock, ctx: CUcontext) -> CUresult; - #[must_use] - pub fn cuvidCtxLockDestroy(lck: CUvideoctxlock) -> CUresult; - #[must_use] - pub fn cuvidCtxLock(lck: CUvideoctxlock, reserved_flags: ::core::ffi::c_uint) -> CUresult; - #[must_use] - pub fn cuvidCtxUnlock(lck: CUvideoctxlock, reserved_flags: ::core::ffi::c_uint) -> CUresult; -} - diff --git a/rs/moq-nvenc/src/sys/windows_sys/mod.rs b/rs/moq-nvenc/src/sys/windows_sys/mod.rs deleted file mode 100644 index 778f67f087f..00000000000 --- a/rs/moq-nvenc/src/sys/windows_sys/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod cuviddec; -pub mod nvEncodeAPI; -pub mod nvcuvid; diff --git a/rs/moq-nvenc/src/sys/windows_sys/nvEncodeAPI.rs b/rs/moq-nvenc/src/sys/windows_sys/nvEncodeAPI.rs deleted file mode 100644 index 41768489834..00000000000 --- a/rs/moq-nvenc/src/sys/windows_sys/nvEncodeAPI.rs +++ /dev/null @@ -1,11709 +0,0 @@ -pub use super::super::{guid::*, version::*}; -// automatically generated by rust-bindgen 0.65.1 - -pub type LONG = ::core::ffi::c_long; -pub type GUID = _GUID; -pub type RECT = tagRECT; -pub type NVENC_RECT = RECT; -pub type NV_ENC_INPUT_PTR = *mut ::core::ffi::c_void; -pub type NV_ENC_OUTPUT_PTR = *mut ::core::ffi::c_void; -pub type NV_ENC_REGISTERED_PTR = *mut ::core::ffi::c_void; -pub type NV_ENC_CUSTREAM_PTR = *mut ::core::ffi::c_void; -pub type NV_ENC_CAPS_PARAM = _NV_ENC_CAPS_PARAM; -pub type NV_ENC_RESTORE_ENCODER_STATE_PARAMS = _NV_ENC_RESTORE_ENCODER_STATE_PARAMS; -pub type NV_ENC_OUTPUT_STATS_BLOCK = _NV_ENC_OUTPUT_STATS_BLOCK; -pub type NV_ENC_OUTPUT_STATS_ROW = _NV_ENC_OUTPUT_STATS_ROW; -pub type NV_ENC_ENCODE_OUT_PARAMS = _NV_ENC_ENCODE_OUT_PARAMS; -pub type NV_ENC_LOOKAHEAD_PIC_PARAMS = _NV_ENC_LOOKAHEAD_PIC_PARAMS; -pub type NV_ENC_CREATE_INPUT_BUFFER = _NV_ENC_CREATE_INPUT_BUFFER; -pub type NV_ENC_CREATE_BITSTREAM_BUFFER = _NV_ENC_CREATE_BITSTREAM_BUFFER; -pub type NV_ENC_MVECTOR = _NV_ENC_MVECTOR; -pub type NV_ENC_H264_MV_DATA = _NV_ENC_H264_MV_DATA; -pub type NV_ENC_HEVC_MV_DATA = _NV_ENC_HEVC_MV_DATA; -pub type NV_ENC_CREATE_MV_BUFFER = _NV_ENC_CREATE_MV_BUFFER; -pub type NV_ENC_QP = _NV_ENC_QP; -pub type NV_ENC_RC_PARAMS = _NV_ENC_RC_PARAMS; -pub type NV_ENC_CLOCK_TIMESTAMP_SET = _NV_ENC_CLOCK_TIMESTAMP_SET; -pub type NV_ENC_TIME_CODE = _NV_ENC_TIME_CODE; -pub type NV_ENC_CONFIG_H264_VUI_PARAMETERS = _NV_ENC_CONFIG_H264_VUI_PARAMETERS; -pub type NV_ENC_CONFIG_HEVC_VUI_PARAMETERS = NV_ENC_CONFIG_H264_VUI_PARAMETERS; -pub type NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE = _NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE; -pub type NVENC_EXTERNAL_ME_HINT = _NVENC_EXTERNAL_ME_HINT; -pub type NVENC_EXTERNAL_ME_SB_HINT = _NVENC_EXTERNAL_ME_SB_HINT; -pub type NV_ENC_CONFIG_H264 = _NV_ENC_CONFIG_H264; -pub type NV_ENC_CONFIG_HEVC = _NV_ENC_CONFIG_HEVC; -pub type NV_ENC_FILM_GRAIN_PARAMS_AV1 = _NV_ENC_FILM_GRAIN_PARAMS_AV1; -pub type NV_ENC_CONFIG_AV1 = _NV_ENC_CONFIG_AV1; -pub type NV_ENC_CONFIG_H264_MEONLY = _NV_ENC_CONFIG_H264_MEONLY; -pub type NV_ENC_CONFIG_HEVC_MEONLY = _NV_ENC_CONFIG_HEVC_MEONLY; -pub type NV_ENC_CODEC_CONFIG = _NV_ENC_CODEC_CONFIG; -pub type NV_ENC_CONFIG = _NV_ENC_CONFIG; -pub type NV_ENC_INITIALIZE_PARAMS = _NV_ENC_INITIALIZE_PARAMS; -pub type NV_ENC_RECONFIGURE_PARAMS = _NV_ENC_RECONFIGURE_PARAMS; -pub type NV_ENC_PRESET_CONFIG = _NV_ENC_PRESET_CONFIG; -pub type NV_ENC_PIC_PARAMS_MVC = _NV_ENC_PIC_PARAMS_MVC; -pub type NV_ENC_PIC_PARAMS_H264_EXT = _NV_ENC_PIC_PARAMS_H264_EXT; -pub type NV_ENC_SEI_PAYLOAD = _NV_ENC_SEI_PAYLOAD; -pub type NV_ENC_PIC_PARAMS_H264 = _NV_ENC_PIC_PARAMS_H264; -pub type NV_ENC_PIC_PARAMS_HEVC = _NV_ENC_PIC_PARAMS_HEVC; -pub type NV_ENC_PIC_PARAMS_AV1 = _NV_ENC_PIC_PARAMS_AV1; -pub type NV_ENC_CODEC_PIC_PARAMS = _NV_ENC_CODEC_PIC_PARAMS; -pub type NV_ENC_PIC_PARAMS = _NV_ENC_PIC_PARAMS; -pub type NV_ENC_MEONLY_PARAMS = _NV_ENC_MEONLY_PARAMS; -pub type NV_ENC_LOCK_BITSTREAM = _NV_ENC_LOCK_BITSTREAM; -pub type NV_ENC_LOCK_INPUT_BUFFER = _NV_ENC_LOCK_INPUT_BUFFER; -pub type NV_ENC_MAP_INPUT_RESOURCE = _NV_ENC_MAP_INPUT_RESOURCE; -pub type NV_ENC_INPUT_RESOURCE_OPENGL_TEX = _NV_ENC_INPUT_RESOURCE_OPENGL_TEX; -pub type NV_ENC_FENCE_POINT_D3D12 = _NV_ENC_FENCE_POINT_D3D12; -pub type NV_ENC_INPUT_RESOURCE_D3D12 = _NV_ENC_INPUT_RESOURCE_D3D12; -pub type NV_ENC_OUTPUT_RESOURCE_D3D12 = _NV_ENC_OUTPUT_RESOURCE_D3D12; -pub type NV_ENC_REGISTER_RESOURCE = _NV_ENC_REGISTER_RESOURCE; -pub type NV_ENC_STAT = _NV_ENC_STAT; -pub type NV_ENC_SEQUENCE_PARAM_PAYLOAD = _NV_ENC_SEQUENCE_PARAM_PAYLOAD; -pub type NV_ENC_EVENT_PARAMS = _NV_ENC_EVENT_PARAMS; -pub type NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS = _NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS; -pub type PNVENCOPENENCODESESSION = ::core::option::Option< - unsafe extern "C" fn( - device: *mut ::core::ffi::c_void, - deviceType: u32, - encoder: *mut *mut ::core::ffi::c_void, - ) -> NVENCSTATUS, ->; -pub type PNVENCGETENCODEGUIDCOUNT = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - encodeGUIDCount: *mut u32, - ) -> NVENCSTATUS, ->; -pub type PNVENCGETENCODEGUIDS = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - GUIDs: *mut GUID, - guidArraySize: u32, - GUIDCount: *mut u32, - ) -> NVENCSTATUS, ->; -pub type PNVENCGETINPUTFORMATCOUNT = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - inputFmtCount: *mut u32, - ) -> NVENCSTATUS, ->; -pub type PNVENCGETINPUTFORMATS = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - inputFmts: *mut NV_ENC_BUFFER_FORMAT, - inputFmtArraySize: u32, - inputFmtCount: *mut u32, - ) -> NVENCSTATUS, ->; -pub type PNVENCGETENCODECAPS = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - capsParam: *mut NV_ENC_CAPS_PARAM, - capsVal: *mut ::core::ffi::c_int, - ) -> NVENCSTATUS, ->; -pub type PNVENCGETENCODEPRESETCOUNT = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - encodePresetGUIDCount: *mut u32, - ) -> NVENCSTATUS, ->; -pub type PNVENCGETENCODEPRESETGUIDS = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - presetGUIDs: *mut GUID, - guidArraySize: u32, - encodePresetGUIDCount: *mut u32, - ) -> NVENCSTATUS, ->; -pub type PNVENCGETENCODEPRESETCONFIG = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - presetGUID: GUID, - presetConfig: *mut NV_ENC_PRESET_CONFIG, - ) -> NVENCSTATUS, ->; -pub type PNVENCGETENCODEPRESETCONFIGEX = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - presetGUID: GUID, - tuningInfo: NV_ENC_TUNING_INFO, - presetConfig: *mut NV_ENC_PRESET_CONFIG, - ) -> NVENCSTATUS, ->; -pub type PNVENCINITIALIZEENCODER = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - createEncodeParams: *mut NV_ENC_INITIALIZE_PARAMS, - ) -> NVENCSTATUS, ->; -pub type PNVENCCREATEINPUTBUFFER = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - createInputBufferParams: *mut NV_ENC_CREATE_INPUT_BUFFER, - ) -> NVENCSTATUS, ->; -pub type PNVENCDESTROYINPUTBUFFER = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - inputBuffer: NV_ENC_INPUT_PTR, - ) -> NVENCSTATUS, ->; -pub type PNVENCCREATEBITSTREAMBUFFER = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - createBitstreamBufferParams: *mut NV_ENC_CREATE_BITSTREAM_BUFFER, - ) -> NVENCSTATUS, ->; -pub type PNVENCDESTROYBITSTREAMBUFFER = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - bitstreamBuffer: NV_ENC_OUTPUT_PTR, - ) -> NVENCSTATUS, ->; -pub type PNVENCENCODEPICTURE = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - encodePicParams: *mut NV_ENC_PIC_PARAMS, - ) -> NVENCSTATUS, ->; -pub type PNVENCLOCKBITSTREAM = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - lockBitstreamBufferParams: *mut NV_ENC_LOCK_BITSTREAM, - ) -> NVENCSTATUS, ->; -pub type PNVENCUNLOCKBITSTREAM = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - bitstreamBuffer: NV_ENC_OUTPUT_PTR, - ) -> NVENCSTATUS, ->; -pub type PNVENCLOCKINPUTBUFFER = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - lockInputBufferParams: *mut NV_ENC_LOCK_INPUT_BUFFER, - ) -> NVENCSTATUS, ->; -pub type PNVENCUNLOCKINPUTBUFFER = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - inputBuffer: NV_ENC_INPUT_PTR, - ) -> NVENCSTATUS, ->; -pub type PNVENCGETENCODESTATS = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - encodeStats: *mut NV_ENC_STAT, - ) -> NVENCSTATUS, ->; -pub type PNVENCGETSEQUENCEPARAMS = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - sequenceParamPayload: *mut NV_ENC_SEQUENCE_PARAM_PAYLOAD, - ) -> NVENCSTATUS, ->; -pub type PNVENCREGISTERASYNCEVENT = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - eventParams: *mut NV_ENC_EVENT_PARAMS, - ) -> NVENCSTATUS, ->; -pub type PNVENCUNREGISTERASYNCEVENT = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - eventParams: *mut NV_ENC_EVENT_PARAMS, - ) -> NVENCSTATUS, ->; -pub type PNVENCMAPINPUTRESOURCE = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - mapInputResParams: *mut NV_ENC_MAP_INPUT_RESOURCE, - ) -> NVENCSTATUS, ->; -pub type PNVENCUNMAPINPUTRESOURCE = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - mappedInputBuffer: NV_ENC_INPUT_PTR, - ) -> NVENCSTATUS, ->; -pub type PNVENCDESTROYENCODER = - ::core::option::Option NVENCSTATUS>; -pub type PNVENCINVALIDATEREFFRAMES = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - invalidRefFrameTimeStamp: u64, - ) -> NVENCSTATUS, ->; -pub type PNVENCOPENENCODESESSIONEX = ::core::option::Option< - unsafe extern "C" fn( - openSessionExParams: *mut NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS, - encoder: *mut *mut ::core::ffi::c_void, - ) -> NVENCSTATUS, ->; -pub type PNVENCREGISTERRESOURCE = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - registerResParams: *mut NV_ENC_REGISTER_RESOURCE, - ) -> NVENCSTATUS, ->; -pub type PNVENCUNREGISTERRESOURCE = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - registeredRes: NV_ENC_REGISTERED_PTR, - ) -> NVENCSTATUS, ->; -pub type PNVENCRECONFIGUREENCODER = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - reInitEncodeParams: *mut NV_ENC_RECONFIGURE_PARAMS, - ) -> NVENCSTATUS, ->; -pub type PNVENCCREATEMVBUFFER = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - createMVBufferParams: *mut NV_ENC_CREATE_MV_BUFFER, - ) -> NVENCSTATUS, ->; -pub type PNVENCDESTROYMVBUFFER = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - mvBuffer: NV_ENC_OUTPUT_PTR, - ) -> NVENCSTATUS, ->; -pub type PNVENCRUNMOTIONESTIMATIONONLY = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - meOnlyParams: *mut NV_ENC_MEONLY_PARAMS, - ) -> NVENCSTATUS, ->; -pub type PNVENCGETLASTERROR = ::core::option::Option< - unsafe extern "C" fn(encoder: *mut ::core::ffi::c_void) -> *const ::core::ffi::c_char, ->; -pub type PNVENCSETIOCUDASTREAMS = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - inputStream: NV_ENC_CUSTREAM_PTR, - outputStream: NV_ENC_CUSTREAM_PTR, - ) -> NVENCSTATUS, ->; -pub type PNVENCGETSEQUENCEPARAMEX = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - encInitParams: *mut NV_ENC_INITIALIZE_PARAMS, - sequenceParamPayload: *mut NV_ENC_SEQUENCE_PARAM_PAYLOAD, - ) -> NVENCSTATUS, ->; -pub type PNVENCRESTOREENCODERSTATE = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - restoreState: *mut NV_ENC_RESTORE_ENCODER_STATE_PARAMS, - ) -> NVENCSTATUS, ->; -pub type PNVENCLOOKAHEADPICTURE = ::core::option::Option< - unsafe extern "C" fn( - encoder: *mut ::core::ffi::c_void, - lookaheadParams: *mut NV_ENC_LOOKAHEAD_PIC_PARAMS, - ) -> NVENCSTATUS, ->; -pub type NV_ENCODE_API_FUNCTION_LIST = _NV_ENCODE_API_FUNCTION_LIST; -#[repr(C)] -#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] -pub struct __BindgenBitfieldUnit { - storage: Storage, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _GUID { - pub Data1: ::core::ffi::c_ulong, - pub Data2: ::core::ffi::c_ushort, - pub Data3: ::core::ffi::c_ushort, - pub Data4: [::core::ffi::c_uchar; 8usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagRECT { - pub left: LONG, - pub top: LONG, - pub right: LONG, - pub bottom: LONG, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_CAPS_PARAM { - pub version: u32, - pub capsToQuery: NV_ENC_CAPS, - pub reserved: [u32; 62usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_RESTORE_ENCODER_STATE_PARAMS { - pub version: u32, - pub bufferIdx: u32, - pub state: NV_ENC_STATE_RESTORE_TYPE, - pub outputBitstream: NV_ENC_OUTPUT_PTR, - pub completionEvent: *mut ::core::ffi::c_void, - pub reserved1: [u32; 64usize], - pub reserved2: [*mut ::core::ffi::c_void; 64usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_OUTPUT_STATS_BLOCK { - pub version: u32, - pub QP: u8, - pub reserved: [u8; 3usize], - pub bitcount: u32, - pub reserved1: [u32; 13usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_OUTPUT_STATS_ROW { - pub version: u32, - pub QP: u8, - pub reserved: [u8; 3usize], - pub bitcount: u32, - pub reserved1: [u32; 13usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_ENCODE_OUT_PARAMS { - pub version: u32, - pub bitstreamSizeInBytes: u32, - pub reserved: [u32; 62usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_LOOKAHEAD_PIC_PARAMS { - pub version: u32, - pub inputBuffer: NV_ENC_INPUT_PTR, - pub pictureType: NV_ENC_PIC_TYPE, - pub reserved: [u32; 64usize], - pub reserved1: [*mut ::core::ffi::c_void; 64usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_CREATE_INPUT_BUFFER { - pub version: u32, - pub width: u32, - pub height: u32, - pub memoryHeap: NV_ENC_MEMORY_HEAP, - pub bufferFmt: NV_ENC_BUFFER_FORMAT, - pub reserved: u32, - pub inputBuffer: NV_ENC_INPUT_PTR, - pub pSysMemBuffer: *mut ::core::ffi::c_void, - pub reserved1: [u32; 57usize], - pub reserved2: [*mut ::core::ffi::c_void; 63usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_CREATE_BITSTREAM_BUFFER { - pub version: u32, - pub size: u32, - pub memoryHeap: NV_ENC_MEMORY_HEAP, - pub reserved: u32, - pub bitstreamBuffer: NV_ENC_OUTPUT_PTR, - pub bitstreamBufferPtr: *mut ::core::ffi::c_void, - pub reserved1: [u32; 58usize], - pub reserved2: [*mut ::core::ffi::c_void; 64usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_MVECTOR { - pub mvx: i16, - pub mvy: i16, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_H264_MV_DATA { - pub mv: [NV_ENC_MVECTOR; 4usize], - pub mbType: u8, - pub partitionType: u8, - pub reserved: u16, - pub mbCost: u32, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_HEVC_MV_DATA { - pub mv: [NV_ENC_MVECTOR; 4usize], - pub cuType: u8, - pub cuSize: u8, - pub partitionMode: u8, - pub lastCUInCTB: u8, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_CREATE_MV_BUFFER { - pub version: u32, - pub mvBuffer: NV_ENC_OUTPUT_PTR, - pub reserved1: [u32; 255usize], - pub reserved2: [*mut ::core::ffi::c_void; 63usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_QP { - pub qpInterP: u32, - pub qpInterB: u32, - pub qpIntra: u32, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_RC_PARAMS { - pub version: u32, - pub rateControlMode: NV_ENC_PARAMS_RC_MODE, - pub constQP: NV_ENC_QP, - pub averageBitRate: u32, - pub maxBitRate: u32, - pub vbvBufferSize: u32, - pub vbvInitialDelay: u32, - pub _bitfield_align_1: [u16; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub minQP: NV_ENC_QP, - pub maxQP: NV_ENC_QP, - pub initialRCQP: NV_ENC_QP, - pub temporallayerIdxMask: u32, - pub temporalLayerQP: [u8; 8usize], - pub targetQuality: u8, - pub targetQualityLSB: u8, - pub lookaheadDepth: u16, - pub lowDelayKeyFrameScale: u8, - pub yDcQPIndexOffset: i8, - pub uDcQPIndexOffset: i8, - pub vDcQPIndexOffset: i8, - pub qpMapMode: NV_ENC_QP_MAP_MODE, - pub multiPass: NV_ENC_MULTI_PASS, - pub alphaLayerBitrateRatio: u32, - pub cbQPIndexOffset: i8, - pub crQPIndexOffset: i8, - pub reserved2: u16, - pub reserved: [u32; 4usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_CLOCK_TIMESTAMP_SET { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub timeOffset: u32, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_TIME_CODE { - pub displayPicStruct: NV_ENC_DISPLAY_PIC_STRUCT, - pub clockTimestamp: [NV_ENC_CLOCK_TIMESTAMP_SET; 3usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_CONFIG_H264_VUI_PARAMETERS { - pub overscanInfoPresentFlag: u32, - pub overscanInfo: u32, - pub videoSignalTypePresentFlag: u32, - pub videoFormat: NV_ENC_VUI_VIDEO_FORMAT, - pub videoFullRangeFlag: u32, - pub colourDescriptionPresentFlag: u32, - pub colourPrimaries: NV_ENC_VUI_COLOR_PRIMARIES, - pub transferCharacteristics: NV_ENC_VUI_TRANSFER_CHARACTERISTIC, - pub colourMatrix: NV_ENC_VUI_MATRIX_COEFFS, - pub chromaSampleLocationFlag: u32, - pub chromaSampleLocationTop: u32, - pub chromaSampleLocationBot: u32, - pub bitstreamRestrictionFlag: u32, - pub timingInfoPresentFlag: u32, - pub numUnitInTicks: u32, - pub timeScale: u32, - pub reserved: [u32; 12usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub reserved1: [u32; 3usize], -} -#[repr(C)] -#[repr(align(4))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NVENC_EXTERNAL_ME_HINT { - pub _bitfield_align_1: [u16; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[repr(C)] -#[repr(align(2))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NVENC_EXTERNAL_ME_SB_HINT { - pub _bitfield_align_1: [u16; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 6usize]>, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_CONFIG_H264 { - pub _bitfield_align_1: [u16; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub level: u32, - pub idrPeriod: u32, - pub separateColourPlaneFlag: u32, - pub disableDeblockingFilterIDC: u32, - pub numTemporalLayers: u32, - pub spsId: u32, - pub ppsId: u32, - pub adaptiveTransformMode: NV_ENC_H264_ADAPTIVE_TRANSFORM_MODE, - pub fmoMode: NV_ENC_H264_FMO_MODE, - pub bdirectMode: NV_ENC_H264_BDIRECT_MODE, - pub entropyCodingMode: NV_ENC_H264_ENTROPY_CODING_MODE, - pub stereoMode: NV_ENC_STEREO_PACKING_MODE, - pub intraRefreshPeriod: u32, - pub intraRefreshCnt: u32, - pub maxNumRefFrames: u32, - pub sliceMode: u32, - pub sliceModeData: u32, - pub h264VUIParameters: NV_ENC_CONFIG_H264_VUI_PARAMETERS, - pub ltrNumFrames: u32, - pub ltrTrustMode: u32, - pub chromaFormatIDC: u32, - pub maxTemporalLayers: u32, - pub useBFramesAsRef: NV_ENC_BFRAME_REF_MODE, - pub numRefL0: NV_ENC_NUM_REF_FRAMES, - pub numRefL1: NV_ENC_NUM_REF_FRAMES, - pub reserved1: [u32; 267usize], - pub reserved2: [*mut ::core::ffi::c_void; 64usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_CONFIG_HEVC { - pub level: u32, - pub tier: u32, - pub minCUSize: NV_ENC_HEVC_CUSIZE, - pub maxCUSize: NV_ENC_HEVC_CUSIZE, - pub _bitfield_align_1: [u16; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub idrPeriod: u32, - pub intraRefreshPeriod: u32, - pub intraRefreshCnt: u32, - pub maxNumRefFramesInDPB: u32, - pub ltrNumFrames: u32, - pub vpsId: u32, - pub spsId: u32, - pub ppsId: u32, - pub sliceMode: u32, - pub sliceModeData: u32, - pub maxTemporalLayersMinus1: u32, - pub hevcVUIParameters: NV_ENC_CONFIG_HEVC_VUI_PARAMETERS, - pub ltrTrustMode: u32, - pub useBFramesAsRef: NV_ENC_BFRAME_REF_MODE, - pub numRefL0: NV_ENC_NUM_REF_FRAMES, - pub numRefL1: NV_ENC_NUM_REF_FRAMES, - pub reserved1: [u32; 214usize], - pub reserved2: [*mut ::core::ffi::c_void; 64usize], -} -#[repr(C)] -#[repr(align(4))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_FILM_GRAIN_PARAMS_AV1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub pointYValue: [u8; 14usize], - pub pointYScaling: [u8; 14usize], - pub pointCbValue: [u8; 10usize], - pub pointCbScaling: [u8; 10usize], - pub pointCrValue: [u8; 10usize], - pub pointCrScaling: [u8; 10usize], - pub arCoeffsYPlus128: [u8; 24usize], - pub arCoeffsCbPlus128: [u8; 25usize], - pub arCoeffsCrPlus128: [u8; 25usize], - pub reserved2: [u8; 2usize], - pub cbMult: u8, - pub cbLumaMult: u8, - pub cbOffset: u16, - pub crMult: u8, - pub crLumaMult: u8, - pub crOffset: u16, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_CONFIG_AV1 { - pub level: u32, - pub tier: u32, - pub minPartSize: NV_ENC_AV1_PART_SIZE, - pub maxPartSize: NV_ENC_AV1_PART_SIZE, - pub _bitfield_align_1: [u16; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub idrPeriod: u32, - pub intraRefreshPeriod: u32, - pub intraRefreshCnt: u32, - pub maxNumRefFramesInDPB: u32, - pub numTileColumns: u32, - pub numTileRows: u32, - pub tileWidths: *mut u32, - pub tileHeights: *mut u32, - pub maxTemporalLayersMinus1: u32, - pub colorPrimaries: NV_ENC_VUI_COLOR_PRIMARIES, - pub transferCharacteristics: NV_ENC_VUI_TRANSFER_CHARACTERISTIC, - pub matrixCoefficients: NV_ENC_VUI_MATRIX_COEFFS, - pub colorRange: u32, - pub chromaSamplePosition: u32, - pub useBFramesAsRef: NV_ENC_BFRAME_REF_MODE, - pub filmGrainParams: *mut NV_ENC_FILM_GRAIN_PARAMS_AV1, - pub numFwdRefs: NV_ENC_NUM_REF_FRAMES, - pub numBwdRefs: NV_ENC_NUM_REF_FRAMES, - pub reserved1: [u32; 235usize], - pub reserved2: [*mut ::core::ffi::c_void; 62usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_CONFIG_H264_MEONLY { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub reserved1: [u32; 255usize], - pub reserved2: [*mut ::core::ffi::c_void; 64usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_CONFIG_HEVC_MEONLY { - pub reserved: [u32; 256usize], - pub reserved1: [*mut ::core::ffi::c_void; 64usize], -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _NV_ENC_CONFIG { - pub version: u32, - pub profileGUID: GUID, - pub gopLength: u32, - pub frameIntervalP: i32, - pub monoChromeEncoding: u32, - pub frameFieldMode: NV_ENC_PARAMS_FRAME_FIELD_MODE, - pub mvPrecision: NV_ENC_MV_PRECISION, - pub rcParams: NV_ENC_RC_PARAMS, - pub encodeCodecConfig: NV_ENC_CODEC_CONFIG, - pub reserved: [u32; 278usize], - pub reserved2: [*mut ::core::ffi::c_void; 64usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_INITIALIZE_PARAMS { - pub version: u32, - pub encodeGUID: GUID, - pub presetGUID: GUID, - pub encodeWidth: u32, - pub encodeHeight: u32, - pub darWidth: u32, - pub darHeight: u32, - pub frameRateNum: u32, - pub frameRateDen: u32, - pub enableEncodeAsync: u32, - pub enablePTD: u32, - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub privDataSize: u32, - pub privData: *mut ::core::ffi::c_void, - pub encodeConfig: *mut NV_ENC_CONFIG, - pub maxEncodeWidth: u32, - pub maxEncodeHeight: u32, - pub maxMEHintCountsPerBlock: [NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE; 2usize], - pub tuningInfo: NV_ENC_TUNING_INFO, - pub bufferFormat: NV_ENC_BUFFER_FORMAT, - pub numStateBuffers: u32, - pub outputStatsLevel: NV_ENC_OUTPUT_STATS_LEVEL, - pub reserved: [u32; 285usize], - pub reserved2: [*mut ::core::ffi::c_void; 64usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_RECONFIGURE_PARAMS { - pub version: u32, - pub reInitEncodeParams: NV_ENC_INITIALIZE_PARAMS, - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub __bindgen_padding_0: u32, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _NV_ENC_PRESET_CONFIG { - pub version: u32, - pub presetCfg: NV_ENC_CONFIG, - pub reserved1: [u32; 255usize], - pub reserved2: [*mut ::core::ffi::c_void; 64usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_PIC_PARAMS_MVC { - pub version: u32, - pub viewID: u32, - pub temporalID: u32, - pub priorityID: u32, - pub reserved1: [u32; 12usize], - pub reserved2: [*mut ::core::ffi::c_void; 8usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_SEI_PAYLOAD { - pub payloadSize: u32, - pub payloadType: u32, - pub payload: *mut u8, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _NV_ENC_PIC_PARAMS_H264 { - pub displayPOCSyntax: u32, - pub reserved3: u32, - pub refPicFlag: u32, - pub colourPlaneId: u32, - pub forceIntraRefreshWithFrameCnt: u32, - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub sliceTypeData: *mut u8, - pub sliceTypeArrayCnt: u32, - pub seiPayloadArrayCnt: u32, - pub seiPayloadArray: *mut NV_ENC_SEI_PAYLOAD, - pub sliceMode: u32, - pub sliceModeData: u32, - pub ltrMarkFrameIdx: u32, - pub ltrUseFrameBitmap: u32, - pub ltrUsageMode: u32, - pub forceIntraSliceCount: u32, - pub forceIntraSliceIdx: *mut u32, - pub h264ExtPicParams: NV_ENC_PIC_PARAMS_H264_EXT, - pub timeCode: NV_ENC_TIME_CODE, - pub reserved: [u32; 203usize], - pub reserved2: [*mut ::core::ffi::c_void; 61usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_PIC_PARAMS_HEVC { - pub displayPOCSyntax: u32, - pub refPicFlag: u32, - pub temporalId: u32, - pub forceIntraRefreshWithFrameCnt: u32, - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub sliceTypeData: *mut u8, - pub sliceTypeArrayCnt: u32, - pub sliceMode: u32, - pub sliceModeData: u32, - pub ltrMarkFrameIdx: u32, - pub ltrUseFrameBitmap: u32, - pub ltrUsageMode: u32, - pub seiPayloadArrayCnt: u32, - pub reserved: u32, - pub seiPayloadArray: *mut NV_ENC_SEI_PAYLOAD, - pub timeCode: NV_ENC_TIME_CODE, - pub reserved2: [u32; 237usize], - pub reserved3: [*mut ::core::ffi::c_void; 61usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_PIC_PARAMS_AV1 { - pub displayPOCSyntax: u32, - pub refPicFlag: u32, - pub temporalId: u32, - pub forceIntraRefreshWithFrameCnt: u32, - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub numTileColumns: u32, - pub numTileRows: u32, - pub tileWidths: *mut u32, - pub tileHeights: *mut u32, - pub obuPayloadArrayCnt: u32, - pub reserved: u32, - pub obuPayloadArray: *mut NV_ENC_SEI_PAYLOAD, - pub filmGrainParams: *mut NV_ENC_FILM_GRAIN_PARAMS_AV1, - pub reserved2: [u32; 247usize], - pub reserved3: [*mut ::core::ffi::c_void; 61usize], -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _NV_ENC_PIC_PARAMS { - pub version: u32, - pub inputWidth: u32, - pub inputHeight: u32, - pub inputPitch: u32, - pub encodePicFlags: u32, - pub frameIdx: u32, - pub inputTimeStamp: u64, - pub inputDuration: u64, - pub inputBuffer: NV_ENC_INPUT_PTR, - pub outputBitstream: NV_ENC_OUTPUT_PTR, - pub completionEvent: *mut ::core::ffi::c_void, - pub bufferFmt: NV_ENC_BUFFER_FORMAT, - pub pictureStruct: NV_ENC_PIC_STRUCT, - pub pictureType: NV_ENC_PIC_TYPE, - pub codecPicParams: NV_ENC_CODEC_PIC_PARAMS, - pub meHintCountsPerBlock: [NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE; 2usize], - pub meExternalHints: *mut NVENC_EXTERNAL_ME_HINT, - pub reserved1: [u32; 6usize], - pub reserved2: [*mut ::core::ffi::c_void; 2usize], - pub qpDeltaMap: *mut i8, - pub qpDeltaMapSize: u32, - pub reservedBitFields: u32, - pub meHintRefPicDist: [u16; 2usize], - pub alphaBuffer: NV_ENC_INPUT_PTR, - pub meExternalSbHints: *mut NVENC_EXTERNAL_ME_SB_HINT, - pub meSbHintsCount: u32, - pub stateBufferIdx: u32, - pub outputReconBuffer: NV_ENC_OUTPUT_PTR, - pub reserved3: [u32; 284usize], - pub reserved4: [*mut ::core::ffi::c_void; 57usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_MEONLY_PARAMS { - pub version: u32, - pub inputWidth: u32, - pub inputHeight: u32, - pub inputBuffer: NV_ENC_INPUT_PTR, - pub referenceFrame: NV_ENC_INPUT_PTR, - pub mvBuffer: NV_ENC_OUTPUT_PTR, - pub bufferFmt: NV_ENC_BUFFER_FORMAT, - pub completionEvent: *mut ::core::ffi::c_void, - pub viewID: u32, - pub meHintCountsPerBlock: [NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE; 2usize], - pub meExternalHints: *mut NVENC_EXTERNAL_ME_HINT, - pub reserved1: [u32; 243usize], - pub reserved2: [*mut ::core::ffi::c_void; 59usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_LOCK_BITSTREAM { - pub version: u32, - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub outputBitstream: *mut ::core::ffi::c_void, - pub sliceOffsets: *mut u32, - pub frameIdx: u32, - pub hwEncodeStatus: u32, - pub numSlices: u32, - pub bitstreamSizeInBytes: u32, - pub outputTimeStamp: u64, - pub outputDuration: u64, - pub bitstreamBufferPtr: *mut ::core::ffi::c_void, - pub pictureType: NV_ENC_PIC_TYPE, - pub pictureStruct: NV_ENC_PIC_STRUCT, - pub frameAvgQP: u32, - pub frameSatd: u32, - pub ltrFrameIdx: u32, - pub ltrFrameBitmap: u32, - pub temporalId: u32, - pub intraMBCount: u32, - pub interMBCount: u32, - pub averageMVX: i32, - pub averageMVY: i32, - pub alphaLayerSizeInBytes: u32, - pub outputStatsPtrSize: u32, - pub outputStatsPtr: *mut ::core::ffi::c_void, - pub frameIdxDisplay: u32, - pub reserved1: [u32; 220usize], - pub reserved2: [*mut ::core::ffi::c_void; 63usize], - pub reservedInternal: [u32; 8usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_LOCK_INPUT_BUFFER { - pub version: u32, - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub inputBuffer: NV_ENC_INPUT_PTR, - pub bufferDataPtr: *mut ::core::ffi::c_void, - pub pitch: u32, - pub reserved1: [u32; 251usize], - pub reserved2: [*mut ::core::ffi::c_void; 64usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_MAP_INPUT_RESOURCE { - pub version: u32, - pub subResourceIndex: u32, - pub inputResource: *mut ::core::ffi::c_void, - pub registeredResource: NV_ENC_REGISTERED_PTR, - pub mappedResource: NV_ENC_INPUT_PTR, - pub mappedBufferFmt: NV_ENC_BUFFER_FORMAT, - pub reserved1: [u32; 251usize], - pub reserved2: [*mut ::core::ffi::c_void; 63usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_INPUT_RESOURCE_OPENGL_TEX { - pub texture: u32, - pub target: u32, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_FENCE_POINT_D3D12 { - pub version: u32, - pub reserved: u32, - pub pFence: *mut ::core::ffi::c_void, - pub waitValue: u64, - pub signalValue: u64, - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub reserved1: [u32; 7usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_INPUT_RESOURCE_D3D12 { - pub version: u32, - pub reserved: u32, - pub pInputBuffer: NV_ENC_INPUT_PTR, - pub inputFencePoint: NV_ENC_FENCE_POINT_D3D12, - pub reserved1: [u32; 16usize], - pub reserved2: [*mut ::core::ffi::c_void; 16usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_OUTPUT_RESOURCE_D3D12 { - pub version: u32, - pub reserved: u32, - pub pOutputBuffer: NV_ENC_INPUT_PTR, - pub outputFencePoint: NV_ENC_FENCE_POINT_D3D12, - pub reserved1: [u32; 16usize], - pub reserved2: [*mut ::core::ffi::c_void; 16usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_REGISTER_RESOURCE { - pub version: u32, - pub resourceType: NV_ENC_INPUT_RESOURCE_TYPE, - pub width: u32, - pub height: u32, - pub pitch: u32, - pub subResourceIndex: u32, - pub resourceToRegister: *mut ::core::ffi::c_void, - pub registeredResource: NV_ENC_REGISTERED_PTR, - pub bufferFormat: NV_ENC_BUFFER_FORMAT, - pub bufferUsage: NV_ENC_BUFFER_USAGE, - pub pInputFencePoint: *mut NV_ENC_FENCE_POINT_D3D12, - pub chromaOffset: [u32; 2usize], - pub reserved1: [u32; 245usize], - pub reserved2: [*mut ::core::ffi::c_void; 61usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_STAT { - pub version: u32, - pub reserved: u32, - pub outputBitStream: NV_ENC_OUTPUT_PTR, - pub bitStreamSize: u32, - pub picType: u32, - pub lastValidByteOffset: u32, - pub sliceOffsets: [u32; 16usize], - pub picIdx: u32, - pub frameAvgQP: u32, - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub ltrFrameIdx: u32, - pub intraMBCount: u32, - pub interMBCount: u32, - pub averageMVX: i32, - pub averageMVY: i32, - pub reserved1: [u32; 226usize], - pub reserved2: [*mut ::core::ffi::c_void; 64usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_SEQUENCE_PARAM_PAYLOAD { - pub version: u32, - pub inBufferSize: u32, - pub spsId: u32, - pub ppsId: u32, - pub spsppsBuffer: *mut ::core::ffi::c_void, - pub outSPSPPSPayloadSize: *mut u32, - pub reserved: [u32; 250usize], - pub reserved2: [*mut ::core::ffi::c_void; 64usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_EVENT_PARAMS { - pub version: u32, - pub reserved: u32, - pub completionEvent: *mut ::core::ffi::c_void, - pub reserved1: [u32; 253usize], - pub reserved2: [*mut ::core::ffi::c_void; 64usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS { - pub version: u32, - pub deviceType: NV_ENC_DEVICE_TYPE, - pub device: *mut ::core::ffi::c_void, - pub reserved: *mut ::core::ffi::c_void, - pub apiVersion: u32, - pub reserved1: [u32; 253usize], - pub reserved2: [*mut ::core::ffi::c_void; 64usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _NV_ENCODE_API_FUNCTION_LIST { - pub version: u32, - pub reserved: u32, - pub nvEncOpenEncodeSession: PNVENCOPENENCODESESSION, - pub nvEncGetEncodeGUIDCount: PNVENCGETENCODEGUIDCOUNT, - pub nvEncGetEncodeProfileGUIDCount: PNVENCGETENCODEPRESETCOUNT, - pub nvEncGetEncodeProfileGUIDs: PNVENCGETENCODEPRESETGUIDS, - pub nvEncGetEncodeGUIDs: PNVENCGETENCODEGUIDS, - pub nvEncGetInputFormatCount: PNVENCGETINPUTFORMATCOUNT, - pub nvEncGetInputFormats: PNVENCGETINPUTFORMATS, - pub nvEncGetEncodeCaps: PNVENCGETENCODECAPS, - pub nvEncGetEncodePresetCount: PNVENCGETENCODEPRESETCOUNT, - pub nvEncGetEncodePresetGUIDs: PNVENCGETENCODEPRESETGUIDS, - pub nvEncGetEncodePresetConfig: PNVENCGETENCODEPRESETCONFIG, - pub nvEncInitializeEncoder: PNVENCINITIALIZEENCODER, - pub nvEncCreateInputBuffer: PNVENCCREATEINPUTBUFFER, - pub nvEncDestroyInputBuffer: PNVENCDESTROYINPUTBUFFER, - pub nvEncCreateBitstreamBuffer: PNVENCCREATEBITSTREAMBUFFER, - pub nvEncDestroyBitstreamBuffer: PNVENCDESTROYBITSTREAMBUFFER, - pub nvEncEncodePicture: PNVENCENCODEPICTURE, - pub nvEncLockBitstream: PNVENCLOCKBITSTREAM, - pub nvEncUnlockBitstream: PNVENCUNLOCKBITSTREAM, - pub nvEncLockInputBuffer: PNVENCLOCKINPUTBUFFER, - pub nvEncUnlockInputBuffer: PNVENCUNLOCKINPUTBUFFER, - pub nvEncGetEncodeStats: PNVENCGETENCODESTATS, - pub nvEncGetSequenceParams: PNVENCGETSEQUENCEPARAMS, - pub nvEncRegisterAsyncEvent: PNVENCREGISTERASYNCEVENT, - pub nvEncUnregisterAsyncEvent: PNVENCUNREGISTERASYNCEVENT, - pub nvEncMapInputResource: PNVENCMAPINPUTRESOURCE, - pub nvEncUnmapInputResource: PNVENCUNMAPINPUTRESOURCE, - pub nvEncDestroyEncoder: PNVENCDESTROYENCODER, - pub nvEncInvalidateRefFrames: PNVENCINVALIDATEREFFRAMES, - pub nvEncOpenEncodeSessionEx: PNVENCOPENENCODESESSIONEX, - pub nvEncRegisterResource: PNVENCREGISTERRESOURCE, - pub nvEncUnregisterResource: PNVENCUNREGISTERRESOURCE, - pub nvEncReconfigureEncoder: PNVENCRECONFIGUREENCODER, - pub reserved1: *mut ::core::ffi::c_void, - pub nvEncCreateMVBuffer: PNVENCCREATEMVBUFFER, - pub nvEncDestroyMVBuffer: PNVENCDESTROYMVBUFFER, - pub nvEncRunMotionEstimationOnly: PNVENCRUNMOTIONESTIMATIONONLY, - pub nvEncGetLastErrorString: PNVENCGETLASTERROR, - pub nvEncSetIOCudaStreams: PNVENCSETIOCUDASTREAMS, - pub nvEncGetEncodePresetConfigEx: PNVENCGETENCODEPRESETCONFIGEX, - pub nvEncGetSequenceParamEx: PNVENCGETSEQUENCEPARAMEX, - pub nvEncRestoreEncoderState: PNVENCRESTOREENCODERSTATE, - pub nvEncLookaheadPicture: PNVENCLOOKAHEADPICTURE, - pub reserved2: [*mut ::core::ffi::c_void; 275usize], -} -pub const NVENCAPI_MAJOR_VERSION: u32 = 12; -pub const NVENCAPI_MINOR_VERSION: u32 = 1; -pub const NVENCAPI_VERSION: u32 = 16777228; -pub const NVENC_INFINITE_GOPLENGTH: u32 = 4294967295; -pub const NV_MAX_SEQ_HDR_LEN: u32 = 512; -pub const NV_MAX_TILE_COLS_AV1: u32 = 64; -pub const NV_MAX_TILE_ROWS_AV1: u32 = 64; -#[test] -fn bindgen_test_layout__GUID() { - const UNINIT: ::core::mem::MaybeUninit<_GUID> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_GUID>(), - 16usize, - concat!("Size of: ", stringify!(_GUID)) - ); - assert_eq!( - ::core::mem::align_of::<_GUID>(), - 4usize, - concat!("Alignment of ", stringify!(_GUID)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Data1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_GUID), - "::", - stringify!(Data1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Data2) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_GUID), - "::", - stringify!(Data2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Data3) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(_GUID), - "::", - stringify!(Data3) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).Data4) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_GUID), - "::", - stringify!(Data4) - ) - ); -} -#[test] -fn bindgen_test_layout_tagRECT() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagRECT)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tagRECT)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagRECT), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tagRECT), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagRECT), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tagRECT), - "::", - stringify!(bottom) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_CAPS_PARAM() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CAPS_PARAM> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_CAPS_PARAM>(), - 256usize, - concat!("Size of: ", stringify!(_NV_ENC_CAPS_PARAM)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_CAPS_PARAM>(), - 4usize, - concat!("Alignment of ", stringify!(_NV_ENC_CAPS_PARAM)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CAPS_PARAM), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).capsToQuery) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CAPS_PARAM), - "::", - stringify!(capsToQuery) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CAPS_PARAM), - "::", - stringify!(reserved) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_RESTORE_ENCODER_STATE_PARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_RESTORE_ENCODER_STATE_PARAMS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_RESTORE_ENCODER_STATE_PARAMS>(), - 800usize, - concat!( - "Size of: ", - stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS) - ) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_RESTORE_ENCODER_STATE_PARAMS>(), - 8usize, - concat!( - "Alignment of ", - stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bufferIdx) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS), - "::", - stringify!(bufferIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).outputBitstream) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS), - "::", - stringify!(outputBitstream) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).completionEvent) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS), - "::", - stringify!(completionEvent) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_OUTPUT_STATS_BLOCK() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_OUTPUT_STATS_BLOCK> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_OUTPUT_STATS_BLOCK>(), - 64usize, - concat!("Size of: ", stringify!(_NV_ENC_OUTPUT_STATS_BLOCK)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_OUTPUT_STATS_BLOCK>(), - 4usize, - concat!("Alignment of ", stringify!(_NV_ENC_OUTPUT_STATS_BLOCK)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_STATS_BLOCK), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).QP) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_STATS_BLOCK), - "::", - stringify!(QP) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_STATS_BLOCK), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bitcount) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_STATS_BLOCK), - "::", - stringify!(bitcount) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_STATS_BLOCK), - "::", - stringify!(reserved1) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_OUTPUT_STATS_ROW() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_OUTPUT_STATS_ROW> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_OUTPUT_STATS_ROW>(), - 64usize, - concat!("Size of: ", stringify!(_NV_ENC_OUTPUT_STATS_ROW)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_OUTPUT_STATS_ROW>(), - 4usize, - concat!("Alignment of ", stringify!(_NV_ENC_OUTPUT_STATS_ROW)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_STATS_ROW), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).QP) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_STATS_ROW), - "::", - stringify!(QP) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_STATS_ROW), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bitcount) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_STATS_ROW), - "::", - stringify!(bitcount) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_STATS_ROW), - "::", - stringify!(reserved1) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_ENCODE_OUT_PARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_ENCODE_OUT_PARAMS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_ENCODE_OUT_PARAMS>(), - 256usize, - concat!("Size of: ", stringify!(_NV_ENC_ENCODE_OUT_PARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_ENCODE_OUT_PARAMS>(), - 4usize, - concat!("Alignment of ", stringify!(_NV_ENC_ENCODE_OUT_PARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_ENCODE_OUT_PARAMS), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bitstreamSizeInBytes) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_ENCODE_OUT_PARAMS), - "::", - stringify!(bitstreamSizeInBytes) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_ENCODE_OUT_PARAMS), - "::", - stringify!(reserved) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_LOOKAHEAD_PIC_PARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_LOOKAHEAD_PIC_PARAMS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_LOOKAHEAD_PIC_PARAMS>(), - 792usize, - concat!("Size of: ", stringify!(_NV_ENC_LOOKAHEAD_PIC_PARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_LOOKAHEAD_PIC_PARAMS>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_LOOKAHEAD_PIC_PARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOOKAHEAD_PIC_PARAMS), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inputBuffer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOOKAHEAD_PIC_PARAMS), - "::", - stringify!(inputBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pictureType) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOOKAHEAD_PIC_PARAMS), - "::", - stringify!(pictureType) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOOKAHEAD_PIC_PARAMS), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOOKAHEAD_PIC_PARAMS), - "::", - stringify!(reserved1) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_CREATE_INPUT_BUFFER() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CREATE_INPUT_BUFFER> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_CREATE_INPUT_BUFFER>(), - 776usize, - concat!("Size of: ", stringify!(_NV_ENC_CREATE_INPUT_BUFFER)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_CREATE_INPUT_BUFFER>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_CREATE_INPUT_BUFFER)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_INPUT_BUFFER), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_INPUT_BUFFER), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_INPUT_BUFFER), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).memoryHeap) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_INPUT_BUFFER), - "::", - stringify!(memoryHeap) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bufferFmt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_INPUT_BUFFER), - "::", - stringify!(bufferFmt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_INPUT_BUFFER), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inputBuffer) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_INPUT_BUFFER), - "::", - stringify!(inputBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pSysMemBuffer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_INPUT_BUFFER), - "::", - stringify!(pSysMemBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_INPUT_BUFFER), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_INPUT_BUFFER), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_CREATE_BITSTREAM_BUFFER() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CREATE_BITSTREAM_BUFFER> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_CREATE_BITSTREAM_BUFFER>(), - 776usize, - concat!("Size of: ", stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_CREATE_BITSTREAM_BUFFER>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).memoryHeap) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER), - "::", - stringify!(memoryHeap) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bitstreamBuffer) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER), - "::", - stringify!(bitstreamBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bitstreamBufferPtr) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER), - "::", - stringify!(bitstreamBufferPtr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_MVECTOR() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_MVECTOR> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_MVECTOR>(), - 4usize, - concat!("Size of: ", stringify!(_NV_ENC_MVECTOR)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_MVECTOR>(), - 2usize, - concat!("Alignment of ", stringify!(_NV_ENC_MVECTOR)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mvx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MVECTOR), - "::", - stringify!(mvx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mvy) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MVECTOR), - "::", - stringify!(mvy) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_H264_MV_DATA() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_H264_MV_DATA> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_H264_MV_DATA>(), - 24usize, - concat!("Size of: ", stringify!(_NV_ENC_H264_MV_DATA)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_H264_MV_DATA>(), - 4usize, - concat!("Alignment of ", stringify!(_NV_ENC_H264_MV_DATA)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mv) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_H264_MV_DATA), - "::", - stringify!(mv) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mbType) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_H264_MV_DATA), - "::", - stringify!(mbType) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).partitionType) as usize - ptr as usize }, - 17usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_H264_MV_DATA), - "::", - stringify!(partitionType) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_H264_MV_DATA), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mbCost) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_H264_MV_DATA), - "::", - stringify!(mbCost) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_HEVC_MV_DATA() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_HEVC_MV_DATA> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_HEVC_MV_DATA>(), - 20usize, - concat!("Size of: ", stringify!(_NV_ENC_HEVC_MV_DATA)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_HEVC_MV_DATA>(), - 2usize, - concat!("Alignment of ", stringify!(_NV_ENC_HEVC_MV_DATA)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mv) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_HEVC_MV_DATA), - "::", - stringify!(mv) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cuType) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_HEVC_MV_DATA), - "::", - stringify!(cuType) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cuSize) as usize - ptr as usize }, - 17usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_HEVC_MV_DATA), - "::", - stringify!(cuSize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).partitionMode) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_HEVC_MV_DATA), - "::", - stringify!(partitionMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).lastCUInCTB) as usize - ptr as usize }, - 19usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_HEVC_MV_DATA), - "::", - stringify!(lastCUInCTB) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_CREATE_MV_BUFFER() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CREATE_MV_BUFFER> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_CREATE_MV_BUFFER>(), - 1544usize, - concat!("Size of: ", stringify!(_NV_ENC_CREATE_MV_BUFFER)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_CREATE_MV_BUFFER>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_CREATE_MV_BUFFER)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_MV_BUFFER), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mvBuffer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_MV_BUFFER), - "::", - stringify!(mvBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_MV_BUFFER), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1040usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CREATE_MV_BUFFER), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_QP() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_QP> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_QP>(), - 12usize, - concat!("Size of: ", stringify!(_NV_ENC_QP)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_QP>(), - 4usize, - concat!("Alignment of ", stringify!(_NV_ENC_QP)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qpInterP) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_QP), - "::", - stringify!(qpInterP) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qpInterB) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_QP), - "::", - stringify!(qpInterB) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qpIntra) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_QP), - "::", - stringify!(qpIntra) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_RC_PARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_RC_PARAMS> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_RC_PARAMS>(), - 128usize, - concat!("Size of: ", stringify!(_NV_ENC_RC_PARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_RC_PARAMS>(), - 4usize, - concat!("Alignment of ", stringify!(_NV_ENC_RC_PARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).rateControlMode) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(rateControlMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).constQP) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(constQP) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).averageBitRate) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(averageBitRate) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).maxBitRate) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(maxBitRate) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).vbvBufferSize) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(vbvBufferSize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).vbvInitialDelay) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(vbvInitialDelay) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).minQP) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(minQP) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).maxQP) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(maxQP) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).initialRCQP) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(initialRCQP) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).temporallayerIdxMask) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(temporallayerIdxMask) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).temporalLayerQP) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(temporalLayerQP) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).targetQuality) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(targetQuality) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).targetQualityLSB) as usize - ptr as usize }, - 89usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(targetQualityLSB) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).lookaheadDepth) as usize - ptr as usize }, - 90usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(lookaheadDepth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).lowDelayKeyFrameScale) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(lowDelayKeyFrameScale) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).yDcQPIndexOffset) as usize - ptr as usize }, - 93usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(yDcQPIndexOffset) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).uDcQPIndexOffset) as usize - ptr as usize }, - 94usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(uDcQPIndexOffset) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).vDcQPIndexOffset) as usize - ptr as usize }, - 95usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(vDcQPIndexOffset) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qpMapMode) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(qpMapMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).multiPass) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(multiPass) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).alphaLayerBitrateRatio) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(alphaLayerBitrateRatio) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cbQPIndexOffset) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(cbQPIndexOffset) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).crQPIndexOffset) as usize - ptr as usize }, - 109usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(crQPIndexOffset) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 110usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RC_PARAMS), - "::", - stringify!(reserved) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_CLOCK_TIMESTAMP_SET() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CLOCK_TIMESTAMP_SET> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_CLOCK_TIMESTAMP_SET>(), - 8usize, - concat!("Size of: ", stringify!(_NV_ENC_CLOCK_TIMESTAMP_SET)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_CLOCK_TIMESTAMP_SET>(), - 4usize, - concat!("Alignment of ", stringify!(_NV_ENC_CLOCK_TIMESTAMP_SET)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).timeOffset) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CLOCK_TIMESTAMP_SET), - "::", - stringify!(timeOffset) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_TIME_CODE() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_TIME_CODE> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_TIME_CODE>(), - 28usize, - concat!("Size of: ", stringify!(_NV_ENC_TIME_CODE)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_TIME_CODE>(), - 4usize, - concat!("Alignment of ", stringify!(_NV_ENC_TIME_CODE)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).displayPicStruct) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_TIME_CODE), - "::", - stringify!(displayPicStruct) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).clockTimestamp) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_TIME_CODE), - "::", - stringify!(clockTimestamp) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_CONFIG_H264_VUI_PARAMETERS() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_H264_VUI_PARAMETERS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_CONFIG_H264_VUI_PARAMETERS>(), - 112usize, - concat!("Size of: ", stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_CONFIG_H264_VUI_PARAMETERS>(), - 4usize, - concat!( - "Alignment of ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).overscanInfoPresentFlag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(overscanInfoPresentFlag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).overscanInfo) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(overscanInfo) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).videoSignalTypePresentFlag) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(videoSignalTypePresentFlag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).videoFormat) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(videoFormat) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).videoFullRangeFlag) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(videoFullRangeFlag) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).colourDescriptionPresentFlag) as usize - ptr as usize - }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(colourDescriptionPresentFlag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).colourPrimaries) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(colourPrimaries) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).transferCharacteristics) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(transferCharacteristics) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).colourMatrix) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(colourMatrix) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chromaSampleLocationFlag) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(chromaSampleLocationFlag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chromaSampleLocationTop) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(chromaSampleLocationTop) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chromaSampleLocationBot) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(chromaSampleLocationBot) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bitstreamRestrictionFlag) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(bitstreamRestrictionFlag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).timingInfoPresentFlag) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(timingInfoPresentFlag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).numUnitInTicks) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(numUnitInTicks) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).timeScale) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(timeScale) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS), - "::", - stringify!(reserved) - ) - ); -} -#[test] -fn bindgen_test_layout__NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE() { - const UNINIT: ::core::mem::MaybeUninit<_NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE>(), - 16usize, - concat!( - "Size of: ", - stringify!(_NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE) - ) - ); - assert_eq!( - ::core::mem::align_of::<_NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE>(), - 4usize, - concat!( - "Alignment of ", - stringify!(_NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE), - "::", - stringify!(reserved1) - ) - ); -} -#[test] -fn bindgen_test_layout__NVENC_EXTERNAL_ME_HINT() { - assert_eq!( - ::core::mem::size_of::<_NVENC_EXTERNAL_ME_HINT>(), - 4usize, - concat!("Size of: ", stringify!(_NVENC_EXTERNAL_ME_HINT)) - ); - assert_eq!( - ::core::mem::align_of::<_NVENC_EXTERNAL_ME_HINT>(), - 4usize, - concat!("Alignment of ", stringify!(_NVENC_EXTERNAL_ME_HINT)) - ); -} -#[test] -fn bindgen_test_layout__NVENC_EXTERNAL_ME_SB_HINT() { - assert_eq!( - ::core::mem::size_of::<_NVENC_EXTERNAL_ME_SB_HINT>(), - 6usize, - concat!("Size of: ", stringify!(_NVENC_EXTERNAL_ME_SB_HINT)) - ); - assert_eq!( - ::core::mem::align_of::<_NVENC_EXTERNAL_ME_SB_HINT>(), - 2usize, - concat!("Alignment of ", stringify!(_NVENC_EXTERNAL_ME_SB_HINT)) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_CONFIG_H264() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_H264> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_CONFIG_H264>(), - 1792usize, - concat!("Size of: ", stringify!(_NV_ENC_CONFIG_H264)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_CONFIG_H264>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_CONFIG_H264)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).level) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(level) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).idrPeriod) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(idrPeriod) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).separateColourPlaneFlag) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(separateColourPlaneFlag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).disableDeblockingFilterIDC) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(disableDeblockingFilterIDC) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).numTemporalLayers) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(numTemporalLayers) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).spsId) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(spsId) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ppsId) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(ppsId) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).adaptiveTransformMode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(adaptiveTransformMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).fmoMode) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(fmoMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bdirectMode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(bdirectMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).entropyCodingMode) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(entropyCodingMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).stereoMode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(stereoMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).intraRefreshPeriod) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(intraRefreshPeriod) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).intraRefreshCnt) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(intraRefreshCnt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).maxNumRefFrames) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(maxNumRefFrames) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sliceMode) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(sliceMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sliceModeData) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(sliceModeData) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).h264VUIParameters) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(h264VUIParameters) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ltrNumFrames) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(ltrNumFrames) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ltrTrustMode) as usize - ptr as usize }, - 188usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(ltrTrustMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chromaFormatIDC) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(chromaFormatIDC) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).maxTemporalLayers) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(maxTemporalLayers) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).useBFramesAsRef) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(useBFramesAsRef) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).numRefL0) as usize - ptr as usize }, - 204usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(numRefL0) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).numRefL1) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(numRefL1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 212usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1280usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_CONFIG_HEVC() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_HEVC> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_CONFIG_HEVC>(), - 1560usize, - concat!("Size of: ", stringify!(_NV_ENC_CONFIG_HEVC)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_CONFIG_HEVC>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_CONFIG_HEVC)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).level) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(level) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tier) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(tier) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).minCUSize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(minCUSize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).maxCUSize) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(maxCUSize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).idrPeriod) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(idrPeriod) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).intraRefreshPeriod) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(intraRefreshPeriod) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).intraRefreshCnt) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(intraRefreshCnt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).maxNumRefFramesInDPB) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(maxNumRefFramesInDPB) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ltrNumFrames) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(ltrNumFrames) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).vpsId) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(vpsId) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).spsId) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(spsId) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ppsId) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(ppsId) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sliceMode) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(sliceMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sliceModeData) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(sliceModeData) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).maxTemporalLayersMinus1) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(maxTemporalLayersMinus1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).hevcVUIParameters) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(hevcVUIParameters) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ltrTrustMode) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(ltrTrustMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).useBFramesAsRef) as usize - ptr as usize }, - 180usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(useBFramesAsRef) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).numRefL0) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(numRefL0) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).numRefL1) as usize - ptr as usize }, - 188usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(numRefL1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1048usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_FILM_GRAIN_PARAMS_AV1() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_FILM_GRAIN_PARAMS_AV1> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_FILM_GRAIN_PARAMS_AV1>(), - 156usize, - concat!("Size of: ", stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_FILM_GRAIN_PARAMS_AV1>(), - 4usize, - concat!("Alignment of ", stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pointYValue) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(pointYValue) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pointYScaling) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(pointYScaling) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pointCbValue) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(pointCbValue) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pointCbScaling) as usize - ptr as usize }, - 42usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(pointCbScaling) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pointCrValue) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(pointCrValue) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pointCrScaling) as usize - ptr as usize }, - 62usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(pointCrScaling) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).arCoeffsYPlus128) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(arCoeffsYPlus128) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).arCoeffsCbPlus128) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(arCoeffsCbPlus128) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).arCoeffsCrPlus128) as usize - ptr as usize }, - 121usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(arCoeffsCrPlus128) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 146usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cbMult) as usize - ptr as usize }, - 148usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(cbMult) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cbLumaMult) as usize - ptr as usize }, - 149usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(cbLumaMult) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cbOffset) as usize - ptr as usize }, - 150usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(cbOffset) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).crMult) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(crMult) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).crLumaMult) as usize - ptr as usize }, - 153usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(crLumaMult) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).crOffset) as usize - ptr as usize }, - 154usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1), - "::", - stringify!(crOffset) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_CONFIG_AV1() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_AV1> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_CONFIG_AV1>(), - 1552usize, - concat!("Size of: ", stringify!(_NV_ENC_CONFIG_AV1)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_CONFIG_AV1>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_CONFIG_AV1)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).level) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(level) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tier) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(tier) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).minPartSize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(minPartSize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).maxPartSize) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(maxPartSize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).idrPeriod) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(idrPeriod) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).intraRefreshPeriod) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(intraRefreshPeriod) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).intraRefreshCnt) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(intraRefreshCnt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).maxNumRefFramesInDPB) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(maxNumRefFramesInDPB) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).numTileColumns) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(numTileColumns) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).numTileRows) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(numTileRows) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tileWidths) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(tileWidths) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tileHeights) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(tileHeights) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).maxTemporalLayersMinus1) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(maxTemporalLayersMinus1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).colorPrimaries) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(colorPrimaries) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).transferCharacteristics) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(transferCharacteristics) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).matrixCoefficients) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(matrixCoefficients) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).colorRange) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(colorRange) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chromaSamplePosition) as usize - ptr as usize }, - 84usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(chromaSamplePosition) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).useBFramesAsRef) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(useBFramesAsRef) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).filmGrainParams) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(filmGrainParams) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).numFwdRefs) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(numFwdRefs) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).numBwdRefs) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(numBwdRefs) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1056usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_AV1), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_CONFIG_H264_MEONLY() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_H264_MEONLY> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_CONFIG_H264_MEONLY>(), - 1536usize, - concat!("Size of: ", stringify!(_NV_ENC_CONFIG_H264_MEONLY)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_CONFIG_H264_MEONLY>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_CONFIG_H264_MEONLY)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_MEONLY), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1024usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_H264_MEONLY), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_CONFIG_HEVC_MEONLY() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_HEVC_MEONLY> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_CONFIG_HEVC_MEONLY>(), - 1536usize, - concat!("Size of: ", stringify!(_NV_ENC_CONFIG_HEVC_MEONLY)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_CONFIG_HEVC_MEONLY>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_CONFIG_HEVC_MEONLY)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC_MEONLY), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 1024usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG_HEVC_MEONLY), - "::", - stringify!(reserved1) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_CODEC_CONFIG() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CODEC_CONFIG> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_CODEC_CONFIG>(), - 1792usize, - concat!("Size of: ", stringify!(_NV_ENC_CODEC_CONFIG)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_CODEC_CONFIG>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_CODEC_CONFIG)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).h264Config) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CODEC_CONFIG), - "::", - stringify!(h264Config) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).hevcConfig) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CODEC_CONFIG), - "::", - stringify!(hevcConfig) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).av1Config) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CODEC_CONFIG), - "::", - stringify!(av1Config) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).h264MeOnlyConfig) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CODEC_CONFIG), - "::", - stringify!(h264MeOnlyConfig) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).hevcMeOnlyConfig) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CODEC_CONFIG), - "::", - stringify!(hevcMeOnlyConfig) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CODEC_CONFIG), - "::", - stringify!(reserved) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_CONFIG() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_CONFIG>(), - 3584usize, - concat!("Size of: ", stringify!(_NV_ENC_CONFIG)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_CONFIG>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_CONFIG)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).profileGUID) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG), - "::", - stringify!(profileGUID) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).gopLength) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG), - "::", - stringify!(gopLength) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frameIntervalP) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG), - "::", - stringify!(frameIntervalP) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).monoChromeEncoding) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG), - "::", - stringify!(monoChromeEncoding) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frameFieldMode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG), - "::", - stringify!(frameFieldMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mvPrecision) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG), - "::", - stringify!(mvPrecision) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).rcParams) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG), - "::", - stringify!(rcParams) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).encodeCodecConfig) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG), - "::", - stringify!(encodeCodecConfig) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 1960usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 3072usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CONFIG), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_INITIALIZE_PARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_INITIALIZE_PARAMS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_INITIALIZE_PARAMS>(), - 1808usize, - concat!("Size of: ", stringify!(_NV_ENC_INITIALIZE_PARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_INITIALIZE_PARAMS>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_INITIALIZE_PARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).encodeGUID) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(encodeGUID) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).presetGUID) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(presetGUID) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).encodeWidth) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(encodeWidth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).encodeHeight) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(encodeHeight) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).darWidth) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(darWidth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).darHeight) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(darHeight) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frameRateNum) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(frameRateNum) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frameRateDen) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(frameRateDen) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).enableEncodeAsync) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(enableEncodeAsync) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).enablePTD) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(enablePTD) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).privDataSize) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(privDataSize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).privData) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(privData) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).encodeConfig) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(encodeConfig) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).maxEncodeWidth) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(maxEncodeWidth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).maxEncodeHeight) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(maxEncodeHeight) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).maxMEHintCountsPerBlock) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(maxMEHintCountsPerBlock) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tuningInfo) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(tuningInfo) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bufferFormat) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(bufferFormat) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).numStateBuffers) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(numStateBuffers) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).outputStatsLevel) as usize - ptr as usize }, - 148usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(outputStatsLevel) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1296usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INITIALIZE_PARAMS), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_RECONFIGURE_PARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_RECONFIGURE_PARAMS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_RECONFIGURE_PARAMS>(), - 1824usize, - concat!("Size of: ", stringify!(_NV_ENC_RECONFIGURE_PARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_RECONFIGURE_PARAMS>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_RECONFIGURE_PARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RECONFIGURE_PARAMS), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reInitEncodeParams) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_RECONFIGURE_PARAMS), - "::", - stringify!(reInitEncodeParams) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_PRESET_CONFIG() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PRESET_CONFIG> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_PRESET_CONFIG>(), - 5128usize, - concat!("Size of: ", stringify!(_NV_ENC_PRESET_CONFIG)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_PRESET_CONFIG>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_PRESET_CONFIG)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PRESET_CONFIG), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).presetCfg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PRESET_CONFIG), - "::", - stringify!(presetCfg) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 3592usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PRESET_CONFIG), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 4616usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PRESET_CONFIG), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_PIC_PARAMS_MVC() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS_MVC> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_PIC_PARAMS_MVC>(), - 128usize, - concat!("Size of: ", stringify!(_NV_ENC_PIC_PARAMS_MVC)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_PIC_PARAMS_MVC>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_PIC_PARAMS_MVC)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_MVC), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).viewID) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_MVC), - "::", - stringify!(viewID) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).temporalID) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_MVC), - "::", - stringify!(temporalID) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).priorityID) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_MVC), - "::", - stringify!(priorityID) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_MVC), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_MVC), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_PIC_PARAMS_H264_EXT() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS_H264_EXT> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_PIC_PARAMS_H264_EXT>(), - 128usize, - concat!("Size of: ", stringify!(_NV_ENC_PIC_PARAMS_H264_EXT)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_PIC_PARAMS_H264_EXT>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_PIC_PARAMS_H264_EXT)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mvcPicParams) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264_EXT), - "::", - stringify!(mvcPicParams) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264_EXT), - "::", - stringify!(reserved1) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_SEI_PAYLOAD() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_SEI_PAYLOAD> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_SEI_PAYLOAD>(), - 16usize, - concat!("Size of: ", stringify!(_NV_ENC_SEI_PAYLOAD)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_SEI_PAYLOAD>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_SEI_PAYLOAD)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).payloadSize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_SEI_PAYLOAD), - "::", - stringify!(payloadSize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).payloadType) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_SEI_PAYLOAD), - "::", - stringify!(payloadType) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).payload) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_SEI_PAYLOAD), - "::", - stringify!(payload) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_PIC_PARAMS_H264() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS_H264> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_PIC_PARAMS_H264>(), - 1536usize, - concat!("Size of: ", stringify!(_NV_ENC_PIC_PARAMS_H264)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_PIC_PARAMS_H264>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_PIC_PARAMS_H264)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).displayPOCSyntax) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(displayPOCSyntax) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(reserved3) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).refPicFlag) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(refPicFlag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).colourPlaneId) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(colourPlaneId) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).forceIntraRefreshWithFrameCnt) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(forceIntraRefreshWithFrameCnt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sliceTypeData) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(sliceTypeData) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sliceTypeArrayCnt) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(sliceTypeArrayCnt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).seiPayloadArrayCnt) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(seiPayloadArrayCnt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).seiPayloadArray) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(seiPayloadArray) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sliceMode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(sliceMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sliceModeData) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(sliceModeData) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ltrMarkFrameIdx) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(ltrMarkFrameIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ltrUseFrameBitmap) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(ltrUseFrameBitmap) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ltrUsageMode) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(ltrUsageMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).forceIntraSliceCount) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(forceIntraSliceCount) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).forceIntraSliceIdx) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(forceIntraSliceIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).h264ExtPicParams) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(h264ExtPicParams) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).timeCode) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(timeCode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 236usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1048usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_H264), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_PIC_PARAMS_HEVC() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS_HEVC> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_PIC_PARAMS_HEVC>(), - 1536usize, - concat!("Size of: ", stringify!(_NV_ENC_PIC_PARAMS_HEVC)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_PIC_PARAMS_HEVC>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_PIC_PARAMS_HEVC)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).displayPOCSyntax) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(displayPOCSyntax) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).refPicFlag) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(refPicFlag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).temporalId) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(temporalId) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).forceIntraRefreshWithFrameCnt) as usize - ptr as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(forceIntraRefreshWithFrameCnt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sliceTypeData) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(sliceTypeData) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sliceTypeArrayCnt) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(sliceTypeArrayCnt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sliceMode) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(sliceMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sliceModeData) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(sliceModeData) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ltrMarkFrameIdx) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(ltrMarkFrameIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ltrUseFrameBitmap) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(ltrUseFrameBitmap) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ltrUsageMode) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(ltrUsageMode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).seiPayloadArrayCnt) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(seiPayloadArrayCnt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).seiPayloadArray) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(seiPayloadArray) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).timeCode) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(timeCode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 1048usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_HEVC), - "::", - stringify!(reserved3) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_PIC_PARAMS_AV1() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS_AV1> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_PIC_PARAMS_AV1>(), - 1552usize, - concat!("Size of: ", stringify!(_NV_ENC_PIC_PARAMS_AV1)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_PIC_PARAMS_AV1>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_PIC_PARAMS_AV1)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).displayPOCSyntax) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_AV1), - "::", - stringify!(displayPOCSyntax) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).refPicFlag) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_AV1), - "::", - stringify!(refPicFlag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).temporalId) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_AV1), - "::", - stringify!(temporalId) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).forceIntraRefreshWithFrameCnt) as usize - ptr as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_AV1), - "::", - stringify!(forceIntraRefreshWithFrameCnt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).numTileColumns) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_AV1), - "::", - stringify!(numTileColumns) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).numTileRows) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_AV1), - "::", - stringify!(numTileRows) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tileWidths) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_AV1), - "::", - stringify!(tileWidths) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tileHeights) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_AV1), - "::", - stringify!(tileHeights) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).obuPayloadArrayCnt) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_AV1), - "::", - stringify!(obuPayloadArrayCnt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_AV1), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).obuPayloadArray) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_AV1), - "::", - stringify!(obuPayloadArray) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).filmGrainParams) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_AV1), - "::", - stringify!(filmGrainParams) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_AV1), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 1064usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS_AV1), - "::", - stringify!(reserved3) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_CODEC_PIC_PARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CODEC_PIC_PARAMS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_CODEC_PIC_PARAMS>(), - 1552usize, - concat!("Size of: ", stringify!(_NV_ENC_CODEC_PIC_PARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_CODEC_PIC_PARAMS>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_CODEC_PIC_PARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).h264PicParams) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CODEC_PIC_PARAMS), - "::", - stringify!(h264PicParams) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).hevcPicParams) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CODEC_PIC_PARAMS), - "::", - stringify!(hevcPicParams) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).av1PicParams) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CODEC_PIC_PARAMS), - "::", - stringify!(av1PicParams) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_CODEC_PIC_PARAMS), - "::", - stringify!(reserved) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_PIC_PARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_PIC_PARAMS>(), - 3360usize, - concat!("Size of: ", stringify!(_NV_ENC_PIC_PARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_PIC_PARAMS>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_PIC_PARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inputWidth) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(inputWidth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inputHeight) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(inputHeight) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inputPitch) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(inputPitch) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).encodePicFlags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(encodePicFlags) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frameIdx) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(frameIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inputTimeStamp) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(inputTimeStamp) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inputDuration) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(inputDuration) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inputBuffer) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(inputBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).outputBitstream) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(outputBitstream) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).completionEvent) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(completionEvent) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bufferFmt) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(bufferFmt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pictureStruct) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(pictureStruct) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pictureType) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(pictureType) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).codecPicParams) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(codecPicParams) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).meHintCountsPerBlock) as usize - ptr as usize }, - 1632usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(meHintCountsPerBlock) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).meExternalHints) as usize - ptr as usize }, - 1664usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(meExternalHints) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 1672usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1696usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qpDeltaMap) as usize - ptr as usize }, - 1712usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(qpDeltaMap) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qpDeltaMapSize) as usize - ptr as usize }, - 1720usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(qpDeltaMapSize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reservedBitFields) as usize - ptr as usize }, - 1724usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(reservedBitFields) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).meHintRefPicDist) as usize - ptr as usize }, - 1728usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(meHintRefPicDist) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).alphaBuffer) as usize - ptr as usize }, - 1736usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(alphaBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).meExternalSbHints) as usize - ptr as usize }, - 1744usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(meExternalSbHints) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).meSbHintsCount) as usize - ptr as usize }, - 1752usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(meSbHintsCount) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).stateBufferIdx) as usize - ptr as usize }, - 1756usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(stateBufferIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).outputReconBuffer) as usize - ptr as usize }, - 1760usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(outputReconBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 1768usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(reserved3) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved4) as usize - ptr as usize }, - 2904usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_PIC_PARAMS), - "::", - stringify!(reserved4) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_MEONLY_PARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_MEONLY_PARAMS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_MEONLY_PARAMS>(), - 1552usize, - concat!("Size of: ", stringify!(_NV_ENC_MEONLY_PARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_MEONLY_PARAMS>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_MEONLY_PARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MEONLY_PARAMS), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inputWidth) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MEONLY_PARAMS), - "::", - stringify!(inputWidth) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inputHeight) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MEONLY_PARAMS), - "::", - stringify!(inputHeight) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inputBuffer) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MEONLY_PARAMS), - "::", - stringify!(inputBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).referenceFrame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MEONLY_PARAMS), - "::", - stringify!(referenceFrame) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mvBuffer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MEONLY_PARAMS), - "::", - stringify!(mvBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bufferFmt) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MEONLY_PARAMS), - "::", - stringify!(bufferFmt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).completionEvent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MEONLY_PARAMS), - "::", - stringify!(completionEvent) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).viewID) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MEONLY_PARAMS), - "::", - stringify!(viewID) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).meHintCountsPerBlock) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MEONLY_PARAMS), - "::", - stringify!(meHintCountsPerBlock) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).meExternalHints) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MEONLY_PARAMS), - "::", - stringify!(meExternalHints) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MEONLY_PARAMS), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1080usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MEONLY_PARAMS), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_LOCK_BITSTREAM() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_LOCK_BITSTREAM> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_LOCK_BITSTREAM>(), - 1552usize, - concat!("Size of: ", stringify!(_NV_ENC_LOCK_BITSTREAM)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_LOCK_BITSTREAM>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_LOCK_BITSTREAM)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).outputBitstream) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(outputBitstream) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sliceOffsets) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(sliceOffsets) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frameIdx) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(frameIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).hwEncodeStatus) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(hwEncodeStatus) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).numSlices) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(numSlices) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bitstreamSizeInBytes) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(bitstreamSizeInBytes) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).outputTimeStamp) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(outputTimeStamp) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).outputDuration) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(outputDuration) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bitstreamBufferPtr) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(bitstreamBufferPtr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pictureType) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(pictureType) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pictureStruct) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(pictureStruct) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frameAvgQP) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(frameAvgQP) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frameSatd) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(frameSatd) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ltrFrameIdx) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(ltrFrameIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ltrFrameBitmap) as usize - ptr as usize }, - 84usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(ltrFrameBitmap) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).temporalId) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(temporalId) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).intraMBCount) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(intraMBCount) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).interMBCount) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(interMBCount) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).averageMVX) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(averageMVX) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).averageMVY) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(averageMVY) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).alphaLayerSizeInBytes) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(alphaLayerSizeInBytes) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).outputStatsPtrSize) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(outputStatsPtrSize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).outputStatsPtr) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(outputStatsPtr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frameIdxDisplay) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(frameIdxDisplay) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1016usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reservedInternal) as usize - ptr as usize }, - 1520usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_BITSTREAM), - "::", - stringify!(reservedInternal) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_LOCK_INPUT_BUFFER() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_LOCK_INPUT_BUFFER> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_LOCK_INPUT_BUFFER>(), - 1544usize, - concat!("Size of: ", stringify!(_NV_ENC_LOCK_INPUT_BUFFER)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_LOCK_INPUT_BUFFER>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_LOCK_INPUT_BUFFER)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_INPUT_BUFFER), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inputBuffer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_INPUT_BUFFER), - "::", - stringify!(inputBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bufferDataPtr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_INPUT_BUFFER), - "::", - stringify!(bufferDataPtr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pitch) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_INPUT_BUFFER), - "::", - stringify!(pitch) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_INPUT_BUFFER), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1032usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_LOCK_INPUT_BUFFER), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_MAP_INPUT_RESOURCE() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_MAP_INPUT_RESOURCE> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_MAP_INPUT_RESOURCE>(), - 1544usize, - concat!("Size of: ", stringify!(_NV_ENC_MAP_INPUT_RESOURCE)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_MAP_INPUT_RESOURCE>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_MAP_INPUT_RESOURCE)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MAP_INPUT_RESOURCE), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).subResourceIndex) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MAP_INPUT_RESOURCE), - "::", - stringify!(subResourceIndex) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inputResource) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MAP_INPUT_RESOURCE), - "::", - stringify!(inputResource) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).registeredResource) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MAP_INPUT_RESOURCE), - "::", - stringify!(registeredResource) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mappedResource) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MAP_INPUT_RESOURCE), - "::", - stringify!(mappedResource) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mappedBufferFmt) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MAP_INPUT_RESOURCE), - "::", - stringify!(mappedBufferFmt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MAP_INPUT_RESOURCE), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1040usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_MAP_INPUT_RESOURCE), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_INPUT_RESOURCE_OPENGL_TEX() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_INPUT_RESOURCE_OPENGL_TEX> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_INPUT_RESOURCE_OPENGL_TEX>(), - 8usize, - concat!("Size of: ", stringify!(_NV_ENC_INPUT_RESOURCE_OPENGL_TEX)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_INPUT_RESOURCE_OPENGL_TEX>(), - 4usize, - concat!( - "Alignment of ", - stringify!(_NV_ENC_INPUT_RESOURCE_OPENGL_TEX) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).texture) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INPUT_RESOURCE_OPENGL_TEX), - "::", - stringify!(texture) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INPUT_RESOURCE_OPENGL_TEX), - "::", - stringify!(target) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_FENCE_POINT_D3D12() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_FENCE_POINT_D3D12> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_FENCE_POINT_D3D12>(), - 64usize, - concat!("Size of: ", stringify!(_NV_ENC_FENCE_POINT_D3D12)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_FENCE_POINT_D3D12>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_FENCE_POINT_D3D12)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FENCE_POINT_D3D12), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FENCE_POINT_D3D12), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pFence) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FENCE_POINT_D3D12), - "::", - stringify!(pFence) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).waitValue) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FENCE_POINT_D3D12), - "::", - stringify!(waitValue) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).signalValue) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FENCE_POINT_D3D12), - "::", - stringify!(signalValue) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_FENCE_POINT_D3D12), - "::", - stringify!(reserved1) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_INPUT_RESOURCE_D3D12() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_INPUT_RESOURCE_D3D12> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_INPUT_RESOURCE_D3D12>(), - 272usize, - concat!("Size of: ", stringify!(_NV_ENC_INPUT_RESOURCE_D3D12)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_INPUT_RESOURCE_D3D12>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_INPUT_RESOURCE_D3D12)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INPUT_RESOURCE_D3D12), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INPUT_RESOURCE_D3D12), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pInputBuffer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INPUT_RESOURCE_D3D12), - "::", - stringify!(pInputBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inputFencePoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INPUT_RESOURCE_D3D12), - "::", - stringify!(inputFencePoint) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INPUT_RESOURCE_D3D12), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_INPUT_RESOURCE_D3D12), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_OUTPUT_RESOURCE_D3D12() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_OUTPUT_RESOURCE_D3D12> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_OUTPUT_RESOURCE_D3D12>(), - 272usize, - concat!("Size of: ", stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_OUTPUT_RESOURCE_D3D12>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pOutputBuffer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12), - "::", - stringify!(pOutputBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).outputFencePoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12), - "::", - stringify!(outputFencePoint) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_REGISTER_RESOURCE() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_REGISTER_RESOURCE> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_REGISTER_RESOURCE>(), - 1536usize, - concat!("Size of: ", stringify!(_NV_ENC_REGISTER_RESOURCE)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_REGISTER_RESOURCE>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_REGISTER_RESOURCE)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_REGISTER_RESOURCE), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).resourceType) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_REGISTER_RESOURCE), - "::", - stringify!(resourceType) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_REGISTER_RESOURCE), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_REGISTER_RESOURCE), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pitch) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_REGISTER_RESOURCE), - "::", - stringify!(pitch) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).subResourceIndex) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_REGISTER_RESOURCE), - "::", - stringify!(subResourceIndex) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).resourceToRegister) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_REGISTER_RESOURCE), - "::", - stringify!(resourceToRegister) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).registeredResource) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_REGISTER_RESOURCE), - "::", - stringify!(registeredResource) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bufferFormat) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_REGISTER_RESOURCE), - "::", - stringify!(bufferFormat) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bufferUsage) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_REGISTER_RESOURCE), - "::", - stringify!(bufferUsage) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pInputFencePoint) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_REGISTER_RESOURCE), - "::", - stringify!(pInputFencePoint) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chromaOffset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_REGISTER_RESOURCE), - "::", - stringify!(chromaOffset) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_REGISTER_RESOURCE), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1048usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_REGISTER_RESOURCE), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_STAT() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_STAT> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_STAT>(), - 1544usize, - concat!("Size of: ", stringify!(_NV_ENC_STAT)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_STAT>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_STAT)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).outputBitStream) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(outputBitStream) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bitStreamSize) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(bitStreamSize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).picType) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(picType) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).lastValidByteOffset) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(lastValidByteOffset) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sliceOffsets) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(sliceOffsets) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).picIdx) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(picIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frameAvgQP) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(frameAvgQP) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ltrFrameIdx) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(ltrFrameIdx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).intraMBCount) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(intraMBCount) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).interMBCount) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(interMBCount) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).averageMVX) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(averageMVX) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).averageMVY) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(averageMVY) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1032usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_STAT), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_SEQUENCE_PARAM_PAYLOAD() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_SEQUENCE_PARAM_PAYLOAD> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_SEQUENCE_PARAM_PAYLOAD>(), - 1544usize, - concat!("Size of: ", stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_SEQUENCE_PARAM_PAYLOAD>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).inBufferSize) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD), - "::", - stringify!(inBufferSize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).spsId) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD), - "::", - stringify!(spsId) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ppsId) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD), - "::", - stringify!(ppsId) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).spsppsBuffer) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD), - "::", - stringify!(spsppsBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).outSPSPPSPayloadSize) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD), - "::", - stringify!(outSPSPPSPayloadSize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1032usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_EVENT_PARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_EVENT_PARAMS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_EVENT_PARAMS>(), - 1544usize, - concat!("Size of: ", stringify!(_NV_ENC_EVENT_PARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_EVENT_PARAMS>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENC_EVENT_PARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_EVENT_PARAMS), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_EVENT_PARAMS), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).completionEvent) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_EVENT_PARAMS), - "::", - stringify!(completionEvent) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_EVENT_PARAMS), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1032usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_EVENT_PARAMS), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS>(), - 1552usize, - concat!( - "Size of: ", - stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS) - ) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS>(), - 8usize, - concat!( - "Alignment of ", - stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).deviceType) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS), - "::", - stringify!(deviceType) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS), - "::", - stringify!(device) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).apiVersion) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS), - "::", - stringify!(apiVersion) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 1040usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__NV_ENCODE_API_FUNCTION_LIST() { - const UNINIT: ::core::mem::MaybeUninit<_NV_ENCODE_API_FUNCTION_LIST> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_NV_ENCODE_API_FUNCTION_LIST>(), - 2552usize, - concat!("Size of: ", stringify!(_NV_ENCODE_API_FUNCTION_LIST)) - ); - assert_eq!( - ::core::mem::align_of::<_NV_ENCODE_API_FUNCTION_LIST>(), - 8usize, - concat!("Alignment of ", stringify!(_NV_ENCODE_API_FUNCTION_LIST)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncOpenEncodeSession) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncOpenEncodeSession) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodeGUIDCount) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncGetEncodeGUIDCount) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).nvEncGetEncodeProfileGUIDCount) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncGetEncodeProfileGUIDCount) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodeProfileGUIDs) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncGetEncodeProfileGUIDs) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodeGUIDs) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncGetEncodeGUIDs) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetInputFormatCount) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncGetInputFormatCount) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetInputFormats) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncGetInputFormats) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodeCaps) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncGetEncodeCaps) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodePresetCount) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncGetEncodePresetCount) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodePresetGUIDs) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncGetEncodePresetGUIDs) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodePresetConfig) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncGetEncodePresetConfig) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncInitializeEncoder) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncInitializeEncoder) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncCreateInputBuffer) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncCreateInputBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncDestroyInputBuffer) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncDestroyInputBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncCreateBitstreamBuffer) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncCreateBitstreamBuffer) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).nvEncDestroyBitstreamBuffer) as usize - ptr as usize - }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncDestroyBitstreamBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncEncodePicture) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncEncodePicture) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncLockBitstream) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncLockBitstream) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncUnlockBitstream) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncUnlockBitstream) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncLockInputBuffer) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncLockInputBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncUnlockInputBuffer) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncUnlockInputBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodeStats) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncGetEncodeStats) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetSequenceParams) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncGetSequenceParams) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncRegisterAsyncEvent) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncRegisterAsyncEvent) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncUnregisterAsyncEvent) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncUnregisterAsyncEvent) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncMapInputResource) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncMapInputResource) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncUnmapInputResource) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncUnmapInputResource) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncDestroyEncoder) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncDestroyEncoder) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncInvalidateRefFrames) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncInvalidateRefFrames) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncOpenEncodeSessionEx) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncOpenEncodeSessionEx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncRegisterResource) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncRegisterResource) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncUnregisterResource) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncUnregisterResource) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncReconfigureEncoder) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncReconfigureEncoder) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncCreateMVBuffer) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncCreateMVBuffer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncDestroyMVBuffer) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncDestroyMVBuffer) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).nvEncRunMotionEstimationOnly) as usize - ptr as usize - }, - 296usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncRunMotionEstimationOnly) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetLastErrorString) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncGetLastErrorString) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncSetIOCudaStreams) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncSetIOCudaStreams) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).nvEncGetEncodePresetConfigEx) as usize - ptr as usize - }, - 320usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncGetEncodePresetConfigEx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetSequenceParamEx) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncGetSequenceParamEx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncRestoreEncoderState) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncRestoreEncoderState) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).nvEncLookaheadPicture) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(nvEncLookaheadPicture) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(_NV_ENCODE_API_FUNCTION_LIST), - "::", - stringify!(reserved2) - ) - ); -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_PARAMS_FRAME_FIELD_MODE { - NV_ENC_PARAMS_FRAME_FIELD_MODE_FRAME = 1, - NV_ENC_PARAMS_FRAME_FIELD_MODE_FIELD = 2, - NV_ENC_PARAMS_FRAME_FIELD_MODE_MBAFF = 3, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_PARAMS_RC_MODE { - NV_ENC_PARAMS_RC_CONSTQP = 0, - NV_ENC_PARAMS_RC_VBR = 1, - NV_ENC_PARAMS_RC_CBR = 2, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_MULTI_PASS { - NV_ENC_MULTI_PASS_DISABLED = 0, - NV_ENC_TWO_PASS_QUARTER_RESOLUTION = 1, - NV_ENC_TWO_PASS_FULL_RESOLUTION = 2, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_STATE_RESTORE_TYPE { - NV_ENC_STATE_RESTORE_FULL = 1, - NV_ENC_STATE_RESTORE_RATE_CONTROL = 2, - NV_ENC_STATE_RESTORE_ENCODE = 3, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_OUTPUT_STATS_LEVEL { - NV_ENC_OUTPUT_STATS_NONE = 0, - NV_ENC_OUTPUT_STATS_BLOCK_LEVEL = 1, - NV_ENC_OUTPUT_STATS_ROW_LEVEL = 2, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_EMPHASIS_MAP_LEVEL { - NV_ENC_EMPHASIS_MAP_LEVEL_0 = 0, - NV_ENC_EMPHASIS_MAP_LEVEL_1 = 1, - NV_ENC_EMPHASIS_MAP_LEVEL_2 = 2, - NV_ENC_EMPHASIS_MAP_LEVEL_3 = 3, - NV_ENC_EMPHASIS_MAP_LEVEL_4 = 4, - NV_ENC_EMPHASIS_MAP_LEVEL_5 = 5, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_QP_MAP_MODE { - NV_ENC_QP_MAP_DISABLED = 0, - NV_ENC_QP_MAP_EMPHASIS = 1, - NV_ENC_QP_MAP_DELTA = 2, - NV_ENC_QP_MAP = 3, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_PIC_STRUCT { - NV_ENC_PIC_STRUCT_FRAME = 1, - NV_ENC_PIC_STRUCT_FIELD_TOP_BOTTOM = 2, - NV_ENC_PIC_STRUCT_FIELD_BOTTOM_TOP = 3, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_DISPLAY_PIC_STRUCT { - NV_ENC_PIC_STRUCT_DISPLAY_FRAME = 0, - NV_ENC_PIC_STRUCT_DISPLAY_FIELD_TOP_BOTTOM = 1, - NV_ENC_PIC_STRUCT_DISPLAY_FIELD_BOTTOM_TOP = 2, - NV_ENC_PIC_STRUCT_DISPLAY_FRAME_DOUBLING = 3, - NV_ENC_PIC_STRUCT_DISPLAY_FRAME_TRIPLING = 4, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_PIC_TYPE { - NV_ENC_PIC_TYPE_P = 0, - NV_ENC_PIC_TYPE_B = 1, - NV_ENC_PIC_TYPE_I = 2, - NV_ENC_PIC_TYPE_IDR = 3, - NV_ENC_PIC_TYPE_BI = 4, - NV_ENC_PIC_TYPE_SKIPPED = 5, - NV_ENC_PIC_TYPE_INTRA_REFRESH = 6, - NV_ENC_PIC_TYPE_NONREF_P = 7, - NV_ENC_PIC_TYPE_UNKNOWN = 255, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_MV_PRECISION { - NV_ENC_MV_PRECISION_DEFAULT = 0, - NV_ENC_MV_PRECISION_FULL_PEL = 1, - NV_ENC_MV_PRECISION_HALF_PEL = 2, - NV_ENC_MV_PRECISION_QUARTER_PEL = 3, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_BUFFER_FORMAT { - NV_ENC_BUFFER_FORMAT_UNDEFINED = 0, - NV_ENC_BUFFER_FORMAT_NV12 = 1, - NV_ENC_BUFFER_FORMAT_YV12 = 16, - NV_ENC_BUFFER_FORMAT_IYUV = 256, - NV_ENC_BUFFER_FORMAT_YUV444 = 4096, - NV_ENC_BUFFER_FORMAT_YUV420_10BIT = 65536, - NV_ENC_BUFFER_FORMAT_YUV444_10BIT = 1048576, - NV_ENC_BUFFER_FORMAT_ARGB = 16777216, - NV_ENC_BUFFER_FORMAT_ARGB10 = 33554432, - NV_ENC_BUFFER_FORMAT_AYUV = 67108864, - NV_ENC_BUFFER_FORMAT_ABGR = 268435456, - NV_ENC_BUFFER_FORMAT_ABGR10 = 536870912, - NV_ENC_BUFFER_FORMAT_U8 = 1073741824, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_LEVEL { - NV_ENC_LEVEL_AUTOSELECT = 0, - NV_ENC_LEVEL_H264_1 = 10, - NV_ENC_LEVEL_H264_1b = 9, - NV_ENC_LEVEL_H264_11 = 11, - NV_ENC_LEVEL_H264_12 = 12, - NV_ENC_LEVEL_H264_13 = 13, - NV_ENC_LEVEL_H264_2 = 20, - NV_ENC_LEVEL_H264_21 = 21, - NV_ENC_LEVEL_H264_22 = 22, - NV_ENC_LEVEL_H264_3 = 30, - NV_ENC_LEVEL_H264_31 = 31, - NV_ENC_LEVEL_H264_32 = 32, - NV_ENC_LEVEL_H264_4 = 40, - NV_ENC_LEVEL_H264_41 = 41, - NV_ENC_LEVEL_H264_42 = 42, - NV_ENC_LEVEL_H264_5 = 50, - NV_ENC_LEVEL_H264_51 = 51, - NV_ENC_LEVEL_H264_52 = 52, - NV_ENC_LEVEL_H264_60 = 60, - NV_ENC_LEVEL_H264_61 = 61, - NV_ENC_LEVEL_H264_62 = 62, - NV_ENC_LEVEL_HEVC_21 = 63, - NV_ENC_LEVEL_HEVC_3 = 90, - NV_ENC_LEVEL_HEVC_31 = 93, - NV_ENC_LEVEL_HEVC_4 = 120, - NV_ENC_LEVEL_HEVC_41 = 123, - NV_ENC_LEVEL_HEVC_5 = 150, - NV_ENC_LEVEL_HEVC_51 = 153, - NV_ENC_LEVEL_HEVC_52 = 156, - NV_ENC_LEVEL_HEVC_6 = 180, - NV_ENC_LEVEL_HEVC_61 = 183, - NV_ENC_LEVEL_HEVC_62 = 186, - NV_ENC_TIER_HEVC_HIGH = 1, - NV_ENC_LEVEL_AV1_22 = 2, - NV_ENC_LEVEL_AV1_23 = 3, - NV_ENC_LEVEL_AV1_3 = 4, - NV_ENC_LEVEL_AV1_31 = 5, - NV_ENC_LEVEL_AV1_32 = 6, - NV_ENC_LEVEL_AV1_33 = 7, - NV_ENC_LEVEL_AV1_4 = 8, - NV_ENC_LEVEL_AV1_52 = 14, - NV_ENC_LEVEL_AV1_53 = 15, - NV_ENC_LEVEL_AV1_6 = 16, - NV_ENC_LEVEL_AV1_61 = 17, - NV_ENC_LEVEL_AV1_62 = 18, - NV_ENC_LEVEL_AV1_63 = 19, - NV_ENC_LEVEL_AV1_73 = 23, - NV_ENC_LEVEL_AV1_AUTOSELECT = 24, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NVENCSTATUS { - NV_ENC_SUCCESS = 0, - NV_ENC_ERR_NO_ENCODE_DEVICE = 1, - NV_ENC_ERR_UNSUPPORTED_DEVICE = 2, - NV_ENC_ERR_INVALID_ENCODERDEVICE = 3, - NV_ENC_ERR_INVALID_DEVICE = 4, - NV_ENC_ERR_DEVICE_NOT_EXIST = 5, - NV_ENC_ERR_INVALID_PTR = 6, - NV_ENC_ERR_INVALID_EVENT = 7, - NV_ENC_ERR_INVALID_PARAM = 8, - NV_ENC_ERR_INVALID_CALL = 9, - NV_ENC_ERR_OUT_OF_MEMORY = 10, - NV_ENC_ERR_ENCODER_NOT_INITIALIZED = 11, - NV_ENC_ERR_UNSUPPORTED_PARAM = 12, - NV_ENC_ERR_LOCK_BUSY = 13, - NV_ENC_ERR_NOT_ENOUGH_BUFFER = 14, - NV_ENC_ERR_INVALID_VERSION = 15, - NV_ENC_ERR_MAP_FAILED = 16, - NV_ENC_ERR_NEED_MORE_INPUT = 17, - NV_ENC_ERR_ENCODER_BUSY = 18, - NV_ENC_ERR_EVENT_NOT_REGISTERD = 19, - NV_ENC_ERR_GENERIC = 20, - NV_ENC_ERR_INCOMPATIBLE_CLIENT_KEY = 21, - NV_ENC_ERR_UNIMPLEMENTED = 22, - NV_ENC_ERR_RESOURCE_REGISTER_FAILED = 23, - NV_ENC_ERR_RESOURCE_NOT_REGISTERED = 24, - NV_ENC_ERR_RESOURCE_NOT_MAPPED = 25, - NV_ENC_ERR_NEED_MORE_OUTPUT = 26, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_PIC_FLAGS { - NV_ENC_PIC_FLAG_FORCEINTRA = 1, - NV_ENC_PIC_FLAG_FORCEIDR = 2, - NV_ENC_PIC_FLAG_OUTPUT_SPSPPS = 4, - NV_ENC_PIC_FLAG_EOS = 8, - NV_ENC_PIC_FLAG_DISABLE_ENC_STATE_ADVANCE = 16, - NV_ENC_PIC_FLAG_OUTPUT_RECON_FRAME = 32, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_MEMORY_HEAP { - NV_ENC_MEMORY_HEAP_AUTOSELECT = 0, - NV_ENC_MEMORY_HEAP_VID = 1, - NV_ENC_MEMORY_HEAP_SYSMEM_CACHED = 2, - NV_ENC_MEMORY_HEAP_SYSMEM_UNCACHED = 3, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_BFRAME_REF_MODE { - NV_ENC_BFRAME_REF_MODE_DISABLED = 0, - NV_ENC_BFRAME_REF_MODE_EACH = 1, - NV_ENC_BFRAME_REF_MODE_MIDDLE = 2, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_H264_ENTROPY_CODING_MODE { - NV_ENC_H264_ENTROPY_CODING_MODE_AUTOSELECT = 0, - NV_ENC_H264_ENTROPY_CODING_MODE_CABAC = 1, - NV_ENC_H264_ENTROPY_CODING_MODE_CAVLC = 2, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_H264_BDIRECT_MODE { - NV_ENC_H264_BDIRECT_MODE_AUTOSELECT = 0, - NV_ENC_H264_BDIRECT_MODE_DISABLE = 1, - NV_ENC_H264_BDIRECT_MODE_TEMPORAL = 2, - NV_ENC_H264_BDIRECT_MODE_SPATIAL = 3, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_H264_FMO_MODE { - NV_ENC_H264_FMO_AUTOSELECT = 0, - NV_ENC_H264_FMO_ENABLE = 1, - NV_ENC_H264_FMO_DISABLE = 2, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_H264_ADAPTIVE_TRANSFORM_MODE { - NV_ENC_H264_ADAPTIVE_TRANSFORM_AUTOSELECT = 0, - NV_ENC_H264_ADAPTIVE_TRANSFORM_DISABLE = 1, - NV_ENC_H264_ADAPTIVE_TRANSFORM_ENABLE = 2, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_STEREO_PACKING_MODE { - NV_ENC_STEREO_PACKING_MODE_NONE = 0, - NV_ENC_STEREO_PACKING_MODE_CHECKERBOARD = 1, - NV_ENC_STEREO_PACKING_MODE_COLINTERLEAVE = 2, - NV_ENC_STEREO_PACKING_MODE_ROWINTERLEAVE = 3, - NV_ENC_STEREO_PACKING_MODE_SIDEBYSIDE = 4, - NV_ENC_STEREO_PACKING_MODE_TOPBOTTOM = 5, - NV_ENC_STEREO_PACKING_MODE_FRAMESEQ = 6, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_INPUT_RESOURCE_TYPE { - NV_ENC_INPUT_RESOURCE_TYPE_DIRECTX = 0, - NV_ENC_INPUT_RESOURCE_TYPE_CUDADEVICEPTR = 1, - NV_ENC_INPUT_RESOURCE_TYPE_CUDAARRAY = 2, - NV_ENC_INPUT_RESOURCE_TYPE_OPENGL_TEX = 3, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_BUFFER_USAGE { - NV_ENC_INPUT_IMAGE = 0, - NV_ENC_OUTPUT_MOTION_VECTOR = 1, - NV_ENC_OUTPUT_BITSTREAM = 2, - NV_ENC_OUTPUT_RECON = 4, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_DEVICE_TYPE { - NV_ENC_DEVICE_TYPE_DIRECTX = 0, - NV_ENC_DEVICE_TYPE_CUDA = 1, - NV_ENC_DEVICE_TYPE_OPENGL = 2, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_NUM_REF_FRAMES { - NV_ENC_NUM_REF_FRAMES_AUTOSELECT = 0, - NV_ENC_NUM_REF_FRAMES_1 = 1, - NV_ENC_NUM_REF_FRAMES_2 = 2, - NV_ENC_NUM_REF_FRAMES_3 = 3, - NV_ENC_NUM_REF_FRAMES_4 = 4, - NV_ENC_NUM_REF_FRAMES_5 = 5, - NV_ENC_NUM_REF_FRAMES_6 = 6, - NV_ENC_NUM_REF_FRAMES_7 = 7, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_CAPS { - NV_ENC_CAPS_NUM_MAX_BFRAMES = 0, - NV_ENC_CAPS_SUPPORTED_RATECONTROL_MODES = 1, - NV_ENC_CAPS_SUPPORT_FIELD_ENCODING = 2, - NV_ENC_CAPS_SUPPORT_MONOCHROME = 3, - NV_ENC_CAPS_SUPPORT_FMO = 4, - NV_ENC_CAPS_SUPPORT_QPELMV = 5, - NV_ENC_CAPS_SUPPORT_BDIRECT_MODE = 6, - NV_ENC_CAPS_SUPPORT_CABAC = 7, - NV_ENC_CAPS_SUPPORT_ADAPTIVE_TRANSFORM = 8, - NV_ENC_CAPS_SUPPORT_STEREO_MVC = 9, - NV_ENC_CAPS_NUM_MAX_TEMPORAL_LAYERS = 10, - NV_ENC_CAPS_SUPPORT_HIERARCHICAL_PFRAMES = 11, - NV_ENC_CAPS_SUPPORT_HIERARCHICAL_BFRAMES = 12, - NV_ENC_CAPS_LEVEL_MAX = 13, - NV_ENC_CAPS_LEVEL_MIN = 14, - NV_ENC_CAPS_SEPARATE_COLOUR_PLANE = 15, - NV_ENC_CAPS_WIDTH_MAX = 16, - NV_ENC_CAPS_HEIGHT_MAX = 17, - NV_ENC_CAPS_SUPPORT_TEMPORAL_SVC = 18, - NV_ENC_CAPS_SUPPORT_DYN_RES_CHANGE = 19, - NV_ENC_CAPS_SUPPORT_DYN_BITRATE_CHANGE = 20, - NV_ENC_CAPS_SUPPORT_DYN_FORCE_CONSTQP = 21, - NV_ENC_CAPS_SUPPORT_DYN_RCMODE_CHANGE = 22, - NV_ENC_CAPS_SUPPORT_SUBFRAME_READBACK = 23, - NV_ENC_CAPS_SUPPORT_CONSTRAINED_ENCODING = 24, - NV_ENC_CAPS_SUPPORT_INTRA_REFRESH = 25, - NV_ENC_CAPS_SUPPORT_CUSTOM_VBV_BUF_SIZE = 26, - NV_ENC_CAPS_SUPPORT_DYNAMIC_SLICE_MODE = 27, - NV_ENC_CAPS_SUPPORT_REF_PIC_INVALIDATION = 28, - NV_ENC_CAPS_PREPROC_SUPPORT = 29, - NV_ENC_CAPS_ASYNC_ENCODE_SUPPORT = 30, - NV_ENC_CAPS_MB_NUM_MAX = 31, - NV_ENC_CAPS_MB_PER_SEC_MAX = 32, - NV_ENC_CAPS_SUPPORT_YUV444_ENCODE = 33, - NV_ENC_CAPS_SUPPORT_LOSSLESS_ENCODE = 34, - NV_ENC_CAPS_SUPPORT_SAO = 35, - NV_ENC_CAPS_SUPPORT_MEONLY_MODE = 36, - NV_ENC_CAPS_SUPPORT_LOOKAHEAD = 37, - NV_ENC_CAPS_SUPPORT_TEMPORAL_AQ = 38, - NV_ENC_CAPS_SUPPORT_10BIT_ENCODE = 39, - NV_ENC_CAPS_NUM_MAX_LTR_FRAMES = 40, - NV_ENC_CAPS_SUPPORT_WEIGHTED_PREDICTION = 41, - NV_ENC_CAPS_DYNAMIC_QUERY_ENCODER_CAPACITY = 42, - NV_ENC_CAPS_SUPPORT_BFRAME_REF_MODE = 43, - NV_ENC_CAPS_SUPPORT_EMPHASIS_LEVEL_MAP = 44, - NV_ENC_CAPS_WIDTH_MIN = 45, - NV_ENC_CAPS_HEIGHT_MIN = 46, - NV_ENC_CAPS_SUPPORT_MULTIPLE_REF_FRAMES = 47, - NV_ENC_CAPS_SUPPORT_ALPHA_LAYER_ENCODING = 48, - NV_ENC_CAPS_NUM_ENCODER_ENGINES = 49, - NV_ENC_CAPS_SINGLE_SLICE_INTRA_REFRESH = 50, - NV_ENC_CAPS_DISABLE_ENC_STATE_ADVANCE = 51, - NV_ENC_CAPS_OUTPUT_RECON_SURFACE = 52, - NV_ENC_CAPS_OUTPUT_BLOCK_STATS = 53, - NV_ENC_CAPS_OUTPUT_ROW_STATS = 54, - NV_ENC_CAPS_EXPOSED_COUNT = 55, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_HEVC_CUSIZE { - NV_ENC_HEVC_CUSIZE_AUTOSELECT = 0, - NV_ENC_HEVC_CUSIZE_8x8 = 1, - NV_ENC_HEVC_CUSIZE_16x16 = 2, - NV_ENC_HEVC_CUSIZE_32x32 = 3, - NV_ENC_HEVC_CUSIZE_64x64 = 4, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_AV1_PART_SIZE { - NV_ENC_AV1_PART_SIZE_AUTOSELECT = 0, - NV_ENC_AV1_PART_SIZE_4x4 = 1, - NV_ENC_AV1_PART_SIZE_8x8 = 2, - NV_ENC_AV1_PART_SIZE_16x16 = 3, - NV_ENC_AV1_PART_SIZE_32x32 = 4, - NV_ENC_AV1_PART_SIZE_64x64 = 5, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_VUI_VIDEO_FORMAT { - NV_ENC_VUI_VIDEO_FORMAT_COMPONENT = 0, - NV_ENC_VUI_VIDEO_FORMAT_PAL = 1, - NV_ENC_VUI_VIDEO_FORMAT_NTSC = 2, - NV_ENC_VUI_VIDEO_FORMAT_SECAM = 3, - NV_ENC_VUI_VIDEO_FORMAT_MAC = 4, - NV_ENC_VUI_VIDEO_FORMAT_UNSPECIFIED = 5, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_VUI_COLOR_PRIMARIES { - NV_ENC_VUI_COLOR_PRIMARIES_UNDEFINED = 0, - NV_ENC_VUI_COLOR_PRIMARIES_BT709 = 1, - NV_ENC_VUI_COLOR_PRIMARIES_UNSPECIFIED = 2, - NV_ENC_VUI_COLOR_PRIMARIES_RESERVED = 3, - NV_ENC_VUI_COLOR_PRIMARIES_BT470M = 4, - NV_ENC_VUI_COLOR_PRIMARIES_BT470BG = 5, - NV_ENC_VUI_COLOR_PRIMARIES_SMPTE170M = 6, - NV_ENC_VUI_COLOR_PRIMARIES_SMPTE240M = 7, - NV_ENC_VUI_COLOR_PRIMARIES_FILM = 8, - NV_ENC_VUI_COLOR_PRIMARIES_BT2020 = 9, - NV_ENC_VUI_COLOR_PRIMARIES_SMPTE428 = 10, - NV_ENC_VUI_COLOR_PRIMARIES_SMPTE431 = 11, - NV_ENC_VUI_COLOR_PRIMARIES_SMPTE432 = 12, - NV_ENC_VUI_COLOR_PRIMARIES_JEDEC_P22 = 22, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_VUI_TRANSFER_CHARACTERISTIC { - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_UNDEFINED = 0, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT709 = 1, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_UNSPECIFIED = 2, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_RESERVED = 3, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT470M = 4, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT470BG = 5, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_SMPTE170M = 6, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_SMPTE240M = 7, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_LINEAR = 8, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_LOG = 9, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_LOG_SQRT = 10, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_IEC61966_2_4 = 11, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT1361_ECG = 12, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_SRGB = 13, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT2020_10 = 14, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT2020_12 = 15, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_SMPTE2084 = 16, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_SMPTE428 = 17, - NV_ENC_VUI_TRANSFER_CHARACTERISTIC_ARIB_STD_B67 = 18, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_VUI_MATRIX_COEFFS { - NV_ENC_VUI_MATRIX_COEFFS_RGB = 0, - NV_ENC_VUI_MATRIX_COEFFS_BT709 = 1, - NV_ENC_VUI_MATRIX_COEFFS_UNSPECIFIED = 2, - NV_ENC_VUI_MATRIX_COEFFS_RESERVED = 3, - NV_ENC_VUI_MATRIX_COEFFS_FCC = 4, - NV_ENC_VUI_MATRIX_COEFFS_BT470BG = 5, - NV_ENC_VUI_MATRIX_COEFFS_SMPTE170M = 6, - NV_ENC_VUI_MATRIX_COEFFS_SMPTE240M = 7, - NV_ENC_VUI_MATRIX_COEFFS_YCGCO = 8, - NV_ENC_VUI_MATRIX_COEFFS_BT2020_NCL = 9, - NV_ENC_VUI_MATRIX_COEFFS_BT2020_CL = 10, - NV_ENC_VUI_MATRIX_COEFFS_SMPTE2085 = 11, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum NV_ENC_TUNING_INFO { - NV_ENC_TUNING_INFO_UNDEFINED = 0, - NV_ENC_TUNING_INFO_HIGH_QUALITY = 1, - NV_ENC_TUNING_INFO_LOW_LATENCY = 2, - NV_ENC_TUNING_INFO_ULTRA_LOW_LATENCY = 3, - NV_ENC_TUNING_INFO_LOSSLESS = 4, - NV_ENC_TUNING_INFO_COUNT = 5, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum _NV_ENC_SPLIT_ENCODE_MODE { - NV_ENC_SPLIT_AUTO_MODE = 0, - NV_ENC_SPLIT_AUTO_FORCED_MODE = 1, - NV_ENC_SPLIT_TWO_FORCED_MODE = 2, - NV_ENC_SPLIT_THREE_FORCED_MODE = 3, - NV_ENC_SPLIT_DISABLE_MODE = 15, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _NV_ENC_CODEC_CONFIG { - pub h264Config: NV_ENC_CONFIG_H264, - pub hevcConfig: NV_ENC_CONFIG_HEVC, - pub av1Config: NV_ENC_CONFIG_AV1, - pub h264MeOnlyConfig: NV_ENC_CONFIG_H264_MEONLY, - pub hevcMeOnlyConfig: NV_ENC_CONFIG_HEVC_MEONLY, - pub reserved: [u32; 320usize], -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _NV_ENC_PIC_PARAMS_H264_EXT { - pub mvcPicParams: NV_ENC_PIC_PARAMS_MVC, - pub reserved1: [u32; 32usize], -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _NV_ENC_CODEC_PIC_PARAMS { - pub h264PicParams: NV_ENC_PIC_PARAMS_H264, - pub hevcPicParams: NV_ENC_PIC_PARAMS_HEVC, - pub av1PicParams: NV_ENC_PIC_PARAMS_AV1, - pub reserved: [u32; 256usize], -} -impl __BindgenBitfieldUnit { - #[inline] - pub const fn new(storage: Storage) -> Self { - Self { storage } - } -} -impl __BindgenBitfieldUnit -where - Storage: AsRef<[u8]> + AsMut<[u8]>, -{ - #[inline] - pub fn get_bit(&self, index: usize) -> bool { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = self.storage.as_ref()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - byte & mask == mask - } - - #[inline] - pub fn set_bit(&mut self, index: usize, val: bool) { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = &mut self.storage.as_mut()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - if val { - *byte |= mask; - } else { - *byte &= !mask; - } - } - - #[inline] - pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - let mut val = 0; - for i in 0..(bit_width as usize) { - if self.get_bit(i + bit_offset) { - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - val |= 1 << index; - } - } - val - } - - #[inline] - pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - for i in 0..(bit_width as usize) { - let mask = 1 << i; - let val_bit_is_set = val & mask == mask; - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - self.set_bit(index + bit_offset, val_bit_is_set); - } - } -} -impl _NV_ENC_LEVEL { - pub const NV_ENC_LEVEL_HEVC_1: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_3; -} -impl _NV_ENC_LEVEL { - pub const NV_ENC_LEVEL_HEVC_2: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_60; -} -impl _NV_ENC_LEVEL { - pub const NV_ENC_TIER_HEVC_MAIN: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_AUTOSELECT; -} -impl _NV_ENC_LEVEL { - pub const NV_ENC_LEVEL_AV1_2: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_AUTOSELECT; -} -impl _NV_ENC_LEVEL { - pub const NV_ENC_LEVEL_AV1_21: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_TIER_HEVC_HIGH; -} -impl _NV_ENC_LEVEL { - pub const NV_ENC_LEVEL_AV1_41: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_1b; -} -impl _NV_ENC_LEVEL { - pub const NV_ENC_LEVEL_AV1_42: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_1; -} -impl _NV_ENC_LEVEL { - pub const NV_ENC_LEVEL_AV1_43: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_11; -} -impl _NV_ENC_LEVEL { - pub const NV_ENC_LEVEL_AV1_5: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_12; -} -impl _NV_ENC_LEVEL { - pub const NV_ENC_LEVEL_AV1_51: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_13; -} -impl _NV_ENC_LEVEL { - pub const NV_ENC_LEVEL_AV1_7: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_2; -} -impl _NV_ENC_LEVEL { - pub const NV_ENC_LEVEL_AV1_71: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_21; -} -impl _NV_ENC_LEVEL { - pub const NV_ENC_LEVEL_AV1_72: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_22; -} -impl _NV_ENC_LEVEL { - pub const NV_ENC_TIER_AV1_0: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_AUTOSELECT; -} -impl _NV_ENC_LEVEL { - pub const NV_ENC_TIER_AV1_1: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_TIER_HEVC_HIGH; -} -impl Default for _NV_ENC_CAPS_PARAM { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_RESTORE_ENCODER_STATE_PARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_ENCODE_OUT_PARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_LOOKAHEAD_PIC_PARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_CREATE_INPUT_BUFFER { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_CREATE_BITSTREAM_BUFFER { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_CREATE_MV_BUFFER { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_RC_PARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _NV_ENC_RC_PARAMS { - #[inline] - pub fn enableMinQP(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableMinQP(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableMaxQP(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableMaxQP(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableInitialRCQP(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableInitialRCQP(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableAQ(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableAQ(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reservedBitField1(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - - #[inline] - pub fn set_reservedBitField1(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableLookahead(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableLookahead(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - - #[inline] - pub fn disableIadapt(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - - #[inline] - pub fn set_disableIadapt(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - - #[inline] - pub fn disableBadapt(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - - #[inline] - pub fn set_disableBadapt(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableTemporalAQ(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableTemporalAQ(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - - #[inline] - pub fn zeroReorderDelay(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } - } - - #[inline] - pub fn set_zeroReorderDelay(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableNonRefP(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableNonRefP(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - - #[inline] - pub fn strictGOPTarget(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - - #[inline] - pub fn set_strictGOPTarget(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - - #[inline] - pub fn aqStrength(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u32) } - } - - #[inline] - pub fn set_aqStrength(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(12usize, 4u8, val as u64) - } - } - - #[inline] - pub fn enableExtLookahead(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableExtLookahead(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(16usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reservedBitFields(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 15u8) as u32) } - } - - #[inline] - pub fn set_reservedBitFields(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(17usize, 15u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - enableMinQP: u32, - enableMaxQP: u32, - enableInitialRCQP: u32, - enableAQ: u32, - reservedBitField1: u32, - enableLookahead: u32, - disableIadapt: u32, - disableBadapt: u32, - enableTemporalAQ: u32, - zeroReorderDelay: u32, - enableNonRefP: u32, - strictGOPTarget: u32, - aqStrength: u32, - enableExtLookahead: u32, - reservedBitFields: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let enableMinQP: u32 = unsafe { ::core::mem::transmute(enableMinQP) }; - enableMinQP as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let enableMaxQP: u32 = unsafe { ::core::mem::transmute(enableMaxQP) }; - enableMaxQP as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let enableInitialRCQP: u32 = unsafe { ::core::mem::transmute(enableInitialRCQP) }; - enableInitialRCQP as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let enableAQ: u32 = unsafe { ::core::mem::transmute(enableAQ) }; - enableAQ as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let reservedBitField1: u32 = unsafe { ::core::mem::transmute(reservedBitField1) }; - reservedBitField1 as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let enableLookahead: u32 = unsafe { ::core::mem::transmute(enableLookahead) }; - enableLookahead as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let disableIadapt: u32 = unsafe { ::core::mem::transmute(disableIadapt) }; - disableIadapt as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let disableBadapt: u32 = unsafe { ::core::mem::transmute(disableBadapt) }; - disableBadapt as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let enableTemporalAQ: u32 = unsafe { ::core::mem::transmute(enableTemporalAQ) }; - enableTemporalAQ as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let zeroReorderDelay: u32 = unsafe { ::core::mem::transmute(zeroReorderDelay) }; - zeroReorderDelay as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let enableNonRefP: u32 = unsafe { ::core::mem::transmute(enableNonRefP) }; - enableNonRefP as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let strictGOPTarget: u32 = unsafe { ::core::mem::transmute(strictGOPTarget) }; - strictGOPTarget as u64 - }); - __bindgen_bitfield_unit.set(12usize, 4u8, { - let aqStrength: u32 = unsafe { ::core::mem::transmute(aqStrength) }; - aqStrength as u64 - }); - __bindgen_bitfield_unit.set(16usize, 1u8, { - let enableExtLookahead: u32 = unsafe { ::core::mem::transmute(enableExtLookahead) }; - enableExtLookahead as u64 - }); - __bindgen_bitfield_unit.set(17usize, 15u8, { - let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) }; - reservedBitFields as u64 - }); - __bindgen_bitfield_unit - } -} -impl _NV_ENC_CLOCK_TIMESTAMP_SET { - #[inline] - pub fn countingType(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_countingType(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn discontinuityFlag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - - #[inline] - pub fn set_discontinuityFlag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn cntDroppedFrames(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - - #[inline] - pub fn set_cntDroppedFrames(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - - #[inline] - pub fn nFrames(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 8u8) as u32) } - } - - #[inline] - pub fn set_nFrames(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 8u8, val as u64) - } - } - - #[inline] - pub fn secondsValue(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 6u8) as u32) } - } - - #[inline] - pub fn set_secondsValue(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(11usize, 6u8, val as u64) - } - } - - #[inline] - pub fn minutesValue(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 6u8) as u32) } - } - - #[inline] - pub fn set_minutesValue(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(17usize, 6u8, val as u64) - } - } - - #[inline] - pub fn hoursValue(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 5u8) as u32) } - } - - #[inline] - pub fn set_hoursValue(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(23usize, 5u8, val as u64) - } - } - - #[inline] - pub fn reserved2(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 4u8) as u32) } - } - - #[inline] - pub fn set_reserved2(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(28usize, 4u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - countingType: u32, - discontinuityFlag: u32, - cntDroppedFrames: u32, - nFrames: u32, - secondsValue: u32, - minutesValue: u32, - hoursValue: u32, - reserved2: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let countingType: u32 = unsafe { ::core::mem::transmute(countingType) }; - countingType as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let discontinuityFlag: u32 = unsafe { ::core::mem::transmute(discontinuityFlag) }; - discontinuityFlag as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let cntDroppedFrames: u32 = unsafe { ::core::mem::transmute(cntDroppedFrames) }; - cntDroppedFrames as u64 - }); - __bindgen_bitfield_unit.set(3usize, 8u8, { - let nFrames: u32 = unsafe { ::core::mem::transmute(nFrames) }; - nFrames as u64 - }); - __bindgen_bitfield_unit.set(11usize, 6u8, { - let secondsValue: u32 = unsafe { ::core::mem::transmute(secondsValue) }; - secondsValue as u64 - }); - __bindgen_bitfield_unit.set(17usize, 6u8, { - let minutesValue: u32 = unsafe { ::core::mem::transmute(minutesValue) }; - minutesValue as u64 - }); - __bindgen_bitfield_unit.set(23usize, 5u8, { - let hoursValue: u32 = unsafe { ::core::mem::transmute(hoursValue) }; - hoursValue as u64 - }); - __bindgen_bitfield_unit.set(28usize, 4u8, { - let reserved2: u32 = unsafe { ::core::mem::transmute(reserved2) }; - reserved2 as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _NV_ENC_TIME_CODE { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_CONFIG_H264_VUI_PARAMETERS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE { - #[inline] - pub fn numCandsPerBlk16x16(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) } - } - - #[inline] - pub fn set_numCandsPerBlk16x16(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - - #[inline] - pub fn numCandsPerBlk16x8(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u32) } - } - - #[inline] - pub fn set_numCandsPerBlk16x8(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - - #[inline] - pub fn numCandsPerBlk8x16(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u32) } - } - - #[inline] - pub fn set_numCandsPerBlk8x16(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(8usize, 4u8, val as u64) - } - } - - #[inline] - pub fn numCandsPerBlk8x8(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u32) } - } - - #[inline] - pub fn set_numCandsPerBlk8x8(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(12usize, 4u8, val as u64) - } - } - - #[inline] - pub fn numCandsPerSb(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 8u8) as u32) } - } - - #[inline] - pub fn set_numCandsPerSb(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(16usize, 8u8, val as u64) - } - } - - #[inline] - pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) } - } - - #[inline] - pub fn set_reserved(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(24usize, 8u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - numCandsPerBlk16x16: u32, - numCandsPerBlk16x8: u32, - numCandsPerBlk8x16: u32, - numCandsPerBlk8x8: u32, - numCandsPerSb: u32, - reserved: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let numCandsPerBlk16x16: u32 = unsafe { ::core::mem::transmute(numCandsPerBlk16x16) }; - numCandsPerBlk16x16 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let numCandsPerBlk16x8: u32 = unsafe { ::core::mem::transmute(numCandsPerBlk16x8) }; - numCandsPerBlk16x8 as u64 - }); - __bindgen_bitfield_unit.set(8usize, 4u8, { - let numCandsPerBlk8x16: u32 = unsafe { ::core::mem::transmute(numCandsPerBlk8x16) }; - numCandsPerBlk8x16 as u64 - }); - __bindgen_bitfield_unit.set(12usize, 4u8, { - let numCandsPerBlk8x8: u32 = unsafe { ::core::mem::transmute(numCandsPerBlk8x8) }; - numCandsPerBlk8x8 as u64 - }); - __bindgen_bitfield_unit.set(16usize, 8u8, { - let numCandsPerSb: u32 = unsafe { ::core::mem::transmute(numCandsPerSb) }; - numCandsPerSb as u64 - }); - __bindgen_bitfield_unit.set(24usize, 8u8, { - let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; - reserved as u64 - }); - __bindgen_bitfield_unit - } -} -impl _NVENC_EXTERNAL_ME_HINT { - #[inline] - pub fn mvx(&self) -> i32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 12u8) as u32) } - } - - #[inline] - pub fn set_mvx(&mut self, val: i32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 12u8, val as u64) - } - } - - #[inline] - pub fn mvy(&self) -> i32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 10u8) as u32) } - } - - #[inline] - pub fn set_mvy(&mut self, val: i32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(12usize, 10u8, val as u64) - } - } - - #[inline] - pub fn refidx(&self) -> i32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 5u8) as u32) } - } - - #[inline] - pub fn set_refidx(&mut self, val: i32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(22usize, 5u8, val as u64) - } - } - - #[inline] - pub fn dir(&self) -> i32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u32) } - } - - #[inline] - pub fn set_dir(&mut self, val: i32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(27usize, 1u8, val as u64) - } - } - - #[inline] - pub fn partType(&self) -> i32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 2u8) as u32) } - } - - #[inline] - pub fn set_partType(&mut self, val: i32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(28usize, 2u8, val as u64) - } - } - - #[inline] - pub fn lastofPart(&self) -> i32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u32) } - } - - #[inline] - pub fn set_lastofPart(&mut self, val: i32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(30usize, 1u8, val as u64) - } - } - - #[inline] - pub fn lastOfMB(&self) -> i32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) } - } - - #[inline] - pub fn set_lastOfMB(&mut self, val: i32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(31usize, 1u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - mvx: i32, - mvy: i32, - refidx: i32, - dir: i32, - partType: i32, - lastofPart: i32, - lastOfMB: i32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 12u8, { - let mvx: u32 = unsafe { ::core::mem::transmute(mvx) }; - mvx as u64 - }); - __bindgen_bitfield_unit.set(12usize, 10u8, { - let mvy: u32 = unsafe { ::core::mem::transmute(mvy) }; - mvy as u64 - }); - __bindgen_bitfield_unit.set(22usize, 5u8, { - let refidx: u32 = unsafe { ::core::mem::transmute(refidx) }; - refidx as u64 - }); - __bindgen_bitfield_unit.set(27usize, 1u8, { - let dir: u32 = unsafe { ::core::mem::transmute(dir) }; - dir as u64 - }); - __bindgen_bitfield_unit.set(28usize, 2u8, { - let partType: u32 = unsafe { ::core::mem::transmute(partType) }; - partType as u64 - }); - __bindgen_bitfield_unit.set(30usize, 1u8, { - let lastofPart: u32 = unsafe { ::core::mem::transmute(lastofPart) }; - lastofPart as u64 - }); - __bindgen_bitfield_unit.set(31usize, 1u8, { - let lastOfMB: u32 = unsafe { ::core::mem::transmute(lastOfMB) }; - lastOfMB as u64 - }); - __bindgen_bitfield_unit - } -} -impl _NVENC_EXTERNAL_ME_SB_HINT { - #[inline] - pub fn refidx(&self) -> i16 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u16) } - } - - #[inline] - pub fn set_refidx(&mut self, val: i16) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 5u8, val as u64) - } - } - - #[inline] - pub fn direction(&self) -> i16 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u16) } - } - - #[inline] - pub fn set_direction(&mut self, val: i16) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - - #[inline] - pub fn bi(&self) -> i16 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u16) } - } - - #[inline] - pub fn set_bi(&mut self, val: i16) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - - #[inline] - pub fn partition_type(&self) -> i16 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 3u8) as u16) } - } - - #[inline] - pub fn set_partition_type(&mut self, val: i16) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(7usize, 3u8, val as u64) - } - } - - #[inline] - pub fn x8(&self) -> i16 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 3u8) as u16) } - } - - #[inline] - pub fn set_x8(&mut self, val: i16) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(10usize, 3u8, val as u64) - } - } - - #[inline] - pub fn last_of_cu(&self) -> i16 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } - } - - #[inline] - pub fn set_last_of_cu(&mut self, val: i16) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - - #[inline] - pub fn last_of_sb(&self) -> i16 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) } - } - - #[inline] - pub fn set_last_of_sb(&mut self, val: i16) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(14usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reserved0(&self) -> i16 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) } - } - - #[inline] - pub fn set_reserved0(&mut self, val: i16) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(15usize, 1u8, val as u64) - } - } - - #[inline] - pub fn mvx(&self) -> i16 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 14u8) as u16) } - } - - #[inline] - pub fn set_mvx(&mut self, val: i16) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(16usize, 14u8, val as u64) - } - } - - #[inline] - pub fn cu_size(&self) -> i16 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(30usize, 2u8) as u16) } - } - - #[inline] - pub fn set_cu_size(&mut self, val: i16) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(30usize, 2u8, val as u64) - } - } - - #[inline] - pub fn mvy(&self) -> i16 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(32usize, 12u8) as u16) } - } - - #[inline] - pub fn set_mvy(&mut self, val: i16) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(32usize, 12u8, val as u64) - } - } - - #[inline] - pub fn y8(&self) -> i16 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(44usize, 3u8) as u16) } - } - - #[inline] - pub fn set_y8(&mut self, val: i16) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(44usize, 3u8, val as u64) - } - } - - #[inline] - pub fn reserved1(&self) -> i16 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(47usize, 1u8) as u16) } - } - - #[inline] - pub fn set_reserved1(&mut self, val: i16) { - unsafe { - let val: u16 = ::core::mem::transmute(val); - self._bitfield_1.set(47usize, 1u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - refidx: i16, - direction: i16, - bi: i16, - partition_type: i16, - x8: i16, - last_of_cu: i16, - last_of_sb: i16, - reserved0: i16, - mvx: i16, - cu_size: i16, - mvy: i16, - y8: i16, - reserved1: i16, - ) -> __BindgenBitfieldUnit<[u8; 6usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 6usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 5u8, { - let refidx: u16 = unsafe { ::core::mem::transmute(refidx) }; - refidx as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let direction: u16 = unsafe { ::core::mem::transmute(direction) }; - direction as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let bi: u16 = unsafe { ::core::mem::transmute(bi) }; - bi as u64 - }); - __bindgen_bitfield_unit.set(7usize, 3u8, { - let partition_type: u16 = unsafe { ::core::mem::transmute(partition_type) }; - partition_type as u64 - }); - __bindgen_bitfield_unit.set(10usize, 3u8, { - let x8: u16 = unsafe { ::core::mem::transmute(x8) }; - x8 as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let last_of_cu: u16 = unsafe { ::core::mem::transmute(last_of_cu) }; - last_of_cu as u64 - }); - __bindgen_bitfield_unit.set(14usize, 1u8, { - let last_of_sb: u16 = unsafe { ::core::mem::transmute(last_of_sb) }; - last_of_sb as u64 - }); - __bindgen_bitfield_unit.set(15usize, 1u8, { - let reserved0: u16 = unsafe { ::core::mem::transmute(reserved0) }; - reserved0 as u64 - }); - __bindgen_bitfield_unit.set(16usize, 14u8, { - let mvx: u16 = unsafe { ::core::mem::transmute(mvx) }; - mvx as u64 - }); - __bindgen_bitfield_unit.set(30usize, 2u8, { - let cu_size: u16 = unsafe { ::core::mem::transmute(cu_size) }; - cu_size as u64 - }); - __bindgen_bitfield_unit.set(32usize, 12u8, { - let mvy: u16 = unsafe { ::core::mem::transmute(mvy) }; - mvy as u64 - }); - __bindgen_bitfield_unit.set(44usize, 3u8, { - let y8: u16 = unsafe { ::core::mem::transmute(y8) }; - y8 as u64 - }); - __bindgen_bitfield_unit.set(47usize, 1u8, { - let reserved1: u16 = unsafe { ::core::mem::transmute(reserved1) }; - reserved1 as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _NV_ENC_CONFIG_H264 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _NV_ENC_CONFIG_H264 { - #[inline] - pub fn enableTemporalSVC(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableTemporalSVC(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableStereoMVC(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableStereoMVC(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn hierarchicalPFrames(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - - #[inline] - pub fn set_hierarchicalPFrames(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - - #[inline] - pub fn hierarchicalBFrames(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - - #[inline] - pub fn set_hierarchicalBFrames(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - - #[inline] - pub fn outputBufferingPeriodSEI(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - - #[inline] - pub fn set_outputBufferingPeriodSEI(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - - #[inline] - pub fn outputPictureTimingSEI(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - - #[inline] - pub fn set_outputPictureTimingSEI(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - - #[inline] - pub fn outputAUD(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - - #[inline] - pub fn set_outputAUD(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - - #[inline] - pub fn disableSPSPPS(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - - #[inline] - pub fn set_disableSPSPPS(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - - #[inline] - pub fn outputFramePackingSEI(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - - #[inline] - pub fn set_outputFramePackingSEI(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - - #[inline] - pub fn outputRecoveryPointSEI(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } - } - - #[inline] - pub fn set_outputRecoveryPointSEI(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableIntraRefresh(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableIntraRefresh(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableConstrainedEncoding(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableConstrainedEncoding(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - - #[inline] - pub fn repeatSPSPPS(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) } - } - - #[inline] - pub fn set_repeatSPSPPS(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(12usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableVFR(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableVFR(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableLTR(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableLTR(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(14usize, 1u8, val as u64) - } - } - - #[inline] - pub fn qpPrimeYZeroTransformBypassFlag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) } - } - - #[inline] - pub fn set_qpPrimeYZeroTransformBypassFlag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(15usize, 1u8, val as u64) - } - } - - #[inline] - pub fn useConstrainedIntraPred(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) } - } - - #[inline] - pub fn set_useConstrainedIntraPred(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(16usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableFillerDataInsertion(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableFillerDataInsertion(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(17usize, 1u8, val as u64) - } - } - - #[inline] - pub fn disableSVCPrefixNalu(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) } - } - - #[inline] - pub fn set_disableSVCPrefixNalu(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(18usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableScalabilityInfoSEI(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableScalabilityInfoSEI(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(19usize, 1u8, val as u64) - } - } - - #[inline] - pub fn singleSliceIntraRefresh(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) } - } - - #[inline] - pub fn set_singleSliceIntraRefresh(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(20usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableTimeCode(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableTimeCode(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(21usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reservedBitFields(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 10u8) as u32) } - } - - #[inline] - pub fn set_reservedBitFields(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(22usize, 10u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - enableTemporalSVC: u32, - enableStereoMVC: u32, - hierarchicalPFrames: u32, - hierarchicalBFrames: u32, - outputBufferingPeriodSEI: u32, - outputPictureTimingSEI: u32, - outputAUD: u32, - disableSPSPPS: u32, - outputFramePackingSEI: u32, - outputRecoveryPointSEI: u32, - enableIntraRefresh: u32, - enableConstrainedEncoding: u32, - repeatSPSPPS: u32, - enableVFR: u32, - enableLTR: u32, - qpPrimeYZeroTransformBypassFlag: u32, - useConstrainedIntraPred: u32, - enableFillerDataInsertion: u32, - disableSVCPrefixNalu: u32, - enableScalabilityInfoSEI: u32, - singleSliceIntraRefresh: u32, - enableTimeCode: u32, - reservedBitFields: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let enableTemporalSVC: u32 = unsafe { ::core::mem::transmute(enableTemporalSVC) }; - enableTemporalSVC as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let enableStereoMVC: u32 = unsafe { ::core::mem::transmute(enableStereoMVC) }; - enableStereoMVC as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let hierarchicalPFrames: u32 = unsafe { ::core::mem::transmute(hierarchicalPFrames) }; - hierarchicalPFrames as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let hierarchicalBFrames: u32 = unsafe { ::core::mem::transmute(hierarchicalBFrames) }; - hierarchicalBFrames as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let outputBufferingPeriodSEI: u32 = - unsafe { ::core::mem::transmute(outputBufferingPeriodSEI) }; - outputBufferingPeriodSEI as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let outputPictureTimingSEI: u32 = - unsafe { ::core::mem::transmute(outputPictureTimingSEI) }; - outputPictureTimingSEI as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let outputAUD: u32 = unsafe { ::core::mem::transmute(outputAUD) }; - outputAUD as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let disableSPSPPS: u32 = unsafe { ::core::mem::transmute(disableSPSPPS) }; - disableSPSPPS as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let outputFramePackingSEI: u32 = - unsafe { ::core::mem::transmute(outputFramePackingSEI) }; - outputFramePackingSEI as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let outputRecoveryPointSEI: u32 = - unsafe { ::core::mem::transmute(outputRecoveryPointSEI) }; - outputRecoveryPointSEI as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let enableIntraRefresh: u32 = unsafe { ::core::mem::transmute(enableIntraRefresh) }; - enableIntraRefresh as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let enableConstrainedEncoding: u32 = - unsafe { ::core::mem::transmute(enableConstrainedEncoding) }; - enableConstrainedEncoding as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let repeatSPSPPS: u32 = unsafe { ::core::mem::transmute(repeatSPSPPS) }; - repeatSPSPPS as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let enableVFR: u32 = unsafe { ::core::mem::transmute(enableVFR) }; - enableVFR as u64 - }); - __bindgen_bitfield_unit.set(14usize, 1u8, { - let enableLTR: u32 = unsafe { ::core::mem::transmute(enableLTR) }; - enableLTR as u64 - }); - __bindgen_bitfield_unit.set(15usize, 1u8, { - let qpPrimeYZeroTransformBypassFlag: u32 = - unsafe { ::core::mem::transmute(qpPrimeYZeroTransformBypassFlag) }; - qpPrimeYZeroTransformBypassFlag as u64 - }); - __bindgen_bitfield_unit.set(16usize, 1u8, { - let useConstrainedIntraPred: u32 = - unsafe { ::core::mem::transmute(useConstrainedIntraPred) }; - useConstrainedIntraPred as u64 - }); - __bindgen_bitfield_unit.set(17usize, 1u8, { - let enableFillerDataInsertion: u32 = - unsafe { ::core::mem::transmute(enableFillerDataInsertion) }; - enableFillerDataInsertion as u64 - }); - __bindgen_bitfield_unit.set(18usize, 1u8, { - let disableSVCPrefixNalu: u32 = unsafe { ::core::mem::transmute(disableSVCPrefixNalu) }; - disableSVCPrefixNalu as u64 - }); - __bindgen_bitfield_unit.set(19usize, 1u8, { - let enableScalabilityInfoSEI: u32 = - unsafe { ::core::mem::transmute(enableScalabilityInfoSEI) }; - enableScalabilityInfoSEI as u64 - }); - __bindgen_bitfield_unit.set(20usize, 1u8, { - let singleSliceIntraRefresh: u32 = - unsafe { ::core::mem::transmute(singleSliceIntraRefresh) }; - singleSliceIntraRefresh as u64 - }); - __bindgen_bitfield_unit.set(21usize, 1u8, { - let enableTimeCode: u32 = unsafe { ::core::mem::transmute(enableTimeCode) }; - enableTimeCode as u64 - }); - __bindgen_bitfield_unit.set(22usize, 10u8, { - let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) }; - reservedBitFields as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _NV_ENC_CONFIG_HEVC { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _NV_ENC_CONFIG_HEVC { - #[inline] - pub fn useConstrainedIntraPred(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_useConstrainedIntraPred(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn disableDeblockAcrossSliceBoundary(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - - #[inline] - pub fn set_disableDeblockAcrossSliceBoundary(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn outputBufferingPeriodSEI(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - - #[inline] - pub fn set_outputBufferingPeriodSEI(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - - #[inline] - pub fn outputPictureTimingSEI(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - - #[inline] - pub fn set_outputPictureTimingSEI(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - - #[inline] - pub fn outputAUD(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - - #[inline] - pub fn set_outputAUD(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableLTR(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableLTR(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - - #[inline] - pub fn disableSPSPPS(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - - #[inline] - pub fn set_disableSPSPPS(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - - #[inline] - pub fn repeatSPSPPS(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - - #[inline] - pub fn set_repeatSPSPPS(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableIntraRefresh(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableIntraRefresh(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - - #[inline] - pub fn chromaFormatIDC(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u32) } - } - - #[inline] - pub fn set_chromaFormatIDC(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(9usize, 2u8, val as u64) - } - } - - #[inline] - pub fn pixelBitDepthMinus8(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 3u8) as u32) } - } - - #[inline] - pub fn set_pixelBitDepthMinus8(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(11usize, 3u8, val as u64) - } - } - - #[inline] - pub fn enableFillerDataInsertion(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableFillerDataInsertion(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(14usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableConstrainedEncoding(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableConstrainedEncoding(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(15usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableAlphaLayerEncoding(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableAlphaLayerEncoding(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(16usize, 1u8, val as u64) - } - } - - #[inline] - pub fn singleSliceIntraRefresh(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) } - } - - #[inline] - pub fn set_singleSliceIntraRefresh(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(17usize, 1u8, val as u64) - } - } - - #[inline] - pub fn outputRecoveryPointSEI(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) } - } - - #[inline] - pub fn set_outputRecoveryPointSEI(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(18usize, 1u8, val as u64) - } - } - - #[inline] - pub fn outputTimeCodeSEI(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) } - } - - #[inline] - pub fn set_outputTimeCodeSEI(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(19usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 12u8) as u32) } - } - - #[inline] - pub fn set_reserved(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(20usize, 12u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - useConstrainedIntraPred: u32, - disableDeblockAcrossSliceBoundary: u32, - outputBufferingPeriodSEI: u32, - outputPictureTimingSEI: u32, - outputAUD: u32, - enableLTR: u32, - disableSPSPPS: u32, - repeatSPSPPS: u32, - enableIntraRefresh: u32, - chromaFormatIDC: u32, - pixelBitDepthMinus8: u32, - enableFillerDataInsertion: u32, - enableConstrainedEncoding: u32, - enableAlphaLayerEncoding: u32, - singleSliceIntraRefresh: u32, - outputRecoveryPointSEI: u32, - outputTimeCodeSEI: u32, - reserved: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let useConstrainedIntraPred: u32 = - unsafe { ::core::mem::transmute(useConstrainedIntraPred) }; - useConstrainedIntraPred as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let disableDeblockAcrossSliceBoundary: u32 = - unsafe { ::core::mem::transmute(disableDeblockAcrossSliceBoundary) }; - disableDeblockAcrossSliceBoundary as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let outputBufferingPeriodSEI: u32 = - unsafe { ::core::mem::transmute(outputBufferingPeriodSEI) }; - outputBufferingPeriodSEI as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let outputPictureTimingSEI: u32 = - unsafe { ::core::mem::transmute(outputPictureTimingSEI) }; - outputPictureTimingSEI as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let outputAUD: u32 = unsafe { ::core::mem::transmute(outputAUD) }; - outputAUD as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let enableLTR: u32 = unsafe { ::core::mem::transmute(enableLTR) }; - enableLTR as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let disableSPSPPS: u32 = unsafe { ::core::mem::transmute(disableSPSPPS) }; - disableSPSPPS as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let repeatSPSPPS: u32 = unsafe { ::core::mem::transmute(repeatSPSPPS) }; - repeatSPSPPS as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let enableIntraRefresh: u32 = unsafe { ::core::mem::transmute(enableIntraRefresh) }; - enableIntraRefresh as u64 - }); - __bindgen_bitfield_unit.set(9usize, 2u8, { - let chromaFormatIDC: u32 = unsafe { ::core::mem::transmute(chromaFormatIDC) }; - chromaFormatIDC as u64 - }); - __bindgen_bitfield_unit.set(11usize, 3u8, { - let pixelBitDepthMinus8: u32 = unsafe { ::core::mem::transmute(pixelBitDepthMinus8) }; - pixelBitDepthMinus8 as u64 - }); - __bindgen_bitfield_unit.set(14usize, 1u8, { - let enableFillerDataInsertion: u32 = - unsafe { ::core::mem::transmute(enableFillerDataInsertion) }; - enableFillerDataInsertion as u64 - }); - __bindgen_bitfield_unit.set(15usize, 1u8, { - let enableConstrainedEncoding: u32 = - unsafe { ::core::mem::transmute(enableConstrainedEncoding) }; - enableConstrainedEncoding as u64 - }); - __bindgen_bitfield_unit.set(16usize, 1u8, { - let enableAlphaLayerEncoding: u32 = - unsafe { ::core::mem::transmute(enableAlphaLayerEncoding) }; - enableAlphaLayerEncoding as u64 - }); - __bindgen_bitfield_unit.set(17usize, 1u8, { - let singleSliceIntraRefresh: u32 = - unsafe { ::core::mem::transmute(singleSliceIntraRefresh) }; - singleSliceIntraRefresh as u64 - }); - __bindgen_bitfield_unit.set(18usize, 1u8, { - let outputRecoveryPointSEI: u32 = - unsafe { ::core::mem::transmute(outputRecoveryPointSEI) }; - outputRecoveryPointSEI as u64 - }); - __bindgen_bitfield_unit.set(19usize, 1u8, { - let outputTimeCodeSEI: u32 = unsafe { ::core::mem::transmute(outputTimeCodeSEI) }; - outputTimeCodeSEI as u64 - }); - __bindgen_bitfield_unit.set(20usize, 12u8, { - let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; - reserved as u64 - }); - __bindgen_bitfield_unit - } -} -impl _NV_ENC_FILM_GRAIN_PARAMS_AV1 { - #[inline] - pub fn applyGrain(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_applyGrain(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn chromaScalingFromLuma(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - - #[inline] - pub fn set_chromaScalingFromLuma(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn overlapFlag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - - #[inline] - pub fn set_overlapFlag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - - #[inline] - pub fn clipToRestrictedRange(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - - #[inline] - pub fn set_clipToRestrictedRange(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - - #[inline] - pub fn grainScalingMinus8(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u32) } - } - - #[inline] - pub fn set_grainScalingMinus8(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 2u8, val as u64) - } - } - - #[inline] - pub fn arCoeffLag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u32) } - } - - #[inline] - pub fn set_arCoeffLag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 2u8, val as u64) - } - } - - #[inline] - pub fn numYPoints(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u32) } - } - - #[inline] - pub fn set_numYPoints(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(8usize, 4u8, val as u64) - } - } - - #[inline] - pub fn numCbPoints(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u32) } - } - - #[inline] - pub fn set_numCbPoints(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(12usize, 4u8, val as u64) - } - } - - #[inline] - pub fn numCrPoints(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 4u8) as u32) } - } - - #[inline] - pub fn set_numCrPoints(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(16usize, 4u8, val as u64) - } - } - - #[inline] - pub fn arCoeffShiftMinus6(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 2u8) as u32) } - } - - #[inline] - pub fn set_arCoeffShiftMinus6(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(20usize, 2u8, val as u64) - } - } - - #[inline] - pub fn grainScaleShift(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 2u8) as u32) } - } - - #[inline] - pub fn set_grainScaleShift(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(22usize, 2u8, val as u64) - } - } - - #[inline] - pub fn reserved1(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) } - } - - #[inline] - pub fn set_reserved1(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(24usize, 8u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - applyGrain: u32, - chromaScalingFromLuma: u32, - overlapFlag: u32, - clipToRestrictedRange: u32, - grainScalingMinus8: u32, - arCoeffLag: u32, - numYPoints: u32, - numCbPoints: u32, - numCrPoints: u32, - arCoeffShiftMinus6: u32, - grainScaleShift: u32, - reserved1: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let applyGrain: u32 = unsafe { ::core::mem::transmute(applyGrain) }; - applyGrain as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let chromaScalingFromLuma: u32 = - unsafe { ::core::mem::transmute(chromaScalingFromLuma) }; - chromaScalingFromLuma as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let overlapFlag: u32 = unsafe { ::core::mem::transmute(overlapFlag) }; - overlapFlag as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let clipToRestrictedRange: u32 = - unsafe { ::core::mem::transmute(clipToRestrictedRange) }; - clipToRestrictedRange as u64 - }); - __bindgen_bitfield_unit.set(4usize, 2u8, { - let grainScalingMinus8: u32 = unsafe { ::core::mem::transmute(grainScalingMinus8) }; - grainScalingMinus8 as u64 - }); - __bindgen_bitfield_unit.set(6usize, 2u8, { - let arCoeffLag: u32 = unsafe { ::core::mem::transmute(arCoeffLag) }; - arCoeffLag as u64 - }); - __bindgen_bitfield_unit.set(8usize, 4u8, { - let numYPoints: u32 = unsafe { ::core::mem::transmute(numYPoints) }; - numYPoints as u64 - }); - __bindgen_bitfield_unit.set(12usize, 4u8, { - let numCbPoints: u32 = unsafe { ::core::mem::transmute(numCbPoints) }; - numCbPoints as u64 - }); - __bindgen_bitfield_unit.set(16usize, 4u8, { - let numCrPoints: u32 = unsafe { ::core::mem::transmute(numCrPoints) }; - numCrPoints as u64 - }); - __bindgen_bitfield_unit.set(20usize, 2u8, { - let arCoeffShiftMinus6: u32 = unsafe { ::core::mem::transmute(arCoeffShiftMinus6) }; - arCoeffShiftMinus6 as u64 - }); - __bindgen_bitfield_unit.set(22usize, 2u8, { - let grainScaleShift: u32 = unsafe { ::core::mem::transmute(grainScaleShift) }; - grainScaleShift as u64 - }); - __bindgen_bitfield_unit.set(24usize, 8u8, { - let reserved1: u32 = unsafe { ::core::mem::transmute(reserved1) }; - reserved1 as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _NV_ENC_CONFIG_AV1 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _NV_ENC_CONFIG_AV1 { - #[inline] - pub fn outputAnnexBFormat(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_outputAnnexBFormat(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableTimingInfo(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableTimingInfo(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableDecoderModelInfo(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableDecoderModelInfo(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableFrameIdNumbers(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableFrameIdNumbers(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - - #[inline] - pub fn disableSeqHdr(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - - #[inline] - pub fn set_disableSeqHdr(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - - #[inline] - pub fn repeatSeqHdr(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - - #[inline] - pub fn set_repeatSeqHdr(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableIntraRefresh(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableIntraRefresh(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - - #[inline] - pub fn chromaFormatIDC(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 2u8) as u32) } - } - - #[inline] - pub fn set_chromaFormatIDC(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(7usize, 2u8, val as u64) - } - } - - #[inline] - pub fn enableBitstreamPadding(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableBitstreamPadding(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableCustomTileConfig(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableCustomTileConfig(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableFilmGrainParams(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableFilmGrainParams(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - - #[inline] - pub fn inputPixelBitDepthMinus8(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 3u8) as u32) } - } - - #[inline] - pub fn set_inputPixelBitDepthMinus8(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(12usize, 3u8, val as u64) - } - } - - #[inline] - pub fn pixelBitDepthMinus8(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 3u8) as u32) } - } - - #[inline] - pub fn set_pixelBitDepthMinus8(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(15usize, 3u8, val as u64) - } - } - - #[inline] - pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 14u8) as u32) } - } - - #[inline] - pub fn set_reserved(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(18usize, 14u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - outputAnnexBFormat: u32, - enableTimingInfo: u32, - enableDecoderModelInfo: u32, - enableFrameIdNumbers: u32, - disableSeqHdr: u32, - repeatSeqHdr: u32, - enableIntraRefresh: u32, - chromaFormatIDC: u32, - enableBitstreamPadding: u32, - enableCustomTileConfig: u32, - enableFilmGrainParams: u32, - inputPixelBitDepthMinus8: u32, - pixelBitDepthMinus8: u32, - reserved: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let outputAnnexBFormat: u32 = unsafe { ::core::mem::transmute(outputAnnexBFormat) }; - outputAnnexBFormat as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let enableTimingInfo: u32 = unsafe { ::core::mem::transmute(enableTimingInfo) }; - enableTimingInfo as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let enableDecoderModelInfo: u32 = - unsafe { ::core::mem::transmute(enableDecoderModelInfo) }; - enableDecoderModelInfo as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let enableFrameIdNumbers: u32 = unsafe { ::core::mem::transmute(enableFrameIdNumbers) }; - enableFrameIdNumbers as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let disableSeqHdr: u32 = unsafe { ::core::mem::transmute(disableSeqHdr) }; - disableSeqHdr as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let repeatSeqHdr: u32 = unsafe { ::core::mem::transmute(repeatSeqHdr) }; - repeatSeqHdr as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let enableIntraRefresh: u32 = unsafe { ::core::mem::transmute(enableIntraRefresh) }; - enableIntraRefresh as u64 - }); - __bindgen_bitfield_unit.set(7usize, 2u8, { - let chromaFormatIDC: u32 = unsafe { ::core::mem::transmute(chromaFormatIDC) }; - chromaFormatIDC as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let enableBitstreamPadding: u32 = - unsafe { ::core::mem::transmute(enableBitstreamPadding) }; - enableBitstreamPadding as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let enableCustomTileConfig: u32 = - unsafe { ::core::mem::transmute(enableCustomTileConfig) }; - enableCustomTileConfig as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let enableFilmGrainParams: u32 = - unsafe { ::core::mem::transmute(enableFilmGrainParams) }; - enableFilmGrainParams as u64 - }); - __bindgen_bitfield_unit.set(12usize, 3u8, { - let inputPixelBitDepthMinus8: u32 = - unsafe { ::core::mem::transmute(inputPixelBitDepthMinus8) }; - inputPixelBitDepthMinus8 as u64 - }); - __bindgen_bitfield_unit.set(15usize, 3u8, { - let pixelBitDepthMinus8: u32 = unsafe { ::core::mem::transmute(pixelBitDepthMinus8) }; - pixelBitDepthMinus8 as u64 - }); - __bindgen_bitfield_unit.set(18usize, 14u8, { - let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; - reserved as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _NV_ENC_CONFIG_H264_MEONLY { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _NV_ENC_CONFIG_H264_MEONLY { - #[inline] - pub fn disablePartition16x16(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_disablePartition16x16(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn disablePartition8x16(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - - #[inline] - pub fn set_disablePartition8x16(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn disablePartition16x8(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - - #[inline] - pub fn set_disablePartition16x8(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - - #[inline] - pub fn disablePartition8x8(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - - #[inline] - pub fn set_disablePartition8x8(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - - #[inline] - pub fn disableIntraSearch(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - - #[inline] - pub fn set_disableIntraSearch(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - - #[inline] - pub fn bStereoEnable(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - - #[inline] - pub fn set_bStereoEnable(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 26u8) as u32) } - } - - #[inline] - pub fn set_reserved(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 26u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - disablePartition16x16: u32, - disablePartition8x16: u32, - disablePartition16x8: u32, - disablePartition8x8: u32, - disableIntraSearch: u32, - bStereoEnable: u32, - reserved: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let disablePartition16x16: u32 = - unsafe { ::core::mem::transmute(disablePartition16x16) }; - disablePartition16x16 as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let disablePartition8x16: u32 = unsafe { ::core::mem::transmute(disablePartition8x16) }; - disablePartition8x16 as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let disablePartition16x8: u32 = unsafe { ::core::mem::transmute(disablePartition16x8) }; - disablePartition16x8 as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let disablePartition8x8: u32 = unsafe { ::core::mem::transmute(disablePartition8x8) }; - disablePartition8x8 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let disableIntraSearch: u32 = unsafe { ::core::mem::transmute(disableIntraSearch) }; - disableIntraSearch as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let bStereoEnable: u32 = unsafe { ::core::mem::transmute(bStereoEnable) }; - bStereoEnable as u64 - }); - __bindgen_bitfield_unit.set(6usize, 26u8, { - let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; - reserved as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _NV_ENC_CONFIG_HEVC_MEONLY { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_CODEC_CONFIG { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_CONFIG { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_INITIALIZE_PARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _NV_ENC_INITIALIZE_PARAMS { - #[inline] - pub fn reportSliceOffsets(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_reportSliceOffsets(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableSubFrameWrite(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableSubFrameWrite(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableExternalMEHints(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableExternalMEHints(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableMEOnlyMode(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableMEOnlyMode(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableWeightedPrediction(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableWeightedPrediction(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - - #[inline] - pub fn splitEncodeMode(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 4u8) as u32) } - } - - #[inline] - pub fn set_splitEncodeMode(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 4u8, val as u64) - } - } - - #[inline] - pub fn enableOutputInVidmem(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableOutputInVidmem(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableReconFrameOutput(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableReconFrameOutput(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableOutputStats(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableOutputStats(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reservedBitFields(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 20u8) as u32) } - } - - #[inline] - pub fn set_reservedBitFields(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(12usize, 20u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - reportSliceOffsets: u32, - enableSubFrameWrite: u32, - enableExternalMEHints: u32, - enableMEOnlyMode: u32, - enableWeightedPrediction: u32, - splitEncodeMode: u32, - enableOutputInVidmem: u32, - enableReconFrameOutput: u32, - enableOutputStats: u32, - reservedBitFields: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let reportSliceOffsets: u32 = unsafe { ::core::mem::transmute(reportSliceOffsets) }; - reportSliceOffsets as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let enableSubFrameWrite: u32 = unsafe { ::core::mem::transmute(enableSubFrameWrite) }; - enableSubFrameWrite as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let enableExternalMEHints: u32 = - unsafe { ::core::mem::transmute(enableExternalMEHints) }; - enableExternalMEHints as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let enableMEOnlyMode: u32 = unsafe { ::core::mem::transmute(enableMEOnlyMode) }; - enableMEOnlyMode as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let enableWeightedPrediction: u32 = - unsafe { ::core::mem::transmute(enableWeightedPrediction) }; - enableWeightedPrediction as u64 - }); - __bindgen_bitfield_unit.set(5usize, 4u8, { - let splitEncodeMode: u32 = unsafe { ::core::mem::transmute(splitEncodeMode) }; - splitEncodeMode as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let enableOutputInVidmem: u32 = unsafe { ::core::mem::transmute(enableOutputInVidmem) }; - enableOutputInVidmem as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let enableReconFrameOutput: u32 = - unsafe { ::core::mem::transmute(enableReconFrameOutput) }; - enableReconFrameOutput as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let enableOutputStats: u32 = unsafe { ::core::mem::transmute(enableOutputStats) }; - enableOutputStats as u64 - }); - __bindgen_bitfield_unit.set(12usize, 20u8, { - let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) }; - reservedBitFields as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _NV_ENC_RECONFIGURE_PARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _NV_ENC_RECONFIGURE_PARAMS { - #[inline] - pub fn resetEncoder(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_resetEncoder(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn forceIDR(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - - #[inline] - pub fn set_forceIDR(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } - } - - #[inline] - pub fn set_reserved(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 30u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - resetEncoder: u32, - forceIDR: u32, - reserved: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let resetEncoder: u32 = unsafe { ::core::mem::transmute(resetEncoder) }; - resetEncoder as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let forceIDR: u32 = unsafe { ::core::mem::transmute(forceIDR) }; - forceIDR as u64 - }); - __bindgen_bitfield_unit.set(2usize, 30u8, { - let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; - reserved as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _NV_ENC_PRESET_CONFIG { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_PIC_PARAMS_MVC { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_PIC_PARAMS_H264_EXT { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_SEI_PAYLOAD { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_PIC_PARAMS_H264 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _NV_ENC_PIC_PARAMS_H264 { - #[inline] - pub fn constrainedFrame(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_constrainedFrame(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn sliceModeDataUpdate(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - - #[inline] - pub fn set_sliceModeDataUpdate(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn ltrMarkFrame(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - - #[inline] - pub fn set_ltrMarkFrame(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - - #[inline] - pub fn ltrUseFrames(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - - #[inline] - pub fn set_ltrUseFrames(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reservedBitFields(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 28u8) as u32) } - } - - #[inline] - pub fn set_reservedBitFields(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 28u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - constrainedFrame: u32, - sliceModeDataUpdate: u32, - ltrMarkFrame: u32, - ltrUseFrames: u32, - reservedBitFields: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let constrainedFrame: u32 = unsafe { ::core::mem::transmute(constrainedFrame) }; - constrainedFrame as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let sliceModeDataUpdate: u32 = unsafe { ::core::mem::transmute(sliceModeDataUpdate) }; - sliceModeDataUpdate as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let ltrMarkFrame: u32 = unsafe { ::core::mem::transmute(ltrMarkFrame) }; - ltrMarkFrame as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let ltrUseFrames: u32 = unsafe { ::core::mem::transmute(ltrUseFrames) }; - ltrUseFrames as u64 - }); - __bindgen_bitfield_unit.set(4usize, 28u8, { - let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) }; - reservedBitFields as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _NV_ENC_PIC_PARAMS_HEVC { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _NV_ENC_PIC_PARAMS_HEVC { - #[inline] - pub fn constrainedFrame(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_constrainedFrame(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn sliceModeDataUpdate(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - - #[inline] - pub fn set_sliceModeDataUpdate(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn ltrMarkFrame(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - - #[inline] - pub fn set_ltrMarkFrame(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - - #[inline] - pub fn ltrUseFrames(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - - #[inline] - pub fn set_ltrUseFrames(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reservedBitFields(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 28u8) as u32) } - } - - #[inline] - pub fn set_reservedBitFields(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 28u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - constrainedFrame: u32, - sliceModeDataUpdate: u32, - ltrMarkFrame: u32, - ltrUseFrames: u32, - reservedBitFields: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let constrainedFrame: u32 = unsafe { ::core::mem::transmute(constrainedFrame) }; - constrainedFrame as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let sliceModeDataUpdate: u32 = unsafe { ::core::mem::transmute(sliceModeDataUpdate) }; - sliceModeDataUpdate as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let ltrMarkFrame: u32 = unsafe { ::core::mem::transmute(ltrMarkFrame) }; - ltrMarkFrame as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let ltrUseFrames: u32 = unsafe { ::core::mem::transmute(ltrUseFrames) }; - ltrUseFrames as u64 - }); - __bindgen_bitfield_unit.set(4usize, 28u8, { - let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) }; - reservedBitFields as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _NV_ENC_PIC_PARAMS_AV1 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _NV_ENC_PIC_PARAMS_AV1 { - #[inline] - pub fn goldenFrameFlag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_goldenFrameFlag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn arfFrameFlag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - - #[inline] - pub fn set_arfFrameFlag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn arf2FrameFlag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - - #[inline] - pub fn set_arf2FrameFlag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - - #[inline] - pub fn bwdFrameFlag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - - #[inline] - pub fn set_bwdFrameFlag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - - #[inline] - pub fn overlayFrameFlag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - - #[inline] - pub fn set_overlayFrameFlag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - - #[inline] - pub fn showExistingFrameFlag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - - #[inline] - pub fn set_showExistingFrameFlag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - - #[inline] - pub fn errorResilientModeFlag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - - #[inline] - pub fn set_errorResilientModeFlag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - - #[inline] - pub fn tileConfigUpdate(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - - #[inline] - pub fn set_tileConfigUpdate(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - - #[inline] - pub fn enableCustomTileConfig(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - - #[inline] - pub fn set_enableCustomTileConfig(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - - #[inline] - pub fn filmGrainParamsUpdate(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } - } - - #[inline] - pub fn set_filmGrainParamsUpdate(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reservedBitFields(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 22u8) as u32) } - } - - #[inline] - pub fn set_reservedBitFields(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(10usize, 22u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - goldenFrameFlag: u32, - arfFrameFlag: u32, - arf2FrameFlag: u32, - bwdFrameFlag: u32, - overlayFrameFlag: u32, - showExistingFrameFlag: u32, - errorResilientModeFlag: u32, - tileConfigUpdate: u32, - enableCustomTileConfig: u32, - filmGrainParamsUpdate: u32, - reservedBitFields: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let goldenFrameFlag: u32 = unsafe { ::core::mem::transmute(goldenFrameFlag) }; - goldenFrameFlag as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let arfFrameFlag: u32 = unsafe { ::core::mem::transmute(arfFrameFlag) }; - arfFrameFlag as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let arf2FrameFlag: u32 = unsafe { ::core::mem::transmute(arf2FrameFlag) }; - arf2FrameFlag as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let bwdFrameFlag: u32 = unsafe { ::core::mem::transmute(bwdFrameFlag) }; - bwdFrameFlag as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let overlayFrameFlag: u32 = unsafe { ::core::mem::transmute(overlayFrameFlag) }; - overlayFrameFlag as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let showExistingFrameFlag: u32 = - unsafe { ::core::mem::transmute(showExistingFrameFlag) }; - showExistingFrameFlag as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let errorResilientModeFlag: u32 = - unsafe { ::core::mem::transmute(errorResilientModeFlag) }; - errorResilientModeFlag as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let tileConfigUpdate: u32 = unsafe { ::core::mem::transmute(tileConfigUpdate) }; - tileConfigUpdate as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let enableCustomTileConfig: u32 = - unsafe { ::core::mem::transmute(enableCustomTileConfig) }; - enableCustomTileConfig as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let filmGrainParamsUpdate: u32 = - unsafe { ::core::mem::transmute(filmGrainParamsUpdate) }; - filmGrainParamsUpdate as u64 - }); - __bindgen_bitfield_unit.set(10usize, 22u8, { - let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) }; - reservedBitFields as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _NV_ENC_CODEC_PIC_PARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_PIC_PARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_MEONLY_PARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_LOCK_BITSTREAM { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _NV_ENC_LOCK_BITSTREAM { - #[inline] - pub fn doNotWait(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_doNotWait(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn ltrFrame(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - - #[inline] - pub fn set_ltrFrame(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn getRCStats(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - - #[inline] - pub fn set_getRCStats(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reservedBitFields(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) } - } - - #[inline] - pub fn set_reservedBitFields(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 29u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - doNotWait: u32, - ltrFrame: u32, - getRCStats: u32, - reservedBitFields: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let doNotWait: u32 = unsafe { ::core::mem::transmute(doNotWait) }; - doNotWait as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let ltrFrame: u32 = unsafe { ::core::mem::transmute(ltrFrame) }; - ltrFrame as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let getRCStats: u32 = unsafe { ::core::mem::transmute(getRCStats) }; - getRCStats as u64 - }); - __bindgen_bitfield_unit.set(3usize, 29u8, { - let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) }; - reservedBitFields as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _NV_ENC_LOCK_INPUT_BUFFER { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _NV_ENC_LOCK_INPUT_BUFFER { - #[inline] - pub fn doNotWait(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_doNotWait(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reservedBitFields(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) } - } - - #[inline] - pub fn set_reservedBitFields(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 31u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - doNotWait: u32, - reservedBitFields: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let doNotWait: u32 = unsafe { ::core::mem::transmute(doNotWait) }; - doNotWait as u64 - }); - __bindgen_bitfield_unit.set(1usize, 31u8, { - let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) }; - reservedBitFields as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _NV_ENC_MAP_INPUT_RESOURCE { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_FENCE_POINT_D3D12 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _NV_ENC_FENCE_POINT_D3D12 { - #[inline] - pub fn bWait(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_bWait(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn bSignal(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - - #[inline] - pub fn set_bSignal(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reservedBitField(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } - } - - #[inline] - pub fn set_reservedBitField(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 30u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - bWait: u32, - bSignal: u32, - reservedBitField: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let bWait: u32 = unsafe { ::core::mem::transmute(bWait) }; - bWait as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let bSignal: u32 = unsafe { ::core::mem::transmute(bSignal) }; - bSignal as u64 - }); - __bindgen_bitfield_unit.set(2usize, 30u8, { - let reservedBitField: u32 = unsafe { ::core::mem::transmute(reservedBitField) }; - reservedBitField as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _NV_ENC_INPUT_RESOURCE_D3D12 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_OUTPUT_RESOURCE_D3D12 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_REGISTER_RESOURCE { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_STAT { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _NV_ENC_STAT { - #[inline] - pub fn ltrFrame(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_ltrFrame(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reservedBitFields(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) } - } - - #[inline] - pub fn set_reservedBitFields(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 31u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - ltrFrame: u32, - reservedBitFields: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let ltrFrame: u32 = unsafe { ::core::mem::transmute(ltrFrame) }; - ltrFrame as u64 - }); - __bindgen_bitfield_unit.set(1usize, 31u8, { - let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) }; - reservedBitFields as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _NV_ENC_SEQUENCE_PARAM_PAYLOAD { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_EVENT_PARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _NV_ENCODE_API_FUNCTION_LIST { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub use self::{ - _NVENCSTATUS as NVENCSTATUS, - _NV_ENC_AV1_PART_SIZE as NV_ENC_AV1_PART_SIZE, - _NV_ENC_BFRAME_REF_MODE as NV_ENC_BFRAME_REF_MODE, - _NV_ENC_BUFFER_FORMAT as NV_ENC_BUFFER_FORMAT, - _NV_ENC_BUFFER_USAGE as NV_ENC_BUFFER_USAGE, - _NV_ENC_CAPS as NV_ENC_CAPS, - _NV_ENC_DEVICE_TYPE as NV_ENC_DEVICE_TYPE, - _NV_ENC_DISPLAY_PIC_STRUCT as NV_ENC_DISPLAY_PIC_STRUCT, - _NV_ENC_EMPHASIS_MAP_LEVEL as NV_ENC_EMPHASIS_MAP_LEVEL, - _NV_ENC_H264_ADAPTIVE_TRANSFORM_MODE as NV_ENC_H264_ADAPTIVE_TRANSFORM_MODE, - _NV_ENC_H264_BDIRECT_MODE as NV_ENC_H264_BDIRECT_MODE, - _NV_ENC_H264_ENTROPY_CODING_MODE as NV_ENC_H264_ENTROPY_CODING_MODE, - _NV_ENC_H264_FMO_MODE as NV_ENC_H264_FMO_MODE, - _NV_ENC_HEVC_CUSIZE as NV_ENC_HEVC_CUSIZE, - _NV_ENC_INPUT_RESOURCE_TYPE as NV_ENC_INPUT_RESOURCE_TYPE, - _NV_ENC_LEVEL as NV_ENC_LEVEL, - _NV_ENC_MEMORY_HEAP as NV_ENC_MEMORY_HEAP, - _NV_ENC_MULTI_PASS as NV_ENC_MULTI_PASS, - _NV_ENC_MV_PRECISION as NV_ENC_MV_PRECISION, - _NV_ENC_NUM_REF_FRAMES as NV_ENC_NUM_REF_FRAMES, - _NV_ENC_OUTPUT_STATS_LEVEL as NV_ENC_OUTPUT_STATS_LEVEL, - _NV_ENC_PARAMS_FRAME_FIELD_MODE as NV_ENC_PARAMS_FRAME_FIELD_MODE, - _NV_ENC_PARAMS_RC_MODE as NV_ENC_PARAMS_RC_MODE, - _NV_ENC_PIC_FLAGS as NV_ENC_PIC_FLAGS, - _NV_ENC_PIC_STRUCT as NV_ENC_PIC_STRUCT, - _NV_ENC_PIC_TYPE as NV_ENC_PIC_TYPE, - _NV_ENC_QP_MAP_MODE as NV_ENC_QP_MAP_MODE, - _NV_ENC_SPLIT_ENCODE_MODE as NV_ENC_SPLIT_ENCODE_MODE, - _NV_ENC_STATE_RESTORE_TYPE as NV_ENC_STATE_RESTORE_TYPE, - _NV_ENC_STEREO_PACKING_MODE as NV_ENC_STEREO_PACKING_MODE, - _NV_ENC_VUI_COLOR_PRIMARIES as NV_ENC_VUI_COLOR_PRIMARIES, - _NV_ENC_VUI_MATRIX_COEFFS as NV_ENC_VUI_MATRIX_COEFFS, - _NV_ENC_VUI_TRANSFER_CHARACTERISTIC as NV_ENC_VUI_TRANSFER_CHARACTERISTIC, - _NV_ENC_VUI_VIDEO_FORMAT as NV_ENC_VUI_VIDEO_FORMAT, -}; -extern "C" { - #[must_use] - pub fn NvEncOpenEncodeSession( - device: *mut ::core::ffi::c_void, - deviceType: u32, - encoder: *mut *mut ::core::ffi::c_void, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncGetEncodeGUIDCount( - encoder: *mut ::core::ffi::c_void, - encodeGUIDCount: *mut u32, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncGetEncodeGUIDs( - encoder: *mut ::core::ffi::c_void, - GUIDs: *mut GUID, - guidArraySize: u32, - GUIDCount: *mut u32, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncGetEncodeProfileGUIDCount( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - encodeProfileGUIDCount: *mut u32, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncGetEncodeProfileGUIDs( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - profileGUIDs: *mut GUID, - guidArraySize: u32, - GUIDCount: *mut u32, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncGetInputFormatCount( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - inputFmtCount: *mut u32, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncGetInputFormats( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - inputFmts: *mut NV_ENC_BUFFER_FORMAT, - inputFmtArraySize: u32, - inputFmtCount: *mut u32, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncGetEncodeCaps( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - capsParam: *mut NV_ENC_CAPS_PARAM, - capsVal: *mut ::core::ffi::c_int, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncGetEncodePresetCount( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - encodePresetGUIDCount: *mut u32, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncGetEncodePresetGUIDs( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - presetGUIDs: *mut GUID, - guidArraySize: u32, - encodePresetGUIDCount: *mut u32, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncGetEncodePresetConfig( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - presetGUID: GUID, - presetConfig: *mut NV_ENC_PRESET_CONFIG, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncGetEncodePresetConfigEx( - encoder: *mut ::core::ffi::c_void, - encodeGUID: GUID, - presetGUID: GUID, - tuningInfo: NV_ENC_TUNING_INFO, - presetConfig: *mut NV_ENC_PRESET_CONFIG, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncInitializeEncoder( - encoder: *mut ::core::ffi::c_void, - createEncodeParams: *mut NV_ENC_INITIALIZE_PARAMS, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncCreateInputBuffer( - encoder: *mut ::core::ffi::c_void, - createInputBufferParams: *mut NV_ENC_CREATE_INPUT_BUFFER, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncDestroyInputBuffer( - encoder: *mut ::core::ffi::c_void, - inputBuffer: NV_ENC_INPUT_PTR, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncSetIOCudaStreams( - encoder: *mut ::core::ffi::c_void, - inputStream: NV_ENC_CUSTREAM_PTR, - outputStream: NV_ENC_CUSTREAM_PTR, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncCreateBitstreamBuffer( - encoder: *mut ::core::ffi::c_void, - createBitstreamBufferParams: *mut NV_ENC_CREATE_BITSTREAM_BUFFER, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncDestroyBitstreamBuffer( - encoder: *mut ::core::ffi::c_void, - bitstreamBuffer: NV_ENC_OUTPUT_PTR, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncEncodePicture( - encoder: *mut ::core::ffi::c_void, - encodePicParams: *mut NV_ENC_PIC_PARAMS, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncLockBitstream( - encoder: *mut ::core::ffi::c_void, - lockBitstreamBufferParams: *mut NV_ENC_LOCK_BITSTREAM, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncUnlockBitstream( - encoder: *mut ::core::ffi::c_void, - bitstreamBuffer: NV_ENC_OUTPUT_PTR, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncRestoreEncoderState( - encoder: *mut ::core::ffi::c_void, - restoreState: *mut NV_ENC_RESTORE_ENCODER_STATE_PARAMS, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncLockInputBuffer( - encoder: *mut ::core::ffi::c_void, - lockInputBufferParams: *mut NV_ENC_LOCK_INPUT_BUFFER, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncUnlockInputBuffer( - encoder: *mut ::core::ffi::c_void, - inputBuffer: NV_ENC_INPUT_PTR, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncGetEncodeStats( - encoder: *mut ::core::ffi::c_void, - encodeStats: *mut NV_ENC_STAT, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncGetSequenceParams( - encoder: *mut ::core::ffi::c_void, - sequenceParamPayload: *mut NV_ENC_SEQUENCE_PARAM_PAYLOAD, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncGetSequenceParamEx( - encoder: *mut ::core::ffi::c_void, - encInitParams: *mut NV_ENC_INITIALIZE_PARAMS, - sequenceParamPayload: *mut NV_ENC_SEQUENCE_PARAM_PAYLOAD, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncRegisterAsyncEvent( - encoder: *mut ::core::ffi::c_void, - eventParams: *mut NV_ENC_EVENT_PARAMS, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncUnregisterAsyncEvent( - encoder: *mut ::core::ffi::c_void, - eventParams: *mut NV_ENC_EVENT_PARAMS, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncMapInputResource( - encoder: *mut ::core::ffi::c_void, - mapInputResParams: *mut NV_ENC_MAP_INPUT_RESOURCE, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncUnmapInputResource( - encoder: *mut ::core::ffi::c_void, - mappedInputBuffer: NV_ENC_INPUT_PTR, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncDestroyEncoder(encoder: *mut ::core::ffi::c_void) -> NVENCSTATUS; - #[must_use] - pub fn NvEncInvalidateRefFrames( - encoder: *mut ::core::ffi::c_void, - invalidRefFrameTimeStamp: u64, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncOpenEncodeSessionEx( - openSessionExParams: *mut NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS, - encoder: *mut *mut ::core::ffi::c_void, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncRegisterResource( - encoder: *mut ::core::ffi::c_void, - registerResParams: *mut NV_ENC_REGISTER_RESOURCE, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncUnregisterResource( - encoder: *mut ::core::ffi::c_void, - registeredResource: NV_ENC_REGISTERED_PTR, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncReconfigureEncoder( - encoder: *mut ::core::ffi::c_void, - reInitEncodeParams: *mut NV_ENC_RECONFIGURE_PARAMS, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncCreateMVBuffer( - encoder: *mut ::core::ffi::c_void, - createMVBufferParams: *mut NV_ENC_CREATE_MV_BUFFER, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncDestroyMVBuffer( - encoder: *mut ::core::ffi::c_void, - mvBuffer: NV_ENC_OUTPUT_PTR, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncRunMotionEstimationOnly( - encoder: *mut ::core::ffi::c_void, - meOnlyParams: *mut NV_ENC_MEONLY_PARAMS, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncodeAPIGetMaxSupportedVersion(version: *mut u32) -> NVENCSTATUS; - pub fn NvEncGetLastErrorString(encoder: *mut ::core::ffi::c_void) - -> *const ::core::ffi::c_char; - #[must_use] - pub fn NvEncLookaheadPicture( - encoder: *mut ::core::ffi::c_void, - lookaheadParamas: *mut NV_ENC_LOOKAHEAD_PIC_PARAMS, - ) -> NVENCSTATUS; - #[must_use] - pub fn NvEncodeAPICreateInstance(functionList: *mut NV_ENCODE_API_FUNCTION_LIST) - -> NVENCSTATUS; -} diff --git a/rs/moq-nvenc/src/sys/windows_sys/nvcuvid.rs b/rs/moq-nvenc/src/sys/windows_sys/nvcuvid.rs deleted file mode 100644 index 442e99dac64..00000000000 --- a/rs/moq-nvenc/src/sys/windows_sys/nvcuvid.rs +++ /dev/null @@ -1,1933 +0,0 @@ -use super::cuviddec::*; -use cudarc::driver::sys::*; -/* automatically generated by rust-bindgen 0.65.1 */ - -pub type wchar_t = ::core::ffi::c_ushort; -pub type CUvideosource = *mut ::core::ffi::c_void; -pub type CUvideoparser = *mut ::core::ffi::c_void; -pub type CUvideotimestamp = ::core::ffi::c_longlong; -pub type HEVCTIMECODESET = _HEVCTIMECODESET; -pub type HEVCSEITIMECODE = _HEVCSEITIMECODE; -pub type CUSEIMESSAGE = _CUSEIMESSAGE; -pub type CUVIDSEIMESSAGEINFO = _CUVIDSEIMESSAGEINFO; -pub type CUVIDSOURCEDATAPACKET = _CUVIDSOURCEDATAPACKET; -pub type PFNVIDSOURCECALLBACK = ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut ::core::ffi::c_void, - arg2: *mut CUVIDSOURCEDATAPACKET, - ) -> ::core::ffi::c_int, ->; -pub type CUVIDSOURCEPARAMS = _CUVIDSOURCEPARAMS; -pub type CUVIDPARSERDISPINFO = _CUVIDPARSERDISPINFO; -pub type PFNVIDSEQUENCECALLBACK = ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut ::core::ffi::c_void, - arg2: *mut CUVIDEOFORMAT, - ) -> ::core::ffi::c_int, ->; -pub type PFNVIDDECODECALLBACK = ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut ::core::ffi::c_void, - arg2: *mut CUVIDPICPARAMS, - ) -> ::core::ffi::c_int, ->; -pub type PFNVIDDISPLAYCALLBACK = ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut ::core::ffi::c_void, - arg2: *mut CUVIDPARSERDISPINFO, - ) -> ::core::ffi::c_int, ->; -pub type PFNVIDOPPOINTCALLBACK = ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut ::core::ffi::c_void, - arg2: *mut CUVIDOPERATINGPOINTINFO, - ) -> ::core::ffi::c_int, ->; -pub type PFNVIDSEIMSGCALLBACK = ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut ::core::ffi::c_void, - arg2: *mut CUVIDSEIMESSAGEINFO, - ) -> ::core::ffi::c_int, ->; -pub type CUVIDPARSERPARAMS = _CUVIDPARSERPARAMS; -#[repr(C)] -#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] -pub struct __BindgenBitfieldUnit { - storage: Storage, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _HEVCTIMECODESET { - pub time_offset_value: ::core::ffi::c_uint, - pub n_frames: ::core::ffi::c_ushort, - pub clock_timestamp_flag: ::core::ffi::c_uchar, - pub units_field_based_flag: ::core::ffi::c_uchar, - pub counting_type: ::core::ffi::c_uchar, - pub full_timestamp_flag: ::core::ffi::c_uchar, - pub discontinuity_flag: ::core::ffi::c_uchar, - pub cnt_dropped_flag: ::core::ffi::c_uchar, - pub seconds_value: ::core::ffi::c_uchar, - pub minutes_value: ::core::ffi::c_uchar, - pub hours_value: ::core::ffi::c_uchar, - pub seconds_flag: ::core::ffi::c_uchar, - pub minutes_flag: ::core::ffi::c_uchar, - pub hours_flag: ::core::ffi::c_uchar, - pub time_offset_length: ::core::ffi::c_uchar, - pub reserved: ::core::ffi::c_uchar, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _HEVCSEITIMECODE { - pub time_code_set: [HEVCTIMECODESET; 3usize], - pub num_clock_ts: ::core::ffi::c_uchar, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUSEIMESSAGE { - pub sei_message_type: ::core::ffi::c_uchar, - pub reserved: [::core::ffi::c_uchar; 3usize], - pub sei_message_size: ::core::ffi::c_uint, -} -#[repr(C)] -pub struct CUVIDEOFORMAT { - pub codec: cudaVideoCodec, - pub frame_rate: CUVIDEOFORMAT__bindgen_ty_1, - pub progressive_sequence: ::core::ffi::c_uchar, - pub bit_depth_luma_minus8: ::core::ffi::c_uchar, - pub bit_depth_chroma_minus8: ::core::ffi::c_uchar, - pub min_num_decode_surfaces: ::core::ffi::c_uchar, - pub coded_width: ::core::ffi::c_uint, - pub coded_height: ::core::ffi::c_uint, - pub display_area: CUVIDEOFORMAT__bindgen_ty_2, - pub chroma_format: cudaVideoChromaFormat, - pub bitrate: ::core::ffi::c_uint, - pub display_aspect_ratio: CUVIDEOFORMAT__bindgen_ty_3, - pub video_signal_description: CUVIDEOFORMAT__bindgen_ty_4, - pub seqhdr_data_length: ::core::ffi::c_uint, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct CUVIDEOFORMAT__bindgen_ty_1 { - pub numerator: ::core::ffi::c_uint, - pub denominator: ::core::ffi::c_uint, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct CUVIDEOFORMAT__bindgen_ty_2 { - pub left: ::core::ffi::c_int, - pub top: ::core::ffi::c_int, - pub right: ::core::ffi::c_int, - pub bottom: ::core::ffi::c_int, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct CUVIDEOFORMAT__bindgen_ty_3 { - pub x: ::core::ffi::c_int, - pub y: ::core::ffi::c_int, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct CUVIDEOFORMAT__bindgen_ty_4 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub color_primaries: ::core::ffi::c_uchar, - pub transfer_characteristics: ::core::ffi::c_uchar, - pub matrix_coefficients: ::core::ffi::c_uchar, -} -#[repr(C)] -pub struct CUVIDOPERATINGPOINTINFO { - pub codec: cudaVideoCodec, - pub __bindgen_anon_1: CUVIDOPERATINGPOINTINFO__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct CUVIDOPERATINGPOINTINFO__bindgen_ty_1__bindgen_ty_1 { - pub operating_points_cnt: ::core::ffi::c_uchar, - pub reserved24_bits: [::core::ffi::c_uchar; 3usize], - pub operating_points_idc: [::core::ffi::c_ushort; 32usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDSEIMESSAGEINFO { - pub pSEIData: *mut ::core::ffi::c_void, - pub pSEIMessage: *mut CUSEIMESSAGE, - pub sei_message_count: ::core::ffi::c_uint, - pub picIdx: ::core::ffi::c_uint, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct CUVIDAV1SEQHDR { - pub max_width: ::core::ffi::c_uint, - pub max_height: ::core::ffi::c_uint, - pub reserved: [::core::ffi::c_uchar; 1016usize], -} -#[repr(C)] -pub struct CUVIDEOFORMATEX { - pub format: CUVIDEOFORMAT, - pub __bindgen_anon_1: CUVIDEOFORMATEX__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct CUAUDIOFORMAT { - pub codec: cudaAudioCodec, - pub channels: ::core::ffi::c_uint, - pub samplespersec: ::core::ffi::c_uint, - pub bitrate: ::core::ffi::c_uint, - pub reserved1: ::core::ffi::c_uint, - pub reserved2: ::core::ffi::c_uint, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDSOURCEDATAPACKET { - pub flags: ::core::ffi::c_ulong, - pub payload_size: ::core::ffi::c_ulong, - pub payload: *const ::core::ffi::c_uchar, - pub timestamp: CUvideotimestamp, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDSOURCEPARAMS { - pub ulClockRate: ::core::ffi::c_uint, - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub uReserved1: [::core::ffi::c_uint; 6usize], - pub pUserData: *mut ::core::ffi::c_void, - pub pfnVideoDataHandler: PFNVIDSOURCECALLBACK, - pub pfnAudioDataHandler: PFNVIDSOURCECALLBACK, - pub pvReserved2: [*mut ::core::ffi::c_void; 8usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _CUVIDPARSERDISPINFO { - pub picture_index: ::core::ffi::c_int, - pub progressive_frame: ::core::ffi::c_int, - pub top_field_first: ::core::ffi::c_int, - pub repeat_first_field: ::core::ffi::c_int, - pub timestamp: CUvideotimestamp, -} -#[repr(C)] -pub struct _CUVIDPARSERPARAMS { - pub CodecType: cudaVideoCodec, - pub ulMaxNumDecodeSurfaces: ::core::ffi::c_uint, - pub ulClockRate: ::core::ffi::c_uint, - pub ulErrorThreshold: ::core::ffi::c_uint, - pub ulMaxDisplayDelay: ::core::ffi::c_uint, - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub uReserved1: [::core::ffi::c_uint; 4usize], - pub pUserData: *mut ::core::ffi::c_void, - pub pfnSequenceCallback: PFNVIDSEQUENCECALLBACK, - pub pfnDecodePicture: PFNVIDDECODECALLBACK, - pub pfnDisplayPicture: PFNVIDDISPLAYCALLBACK, - pub pfnGetOperatingPoint: PFNVIDOPPOINTCALLBACK, - pub pfnGetSEIMsg: PFNVIDSEIMSGCALLBACK, - pub pvReserved2: [*mut ::core::ffi::c_void; 5usize], - pub pExtVideoInfo: *mut CUVIDEOFORMATEX, -} -pub const MAX_CLOCK_TS: u32 = 3; -#[test] -fn bindgen_test_layout__HEVCTIMECODESET() { - const UNINIT: ::core::mem::MaybeUninit<_HEVCTIMECODESET> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_HEVCTIMECODESET>(), - 20usize, - concat!("Size of: ", stringify!(_HEVCTIMECODESET)) - ); - assert_eq!( - ::core::mem::align_of::<_HEVCTIMECODESET>(), - 4usize, - concat!("Alignment of ", stringify!(_HEVCTIMECODESET)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).time_offset_value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(time_offset_value) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).n_frames) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(n_frames) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).clock_timestamp_flag) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(clock_timestamp_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).units_field_based_flag) as usize - ptr as usize }, - 7usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(units_field_based_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).counting_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(counting_type) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).full_timestamp_flag) as usize - ptr as usize }, - 9usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(full_timestamp_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).discontinuity_flag) as usize - ptr as usize }, - 10usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(discontinuity_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cnt_dropped_flag) as usize - ptr as usize }, - 11usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(cnt_dropped_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).seconds_value) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(seconds_value) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).minutes_value) as usize - ptr as usize }, - 13usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(minutes_value) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).hours_value) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(hours_value) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).seconds_flag) as usize - ptr as usize }, - 15usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(seconds_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).minutes_flag) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(minutes_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).hours_flag) as usize - ptr as usize }, - 17usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(hours_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).time_offset_length) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(time_offset_length) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 19usize, - concat!( - "Offset of field: ", - stringify!(_HEVCTIMECODESET), - "::", - stringify!(reserved) - ) - ); -} -#[test] -fn bindgen_test_layout__HEVCSEITIMECODE() { - const UNINIT: ::core::mem::MaybeUninit<_HEVCSEITIMECODE> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_HEVCSEITIMECODE>(), - 64usize, - concat!("Size of: ", stringify!(_HEVCSEITIMECODE)) - ); - assert_eq!( - ::core::mem::align_of::<_HEVCSEITIMECODE>(), - 4usize, - concat!("Alignment of ", stringify!(_HEVCSEITIMECODE)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).time_code_set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_HEVCSEITIMECODE), - "::", - stringify!(time_code_set) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_clock_ts) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(_HEVCSEITIMECODE), - "::", - stringify!(num_clock_ts) - ) - ); -} -#[test] -fn bindgen_test_layout__CUSEIMESSAGE() { - const UNINIT: ::core::mem::MaybeUninit<_CUSEIMESSAGE> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUSEIMESSAGE>(), - 8usize, - concat!("Size of: ", stringify!(_CUSEIMESSAGE)) - ); - assert_eq!( - ::core::mem::align_of::<_CUSEIMESSAGE>(), - 4usize, - concat!("Alignment of ", stringify!(_CUSEIMESSAGE)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sei_message_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUSEIMESSAGE), - "::", - stringify!(sei_message_type) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(_CUSEIMESSAGE), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sei_message_size) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUSEIMESSAGE), - "::", - stringify!(sei_message_size) - ) - ); -} -#[test] -fn bindgen_test_layout_CUVIDEOFORMAT__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(CUVIDEOFORMAT__bindgen_ty_1)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(CUVIDEOFORMAT__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).numerator) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT__bindgen_ty_1), - "::", - stringify!(numerator) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).denominator) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT__bindgen_ty_1), - "::", - stringify!(denominator) - ) - ); -} -#[test] -fn bindgen_test_layout_CUVIDEOFORMAT__bindgen_ty_2() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(CUVIDEOFORMAT__bindgen_ty_2)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(CUVIDEOFORMAT__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT__bindgen_ty_2), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT__bindgen_ty_2), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT__bindgen_ty_2), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT__bindgen_ty_2), - "::", - stringify!(bottom) - ) - ); -} -#[test] -fn bindgen_test_layout_CUVIDEOFORMAT__bindgen_ty_3() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(CUVIDEOFORMAT__bindgen_ty_3)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(CUVIDEOFORMAT__bindgen_ty_3)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT__bindgen_ty_3), - "::", - stringify!(x) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT__bindgen_ty_3), - "::", - stringify!(y) - ) - ); -} -#[test] -fn bindgen_test_layout_CUVIDEOFORMAT__bindgen_ty_4() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(CUVIDEOFORMAT__bindgen_ty_4)) - ); - assert_eq!( - ::core::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(CUVIDEOFORMAT__bindgen_ty_4)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).color_primaries) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT__bindgen_ty_4), - "::", - stringify!(color_primaries) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).transfer_characteristics) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT__bindgen_ty_4), - "::", - stringify!(transfer_characteristics) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).matrix_coefficients) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT__bindgen_ty_4), - "::", - stringify!(matrix_coefficients) - ) - ); -} -#[test] -fn bindgen_test_layout_CUVIDEOFORMAT() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(CUVIDEOFORMAT)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(CUVIDEOFORMAT)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).codec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT), - "::", - stringify!(codec) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frame_rate) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT), - "::", - stringify!(frame_rate) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).progressive_sequence) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT), - "::", - stringify!(progressive_sequence) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bit_depth_luma_minus8) as usize - ptr as usize }, - 13usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT), - "::", - stringify!(bit_depth_luma_minus8) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bit_depth_chroma_minus8) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT), - "::", - stringify!(bit_depth_chroma_minus8) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).min_num_decode_surfaces) as usize - ptr as usize }, - 15usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT), - "::", - stringify!(min_num_decode_surfaces) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).coded_width) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT), - "::", - stringify!(coded_width) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).coded_height) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT), - "::", - stringify!(coded_height) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).display_area) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT), - "::", - stringify!(display_area) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chroma_format) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT), - "::", - stringify!(chroma_format) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bitrate) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT), - "::", - stringify!(bitrate) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).display_aspect_ratio) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT), - "::", - stringify!(display_aspect_ratio) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).video_signal_description) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT), - "::", - stringify!(video_signal_description) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).seqhdr_data_length) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMAT), - "::", - stringify!(seqhdr_data_length) - ) - ); -} -#[test] -fn bindgen_test_layout_CUVIDOPERATINGPOINTINFO__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 68usize, - concat!( - "Size of: ", - stringify!(CUVIDOPERATINGPOINTINFO__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::core::mem::align_of::(), - 2usize, - concat!( - "Alignment of ", - stringify!(CUVIDOPERATINGPOINTINFO__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).operating_points_cnt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(CUVIDOPERATINGPOINTINFO__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(operating_points_cnt) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved24_bits) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(CUVIDOPERATINGPOINTINFO__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(reserved24_bits) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).operating_points_idc) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(CUVIDOPERATINGPOINTINFO__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(operating_points_idc) - ) - ); -} -#[test] -fn bindgen_test_layout_CUVIDOPERATINGPOINTINFO__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 1024usize, - concat!( - "Size of: ", - stringify!(CUVIDOPERATINGPOINTINFO__bindgen_ty_1) - ) - ); - assert_eq!( - ::core::mem::align_of::(), - 2usize, - concat!( - "Alignment of ", - stringify!(CUVIDOPERATINGPOINTINFO__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).av1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(CUVIDOPERATINGPOINTINFO__bindgen_ty_1), - "::", - stringify!(av1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).CodecReserved) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(CUVIDOPERATINGPOINTINFO__bindgen_ty_1), - "::", - stringify!(CodecReserved) - ) - ); -} -#[test] -fn bindgen_test_layout_CUVIDOPERATINGPOINTINFO() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 1028usize, - concat!("Size of: ", stringify!(CUVIDOPERATINGPOINTINFO)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(CUVIDOPERATINGPOINTINFO)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).codec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(CUVIDOPERATINGPOINTINFO), - "::", - stringify!(codec) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDSEIMESSAGEINFO() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDSEIMESSAGEINFO> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDSEIMESSAGEINFO>(), - 24usize, - concat!("Size of: ", stringify!(_CUVIDSEIMESSAGEINFO)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDSEIMESSAGEINFO>(), - 8usize, - concat!("Alignment of ", stringify!(_CUVIDSEIMESSAGEINFO)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pSEIData) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDSEIMESSAGEINFO), - "::", - stringify!(pSEIData) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pSEIMessage) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDSEIMESSAGEINFO), - "::", - stringify!(pSEIMessage) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sei_message_count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDSEIMESSAGEINFO), - "::", - stringify!(sei_message_count) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).picIdx) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDSEIMESSAGEINFO), - "::", - stringify!(picIdx) - ) - ); -} -#[test] -fn bindgen_test_layout_CUVIDAV1SEQHDR() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 1024usize, - concat!("Size of: ", stringify!(CUVIDAV1SEQHDR)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(CUVIDAV1SEQHDR)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).max_width) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(CUVIDAV1SEQHDR), - "::", - stringify!(max_width) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).max_height) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(CUVIDAV1SEQHDR), - "::", - stringify!(max_height) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(CUVIDAV1SEQHDR), - "::", - stringify!(reserved) - ) - ); -} -#[test] -fn bindgen_test_layout_CUVIDEOFORMATEX__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 1024usize, - concat!("Size of: ", stringify!(CUVIDEOFORMATEX__bindgen_ty_1)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(CUVIDEOFORMATEX__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).av1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMATEX__bindgen_ty_1), - "::", - stringify!(av1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).raw_seqhdr_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMATEX__bindgen_ty_1), - "::", - stringify!(raw_seqhdr_data) - ) - ); -} -#[test] -fn bindgen_test_layout_CUVIDEOFORMATEX() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 1088usize, - concat!("Size of: ", stringify!(CUVIDEOFORMATEX)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(CUVIDEOFORMATEX)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(CUVIDEOFORMATEX), - "::", - stringify!(format) - ) - ); -} -#[test] -fn bindgen_test_layout_CUAUDIOFORMAT() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(CUAUDIOFORMAT)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(CUAUDIOFORMAT)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).codec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(CUAUDIOFORMAT), - "::", - stringify!(codec) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).channels) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(CUAUDIOFORMAT), - "::", - stringify!(channels) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).samplespersec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(CUAUDIOFORMAT), - "::", - stringify!(samplespersec) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bitrate) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(CUAUDIOFORMAT), - "::", - stringify!(bitrate) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(CUAUDIOFORMAT), - "::", - stringify!(reserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(CUAUDIOFORMAT), - "::", - stringify!(reserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDSOURCEDATAPACKET() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDSOURCEDATAPACKET> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDSOURCEDATAPACKET>(), - 24usize, - concat!("Size of: ", stringify!(_CUVIDSOURCEDATAPACKET)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDSOURCEDATAPACKET>(), - 8usize, - concat!("Alignment of ", stringify!(_CUVIDSOURCEDATAPACKET)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDSOURCEDATAPACKET), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).payload_size) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDSOURCEDATAPACKET), - "::", - stringify!(payload_size) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).payload) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDSOURCEDATAPACKET), - "::", - stringify!(payload) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).timestamp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDSOURCEDATAPACKET), - "::", - stringify!(timestamp) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDSOURCEPARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDSOURCEPARAMS> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDSOURCEPARAMS>(), - 120usize, - concat!("Size of: ", stringify!(_CUVIDSOURCEPARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDSOURCEPARAMS>(), - 8usize, - concat!("Alignment of ", stringify!(_CUVIDSOURCEPARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulClockRate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDSOURCEPARAMS), - "::", - stringify!(ulClockRate) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).uReserved1) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDSOURCEPARAMS), - "::", - stringify!(uReserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pUserData) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDSOURCEPARAMS), - "::", - stringify!(pUserData) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pfnVideoDataHandler) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDSOURCEPARAMS), - "::", - stringify!(pfnVideoDataHandler) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pfnAudioDataHandler) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDSOURCEPARAMS), - "::", - stringify!(pfnAudioDataHandler) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pvReserved2) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDSOURCEPARAMS), - "::", - stringify!(pvReserved2) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDPARSERDISPINFO() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDPARSERDISPINFO> = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDPARSERDISPINFO>(), - 24usize, - concat!("Size of: ", stringify!(_CUVIDPARSERDISPINFO)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDPARSERDISPINFO>(), - 8usize, - concat!("Alignment of ", stringify!(_CUVIDPARSERDISPINFO)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).picture_index) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERDISPINFO), - "::", - stringify!(picture_index) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).progressive_frame) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERDISPINFO), - "::", - stringify!(progressive_frame) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).top_field_first) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERDISPINFO), - "::", - stringify!(top_field_first) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).repeat_first_field) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERDISPINFO), - "::", - stringify!(repeat_first_field) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).timestamp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERDISPINFO), - "::", - stringify!(timestamp) - ) - ); -} -#[test] -fn bindgen_test_layout__CUVIDPARSERPARAMS() { - const UNINIT: ::core::mem::MaybeUninit<_CUVIDPARSERPARAMS> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<_CUVIDPARSERPARAMS>(), - 136usize, - concat!("Size of: ", stringify!(_CUVIDPARSERPARAMS)) - ); - assert_eq!( - ::core::mem::align_of::<_CUVIDPARSERPARAMS>(), - 8usize, - concat!("Alignment of ", stringify!(_CUVIDPARSERPARAMS)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).CodecType) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERPARAMS), - "::", - stringify!(CodecType) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulMaxNumDecodeSurfaces) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERPARAMS), - "::", - stringify!(ulMaxNumDecodeSurfaces) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulClockRate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERPARAMS), - "::", - stringify!(ulClockRate) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulErrorThreshold) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERPARAMS), - "::", - stringify!(ulErrorThreshold) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ulMaxDisplayDelay) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERPARAMS), - "::", - stringify!(ulMaxDisplayDelay) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).uReserved1) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERPARAMS), - "::", - stringify!(uReserved1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pUserData) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERPARAMS), - "::", - stringify!(pUserData) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pfnSequenceCallback) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERPARAMS), - "::", - stringify!(pfnSequenceCallback) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pfnDecodePicture) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERPARAMS), - "::", - stringify!(pfnDecodePicture) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pfnDisplayPicture) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERPARAMS), - "::", - stringify!(pfnDisplayPicture) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pfnGetOperatingPoint) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERPARAMS), - "::", - stringify!(pfnGetOperatingPoint) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pfnGetSEIMsg) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERPARAMS), - "::", - stringify!(pfnGetSEIMsg) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pvReserved2) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERPARAMS), - "::", - stringify!(pvReserved2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pExtVideoInfo) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_CUVIDPARSERPARAMS), - "::", - stringify!(pExtVideoInfo) - ) - ); -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum cudaVideoState { - cudaVideoState_Error = -1, - cudaVideoState_Stopped = 0, - cudaVideoState_Started = 1, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum cudaAudioCodec { - cudaAudioCodec_MPEG1 = 0, - cudaAudioCodec_MPEG2 = 1, - cudaAudioCodec_MP3 = 2, - cudaAudioCodec_AC3 = 3, - cudaAudioCodec_LPCM = 4, - cudaAudioCodec_AAC = 5, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum CUvideopacketflags { - CUVID_PKT_ENDOFSTREAM = 1, - CUVID_PKT_TIMESTAMP = 2, - CUVID_PKT_DISCONTINUITY = 4, - CUVID_PKT_ENDOFPICTURE = 8, - CUVID_PKT_NOTIFY_EOS = 16, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum CUvideosourceformat_flags { - CUVID_FMT_EXTFORMATINFO = 256, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union CUVIDOPERATINGPOINTINFO__bindgen_ty_1 { - pub av1: CUVIDOPERATINGPOINTINFO__bindgen_ty_1__bindgen_ty_1, - pub CodecReserved: [::core::ffi::c_uchar; 1024usize], -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union CUVIDEOFORMATEX__bindgen_ty_1 { - pub av1: CUVIDAV1SEQHDR, - pub raw_seqhdr_data: [::core::ffi::c_uchar; 1024usize], -} -impl __BindgenBitfieldUnit { - #[inline] - pub const fn new(storage: Storage) -> Self { - Self { storage } - } -} -impl __BindgenBitfieldUnit -where - Storage: AsRef<[u8]> + AsMut<[u8]>, -{ - #[inline] - pub fn get_bit(&self, index: usize) -> bool { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = self.storage.as_ref()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - byte & mask == mask - } - - #[inline] - pub fn set_bit(&mut self, index: usize, val: bool) { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = &mut self.storage.as_mut()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - if val { - *byte |= mask; - } else { - *byte &= !mask; - } - } - - #[inline] - pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - let mut val = 0; - for i in 0..(bit_width as usize) { - if self.get_bit(i + bit_offset) { - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - val |= 1 << index; - } - } - val - } - - #[inline] - pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - for i in 0..(bit_width as usize) { - let mask = 1 << i; - let val_bit_is_set = val & mask == mask; - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - self.set_bit(index + bit_offset, val_bit_is_set); - } - } -} -impl CUVIDEOFORMAT__bindgen_ty_4 { - #[inline] - pub fn video_format(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u8) } - } - - #[inline] - pub fn set_video_format(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 3u8, val as u64) - } - } - - #[inline] - pub fn video_full_range_flag(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } - } - - #[inline] - pub fn set_video_full_range_flag(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - - #[inline] - pub fn reserved_zero_bits(&self) -> ::core::ffi::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - - #[inline] - pub fn set_reserved_zero_bits(&mut self, val: ::core::ffi::c_uchar) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - video_format: ::core::ffi::c_uchar, - video_full_range_flag: ::core::ffi::c_uchar, - reserved_zero_bits: ::core::ffi::c_uchar, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 3u8, { - let video_format: u8 = unsafe { ::core::mem::transmute(video_format) }; - video_format as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let video_full_range_flag: u8 = - unsafe { ::core::mem::transmute(video_full_range_flag) }; - video_full_range_flag as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let reserved_zero_bits: u8 = unsafe { ::core::mem::transmute(reserved_zero_bits) }; - reserved_zero_bits as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for CUVIDEOFORMAT { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for CUVIDOPERATINGPOINTINFO__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for CUVIDOPERATINGPOINTINFO { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _CUVIDSEIMESSAGEINFO { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for CUVIDAV1SEQHDR { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for CUVIDEOFORMATEX__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for CUVIDEOFORMATEX { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for CUAUDIOFORMAT { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _CUVIDSOURCEDATAPACKET { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl Default for _CUVIDSOURCEPARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _CUVIDSOURCEPARAMS { - #[inline] - pub fn bAnnexb(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_bAnnexb(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn uReserved(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) } - } - - #[inline] - pub fn set_uReserved(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 31u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - bAnnexb: ::core::ffi::c_uint, - uReserved: ::core::ffi::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let bAnnexb: u32 = unsafe { ::core::mem::transmute(bAnnexb) }; - bAnnexb as u64 - }); - __bindgen_bitfield_unit.set(1usize, 31u8, { - let uReserved: u32 = unsafe { ::core::mem::transmute(uReserved) }; - uReserved as u64 - }); - __bindgen_bitfield_unit - } -} -impl Default for _CUVIDPARSERPARAMS { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl _CUVIDPARSERPARAMS { - #[inline] - pub fn bAnnexb(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - - #[inline] - pub fn set_bAnnexb(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - - #[inline] - pub fn uReserved(&self) -> ::core::ffi::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) } - } - - #[inline] - pub fn set_uReserved(&mut self, val: ::core::ffi::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 31u8, val as u64) - } - } - - #[inline] - pub fn new_bitfield_1( - bAnnexb: ::core::ffi::c_uint, - uReserved: ::core::ffi::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let bAnnexb: u32 = unsafe { ::core::mem::transmute(bAnnexb) }; - bAnnexb as u64 - }); - __bindgen_bitfield_unit.set(1usize, 31u8, { - let uReserved: u32 = unsafe { ::core::mem::transmute(uReserved) }; - uReserved as u64 - }); - __bindgen_bitfield_unit - } -} -extern "C" { - #[must_use] - pub fn cuvidCreateVideoSource( - pObj: *mut CUvideosource, - pszFileName: *const ::core::ffi::c_char, - pParams: *mut CUVIDSOURCEPARAMS, - ) -> CUresult; - #[must_use] - pub fn cuvidCreateVideoSourceW( - pObj: *mut CUvideosource, - pwszFileName: *const wchar_t, - pParams: *mut CUVIDSOURCEPARAMS, - ) -> CUresult; - #[must_use] - pub fn cuvidDestroyVideoSource(obj: CUvideosource) -> CUresult; - #[must_use] - pub fn cuvidSetVideoSourceState(obj: CUvideosource, state: cudaVideoState) -> CUresult; - pub fn cuvidGetVideoSourceState(obj: CUvideosource) -> cudaVideoState; - #[must_use] - pub fn cuvidGetSourceVideoFormat( - obj: CUvideosource, - pvidfmt: *mut CUVIDEOFORMAT, - flags: ::core::ffi::c_uint, - ) -> CUresult; - #[must_use] - pub fn cuvidGetSourceAudioFormat( - obj: CUvideosource, - paudfmt: *mut CUAUDIOFORMAT, - flags: ::core::ffi::c_uint, - ) -> CUresult; - #[must_use] - pub fn cuvidCreateVideoParser( - pObj: *mut CUvideoparser, - pParams: *mut CUVIDPARSERPARAMS, - ) -> CUresult; - #[must_use] - pub fn cuvidParseVideoData(obj: CUvideoparser, pPacket: *mut CUVIDSOURCEDATAPACKET) - -> CUresult; - #[must_use] - pub fn cuvidDestroyVideoParser(obj: CUvideoparser) -> CUresult; -} - diff --git a/rs/moq-quic/README.md b/rs/moq-quic/README.md index 41c21c6a560..2d0dcdacf9a 100644 --- a/rs/moq-quic/README.md +++ b/rs/moq-quic/README.md @@ -23,7 +23,7 @@ Ported since the fork point: - [`f233510c`](https://github.com/quinn-rs/quinn/commit/f233510cf37e1be9511070bf743151736d621a5e): a disabled idle timeout no longer abandons every accept as stale. Does not apply: the fork drops a stale Initial after `transport::Config::handshake_timeout`, which cannot be disabled, rather than the idle timeout. - [`6c69f9f4`](https://github.com/quinn-rs/quinn/commit/6c69f9f4ed2362002a0e2e5312a6dfa3ceb31c1d): stopping a reset stream no longer credits its unread data twice. Already held: `Recv::unread_credit` counts only what a reset still owes below its Reliable Size (see `RESET_STREAM_AT` below), and `stop_after_reset_credits_once` covers it. - [`623a0369`](https://github.com/quinn-rs/quinn/commit/623a0369536b9a1e731a8629c80c164eb8f2e637) (moq-tokio's `quic::driver`): an endpoint on a specific IPv6 address is not made dual-stack, so Windows does not refuse the driver's IPv4 socket options. `moq_sock::bind::udp` already did this; the driver's tests now bind through it, with upstream's `specific_v6_addr`. -- [`a2c55b36`](https://github.com/quinn-rs/quinn/commit/a2c55b36817ccaac1c39c6db92de8294f281819f) (`moq_sock::udp`, [moq-dev/moq#7418](https://github.com/moq-dev/moq/pull/7418)): send IPv4 source overrides with Apple's `IP_PKTINFO` in both `sendmsg` and `sendmsg_x`; `IP_RECVDSTADDR` only selects received destination metadata there. +- [`a2c55b36`](https://github.com/quinn-rs/quinn/commit/a2c55b36817ccaac1c39c6db92de8294f281819f) (`moq_sock::udp`, [moq-dev/moq#7418](https://github.com/moq-dev/moq/pull/7418)): send IPv4 source overrides with Apple's `IP_PKTINFO`; `IP_RECVDSTADDR` only selects received destination metadata there. - [`2c575013`](https://github.com/quinn-rs/quinn/commit/2c5750139fa09aab588bf0f939c83f521d658baf): already covered by the `MIN_PACKET_SPACE` check when choosing a GSO segment size, carried with bandwidth probing. - [`c2a47f6d`](https://github.com/quinn-rs/quinn/commit/c2a47f6d06447a997451568b90d5495c7e7bc3a9) (`0.11.x`, `moq_tokio::quic::driver`): already covered by `poll_recv`, which propagates every error except `WouldBlock`. The fork has no async-io runtime. - [`aea1e538`](https://github.com/quinn-rs/quinn/commit/aea1e5384927258887119fa1dc4fe3f23f1182c7) ([quinn#2981](https://github.com/quinn-rs/quinn/pull/2981), and [`77a51bdc`](https://github.com/quinn-rs/quinn/commit/77a51bdc5dc8b63bfba30429ab79fbb142bc8e2a) on `0.11.x`): send an MTU probe only on a validated path. A probe is built after the anti-amplification check, so a server probed a migrated peer address beyond three times what it had received from it, spending the budget its `PATH_CHALLENGE` needed. diff --git a/rs/moq-sock/Cargo.toml b/rs/moq-sock/Cargo.toml index 73d540478d1..ce61dcc5c7b 100644 --- a/rs/moq-sock/Cargo.toml +++ b/rs/moq-sock/Cargo.toml @@ -12,10 +12,6 @@ rust-version.workspace = true keywords = ["quic", "networking", "reuseport"] categories = ["network-programming"] -[features] -# Batch `udp` sends and receives through Apple's private sendmsg_x/recvmsg_x. -fast-apple-datapath = [] - [dependencies] arc-swap = "1.9" core_affinity = "0.8" diff --git a/rs/moq-sock/README.md b/rs/moq-sock/README.md index 68a6b81d279..7e5a44d8b59 100644 --- a/rs/moq-sock/README.md +++ b/rs/moq-sock/README.md @@ -24,8 +24,7 @@ runtimes (`moq-tokio` and `moq-uring`). [quinn-udp](https://github.com/quinn-rs/quinn). All credit for it goes to the quinn developers; it stays under quinn's MIT or Apache-2.0 license. See [moq-quic](../moq-quic/README.md) for the upstream commit, carried changes, - and how fixes are ported. The `fast-apple-datapath` feature enables its - batched path on Apple's private `sendmsg_x`/`recvmsg_x`. + and how fixes are ported. This is infrastructure, not an entry point: build against `moq-tokio` or `moq-uring`, which own the worker groups formed from these pieces. diff --git a/rs/moq-sock/build.rs b/rs/moq-sock/build.rs index 1f2c4467924..94c06d134ab 100644 --- a/rs/moq-sock/build.rs +++ b/rs/moq-sock/build.rs @@ -26,8 +26,5 @@ fn main() { target_os = "illumos" ) }, - // Convenience aliases - apple_fast: { all(apple, feature = "fast-apple-datapath") }, - apple_slow: { all(apple, not(feature = "fast-apple-datapath")) }, } } diff --git a/rs/moq-sock/src/udp/apple_fast.rs b/rs/moq-sock/src/udp/apple_fast.rs deleted file mode 100644 index 54da4b060a2..00000000000 --- a/rs/moq-sock/src/udp/apple_fast.rs +++ /dev/null @@ -1,238 +0,0 @@ -use std::{ - io::{self, IoSliceMut}, - mem::{self, MaybeUninit}, - net::IpAddr, - os::fd::AsRawFd, -}; - -use socket2::SockRef; - -use crate::udp::{ - RecvMeta, Transmit, UdpSocketState, - cmsg::{self, MsgHdr}, - imp::{ - BATCH_SIZE, IpTosTy, decode_recv, recv_single, retry_if_interrupted, send_individual_datagrams, send_single, - }, -}; - -pub(crate) fn send(state: &UdpSocketState, io: SockRef<'_>, transmit: &Transmit<'_>) -> io::Result<()> { - if state.is_apple_fast_path_enabled() { - send_via_sendmsg_x(state, io, transmit) - } else if let Some(segment_size) = transmit.effective_segment_size() { - // A batch may have been prepared before the fast path was disabled. - send_individual_datagrams(state, io, transmit, segment_size) - } else { - send_single(state, io, transmit) - } -} - -/// Send using the fast `sendmsg_x` API -fn send_via_sendmsg_x(state: &UdpSocketState, io: SockRef<'_>, transmit: &Transmit<'_>) -> io::Result<()> { - let mut hdrs = unsafe { mem::zeroed::<[msghdr_x; BATCH_SIZE]>() }; - let mut iovs = unsafe { mem::zeroed::<[libc::iovec; BATCH_SIZE]>() }; - let mut ctrls = [cmsg::Aligned([0u8; cmsg::LEN]); BATCH_SIZE]; - let addr = socket2::SockAddr::from(transmit.destination); - let segment_size = transmit.segment_size.unwrap_or(transmit.contents.len()); - let mut cnt = 0; - debug_assert!(transmit.contents.len().div_ceil(segment_size) <= BATCH_SIZE); - for (i, chunk) in transmit.contents.chunks(segment_size).enumerate().take(BATCH_SIZE) { - prepare_msg_x( - &Transmit { - destination: transmit.destination, - ecn: transmit.ecn, - contents: chunk, - segment_size: Some(chunk.len()), - src_ip: transmit.src_ip, - }, - &addr, - &mut hdrs[i], - &mut iovs[i], - &mut ctrls[i], - true, - state.sendmsg_einval(), - ); - hdrs[i].msg_datalen = chunk.len(); - state.check_send_buffer_limit(chunk.len(), &hdrs[i])?; - cnt += 1; - } - let Some(sendmsg_x) = state.resolve_apple_fast_fn(sendmsg_x_fn) else { - return send(state, io, transmit); - }; - retry_if_interrupted(|| unsafe { sendmsg_x(io.as_raw_fd(), hdrs.as_ptr(), cnt as u32, 0) })?; - Ok(()) -} - -/// Prepares an `msghdr_x` for use with `sendmsg_x` -fn prepare_msg_x( - transmit: &Transmit<'_>, - dst_addr: &socket2::SockAddr, - hdr: &mut msghdr_x, - iov: &mut libc::iovec, - ctrl: &mut cmsg::Aligned<[u8; cmsg::LEN]>, - #[allow(unused_variables, reason = "kept for parity with the unix `prepare_msg` signature")] encode_src_ip: bool, - sendmsg_einval: bool, -) { - iov.iov_base = transmit.contents.as_ptr() as *const _ as *mut _; - iov.iov_len = transmit.contents.len(); - - let name = dst_addr.as_ptr() as *mut libc::c_void; - let namelen = dst_addr.len(); - hdr.msg_name = name as *mut _; - hdr.msg_namelen = namelen; - hdr.msg_iov = iov; - hdr.msg_iovlen = 1; - - hdr.msg_control = ctrl.0.as_mut_ptr() as _; - hdr.msg_controllen = cmsg::LEN as _; - let mut encoder = unsafe { cmsg::Encoder::new(hdr) }; - let ecn = transmit.ecn.map_or(0, |x| x as libc::c_int); - let is_ipv4 = transmit.destination.is_ipv4() - || matches!(transmit.destination.ip(), IpAddr::V6(addr) if addr.to_ipv4_mapped().is_some()); - if is_ipv4 { - if !sendmsg_einval { - encoder.push(libc::IPPROTO_IP, libc::IP_TOS, ecn as IpTosTy); - } - } else { - encoder.push(libc::IPPROTO_IPV6, libc::IPV6_TCLASS, ecn); - } - - if let Some(ip) = &transmit.src_ip { - match ip { - IpAddr::V4(v4) => { - // Darwin ignores IP_RECVDSTADDR as a send-side source override; only IP_PKTINFO is honored. - let pktinfo = libc::in_pktinfo { - ipi_ifindex: 0, - ipi_spec_dst: libc::in_addr { - s_addr: u32::from_ne_bytes(v4.octets()), - }, - ipi_addr: libc::in_addr { s_addr: 0 }, - }; - encoder.push(libc::IPPROTO_IP, libc::IP_PKTINFO, pktinfo); - } - IpAddr::V6(v6) => { - let pktinfo = libc::in6_pktinfo { - ipi6_ifindex: 0, - ipi6_addr: libc::in6_addr { s6_addr: v6.octets() }, - }; - encoder.push(libc::IPPROTO_IPV6, libc::IPV6_PKTINFO, pktinfo); - } - } - } - - encoder.finish(); -} - -/// Returns the `sendmsg_x` function pointer, resolving it via `dlsym` on first call -/// -/// Returns `None` if the symbol is not available on the current OS version. -fn sendmsg_x_fn() -> Option { - static ADDR: std::sync::OnceLock = std::sync::OnceLock::new(); - // SAFETY: `resolve_symbol` only returns non-zero addresses obtained from `dlsym`, which - // guarantees a callable symbol whose type matches the declaration above. - resolve_symbol(&ADDR, c"sendmsg_x").map(|addr| unsafe { mem::transmute::(addr) }) -} - -type SendmsgXFn = unsafe extern "C" fn(libc::c_int, *const msghdr_x, libc::c_uint, libc::c_int) -> isize; - -/// Receive using the fast `recvmsg_x` API -pub(crate) fn recv_via_recvmsg_x( - state: &UdpSocketState, - io: SockRef<'_>, - bufs: &mut [IoSliceMut<'_>], - meta: &mut [RecvMeta], -) -> io::Result { - let mut names = [MaybeUninit::::uninit(); BATCH_SIZE]; - // MacOS 10.15 `recvmsg_x` does not override the `msghdr_x` - // `msg_controllen`. Thus, after the call to `recvmsg_x`, one does not know - // which control messages have been written to. To prevent reading - // uninitialized memory, do not use `MaybeUninit` for `ctrls`, instead - // initialize `ctrls` with `0`s. A control message of all `0`s is - // automatically skipped by `libc::CMSG_NXTHDR`. - let mut ctrls = [cmsg::Aligned([0u8; cmsg::LEN]); BATCH_SIZE]; - let mut hdrs = unsafe { mem::zeroed::<[msghdr_x; BATCH_SIZE]>() }; - let max_msg_count = bufs.len().min(BATCH_SIZE); - for i in 0..max_msg_count { - prepare_recv_x(&mut bufs[i], &mut names[i], &mut ctrls[i], &mut hdrs[i]); - } - let Some(recvmsg_x) = state.resolve_apple_fast_fn(recvmsg_x_fn) else { - return recv_single(io, bufs, meta); - }; - let msg_count = - retry_if_interrupted(|| unsafe { recvmsg_x(io.as_raw_fd(), hdrs.as_mut_ptr(), max_msg_count as _, 0) })?; - for i in 0..(msg_count as usize) { - meta[i] = decode_recv(&names[i], &hdrs[i], hdrs[i].msg_flags, hdrs[i].msg_datalen as usize)?; - } - Ok(msg_count as usize) -} - -/// Prepares an `msghdr_x` for receiving with `recvmsg_x` -fn prepare_recv_x( - buf: &mut IoSliceMut<'_>, - name: &mut MaybeUninit, - ctrl: &mut cmsg::Aligned<[u8; cmsg::LEN]>, - hdr: &mut msghdr_x, -) { - hdr.msg_name = name.as_mut_ptr() as _; - hdr.msg_namelen = size_of::() as _; - hdr.msg_iov = buf as *mut IoSliceMut<'_> as *mut libc::iovec; - hdr.msg_iovlen = 1; - hdr.msg_control = ctrl.0.as_mut_ptr() as _; - hdr.msg_controllen = cmsg::LEN as _; - hdr.msg_flags = 0; - hdr.msg_datalen = buf.len(); -} - -/// Returns the `recvmsg_x` function pointer, resolving it via `dlsym` on first call -/// -/// Returns `None` if the symbol is not available on the current OS version. -fn recvmsg_x_fn() -> Option { - static ADDR: std::sync::OnceLock = std::sync::OnceLock::new(); - // SAFETY: `resolve_symbol` only returns non-zero addresses obtained from `dlsym`, which - // guarantees a callable symbol whose type matches the declaration above. - resolve_symbol(&ADDR, c"recvmsg_x").map(|addr| unsafe { mem::transmute::(addr) }) -} - -type RecvmsgXFn = unsafe extern "C" fn(libc::c_int, *mut msghdr_x, libc::c_uint, libc::c_int) -> isize; - -/// Resolves a symbol via `dlsym` on first call, caching the result -/// -/// Returns `None` if the symbol is not available on the current OS version. -fn resolve_symbol(lock: &std::sync::OnceLock, name: &std::ffi::CStr) -> Option { - let addr = *lock.get_or_init(|| unsafe { libc::dlsym(libc::RTLD_DEFAULT, name.as_ptr()) as usize }); - (addr != 0).then_some(addr) -} - -// Adapted from https://github.com/apple-oss-distributions/xnu/blob/8d741a5de7ff4191bf97d57b9f54c2f6d4a15585/bsd/sys/socket_private.h -#[repr(C)] -pub(crate) struct msghdr_x { - pub msg_name: *mut libc::c_void, - pub msg_namelen: libc::socklen_t, - pub msg_iov: *mut libc::iovec, - pub msg_iovlen: libc::c_int, - pub msg_control: *mut libc::c_void, - pub msg_controllen: libc::socklen_t, - pub msg_flags: libc::c_int, - pub msg_datalen: usize, -} - -impl MsgHdr for msghdr_x { - type ControlMessage = libc::cmsghdr; - - fn cmsg_first_hdr(&self) -> *mut Self::ControlMessage { - let selfp = self as *const _ as *mut libc::msghdr; - unsafe { libc::CMSG_FIRSTHDR(selfp) } - } - - unsafe fn cmsg_nxt_hdr(&self, cmsg: *const Self::ControlMessage) -> *mut Self::ControlMessage { - let selfp = self as *const _ as *mut libc::msghdr; - unsafe { libc::CMSG_NXTHDR(selfp, cmsg) } - } - - fn set_control_len(&mut self, len: usize) { - self.msg_controllen = len as _; - } - - fn control_len(&self) -> usize { - self.msg_controllen as _ - } -} diff --git a/rs/moq-sock/src/udp/mod.rs b/rs/moq-sock/src/udp/mod.rs index 31a400e0fe1..1017f2d6974 100644 --- a/rs/moq-sock/src/udp/mod.rs +++ b/rs/moq-sock/src/udp/mod.rs @@ -31,7 +31,7 @@ #![warn(clippy::use_self)] use core::time::Duration; -#[cfg(any(unix, target_os = "wasi"))] +#[cfg(unix)] use std::os::fd::AsFd; #[cfg(windows)] use std::os::windows::io::AsSocket; @@ -39,18 +39,9 @@ use std::{ io, net::{IpAddr, Ipv6Addr, SocketAddr}, }; -#[cfg(target_os = "wasi")] -use std::{ - mem::ManuallyDrop, - net::UdpSocket, - os::fd::{AsRawFd, FromRawFd}, -}; #[cfg(windows)] use windows_sys::Win32::Networking::WinSock; -#[cfg(apple_fast)] -mod apple_fast; - #[cfg(any(unix, windows))] mod cmsg; @@ -65,10 +56,6 @@ mod linux; #[path = "windows.rs"] mod imp; -#[cfg(target_os = "wasi")] -#[path = "wasi.rs"] -mod imp; - #[allow( unused_imports, reason = "moq-sock always logs through `tracing`, so quinn-udp's `log` and no-op backends are not carried" @@ -161,10 +148,6 @@ impl Transmit<'_> { /// This case is actually quite common when splitting up a prepared GSO batch /// again after GSO has been disabled because the last datagram in a GSO /// batch is allowed to be smaller than the segment size. - #[cfg_attr( - apple_fast, - allow(dead_code, reason = "used by prepare_msg, which is unused when apple_fast") - )] fn effective_segment_size(&self) -> Option { match self.segment_size? { size if size >= self.contents.len() => None, @@ -238,10 +221,6 @@ pub fn is_msg_size_err(err: &io::Error) -> bool { { err.raw_os_error() == Some(WinSock::WSAEMSGSIZE) } - #[cfg(not(any(unix, windows)))] - { - false - } } /// Returns true if the given send error means the local stack has no way to reach the destination @@ -272,22 +251,11 @@ pub struct UdpSockRef<'a>(socket2::SockRef<'a>); impl UdpSockRef<'_> { /// Configures the socket for non-blocking or blocking operation. pub fn set_nonblocking(&self, nonblocking: bool) -> io::Result<()> { - #[cfg(not(target_os = "wasi"))] - self.0.set_nonblocking(nonblocking)?; - - #[cfg(target_os = "wasi")] - { - // socket2 uses `fcntl`, which WASI rejects; `std` uses `ioctl(FIONBIO)`. - // Safety: `self` outlives the borrow, and `ManuallyDrop` prevents a second close. - let borrowed = ManuallyDrop::new(unsafe { UdpSocket::from_raw_fd(self.0.as_raw_fd()) }); - borrowed.set_nonblocking(nonblocking)?; - } - - Ok(()) + self.0.set_nonblocking(nonblocking) } } -#[cfg(any(unix, target_os = "wasi"))] +#[cfg(unix)] impl<'s, S> From<&'s S> for UdpSockRef<'s> where S: AsFd, diff --git a/rs/moq-sock/src/udp/unix.rs b/rs/moq-sock/src/udp/unix.rs index a15e762412f..30f50d9c1fa 100644 --- a/rs/moq-sock/src/udp/unix.rs +++ b/rs/moq-sock/src/udp/unix.rs @@ -16,8 +16,6 @@ use socket2::SockRef; use super::{EcnCodepoint, RecvMeta, Transmit, TransportError, UdpSockRef, cmsg}; -#[cfg(apple_fast)] -use super::apple_fast::{msghdr_x, recv_via_recvmsg_x, send}; #[cfg(any(target_os = "linux", target_os = "android"))] use super::linux::{LinuxError, gso}; @@ -38,13 +36,6 @@ pub struct UdpSocketState { /// which is not supported on Linux <3.13 and results in not sending the UDP packet at all. sendmsg_einval: AtomicBool, - /// Whether to use Apple's fast `sendmsg_x`/`recvmsg_x` APIs. - /// - /// These private APIs provide better performance but may not be available on all - /// Apple OS versions. Callers must verify availability before enabling. - #[cfg(apple_fast)] - apple_fast_path: AtomicBool, - /// Cached `SO_SNDBUF`. #[cfg(apple)] send_buffer_size: AtomicUsize, @@ -161,8 +152,6 @@ impl UdpSocketState { gro_segments, may_fragment, sendmsg_einval: AtomicBool::new(false), - #[cfg(apple_fast)] - apple_fast_path: AtomicBool::new(false), #[cfg(apple)] send_buffer_size: AtomicUsize::new(io.send_buffer_size().unwrap_or(usize::MAX)), }) @@ -192,21 +181,6 @@ impl UdpSocketState { recv_via_recvmmsg(socket.0, bufs, meta) } - /// Receives datagrams into `bufs`, filling one [`RecvMeta`] per message, and returns how many messages arrived. - #[cfg(apple_fast)] - pub fn recv( - &self, - socket: UdpSockRef<'_>, - bufs: &mut [IoSliceMut<'_>], - meta: &mut [RecvMeta], - ) -> io::Result { - if self.is_apple_fast_path_enabled() { - recv_via_recvmsg_x(self, socket.0, bufs, meta) - } else { - recv_single(socket.0, bufs, meta) - } - } - /// Receives datagrams into `bufs`, filling one [`RecvMeta`] per message, and returns how many messages arrived. #[cfg(any( target_os = "openbsd", @@ -215,7 +189,7 @@ impl UdpSocketState { target_os = "redox", target_os = "hurd", solarish, - apple_slow + apple ))] pub fn recv( &self, @@ -364,48 +338,6 @@ impl UdpSocketState { self.sendmsg_einval.store(true, Ordering::Relaxed) } - /// Enables Apple's fast UDP datapath using private `sendmsg_x`/`recvmsg_x` APIs - /// - /// Once enabled, this also updates [`max_gso_segments`] to allow batched sends. - /// - /// # Safety - /// - /// These APIs may crash on unsupported OS versions, so callers must verify - /// availability before enabling. - /// - /// [`max_gso_segments`]: Self::max_gso_segments - #[cfg(apple_fast)] - pub unsafe fn set_apple_fast_path(&self) { - self.apple_fast_path.store(true, Ordering::Relaxed); - self.max_gso_segments.store(BATCH_SIZE, Ordering::Relaxed); - } - - /// Returns whether Apple's fast UDP datapath is enabled for this socket - #[cfg(apple_fast)] - pub fn is_apple_fast_path_enabled(&self) -> bool { - self.apple_fast_path.load(Ordering::Relaxed) - } - - /// Disables Apple's fast UDP datapath, reverting to `sendmsg`/`recvmsg` - #[cfg(apple_fast)] - fn disable_apple_fast_path(&self) { - self.apple_fast_path.store(false, Ordering::Relaxed); - self.max_gso_segments.store(1, Ordering::Relaxed); - } - - /// Resolves an Apple fast-path function pointer via `resolver` - /// - /// Disables the fast path if the symbol is absent so that future calls use the slow path - /// directly. - #[cfg(apple_fast)] - pub(crate) fn resolve_apple_fast_fn(&self, resolver: fn() -> Option) -> Option { - let f = resolver(); - if f.is_none() { - self.disable_apple_fast_path(); - } - f - } - /// Smallest `SO_SNDBUF` that mitigates : /// On macOS, a non-blocking SOCK_DGRAM `sendmsg`/`sendmsg_x` call with ancillary data returns /// `EWOULDBLOCK` when the payload length is at or just under `SO_SNDBUF`. @@ -512,7 +444,7 @@ fn send( } } -#[cfg(any(target_os = "linux", target_os = "android", apple_fast))] +#[cfg(any(target_os = "linux", target_os = "android"))] pub(super) fn send_individual_datagrams( state: &UdpSocketState, io: SockRef<'_>, @@ -530,22 +462,18 @@ pub(super) fn send_individual_datagrams( segment_size: None, src_ip: transmit.src_ip, }; - #[cfg(apple_fast)] - send_single(state, io, &transmit)?; - #[cfg(not(apple_fast))] send(state, io, &transmit)?; } Ok(()) } -#[cfg(any(target_os = "openbsd", target_os = "netbsd", apple_slow))] +#[cfg(any(target_os = "openbsd", target_os = "netbsd", apple))] fn send(state: &UdpSocketState, io: SockRef<'_>, transmit: &Transmit<'_>) -> io::Result<()> { send_single(state, io, transmit) } #[cfg(any(target_os = "openbsd", target_os = "netbsd", apple))] -#[cfg_attr(apple_fast, allow(dead_code, reason = "unused when apple_fast is enabled"))] pub(crate) fn send_single(state: &UdpSocketState, io: SockRef<'_>, transmit: &Transmit<'_>) -> io::Result<()> { let mut hdr: libc::msghdr = unsafe { mem::zeroed() }; let mut iov: libc::iovec = unsafe { mem::zeroed() }; @@ -610,7 +538,6 @@ fn recv_via_recvmmsg(io: SockRef<'_>, bufs: &mut [IoSliceMut<'_>], meta: &mut [R solarish, apple ))] -#[cfg_attr(apple_fast, allow(dead_code, reason = "unused when apple_fast is enabled"))] pub(crate) fn recv_single(io: SockRef<'_>, bufs: &mut [IoSliceMut<'_>], meta: &mut [RecvMeta]) -> io::Result { let mut name = MaybeUninit::::uninit(); let mut ctrl = cmsg::Aligned(MaybeUninit::<[u8; cmsg::LEN]>::uninit()); @@ -628,7 +555,6 @@ pub(crate) fn recv_single(io: SockRef<'_>, bufs: &mut [IoSliceMut<'_>], meta: &m Ok(1) } -#[cfg_attr(apple_fast, allow(dead_code, reason = "unused when apple_fast is enabled"))] fn prepare_msg( transmit: &Transmit<'_>, dst_addr: &socket2::SockAddr, @@ -672,10 +598,6 @@ fn prepare_msg( encoder.push(libc::IPPROTO_IPV6, libc::IPV6_TCLASS, ecn); } - // On apple_fast, prepare_msg is only compiled for send_single (fallback path), while the main - // send path uses prepare_msg_x with msghdr_x. gso::set_segment_size has a different signature - // when apple_fast is enabled, and it's a no-op on non-Linux platforms anyway. - #[cfg(not(apple_fast))] if let Some(segment_size) = transmit.effective_segment_size() { gso::set_segment_size(&mut encoder, segment_size as u16); } @@ -720,7 +642,6 @@ fn prepare_msg( encoder.finish(); } -#[cfg_attr(apple_fast, allow(dead_code, reason = "unused when apple_fast is enabled"))] fn prepare_recv( buf: &mut IoSliceMut<'_>, name: &mut MaybeUninit, @@ -901,18 +822,13 @@ pub(crate) fn decode_socket_addr(name: &libc::sockaddr_storage) -> io::Result, - #[cfg(apple_fast)] _encoder: &mut cmsg::Encoder<'_, msghdr_x>, - _segment_size: u16, - ) { - } + pub(super) fn set_segment_size(_encoder: &mut cmsg::Encoder<'_, libc::msghdr>, _segment_size: u16) {} } #[cfg(target_os = "freebsd")] @@ -998,38 +908,6 @@ mod tests { use super::*; use std::{net::UdpSocket, sync::mpsc, thread}; - #[test] - #[cfg(apple_fast)] - fn missing_apple_fast_symbol_preserves_pending_segments() { - let sender = UdpSocket::bind((Ipv4Addr::LOCALHOST, 0)).unwrap(); - let receiver = UdpSocket::bind((Ipv4Addr::LOCALHOST, 0)).unwrap(); - receiver.set_read_timeout(Some(Duration::from_secs(5))).unwrap(); - let state = UdpSocketState::new((&sender).into()).unwrap(); - // No private API is called: force symbol resolution to fail before sending. - unsafe { state.set_apple_fast_path() }; - assert!(state.resolve_apple_fast_fn::<()>(|| None).is_none()); - assert!(!state.is_apple_fast_path_enabled()); - assert_eq!(state.max_gso_segments(), 1); - let contents = [1, 1, 1, 1, 2, 2, 2, 2, 3, 3]; - state - .try_send( - (&sender).into(), - &Transmit { - destination: receiver.local_addr().unwrap(), - ecn: None, - contents: &contents, - segment_size: Some(4), - src_ip: None, - }, - ) - .unwrap(); - let mut buffer = [0; 16]; - for expected in contents.chunks(4) { - let len = receiver.recv(&mut buffer).unwrap(); - assert_eq!(&buffer[..len], expected); - } - } - #[test] fn recv_single_after_truncation_returns_would_block_instead_of_spin() { let receiver = UdpSocket::bind((Ipv4Addr::LOCALHOST, 0)).unwrap(); diff --git a/rs/moq-sock/src/udp/wasi.rs b/rs/moq-sock/src/udp/wasi.rs deleted file mode 100644 index e6626357371..00000000000 --- a/rs/moq-sock/src/udp/wasi.rs +++ /dev/null @@ -1,101 +0,0 @@ -use std::{ - io::{self, IoSliceMut}, - mem::MaybeUninit, -}; - -use super::{RecvMeta, Transmit, UdpSockRef}; - -/// UDP socket interface for WASI -/// -/// `wasi:sockets` exposes none of this crate's advanced features, so they are stubbed out. -#[derive(Debug)] -pub struct UdpSocketState { - _private: (), -} - -impl UdpSocketState { - /// Sets `socket` non-blocking and returns its state; WASI has no offloads to configure. - pub fn new(socket: UdpSockRef<'_>) -> io::Result { - socket.set_nonblocking(true)?; - - Ok(Self { _private: () }) - } - - /// Sends a [`Transmit`] on the given socket without any additional error handling. - pub fn try_send(&self, socket: UdpSockRef<'_>, transmit: &Transmit<'_>) -> io::Result<()> { - send(socket, transmit) - } - - /// Receives datagrams into `bufs`, filling one [`RecvMeta`] per message, and returns how many messages arrived. - pub fn recv( - &self, - socket: UdpSockRef<'_>, - bufs: &mut [IoSliceMut<'_>], - meta: &mut [RecvMeta], - ) -> io::Result { - // `wasi:sockets` has no vectored receive, and `BATCH_SIZE` is 1 regardless. - // Safety: `MaybeUninit` shares the layout of `u8`, and `recv_from` writes only - // the prefix it reports as filled. - let buf = unsafe { &mut *(&mut *bufs[0] as *mut [u8] as *mut [MaybeUninit]) }; - let (len, addr) = socket.0.recv_from(buf)?; - meta[0] = RecvMeta { - len, - stride: len, - addr: addr.as_socket().unwrap(), - ecn: None, - dst_ip: None, - interface_index: None, - timestamp: None, - }; - Ok(1) - } - - #[inline] - pub fn max_gso_segments(&self) -> usize { - 1 - } - - #[inline] - pub fn gro_segments(&self) -> usize { - 1 - } - - /// Resize the send buffer of `socket` to `bytes` - #[inline] - pub fn set_send_buffer_size(&self, socket: UdpSockRef<'_>, bytes: usize) -> io::Result<()> { - socket.0.set_send_buffer_size(bytes) - } - - /// Resize the receive buffer of `socket` to `bytes` - #[inline] - pub fn set_recv_buffer_size(&self, socket: UdpSockRef<'_>, bytes: usize) -> io::Result<()> { - socket.0.set_recv_buffer_size(bytes) - } - - /// Get the size of the `socket` send buffer - #[inline] - pub fn send_buffer_size(&self, socket: UdpSockRef<'_>) -> io::Result { - socket.0.send_buffer_size() - } - - /// Get the size of the `socket` receive buffer - #[inline] - pub fn recv_buffer_size(&self, socket: UdpSockRef<'_>) -> io::Result { - socket.0.recv_buffer_size() - } - - /// Whether transmitted datagrams might get fragmented by the IP layer - #[inline] - pub fn may_fragment(&self) -> bool { - true - } -} - -fn send(socket: UdpSockRef<'_>, transmit: &Transmit<'_>) -> io::Result<()> { - socket - .0 - .send_to(transmit.contents, &socket2::SockAddr::from(transmit.destination))?; - Ok(()) -} - -pub(crate) const BATCH_SIZE: usize = 1; diff --git a/rs/moq-sock/src/udp/windows.rs b/rs/moq-sock/src/udp/windows.rs index 505b6edbab8..b6f99d1501b 100644 --- a/rs/moq-sock/src/udp/windows.rs +++ b/rs/moq-sock/src/udp/windows.rs @@ -127,28 +127,6 @@ impl UdpSocketState { }) } - /// Enable or disable receive offloading. - /// - /// Also referred to as UDP Receive Segment Coalescing Offload (URO) on Windows. - /// - /// - /// - /// Disabled by default on Windows due to . - pub fn set_gro(&self, socket: UdpSockRef<'_>, enable: bool) -> io::Result<()> { - set_socket_option( - &*socket.0, - WinSock::IPPROTO_UDP, - WinSock::UDP_RECV_MAX_COALESCED_SIZE, - match enable { - // u32 per - // https://learn.microsoft.com/en-us/windows/win32/winsock/ipproto-udp-socket-options. - // Choice of 2^16 - 1 inspired by msquic. - true => u16::MAX as u32, - false => 0, - }, - ) - } - /// Sends a [`Transmit`] on the given socket without any additional error handling. pub fn try_send(&self, socket: UdpSockRef<'_>, transmit: &Transmit<'_>) -> io::Result<()> { send(socket, transmit, self.ecn_v4_supported, self.ecn_v6_supported) diff --git a/rs/moq-sock/tests/udp/main.rs b/rs/moq-sock/tests/udp/main.rs index 30539463f45..846815f9faf 100644 --- a/rs/moq-sock/tests/udp/main.rs +++ b/rs/moq-sock/tests/udp/main.rs @@ -1,6 +1,6 @@ #[cfg(apple)] use std::io::{self, IoSlice}; -#[cfg(not(any(target_os = "openbsd", target_os = "netbsd", target_os = "wasi", solarish)))] +#[cfg(not(any(target_os = "openbsd", target_os = "netbsd", solarish)))] use std::net::{SocketAddr, SocketAddrV6}; #[cfg(apple)] use std::os::fd::AsRawFd; @@ -12,9 +12,7 @@ use std::{ slice, }; -#[cfg(not(target_os = "wasi"))] -use moq_sock::udp::EcnCodepoint; -use moq_sock::udp::{RecvMeta, Transmit, UdpSockRef, UdpSocketState}; +use moq_sock::udp::{EcnCodepoint, RecvMeta, Transmit, UdpSockRef, UdpSocketState}; #[cfg(apple)] use socket2::MsgHdr; use socket2::Socket; @@ -95,11 +93,6 @@ fn ipv4_source_address_override() { let recv = UdpSocket::bind((Ipv4Addr::LOCALHOST, 0)).unwrap(); recv.set_read_timeout(Some(std::time::Duration::from_secs(3))).unwrap(); let send_state = UdpSocketState::new((&send).into()).unwrap(); - #[cfg(apple_fast)] - // SAFETY: sendmsg_x is available on the macOS test host. - unsafe { - send_state.set_apple_fast_path(); - } UdpSockRef::from(&send).set_nonblocking(false).unwrap(); let contents = b"hello"; @@ -122,9 +115,7 @@ fn ipv4_source_address_override() { assert_eq!(source.ip(), src_ip); } -// The WASI backend sets no ECN codepoint and always reports `None`. #[test] -#[cfg(not(target_os = "wasi"))] fn ecn_v6() { let send = Socket::from(UdpSocket::bind((Ipv6Addr::LOCALHOST, 0)).unwrap()); let recv = Socket::from(UdpSocket::bind((Ipv6Addr::LOCALHOST, 0)).unwrap()); @@ -144,7 +135,7 @@ fn ecn_v6() { } #[test] -#[cfg(not(any(target_os = "openbsd", target_os = "netbsd", target_os = "wasi", solarish)))] +#[cfg(not(any(target_os = "openbsd", target_os = "netbsd", solarish)))] fn ecn_v4() { let send = Socket::from(UdpSocket::bind((Ipv4Addr::LOCALHOST, 0)).unwrap()); let recv = Socket::from(UdpSocket::bind((Ipv4Addr::LOCALHOST, 0)).unwrap()); @@ -164,7 +155,7 @@ fn ecn_v4() { } #[test] -#[cfg(not(any(target_os = "openbsd", target_os = "netbsd", target_os = "wasi", solarish)))] +#[cfg(not(any(target_os = "openbsd", target_os = "netbsd", solarish)))] fn ecn_v6_dualstack() { let recv = Socket::new( socket2::Domain::IPV6, @@ -208,7 +199,7 @@ fn ecn_v6_dualstack() { } #[test] -#[cfg(not(any(target_os = "openbsd", target_os = "netbsd", target_os = "wasi", solarish)))] +#[cfg(not(any(target_os = "openbsd", target_os = "netbsd", solarish)))] fn ecn_v4_mapped_v6() { let send = Socket::new( socket2::Domain::IPV6, @@ -554,98 +545,6 @@ fn ip_to_v6_mapped(x: IpAddr) -> IpAddr { } } -/// Test Apple fast datapath enable/disable functionality. -/// -/// This test verifies that: -/// 1. `max_gso_segments()` returns 1 by default (fast path disabled) -/// 2. After calling `set_apple_fast_path()`, `max_gso_segments()` returns `BATCH_SIZE` -/// 3. Send/recv still works correctly with the fast path enabled -#[test] -#[cfg(apple_fast)] -fn apple_fast_datapath() { - let send = UdpSocket::bind((Ipv4Addr::LOCALHOST, 0)).unwrap(); - let recv = UdpSocket::bind((Ipv4Addr::LOCALHOST, 0)).unwrap(); - let dst_addr = recv.local_addr().unwrap(); - - let send_state = UdpSocketState::new((&send).into()).unwrap(); - let recv_state = UdpSocketState::new((&recv).into()).unwrap(); - - // Initially, fast path should be disabled and max_gso_segments should be 1 - assert!( - !send_state.is_apple_fast_path_enabled(), - "fast path should be disabled initially" - ); - assert_eq!( - send_state.max_gso_segments(), - 1, - "max_gso_segments should be 1 before enabling fast path" - ); - - // Enable the fast path - // SAFETY: Assume that sendmsg_x/recvmsg_x are available on the macOS test host. - unsafe { - send_state.set_apple_fast_path(); - recv_state.set_apple_fast_path(); - } - - // After enabling, fast path should be enabled and max_gso_segments should be BATCH_SIZE - assert!( - send_state.is_apple_fast_path_enabled(), - "fast path should be enabled after calling set_apple_fast_path()" - ); - assert_eq!( - send_state.max_gso_segments(), - moq_sock::udp::BATCH_SIZE, - "max_gso_segments should be BATCH_SIZE after enabling fast path" - ); - - // Verify send/recv still works with fast path enabled - recv.set_nonblocking(false).unwrap(); - - const SEGMENT_SIZE: usize = 128; - let segments = send_state.max_gso_segments(); - let msg = vec![0xAB; SEGMENT_SIZE * segments]; - - send_state - .try_send( - (&send).into(), - &Transmit { - destination: dst_addr, - ecn: None, - contents: &msg, - segment_size: Some(SEGMENT_SIZE), - src_ip: None, - }, - ) - .unwrap(); - - // Receive all segments - let mut buf = [0u8; u16::MAX as usize]; - let mut total_received = 0; - while total_received < segments { - let mut meta = RecvMeta::default(); - let n = recv_state - .recv( - (&recv).into(), - &mut [IoSliceMut::new(&mut buf)], - slice::from_mut(&mut meta), - ) - .unwrap(); - assert_eq!(n, 1); - let received_segments = meta.len / meta.stride; - for i in 0..received_segments { - assert_eq!( - &buf[i * meta.stride..(i + 1) * meta.stride], - &msg[(total_received + i) * SEGMENT_SIZE..(total_received + i + 1) * SEGMENT_SIZE], - "segment {} content mismatch", - total_received + i - ); - } - total_received += received_segments; - } - assert_eq!(total_received, segments, "should receive all segments"); -} - #[test] #[cfg(apple)] fn sndbuf_cmsg_boundary() { @@ -672,21 +571,6 @@ fn sndbuf_cmsg_boundary() { assert_min_sndbuf_enforced(&state, &send, dst, clen); } -/// Asserts `UdpSocketState`'s `SO_SNDBUF` floor holds on `sendmsg_x`. -#[test] -#[cfg(apple_fast)] -fn sndbuf_cmsg_boundary_fast_path() { - let send = Socket::from(UdpSocket::bind((Ipv6Addr::LOCALHOST, 0)).unwrap()); - let recv = UdpSocket::bind((Ipv6Addr::LOCALHOST, 0)).unwrap(); - let dst = recv.local_addr().unwrap(); - send.set_nonblocking(true).unwrap(); - - let state = UdpSocketState::new((&send).into()).unwrap(); - // SAFETY: assumes sendmsg_x is available on the macOS test host. - unsafe { state.set_apple_fast_path() }; - assert_min_sndbuf_enforced(&state, &send, dst, tclass_cmsg_space()); -} - /// Asserts `UdpSocketState`'s `SO_SNDBUF` floor holds on `send`. #[cfg(apple)] fn assert_min_sndbuf_enforced(state: &UdpSocketState, send: &Socket, dst: SocketAddr, clen: usize) { diff --git a/rs/moq-tokio/src/server.rs b/rs/moq-tokio/src/server.rs index 0ab848a120f..19684b2fe11 100644 --- a/rs/moq-tokio/src/server.rs +++ b/rs/moq-tokio/src/server.rs @@ -472,31 +472,6 @@ impl Server { server.serve().await } - /// Accept sessions until the listener stops, ingesting each publisher into `origin`. - /// - /// The mirror of [`serve_publish`](Self::serve_publish) for the consume direction. - pub async fn serve_consume(self, origin: moq_net::origin::Producer) -> crate::Result<()> { - let mut server = self; - server.moq = server.moq.with_subscriber(origin); - server.serve().await - } - - /// Accept sessions until the listener stops, serving `publish` to each subscriber - /// and ingesting each publisher into `subscribe`. - /// - /// The both-directions counterpart of [`serve_publish`](Self::serve_publish) and - /// [`serve_consume`](Self::serve_consume), so an inbound session can subscribe to - /// the origin and publish into it over one connection. - pub async fn serve_both( - self, - publish: moq_net::origin::Consumer, - subscribe: moq_net::origin::Producer, - ) -> crate::Result<()> { - let mut server = self; - server.moq = server.moq.with_publisher(publish).with_subscriber(subscribe); - server.serve().await - } - /// Shared accept loop for the `serve_*` entry points; the origin is already /// attached. Private so a server can't be served with no direction at all, which /// would accept and handshake sessions that carry nothing. diff --git a/rs/moq-video/README.md b/rs/moq-video/README.md index eedd0e42709..06a7b37ac2f 100644 --- a/rs/moq-video/README.md +++ b/rs/moq-video/README.md @@ -196,13 +196,10 @@ it to take a GPU path for a representation you recognize, and fall back to is the mirror: free for a hardware-decoded frame, an upload for a CPU one. `Surface::into_i420()` returns typed pixels with size and color intact; `I420::into_data()` explicitly extracts the packed bytes. `Surface::to_rgba(config)` -and `Surface::to_bgra(config)` are the portable exits for CPU -image and UI toolkits, returning owned, tightly packed pixels with the surface's -color metadata applied. Both orders are there because toolkits disagree and the -conversion is a full pass over the frame: producing the order the caller wants -costs nothing extra, while producing the other one and swapping two channels -afterwards costs a second pass. They borrow the surface, so a frame held behind -an `Arc` shared with something else converts without being unwrapped first. +is the portable exit for CPU image and UI toolkits, returning owned, tightly +packed pixels with the surface's color metadata applied. It borrows the surface, +so a frame held behind an `Arc` shared with something else converts without +being unwrapped first. Backends are tried hardware-first, like encode: | Codec | Software | macOS | Windows | Linux | Android | diff --git a/rs/moq-video/src/convert.rs b/rs/moq-video/src/convert.rs index b9be6fee1fd..da33593dd07 100644 --- a/rs/moq-video/src/convert.rs +++ b/rs/moq-video/src/convert.rs @@ -1,16 +1,10 @@ //! CPU conversion of native video surfaces to packed pixels. //! -//! [`Surface::to_rgba`](crate::Surface::to_rgba) and -//! [`Surface::to_bgra`](crate::Surface::to_bgra) are the portable rendering exits: they -//! download a GPU surface when necessary, apply the surface's color space, and -//! return owned pixels for an image or UI toolkit. -//! -//! Both channel orders are here because toolkits disagree and the conversion is -//! a full pass over the frame. Producing the order the caller wants costs -//! nothing extra; producing the other one and swapping two channels afterwards -//! costs a second pass, which is what a consumer had to write before. +//! [`Surface::to_rgba`](crate::Surface::to_rgba) is the portable rendering exit: it +//! downloads a GPU surface when necessary, applies the surface's color space, and +//! returns owned pixels for an image or UI toolkit. -use yuv::{YuvPlanarImage, yuv420_to_bgra, yuv420_to_rgba}; +use yuv::{YuvPlanarImage, yuv420_to_rgba}; use crate::{Color, Error, Size, Surface}; @@ -86,94 +80,35 @@ impl Rgba { } } -/// Owned, tightly packed BGRA8 pixels in row-major order. -/// -/// The same bytes as [`Rgba`] with the red and blue channels exchanged. A -/// separate type rather than a flag, so a buffer in one order cannot be handed -/// to something expecting the other. -#[derive(Clone)] -pub struct Bgra { - size: Size, - stride: usize, - data: Vec, -} - -impl Bgra { - /// Image dimensions in pixels. - pub fn size(&self) -> Size { - self.size - } - - /// Image width in pixels. - pub fn width(&self) -> u32 { - self.size.width - } - - /// Image height in pixels. - pub fn height(&self) -> u32 { - self.size.height - } - - /// Bytes between adjacent rows, always `width * 4`. - pub fn stride(&self) -> usize { - self.stride - } - - /// Tightly packed BGRA8 pixels. - pub fn data(&self) -> &[u8] { - &self.data - } - - /// Consume the image and return its tightly packed BGRA8 pixels. - pub fn into_data(self) -> Vec { - self.data - } -} - -/// The geometry and pixels shared by both channel orders. -struct Packed { - size: Size, - stride: usize, - data: Vec, -} - -/// One `yuv` entry point, named so a failure can say which. -type Convert = - fn(&YuvPlanarImage<'_, u8>, &mut [u8], u32, yuv::YuvRange, yuv::YuvStandardMatrix) -> Result<(), yuv::YuvError>; - -/// Downloads `surface` if it is not already on the CPU and converts it through -/// `convert`. +/// Downloads `surface` if it is not already on the CPU and converts it to RGBA. /// /// By reference rather than by value: a caller often holds the surface behind /// an `Arc` it cannot unwrap, most obviously a publisher's preview frame, which /// is shared with every rendition's encoder and so never has a refcount of one. /// Nothing here needs to own the surface, and requiring it forced those callers /// into a full-resolution rescale purely to obtain pixels they already had. -fn packed(surface: &Surface, config: &Config, convert: Convert, name: &str) -> Result { +pub(crate) fn rgba(surface: &Surface, config: &Config) -> Result { let size = Size::new(surface.width(), surface.height()); let color = config .color .or_else(|| surface.color()) .unwrap_or_else(|| Color::infer(size)); let i420 = surface.to_i420()?; - let luma = usize::try_from(size.pixels()).map_err(|_| { - Error::codec(anyhow::anyhow!( - "{name} frame {size}: dimensions too large to represent" - )) - })?; + let luma = usize::try_from(size.pixels()) + .map_err(|_| Error::codec(anyhow::anyhow!("RGBA frame {size}: dimensions too large to represent")))?; let stride = size.width.checked_mul(4).ok_or_else(|| { Error::codec(anyhow::anyhow!( - "{name} frame {size}: row stride is too large to represent" + "RGBA frame {size}: row stride is too large to represent" )) })?; let stride_usize = usize::try_from(stride).map_err(|_| { Error::codec(anyhow::anyhow!( - "{name} frame {size}: row stride is too large to represent" + "RGBA frame {size}: row stride is too large to represent" )) })?; let len = stride_usize.checked_mul(size.height as usize).ok_or_else(|| { Error::codec(anyhow::anyhow!( - "{name} frame {size}: byte length is too large to represent" + "RGBA frame {size}: byte length is too large to represent" )) })?; let chroma = luma / 4; @@ -189,34 +124,16 @@ fn packed(surface: &Surface, config: &Config, convert: Convert, name: &str) -> R }; let mut data = vec![0; len]; let (range, matrix) = color.yuv(); - convert(&planar, &mut data, stride, range, matrix) - .map_err(|e| Error::codec(anyhow::anyhow!("{name} conversion failed for {size}: {e}")))?; + yuv420_to_rgba(&planar, &mut data, stride, range, matrix) + .map_err(|e| Error::codec(anyhow::anyhow!("RGBA conversion failed for {size}: {e}")))?; - Ok(Packed { + Ok(Rgba { size, stride: stride_usize, data, }) } -pub(crate) fn rgba(surface: &Surface, config: &Config) -> Result { - let packed = packed(surface, config, yuv420_to_rgba, "RGBA")?; - Ok(Rgba { - size: packed.size, - stride: packed.stride, - data: packed.data, - }) -} - -pub(crate) fn bgra(surface: &Surface, config: &Config) -> Result { - let packed = packed(surface, config, yuv420_to_bgra, "BGRA")?; - Ok(Bgra { - size: packed.size, - stride: packed.stride, - data: packed.data, - }) -} - #[cfg(test)] mod tests { use super::*; @@ -254,38 +171,4 @@ mod tests { assert_eq!(image.stride(), size.width as usize * 4); assert_eq!(image.data().len(), image.stride() * size.height as usize); } - - /// The point of shipping BGRA rather than leaving consumers to swap the - /// channels: the two orders are the same conversion, so they have to agree - /// pixel for pixel with red and blue exchanged. A consumer doing the swap - /// itself re-derives the color handling this crate already does, and gets it - /// wrong for anything that is not a grayscale test pattern. - #[test] - fn bgra_is_rgba_with_red_and_blue_exchanged() { - let size = Size::new(64, 64); - // Saturated rather than gray, or a transposed matrix would still pass. - let source = [200u8, 40, 90, 255].repeat(size.pixels() as usize); - let i420 = I420::from_rgba(&source, size.width * 4, size).unwrap(); - let surface = Surface::I420(i420); - - let as_rgba = rgba(&surface, &Config::default()).unwrap(); - let as_bgra = bgra(&surface, &Config::default()).unwrap(); - - assert_eq!(as_bgra.size(), as_rgba.size()); - assert_eq!(as_bgra.stride(), as_rgba.stride()); - for (index, (rgba, bgra)) in as_rgba - .data() - .as_chunks::<4>() - .0 - .iter() - .zip(as_bgra.data().as_chunks::<4>().0.iter()) - .enumerate() - { - assert_eq!( - [bgra[0], bgra[1], bgra[2], bgra[3]], - [rgba[2], rgba[1], rgba[0], rgba[3]], - "pixel {index}: {bgra:?} is not {rgba:?} with red and blue exchanged", - ); - } - } } diff --git a/rs/moq-video/src/frame.rs b/rs/moq-video/src/frame.rs index 2587e904fe6..b97bf16764b 100644 --- a/rs/moq-video/src/frame.rs +++ b/rs/moq-video/src/frame.rs @@ -660,17 +660,6 @@ impl Surface { crate::convert::rgba(self, config) } - /// Convert to owned, tightly packed BGRA8 pixels on the CPU. - /// - /// The same conversion as [`to_rgba`](Self::to_rgba) with red and blue - /// exchanged. Reach for it when the destination wants that order, which is - /// most of them: GPUI's `RenderImage`, Direct2D, and Win32 generally. Doing - /// it here is one pass over the frame; converting to RGBA and swapping the - /// channels afterwards is two. - pub fn to_bgra(&self, config: &crate::convert::Config) -> Result { - crate::convert::bgra(self, config) - } - /// The pixels as a CoreVideo pixel buffer, the mirror of /// [`into_i420`](Self::into_i420) pointing the other way. /// diff --git a/sh/gh/nightly.sh b/sh/gh/nightly.sh index b79053c4e52..b14b9603359 100755 --- a/sh/gh/nightly.sh +++ b/sh/gh/nightly.sh @@ -167,7 +167,6 @@ case "$1" in javascript qmux-record just js qmux-record-bench javascript qmux-datagrams just js qmux-datagrams-bench javascript cmaf just js cmaf-bench - javascript arrivals just js arrivals-bench javascript p2p just js p2p-bench javascript e2ee just js e2ee-bench javascript json-stream just js json-stream-bench diff --git a/sh/rs/select.sh b/sh/rs/select.sh index 9952e05fa48..e9206e915e5 100755 --- a/sh/rs/select.sh +++ b/sh/rs/select.sh @@ -251,10 +251,6 @@ case "$action" in # outside the selection; a change to anything they reach selects # moq-cli anyway. if wants moq-cli; then flags+=(--features "moq-cli/play moq-cli/capture moq-cli/pipewire moq-cli/pulseaudio"); fi - # Apple UDP batching is opt-in; compile its implementation and tests on macOS. - if [[ "$(uname -s)" == Darwin ]] && wants moq-sock; then - flags+=(--features moq-sock/fast-apple-datapath) - fi cargo check --locked "${flags[@]}" --all-targets ;; *)