oximg 0.4.3

High-performance image compression: library, CLI, and self-hostable server (PoC).
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
/* automatically generated by rust-bindgen 0.72.1 */

pub const SVT_AV1_VERSION_MAJOR: u32 = 4;
pub const SVT_AV1_VERSION_MINOR: u32 = 1;
pub const SVT_AV1_VERSION_PATCHLEVEL: u32 = 0;
pub const EB_MAX_NUM_OPERATING_POINTS: u32 = 32;
pub const EB_MAX_TEMPORAL_LAYERS: u32 = 6;
pub const SVT_AV1_ENC_ABI_VERSION: u32 = 0;
pub const EB_BUFFERFLAG_EOS: u32 = 1;
pub const EB_BUFFERFLAG_SHOW_EXT: u32 = 2;
pub const EB_BUFFERFLAG_HAS_TD: u32 = 4;
pub const EB_BUFFERFLAG_IS_ALT_REF: u32 = 8;
pub const EB_BUFFERFLAG_ERROR_MASK: u32 = 4294967280;
pub mod EbColorPrimaries {
    #[doc = "\\brief List of supported color primaries"]
    pub type Type = ::std::os::raw::c_uint;
    #[doc = "< For future use"]
    pub const EB_CICP_CP_RESERVED_0: Type = 0;
    #[doc = "< BT.709"]
    pub const EB_CICP_CP_BT_709: Type = 1;
    #[doc = "< Unspecified"]
    pub const EB_CICP_CP_UNSPECIFIED: Type = 2;
    #[doc = "< For future use"]
    pub const EB_CICP_CP_RESERVED_3: Type = 3;
    #[doc = "< BT.470 System M (historical)"]
    pub const EB_CICP_CP_BT_470_M: Type = 4;
    #[doc = "< BT.470 System B, G (historical)"]
    pub const EB_CICP_CP_BT_470_B_G: Type = 5;
    #[doc = "< BT.601"]
    pub const EB_CICP_CP_BT_601: Type = 6;
    #[doc = "< SMPTE 240"]
    pub const EB_CICP_CP_SMPTE_240: Type = 7;
    #[doc = "< Generic film (color filters using illuminant C)"]
    pub const EB_CICP_CP_GENERIC_FILM: Type = 8;
    #[doc = "< BT.2020, BT.2100"]
    pub const EB_CICP_CP_BT_2020: Type = 9;
    #[doc = "< SMPTE 428 (CIE 1921 XYZ)"]
    pub const EB_CICP_CP_XYZ: Type = 10;
    #[doc = "< SMPTE RP 431-2"]
    pub const EB_CICP_CP_SMPTE_431: Type = 11;
    #[doc = "< SMPTE EG 432-1"]
    pub const EB_CICP_CP_SMPTE_432: Type = 12;
    #[doc = "< For future use (values 13 - 21)"]
    pub const EB_CICP_CP_RESERVED_13: Type = 13;
    #[doc = "< EBU Tech. 3213-E"]
    pub const EB_CICP_CP_EBU_3213: Type = 22;
    #[doc = "< For future use (values 23 - 255)"]
    pub const EB_CICP_CP_RESERVED_23: Type = 23;
    #[doc = "< For future use (values 24 - 255)"]
    pub const EB_CICP_CP_RESERVED_24: Type = 24;
    #[doc = "< For future use (values 25 - 255)"]
    pub const EB_CICP_CP_RESERVED_25: Type = 25;
    #[doc = "< For future use (values 26 - 255)"]
    pub const EB_CICP_CP_RESERVED_26: Type = 26;
}
pub mod EbTransferCharacteristics {
    #[doc = "\\brief List of supported transfer functions"]
    pub type Type = ::std::os::raw::c_uint;
    #[doc = "< For future use"]
    pub const EB_CICP_TC_RESERVED_0: Type = 0;
    #[doc = "< BT.709"]
    pub const EB_CICP_TC_BT_709: Type = 1;
    #[doc = "< Unspecified"]
    pub const EB_CICP_TC_UNSPECIFIED: Type = 2;
    #[doc = "< For future use"]
    pub const EB_CICP_TC_RESERVED_3: Type = 3;
    #[doc = "< BT.470 System M (historical)"]
    pub const EB_CICP_TC_BT_470_M: Type = 4;
    #[doc = "< BT.470 System B, G (historical)"]
    pub const EB_CICP_TC_BT_470_B_G: Type = 5;
    #[doc = "< BT.601"]
    pub const EB_CICP_TC_BT_601: Type = 6;
    #[doc = "< SMPTE 240 M"]
    pub const EB_CICP_TC_SMPTE_240: Type = 7;
    #[doc = "< Linear"]
    pub const EB_CICP_TC_LINEAR: Type = 8;
    #[doc = "< Logarithmic (100 : 1 range)"]
    pub const EB_CICP_TC_LOG_100: Type = 9;
    #[doc = "< Logarithmic (100 * Sqrt(10) : 1 range)"]
    pub const EB_CICP_TC_LOG_100_SQRT10: Type = 10;
    #[doc = "< IEC 61966-2-4"]
    pub const EB_CICP_TC_IEC_61966: Type = 11;
    #[doc = "< BT.1361"]
    pub const EB_CICP_TC_BT_1361: Type = 12;
    #[doc = "< sRGB or sYCC"]
    pub const EB_CICP_TC_SRGB: Type = 13;
    #[doc = "< BT.2020 10-bit systems"]
    pub const EB_CICP_TC_BT_2020_10_BIT: Type = 14;
    #[doc = "< BT.2020 12-bit systems"]
    pub const EB_CICP_TC_BT_2020_12_BIT: Type = 15;
    #[doc = "< SMPTE ST 2084, ITU BT.2100 PQ"]
    pub const EB_CICP_TC_SMPTE_2084: Type = 16;
    #[doc = "< SMPTE ST 428"]
    pub const EB_CICP_TC_SMPTE_428: Type = 17;
    #[doc = "< BT.2100 HLG, ARIB STD-B67"]
    pub const EB_CICP_TC_HLG: Type = 18;
    #[doc = "< For future use (values 19-255)"]
    pub const EB_CICP_TC_RESERVED_19: Type = 19;
    #[doc = "< For future use (values 20-255)"]
    pub const EB_CICP_TC_RESERVED_20: Type = 20;
    #[doc = "< For future use (values 21-255)"]
    pub const EB_CICP_TC_RESERVED_21: Type = 21;
    #[doc = "< For future use (values 22-255)"]
    pub const EB_CICP_TC_RESERVED_22: Type = 22;
    #[doc = "< For future use (values 23-255)"]
    pub const EB_CICP_TC_RESERVED_23: Type = 23;
}
pub mod EbMatrixCoefficients {
    #[doc = "\\brief List of supported matrix coefficients"]
    pub type Type = ::std::os::raw::c_uint;
    #[doc = "< Identity matrix"]
    pub const EB_CICP_MC_IDENTITY: Type = 0;
    #[doc = "< BT.709"]
    pub const EB_CICP_MC_BT_709: Type = 1;
    #[doc = "< Unspecified"]
    pub const EB_CICP_MC_UNSPECIFIED: Type = 2;
    #[doc = "< For future use"]
    pub const EB_CICP_MC_RESERVED_3: Type = 3;
    #[doc = "< US FCC 73.628"]
    pub const EB_CICP_MC_FCC: Type = 4;
    #[doc = "< BT.470 System B, G (historical)"]
    pub const EB_CICP_MC_BT_470_B_G: Type = 5;
    #[doc = "< BT.601"]
    pub const EB_CICP_MC_BT_601: Type = 6;
    #[doc = "< SMPTE 240 M"]
    pub const EB_CICP_MC_SMPTE_240: Type = 7;
    #[doc = "< YCgCo"]
    pub const EB_CICP_MC_SMPTE_YCGCO: Type = 8;
    #[doc = "< BT.2020 non-constant luminance, BT.2100 YCbCr"]
    pub const EB_CICP_MC_BT_2020_NCL: Type = 9;
    #[doc = "< BT.2020 constant luminance"]
    pub const EB_CICP_MC_BT_2020_CL: Type = 10;
    #[doc = "< SMPTE ST 2085 YDzDx"]
    pub const EB_CICP_MC_SMPTE_2085: Type = 11;
    #[doc = "< Chromaticity-derived non-constant luminance"]
    pub const EB_CICP_MC_CHROMAT_NCL: Type = 12;
    #[doc = "< Chromaticity-derived constant luminance"]
    pub const EB_CICP_MC_CHROMAT_CL: Type = 13;
    #[doc = "< BT.2100 ICtCp"]
    pub const EB_CICP_MC_ICTCP: Type = 14;
    #[doc = "< For future use (values 15-255)"]
    pub const EB_CICP_MC_RESERVED_15: Type = 15;
    #[doc = "< For future use (values 16-255)"]
    pub const EB_CICP_MC_RESERVED_16: Type = 16;
    #[doc = "< For future use (values 17-255)"]
    pub const EB_CICP_MC_RESERVED_17: Type = 17;
    #[doc = "< For future use (values 18-255)"]
    pub const EB_CICP_MC_RESERVED_18: Type = 18;
}
pub mod EbColorRange {
    #[doc = "\\brief List of supported color range"]
    pub type Type = ::std::os::raw::c_uint;
    #[doc = "< Y [16..235], UV [16..240]"]
    pub const EB_CR_STUDIO_RANGE: Type = 0;
    #[doc = "< YUV/RGB [0..255]"]
    pub const EB_CR_FULL_RANGE: Type = 1;
}
pub mod EbBitDepth {
    pub type Type = ::std::os::raw::c_uint;
    pub const EB_EIGHT_BIT: Type = 8;
    pub const EB_TEN_BIT: Type = 10;
    pub const EB_TWELVE_BIT: Type = 12;
    pub const EB_SIXTEEN_BIT: Type = 16;
    pub const EB_THIRTYTWO_BIT: Type = 32;
}
pub mod EbColorFormat {
    pub type Type = ::std::os::raw::c_uint;
    pub const EB_YUV400: Type = 0;
    pub const EB_YUV420: Type = 1;
    pub const EB_YUV422: Type = 2;
    pub const EB_YUV444: Type = 3;
}
pub mod EbChromaSamplePosition {
    #[doc = "\\brief List of chroma sample positions"]
    pub type Type = ::std::os::raw::c_uint;
    #[doc = "< Unknown"]
    pub const EB_CSP_UNKNOWN: Type = 0;
    #[doc = "< Horizontally co-located with luma(0, 0)*/\n/**< sample, between two vertical samples"]
    pub const EB_CSP_VERTICAL: Type = 1;
    #[doc = "< Co-located with luma(0, 0) sample"]
    pub const EB_CSP_COLOCATED: Type = 2;
    #[doc = "< Reserved value"]
    pub const EB_CSP_RESERVED: Type = 3;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SvtMetadataArray {
    _unused: [u8; 0],
}
pub mod EbAv1PictureType {
    pub type Type = ::std::os::raw::c_uint;
    pub const EB_AV1_INTER_PICTURE: Type = 0;
    pub const EB_AV1_ALT_REF_PICTURE: Type = 1;
    pub const EB_AV1_INTRA_ONLY_PICTURE: Type = 2;
    pub const EB_AV1_KEY_PICTURE: Type = 3;
    pub const EB_AV1_NON_REF_PICTURE: Type = 4;
    pub const EB_AV1_SHOW_EXISTING_PICTURE: Type = 6;
    pub const EB_AV1_FW_KEY_PICTURE: Type = 5;
    pub const EB_AV1_SWITCH_PICTURE: Type = 7;
    pub const EB_AV1_INVALID_PICTURE: Type = 255;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct EbBufferHeaderType {
    pub size: u32,
    pub p_buffer: *mut u8,
    pub n_filled_len: u32,
    pub n_alloc_len: u32,
    pub p_app_private: *mut ::std::os::raw::c_void,
    pub wrapper_ptr: *mut ::std::os::raw::c_void,
    pub n_tick_count: u32,
    pub dts: i64,
    pub pts: i64,
    pub temporal_layer_index: u8,
    pub qp: u32,
    pub avg_qp: u32,
    pub pic_type: EbAv1PictureType::Type,
    pub luma_sse: u64,
    pub cr_sse: u64,
    pub cb_sse: u64,
    pub flags: u32,
    pub luma_ssim: f64,
    pub cr_ssim: f64,
    pub cb_ssim: f64,
    pub metadata: *mut SvtMetadataArray,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of EbBufferHeaderType"][::std::mem::size_of::<EbBufferHeaderType>() - 144usize];
    ["Alignment of EbBufferHeaderType"][::std::mem::align_of::<EbBufferHeaderType>() - 8usize];
    ["Offset of field: EbBufferHeaderType::size"]
        [::std::mem::offset_of!(EbBufferHeaderType, size) - 0usize];
    ["Offset of field: EbBufferHeaderType::p_buffer"]
        [::std::mem::offset_of!(EbBufferHeaderType, p_buffer) - 8usize];
    ["Offset of field: EbBufferHeaderType::n_filled_len"]
        [::std::mem::offset_of!(EbBufferHeaderType, n_filled_len) - 16usize];
    ["Offset of field: EbBufferHeaderType::n_alloc_len"]
        [::std::mem::offset_of!(EbBufferHeaderType, n_alloc_len) - 20usize];
    ["Offset of field: EbBufferHeaderType::p_app_private"]
        [::std::mem::offset_of!(EbBufferHeaderType, p_app_private) - 24usize];
    ["Offset of field: EbBufferHeaderType::wrapper_ptr"]
        [::std::mem::offset_of!(EbBufferHeaderType, wrapper_ptr) - 32usize];
    ["Offset of field: EbBufferHeaderType::n_tick_count"]
        [::std::mem::offset_of!(EbBufferHeaderType, n_tick_count) - 40usize];
    ["Offset of field: EbBufferHeaderType::dts"]
        [::std::mem::offset_of!(EbBufferHeaderType, dts) - 48usize];
    ["Offset of field: EbBufferHeaderType::pts"]
        [::std::mem::offset_of!(EbBufferHeaderType, pts) - 56usize];
    ["Offset of field: EbBufferHeaderType::temporal_layer_index"]
        [::std::mem::offset_of!(EbBufferHeaderType, temporal_layer_index) - 64usize];
    ["Offset of field: EbBufferHeaderType::qp"]
        [::std::mem::offset_of!(EbBufferHeaderType, qp) - 68usize];
    ["Offset of field: EbBufferHeaderType::avg_qp"]
        [::std::mem::offset_of!(EbBufferHeaderType, avg_qp) - 72usize];
    ["Offset of field: EbBufferHeaderType::pic_type"]
        [::std::mem::offset_of!(EbBufferHeaderType, pic_type) - 76usize];
    ["Offset of field: EbBufferHeaderType::luma_sse"]
        [::std::mem::offset_of!(EbBufferHeaderType, luma_sse) - 80usize];
    ["Offset of field: EbBufferHeaderType::cr_sse"]
        [::std::mem::offset_of!(EbBufferHeaderType, cr_sse) - 88usize];
    ["Offset of field: EbBufferHeaderType::cb_sse"]
        [::std::mem::offset_of!(EbBufferHeaderType, cb_sse) - 96usize];
    ["Offset of field: EbBufferHeaderType::flags"]
        [::std::mem::offset_of!(EbBufferHeaderType, flags) - 104usize];
    ["Offset of field: EbBufferHeaderType::luma_ssim"]
        [::std::mem::offset_of!(EbBufferHeaderType, luma_ssim) - 112usize];
    ["Offset of field: EbBufferHeaderType::cr_ssim"]
        [::std::mem::offset_of!(EbBufferHeaderType, cr_ssim) - 120usize];
    ["Offset of field: EbBufferHeaderType::cb_ssim"]
        [::std::mem::offset_of!(EbBufferHeaderType, cb_ssim) - 128usize];
    ["Offset of field: EbBufferHeaderType::metadata"]
        [::std::mem::offset_of!(EbBufferHeaderType, metadata) - 136usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct EbComponentType {
    pub size: u32,
    pub p_component_private: *mut ::std::os::raw::c_void,
    pub p_application_private: *mut ::std::os::raw::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of EbComponentType"][::std::mem::size_of::<EbComponentType>() - 24usize];
    ["Alignment of EbComponentType"][::std::mem::align_of::<EbComponentType>() - 8usize];
    ["Offset of field: EbComponentType::size"]
        [::std::mem::offset_of!(EbComponentType, size) - 0usize];
    ["Offset of field: EbComponentType::p_component_private"]
        [::std::mem::offset_of!(EbComponentType, p_component_private) - 8usize];
    ["Offset of field: EbComponentType::p_application_private"]
        [::std::mem::offset_of!(EbComponentType, p_application_private) - 16usize];
};
pub mod EbErrorType {
    pub type Type = ::std::os::raw::c_int;
    pub const EB_ErrorNone: Type = 0;
    pub const EB_DecUnsupportedBitstream: Type = 1073745920;
    pub const EB_DecNoOutputPicture: Type = 1073745924;
    pub const EB_DecDecodingError: Type = 1073745928;
    pub const EB_Corrupt_Frame: Type = 1073745932;
    pub const EB_ErrorInsufficientResources: Type = -2147479552;
    pub const EB_ErrorUndefined: Type = -2147479551;
    pub const EB_ErrorInvalidComponent: Type = -2147479548;
    pub const EB_ErrorBadParameter: Type = -2147479547;
    pub const EB_ErrorDestroyThreadFailed: Type = -2147475438;
    pub const EB_ErrorSemaphoreUnresponsive: Type = -2147475423;
    pub const EB_ErrorDestroySemaphoreFailed: Type = -2147475422;
    pub const EB_ErrorCreateMutexFailed: Type = -2147475408;
    pub const EB_ErrorMutexUnresponsive: Type = -2147475407;
    pub const EB_ErrorDestroyMutexFailed: Type = -2147475406;
    pub const EB_NoErrorEmptyQueue: Type = -2147475405;
    pub const EB_NoErrorFifoShutdown: Type = -2147475404;
    pub const EB_ErrorMax: Type = 2147483647;
}
pub mod EbAv1SeqProfile {
    pub type Type = ::std::os::raw::c_uint;
    pub const MAIN_PROFILE: Type = 0;
    pub const HIGH_PROFILE: Type = 1;
    pub const PROFESSIONAL_PROFILE: Type = 2;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct EbSvtIOFormat {
    pub luma: *mut u8,
    pub cb: *mut u8,
    pub cr: *mut u8,
    pub y_stride: u32,
    pub cr_stride: u32,
    pub cb_stride: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of EbSvtIOFormat"][::std::mem::size_of::<EbSvtIOFormat>() - 40usize];
    ["Alignment of EbSvtIOFormat"][::std::mem::align_of::<EbSvtIOFormat>() - 8usize];
    ["Offset of field: EbSvtIOFormat::luma"][::std::mem::offset_of!(EbSvtIOFormat, luma) - 0usize];
    ["Offset of field: EbSvtIOFormat::cb"][::std::mem::offset_of!(EbSvtIOFormat, cb) - 8usize];
    ["Offset of field: EbSvtIOFormat::cr"][::std::mem::offset_of!(EbSvtIOFormat, cr) - 16usize];
    ["Offset of field: EbSvtIOFormat::y_stride"]
        [::std::mem::offset_of!(EbSvtIOFormat, y_stride) - 24usize];
    ["Offset of field: EbSvtIOFormat::cr_stride"]
        [::std::mem::offset_of!(EbSvtIOFormat, cr_stride) - 28usize];
    ["Offset of field: EbSvtIOFormat::cb_stride"]
        [::std::mem::offset_of!(EbSvtIOFormat, cb_stride) - 32usize];
};
#[doc = "\\brief Structure containing film grain synthesis parameters for a frame\n\n This structure contains input parameters for film grain synthesis"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AomFilmGrain {
    pub apply_grain: i32,
    pub update_parameters: i32,
    pub scaling_points_y: [[i32; 2usize]; 14usize],
    pub num_y_points: i32,
    pub scaling_points_cb: [[i32; 2usize]; 10usize],
    pub num_cb_points: i32,
    pub scaling_points_cr: [[i32; 2usize]; 10usize],
    pub num_cr_points: i32,
    pub scaling_shift: i32,
    pub ar_coeff_lag: i32,
    pub ar_coeffs_y: [i32; 24usize],
    pub ar_coeffs_cb: [i32; 25usize],
    pub ar_coeffs_cr: [i32; 25usize],
    pub ar_coeff_shift: i32,
    pub cb_mult: i32,
    pub cb_luma_mult: i32,
    pub cb_offset: i32,
    pub cr_mult: i32,
    pub cr_luma_mult: i32,
    pub cr_offset: i32,
    pub overlap_flag: i32,
    pub clip_to_restricted_range: i32,
    pub bit_depth: i32,
    pub chroma_scaling_from_luma: i32,
    pub grain_scale_shift: i32,
    pub random_seed: u16,
    pub ignore_ref: i32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of AomFilmGrain"][::std::mem::size_of::<AomFilmGrain>() - 652usize];
    ["Alignment of AomFilmGrain"][::std::mem::align_of::<AomFilmGrain>() - 4usize];
    ["Offset of field: AomFilmGrain::apply_grain"]
        [::std::mem::offset_of!(AomFilmGrain, apply_grain) - 0usize];
    ["Offset of field: AomFilmGrain::update_parameters"]
        [::std::mem::offset_of!(AomFilmGrain, update_parameters) - 4usize];
    ["Offset of field: AomFilmGrain::scaling_points_y"]
        [::std::mem::offset_of!(AomFilmGrain, scaling_points_y) - 8usize];
    ["Offset of field: AomFilmGrain::num_y_points"]
        [::std::mem::offset_of!(AomFilmGrain, num_y_points) - 120usize];
    ["Offset of field: AomFilmGrain::scaling_points_cb"]
        [::std::mem::offset_of!(AomFilmGrain, scaling_points_cb) - 124usize];
    ["Offset of field: AomFilmGrain::num_cb_points"]
        [::std::mem::offset_of!(AomFilmGrain, num_cb_points) - 204usize];
    ["Offset of field: AomFilmGrain::scaling_points_cr"]
        [::std::mem::offset_of!(AomFilmGrain, scaling_points_cr) - 208usize];
    ["Offset of field: AomFilmGrain::num_cr_points"]
        [::std::mem::offset_of!(AomFilmGrain, num_cr_points) - 288usize];
    ["Offset of field: AomFilmGrain::scaling_shift"]
        [::std::mem::offset_of!(AomFilmGrain, scaling_shift) - 292usize];
    ["Offset of field: AomFilmGrain::ar_coeff_lag"]
        [::std::mem::offset_of!(AomFilmGrain, ar_coeff_lag) - 296usize];
    ["Offset of field: AomFilmGrain::ar_coeffs_y"]
        [::std::mem::offset_of!(AomFilmGrain, ar_coeffs_y) - 300usize];
    ["Offset of field: AomFilmGrain::ar_coeffs_cb"]
        [::std::mem::offset_of!(AomFilmGrain, ar_coeffs_cb) - 396usize];
    ["Offset of field: AomFilmGrain::ar_coeffs_cr"]
        [::std::mem::offset_of!(AomFilmGrain, ar_coeffs_cr) - 496usize];
    ["Offset of field: AomFilmGrain::ar_coeff_shift"]
        [::std::mem::offset_of!(AomFilmGrain, ar_coeff_shift) - 596usize];
    ["Offset of field: AomFilmGrain::cb_mult"]
        [::std::mem::offset_of!(AomFilmGrain, cb_mult) - 600usize];
    ["Offset of field: AomFilmGrain::cb_luma_mult"]
        [::std::mem::offset_of!(AomFilmGrain, cb_luma_mult) - 604usize];
    ["Offset of field: AomFilmGrain::cb_offset"]
        [::std::mem::offset_of!(AomFilmGrain, cb_offset) - 608usize];
    ["Offset of field: AomFilmGrain::cr_mult"]
        [::std::mem::offset_of!(AomFilmGrain, cr_mult) - 612usize];
    ["Offset of field: AomFilmGrain::cr_luma_mult"]
        [::std::mem::offset_of!(AomFilmGrain, cr_luma_mult) - 616usize];
    ["Offset of field: AomFilmGrain::cr_offset"]
        [::std::mem::offset_of!(AomFilmGrain, cr_offset) - 620usize];
    ["Offset of field: AomFilmGrain::overlap_flag"]
        [::std::mem::offset_of!(AomFilmGrain, overlap_flag) - 624usize];
    ["Offset of field: AomFilmGrain::clip_to_restricted_range"]
        [::std::mem::offset_of!(AomFilmGrain, clip_to_restricted_range) - 628usize];
    ["Offset of field: AomFilmGrain::bit_depth"]
        [::std::mem::offset_of!(AomFilmGrain, bit_depth) - 632usize];
    ["Offset of field: AomFilmGrain::chroma_scaling_from_luma"]
        [::std::mem::offset_of!(AomFilmGrain, chroma_scaling_from_luma) - 636usize];
    ["Offset of field: AomFilmGrain::grain_scale_shift"]
        [::std::mem::offset_of!(AomFilmGrain, grain_scale_shift) - 640usize];
    ["Offset of field: AomFilmGrain::random_seed"]
        [::std::mem::offset_of!(AomFilmGrain, random_seed) - 644usize];
    ["Offset of field: AomFilmGrain::ignore_ref"]
        [::std::mem::offset_of!(AomFilmGrain, ignore_ref) - 648usize];
};
#[doc = "CPU FLAGS"]
pub type EbCpuFlags = u64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct EbContentLightLevel {
    pub max_cll: u16,
    pub max_fall: u16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of EbContentLightLevel"][::std::mem::size_of::<EbContentLightLevel>() - 4usize];
    ["Alignment of EbContentLightLevel"][::std::mem::align_of::<EbContentLightLevel>() - 2usize];
    ["Offset of field: EbContentLightLevel::max_cll"]
        [::std::mem::offset_of!(EbContentLightLevel, max_cll) - 0usize];
    ["Offset of field: EbContentLightLevel::max_fall"]
        [::std::mem::offset_of!(EbContentLightLevel, max_fall) - 2usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct EbSvtAv1ChromaPoints {
    pub x: u16,
    pub y: u16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of EbSvtAv1ChromaPoints"][::std::mem::size_of::<EbSvtAv1ChromaPoints>() - 4usize];
    ["Alignment of EbSvtAv1ChromaPoints"][::std::mem::align_of::<EbSvtAv1ChromaPoints>() - 2usize];
    ["Offset of field: EbSvtAv1ChromaPoints::x"]
        [::std::mem::offset_of!(EbSvtAv1ChromaPoints, x) - 0usize];
    ["Offset of field: EbSvtAv1ChromaPoints::y"]
        [::std::mem::offset_of!(EbSvtAv1ChromaPoints, y) - 2usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct EbSvtAv1MasteringDisplayInfo {
    pub r: EbSvtAv1ChromaPoints,
    pub g: EbSvtAv1ChromaPoints,
    pub b: EbSvtAv1ChromaPoints,
    pub white_point: EbSvtAv1ChromaPoints,
    pub max_luma: u32,
    pub min_luma: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of EbSvtAv1MasteringDisplayInfo"]
        [::std::mem::size_of::<EbSvtAv1MasteringDisplayInfo>() - 24usize];
    ["Alignment of EbSvtAv1MasteringDisplayInfo"]
        [::std::mem::align_of::<EbSvtAv1MasteringDisplayInfo>() - 4usize];
    ["Offset of field: EbSvtAv1MasteringDisplayInfo::r"]
        [::std::mem::offset_of!(EbSvtAv1MasteringDisplayInfo, r) - 0usize];
    ["Offset of field: EbSvtAv1MasteringDisplayInfo::g"]
        [::std::mem::offset_of!(EbSvtAv1MasteringDisplayInfo, g) - 4usize];
    ["Offset of field: EbSvtAv1MasteringDisplayInfo::b"]
        [::std::mem::offset_of!(EbSvtAv1MasteringDisplayInfo, b) - 8usize];
    ["Offset of field: EbSvtAv1MasteringDisplayInfo::white_point"]
        [::std::mem::offset_of!(EbSvtAv1MasteringDisplayInfo, white_point) - 12usize];
    ["Offset of field: EbSvtAv1MasteringDisplayInfo::max_luma"]
        [::std::mem::offset_of!(EbSvtAv1MasteringDisplayInfo, max_luma) - 16usize];
    ["Offset of field: EbSvtAv1MasteringDisplayInfo::min_luma"]
        [::std::mem::offset_of!(EbSvtAv1MasteringDisplayInfo, min_luma) - 20usize];
};
pub mod PredStructure {
    pub type Type = ::std::os::raw::c_uint;
    pub const ALL_INTRA: Type = 0;
    pub const LOW_DELAY: Type = 1;
    pub const RANDOM_ACCESS: Type = 2;
    pub const PRED_TOTAL_COUNT: Type = 3;
    pub const PRED_INVALID: Type = 255;
}
pub mod SvtAv1IntraRefreshType {
    #[doc = " The SvtAv1IntraRefreshType is used to describe the intra refresh type."]
    pub type Type = ::std::os::raw::c_uint;
    pub const SVT_AV1_FWDKF_REFRESH: Type = 1;
    pub const SVT_AV1_KF_REFRESH: Type = 2;
}
#[doc = "\\brief Generic fixed size buffer structure\n\n This structure is able to hold a reference to any fixed size buffer."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SvtAv1FixedBuf {
    #[doc = "< Pointer to the data. Does NOT own the data!"]
    pub buf: *mut ::std::os::raw::c_void,
    #[doc = "< Length of the buffer, in chars"]
    pub sz: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of SvtAv1FixedBuf"][::std::mem::size_of::<SvtAv1FixedBuf>() - 16usize];
    ["Alignment of SvtAv1FixedBuf"][::std::mem::align_of::<SvtAv1FixedBuf>() - 8usize];
    ["Offset of field: SvtAv1FixedBuf::buf"][::std::mem::offset_of!(SvtAv1FixedBuf, buf) - 0usize];
    ["Offset of field: SvtAv1FixedBuf::sz"][::std::mem::offset_of!(SvtAv1FixedBuf, sz) - 8usize];
};
pub mod EbSFrameMode {
    #[doc = " Indicates how an S-Frame should be inserted."]
    pub type Type = ::std::os::raw::c_uint;
    pub const SFRAME_STRICT_BASE: Type = 1;
    pub const SFRAME_NEAREST_BASE: Type = 2;
    pub const SFRAME_FLEXIBLE_BASE: Type = 3;
    pub const SFRAME_DEC_POSI_BASE: Type = 4;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SvtAv1FrameScaleEvts {
    pub evt_num: u32,
    pub start_frame_nums: *mut u64,
    pub resize_kf_denoms: *mut u32,
    pub resize_denoms: *mut u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of SvtAv1FrameScaleEvts"][::std::mem::size_of::<SvtAv1FrameScaleEvts>() - 32usize];
    ["Alignment of SvtAv1FrameScaleEvts"][::std::mem::align_of::<SvtAv1FrameScaleEvts>() - 8usize];
    ["Offset of field: SvtAv1FrameScaleEvts::evt_num"]
        [::std::mem::offset_of!(SvtAv1FrameScaleEvts, evt_num) - 0usize];
    ["Offset of field: SvtAv1FrameScaleEvts::start_frame_nums"]
        [::std::mem::offset_of!(SvtAv1FrameScaleEvts, start_frame_nums) - 8usize];
    ["Offset of field: SvtAv1FrameScaleEvts::resize_kf_denoms"]
        [::std::mem::offset_of!(SvtAv1FrameScaleEvts, resize_kf_denoms) - 16usize];
    ["Offset of field: SvtAv1FrameScaleEvts::resize_denoms"]
        [::std::mem::offset_of!(SvtAv1FrameScaleEvts, resize_denoms) - 24usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SvtAv1SFramePositions {
    pub sframe_num: u32,
    pub sframe_posis: *mut u64,
    pub sframe_qp_num: u32,
    pub sframe_qps: *mut u8,
    pub sframe_qp_offsets: *mut i8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of SvtAv1SFramePositions"][::std::mem::size_of::<SvtAv1SFramePositions>() - 40usize];
    ["Alignment of SvtAv1SFramePositions"]
        [::std::mem::align_of::<SvtAv1SFramePositions>() - 8usize];
    ["Offset of field: SvtAv1SFramePositions::sframe_num"]
        [::std::mem::offset_of!(SvtAv1SFramePositions, sframe_num) - 0usize];
    ["Offset of field: SvtAv1SFramePositions::sframe_posis"]
        [::std::mem::offset_of!(SvtAv1SFramePositions, sframe_posis) - 8usize];
    ["Offset of field: SvtAv1SFramePositions::sframe_qp_num"]
        [::std::mem::offset_of!(SvtAv1SFramePositions, sframe_qp_num) - 16usize];
    ["Offset of field: SvtAv1SFramePositions::sframe_qps"]
        [::std::mem::offset_of!(SvtAv1SFramePositions, sframe_qps) - 24usize];
    ["Offset of field: SvtAv1SFramePositions::sframe_qp_offsets"]
        [::std::mem::offset_of!(SvtAv1SFramePositions, sframe_qp_offsets) - 32usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct EbSvtAv1EncConfiguration {
    #[doc = " @brief Encoder preset used.\n -2 and -1 are for debug purposes and should not be used.\n 0 is the highest quality mode but is the slowest,\n 13 is the fastest mode but is not as high quality.\n\n Min value is -2.\n Max value is 13.\n Default is 12."]
    pub enc_mode: i8,
    pub intra_period_length: i32,
    pub intra_refresh_type: SvtAv1IntraRefreshType::Type,
    pub hierarchical_levels: u32,
    pub pred_structure: PredStructure::Type,
    #[doc = " @brief Frame width in pixels.\n\n Min is 64.\n Max is 16384.\n Default is 0."]
    pub source_width: u32,
    #[doc = " @brief Frame height in pixels\n\n Min is 64.\n Max is 8704.\n Default is 0."]
    pub source_height: u32,
    pub forced_max_frame_width: u32,
    pub forced_max_frame_height: u32,
    pub frame_rate_numerator: u32,
    pub frame_rate_denominator: u32,
    pub encoder_bit_depth: u32,
    #[doc = " @brief Encoder color format.\n Only YUV420 is supported for now.\n\n Min is YUV400.\n Max is YUV444.\n Default is YUV420."]
    pub encoder_color_format: EbColorFormat::Type,
    #[doc = " @brief Bitstream profile to use.\n 0: main, 1: high, 2: professional.\n\n Min is MAIN_PROFILE.\n Max is PROFESSIONAL_PROFILE.\n Default is MAIN_PROFILE."]
    pub profile: EbAv1SeqProfile::Type,
    pub tier: u32,
    #[doc = " @brief Bitstream level.\n 0: autodetect from bitstream, 20: level 2.0, 63: level 6.3, only levels 2.0-6.3 are properly defined.\n The levels are defined at https://aomediacodec.github.io/av1-spec/av1-spec.pdf\n under \"A.3. Levels\".\n\n Min is 0.\n Max is 73.\n Default is 0."]
    pub level: u32,
    pub color_primaries: EbColorPrimaries::Type,
    pub transfer_characteristics: EbTransferCharacteristics::Type,
    pub matrix_coefficients: EbMatrixCoefficients::Type,
    pub color_range: EbColorRange::Type,
    pub mastering_display: EbSvtAv1MasteringDisplayInfo,
    pub content_light_level: EbContentLightLevel,
    pub chroma_sample_position: EbChromaSamplePosition::Type,
    pub rate_control_mode: u8,
    pub qp: u32,
    pub use_qp_file: bool,
    pub target_bit_rate: u32,
    pub max_bit_rate: u32,
    pub max_qp_allowed: u32,
    pub min_qp_allowed: u32,
    #[doc = " @brief Variable Bit Rate Minimum Section Percentage\n\n Indicates the minimum bitrate to be used for a single GOP as a percentage\n of the target bitrate.\n\n Min is 0.\n Max is 100.\n Default is 0."]
    pub vbr_min_section_pct: u32,
    #[doc = " @brief Variable Bit Rate Maximum Section Percentage\n\n Indicates the maximum bitrate to be used for a single GOP as a percentage\n of the target bitrate.\n\n Min is 0.\n Max is 10000.\n Default is 2000."]
    pub vbr_max_section_pct: u32,
    #[doc = " @brief UnderShoot Percentage\n\n Only applicable for VBR and CBR.\n\n Indicates the tolerance of the VBR algorithm to undershoot and is used\n as a trigger threshold for more agressive adaptation of Quantization.\n\n Min is 0.\n Max is 100.\n Default is 25 for CBR and 50 for VBR."]
    pub under_shoot_pct: u32,
    #[doc = " @brief OverShoot Percentage\n\n Only applicable for VBR and CBR\n\n Indicates the tolerance of the VBR algorithm to overshoot and is used as\n a trigger threshold for more agressive adaptation of Quantization.\n\n Min is 0.\n Max is 100.\n Default is 25."]
    pub over_shoot_pct: u32,
    #[doc = " @brief MaxBitRate OverShoot Percentage\n\n Only applicable for Capped CRF.\n\n Indicates the tolerance of the Capped CRF algorithm to overshoot\n and is used as a trigger threshold for more agressive adaptation of\n Quantization.\n\n Min is 0.\n Max is 100.\n Default is 50."]
    pub mbr_over_shoot_pct: u32,
    #[doc = " @brief Starting Buffer Level in MilliSeconds\n\n Only applicable for CBR.\n\n Indicates the amount of data that will be buffered by the decoding\n application prior to beginning playback, and is expressed in units of\n time. Must be less than maximum_buffer_size_ms.\n\n Min is 20.\n Max is 10000.\n Default is 600."]
    pub starting_buffer_level_ms: i64,
    #[doc = " @brief Optimal Buffer Level in MilliSeconds\n\n Only applicable for CBR.\n\n indicates the amount of data that the encoder should try to maintain in the\n decoder's buffer, and is expressed in units of time. Must be less than\n maximum_buffer_size_ms.\n\n Min is 20.\n Max is 10000.\n Default is 600."]
    pub optimal_buffer_level_ms: i64,
    #[doc = " @brief Maximum Buffer Size in MilliSeconds\n\n Only applicable for CBR.\n\n indicates the maximum amount of data that may be buffered by the\n decoding application, and is expressed in units of time.\n\n Min is 20.\n Max is 10000.\n Default is 1000."]
    pub maximum_buffer_size_ms: i64,
    pub rc_stats_buffer: SvtAv1FixedBuf,
    pub pass: ::std::os::raw::c_int,
    pub use_fixed_qindex_offsets: u8,
    pub qindex_offsets: [i32; 6usize],
    pub key_frame_chroma_qindex_offset: i32,
    pub key_frame_qindex_offset: i32,
    pub chroma_qindex_offsets: [i32; 6usize],
    pub luma_y_dc_qindex_offset: i32,
    pub chroma_u_dc_qindex_offset: i32,
    pub chroma_u_ac_qindex_offset: i32,
    pub chroma_v_dc_qindex_offset: i32,
    pub chroma_v_ac_qindex_offset: i32,
    #[doc = " @brief Deblocking loop filter control\n\n 0: disabled\n 1: enabled\n 2: more accurate (slower)"]
    pub enable_dlf_flag: u8,
    pub film_grain_denoise_strength: u32,
    #[doc = " @brief Determines how much denoising is used.\n Only applicable when film grain is ON.\n\n 0 is no denoising\n 1 is full denoising\n\n Default is 0."]
    pub film_grain_denoise_apply: u8,
    pub cdef_level: ::std::os::raw::c_int,
    pub enable_restoration_filtering: ::std::os::raw::c_int,
    pub enable_mfmv: ::std::os::raw::c_int,
    pub scene_change_detection: u32,
    pub tile_columns: i32,
    pub tile_rows: i32,
    pub look_ahead_distance: u32,
    pub recode_loop: u32,
    pub screen_content_mode: u32,
    pub aq_mode: u8,
    #[doc = " @brief Enable use of ALT-REF (temporally filtered) frames.\n 0 = off\n 1 = on\n 2 = adaptive\n Default is 1."]
    pub enable_tf: u8,
    pub enable_overlays: bool,
    #[doc = " @brief Tune for a particular metric; 0: VQ, 1: PSNR, 2: SSIM, 3: IQ (Image Quality), 4: MS-SSIM.\n\n Default is 1."]
    pub tune: u8,
    pub superres_mode: u8,
    pub superres_denom: u8,
    pub superres_kf_denom: u8,
    pub superres_qthres: u8,
    pub superres_kf_qthres: u8,
    pub superres_auto_search_type: u8,
    pub fast_decode: u8,
    pub sframe_dist: i32,
    pub sframe_mode: EbSFrameMode::Type,
    pub level_of_parallelism: u32,
    pub use_cpu_flags: EbCpuFlags,
    pub stat_report: u32,
    #[doc = " @brief API Signal to output reconstructed yuv used for debug purposes.\n Using this will affect the speed of encoder.\n\n Default is false."]
    pub recon_enabled: bool,
    #[doc = " @brief Signal that force-key-frames is enabled.\n"]
    pub force_key_frames: bool,
    #[doc = " @brief Signal to the library to treat intra_period_length as seconds and\n multiply by fps_num/fps_den."]
    pub multiply_keyint: bool,
    #[doc = " @brief Reference scaling mode\n the available modes are defined in RESIZE_MODE"]
    pub resize_mode: u8,
    #[doc = " @brief Resize denominator\n this value can be from 8 to 16, means downscaling to 8/8-8/16 of original\n resolution in both width and height"]
    pub resize_denom: u8,
    #[doc = " @brief Resize denominator of key frames\n this value can be from 8 to 16, means downscaling to 8/8-8/16 of original\n resolution in both width and height"]
    pub resize_kf_denom: u8,
    #[doc = " @brief Signal to the library to enable quantisation matrices\n\n Default is false."]
    pub enable_qm: bool,
    #[doc = " @brief Min quant matrix flatness. Applicable when enable_qm is true.\n Min value is 0.\n Max value is 15.\n Default is 8."]
    pub min_qm_level: u8,
    #[doc = " @brief Max quant matrix flatness. Applicable when enable_qm is true.\n Min value is 0.\n Max value is 15.\n Default is 15."]
    pub max_qm_level: u8,
    #[doc = " @brief gop_constraint_rc\n\n Currently, only applicable for VBR and  when GoP size is greater than 119 frames.\n\n When enabled, the rate control matches the target rate for each GoP.\n\n 0: off\n 1: on\n Default is 0."]
    pub gop_constraint_rc: bool,
    #[doc = " @brief scale factors for lambda value for different frame update types\n factor >> 7 (/ 128) is the actual value in float"]
    pub lambda_scale_factors: [i32; 7usize],
    pub enable_dg: bool,
    #[doc = " @brief startup_mg_size\n\n When enabled, a MG with specified size will be inserted after the key frame.\n The MG size is determined by 2^startup_mg_size.\n\n 0: off\n 2: set hierarchical levels to 2 (MG size 4)\n 3: set hierarchical levels to 3 (MG size 8)\n 4: set hierarchical levels to 4 (MG size 16)\n Default is 0."]
    pub startup_mg_size: u8,
    #[doc = " @brief startup_qp_offset\n\n When enabled, an offset will be added to the input-qp of the startup GOP prior to the picture-qp derivation\n\n Min value is -63.\n Max value is 63.\n Default is 0."]
    pub startup_qp_offset: i8,
    pub frame_scale_evts: SvtAv1FrameScaleEvts,
    pub enable_roi_map: bool,
    pub tf_strength: u8,
    pub fgs_table: *mut AomFilmGrain,
    pub enable_variance_boost: bool,
    pub variance_boost_strength: u8,
    pub variance_octile: u8,
    pub sharpness: i8,
    pub variance_boost_curve: u8,
    pub luminance_qp_bias: u8,
    pub lossless: bool,
    pub avif: bool,
    #[doc = " @brief Min chroma quant matrix flatness. Applicable when enable_qm is true.\n Min value is 0.\n Max value is 15.\n Default is 8."]
    pub min_chroma_qm_level: u8,
    #[doc = " @brief Max chroma quant matrix flatness. Applicable when enable_qm is true.\n Min value is 0.\n Max value is 15.\n Default is 15."]
    pub max_chroma_qm_level: u8,
    pub rtc: bool,
    pub qp_scale_compress_strength: u8,
    pub sframe_posi: SvtAv1SFramePositions,
    pub sframe_qp: u8,
    pub sframe_qp_offset: i8,
    #[doc = " @brief Toggle default film grain blocksize behavior\n 0: use default blocksize behavior (32x32)\n 1: use adaptive blocksize based on resolution\n  - 8x8 for <4k\n  - 16x16 for 4k\n Default is 1"]
    pub adaptive_film_grain: bool,
    pub max_tx_size: u8,
    pub extended_crf_qindex_offset: u8,
    #[doc = " @brief Strength of the internal RD metric to bias toward high-frequency error (helps with texture preservation and film grain retention)\n 0.00: disable AC bias\n 1.00: enable AC bias with a strength of 1.00\n Default is 0.00."]
    pub ac_bias: f64,
    pub padding: [u8; 125usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of EbSvtAv1EncConfiguration"]
        [::std::mem::size_of::<EbSvtAv1EncConfiguration>() - 664usize];
    ["Alignment of EbSvtAv1EncConfiguration"]
        [::std::mem::align_of::<EbSvtAv1EncConfiguration>() - 8usize];
    ["Offset of field: EbSvtAv1EncConfiguration::enc_mode"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, enc_mode) - 0usize];
    ["Offset of field: EbSvtAv1EncConfiguration::intra_period_length"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, intra_period_length) - 4usize];
    ["Offset of field: EbSvtAv1EncConfiguration::intra_refresh_type"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, intra_refresh_type) - 8usize];
    ["Offset of field: EbSvtAv1EncConfiguration::hierarchical_levels"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, hierarchical_levels) - 12usize];
    ["Offset of field: EbSvtAv1EncConfiguration::pred_structure"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, pred_structure) - 16usize];
    ["Offset of field: EbSvtAv1EncConfiguration::source_width"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, source_width) - 20usize];
    ["Offset of field: EbSvtAv1EncConfiguration::source_height"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, source_height) - 24usize];
    ["Offset of field: EbSvtAv1EncConfiguration::forced_max_frame_width"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, forced_max_frame_width) - 28usize];
    ["Offset of field: EbSvtAv1EncConfiguration::forced_max_frame_height"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, forced_max_frame_height) - 32usize];
    ["Offset of field: EbSvtAv1EncConfiguration::frame_rate_numerator"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, frame_rate_numerator) - 36usize];
    ["Offset of field: EbSvtAv1EncConfiguration::frame_rate_denominator"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, frame_rate_denominator) - 40usize];
    ["Offset of field: EbSvtAv1EncConfiguration::encoder_bit_depth"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, encoder_bit_depth) - 44usize];
    ["Offset of field: EbSvtAv1EncConfiguration::encoder_color_format"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, encoder_color_format) - 48usize];
    ["Offset of field: EbSvtAv1EncConfiguration::profile"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, profile) - 52usize];
    ["Offset of field: EbSvtAv1EncConfiguration::tier"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, tier) - 56usize];
    ["Offset of field: EbSvtAv1EncConfiguration::level"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, level) - 60usize];
    ["Offset of field: EbSvtAv1EncConfiguration::color_primaries"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, color_primaries) - 64usize];
    ["Offset of field: EbSvtAv1EncConfiguration::transfer_characteristics"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, transfer_characteristics) - 68usize];
    ["Offset of field: EbSvtAv1EncConfiguration::matrix_coefficients"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, matrix_coefficients) - 72usize];
    ["Offset of field: EbSvtAv1EncConfiguration::color_range"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, color_range) - 76usize];
    ["Offset of field: EbSvtAv1EncConfiguration::mastering_display"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, mastering_display) - 80usize];
    ["Offset of field: EbSvtAv1EncConfiguration::content_light_level"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, content_light_level) - 104usize];
    ["Offset of field: EbSvtAv1EncConfiguration::chroma_sample_position"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, chroma_sample_position) - 108usize];
    ["Offset of field: EbSvtAv1EncConfiguration::rate_control_mode"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, rate_control_mode) - 112usize];
    ["Offset of field: EbSvtAv1EncConfiguration::qp"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, qp) - 116usize];
    ["Offset of field: EbSvtAv1EncConfiguration::use_qp_file"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, use_qp_file) - 120usize];
    ["Offset of field: EbSvtAv1EncConfiguration::target_bit_rate"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, target_bit_rate) - 124usize];
    ["Offset of field: EbSvtAv1EncConfiguration::max_bit_rate"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, max_bit_rate) - 128usize];
    ["Offset of field: EbSvtAv1EncConfiguration::max_qp_allowed"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, max_qp_allowed) - 132usize];
    ["Offset of field: EbSvtAv1EncConfiguration::min_qp_allowed"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, min_qp_allowed) - 136usize];
    ["Offset of field: EbSvtAv1EncConfiguration::vbr_min_section_pct"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, vbr_min_section_pct) - 140usize];
    ["Offset of field: EbSvtAv1EncConfiguration::vbr_max_section_pct"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, vbr_max_section_pct) - 144usize];
    ["Offset of field: EbSvtAv1EncConfiguration::under_shoot_pct"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, under_shoot_pct) - 148usize];
    ["Offset of field: EbSvtAv1EncConfiguration::over_shoot_pct"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, over_shoot_pct) - 152usize];
    ["Offset of field: EbSvtAv1EncConfiguration::mbr_over_shoot_pct"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, mbr_over_shoot_pct) - 156usize];
    ["Offset of field: EbSvtAv1EncConfiguration::starting_buffer_level_ms"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, starting_buffer_level_ms) - 160usize];
    ["Offset of field: EbSvtAv1EncConfiguration::optimal_buffer_level_ms"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, optimal_buffer_level_ms) - 168usize];
    ["Offset of field: EbSvtAv1EncConfiguration::maximum_buffer_size_ms"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, maximum_buffer_size_ms) - 176usize];
    ["Offset of field: EbSvtAv1EncConfiguration::rc_stats_buffer"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, rc_stats_buffer) - 184usize];
    ["Offset of field: EbSvtAv1EncConfiguration::pass"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, pass) - 200usize];
    ["Offset of field: EbSvtAv1EncConfiguration::use_fixed_qindex_offsets"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, use_fixed_qindex_offsets) - 204usize];
    ["Offset of field: EbSvtAv1EncConfiguration::qindex_offsets"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, qindex_offsets) - 208usize];
    ["Offset of field: EbSvtAv1EncConfiguration::key_frame_chroma_qindex_offset"][::std::mem::offset_of!(
        EbSvtAv1EncConfiguration,
        key_frame_chroma_qindex_offset
    ) - 232usize];
    ["Offset of field: EbSvtAv1EncConfiguration::key_frame_qindex_offset"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, key_frame_qindex_offset) - 236usize];
    ["Offset of field: EbSvtAv1EncConfiguration::chroma_qindex_offsets"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, chroma_qindex_offsets) - 240usize];
    ["Offset of field: EbSvtAv1EncConfiguration::luma_y_dc_qindex_offset"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, luma_y_dc_qindex_offset) - 264usize];
    ["Offset of field: EbSvtAv1EncConfiguration::chroma_u_dc_qindex_offset"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, chroma_u_dc_qindex_offset) - 268usize];
    ["Offset of field: EbSvtAv1EncConfiguration::chroma_u_ac_qindex_offset"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, chroma_u_ac_qindex_offset) - 272usize];
    ["Offset of field: EbSvtAv1EncConfiguration::chroma_v_dc_qindex_offset"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, chroma_v_dc_qindex_offset) - 276usize];
    ["Offset of field: EbSvtAv1EncConfiguration::chroma_v_ac_qindex_offset"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, chroma_v_ac_qindex_offset) - 280usize];
    ["Offset of field: EbSvtAv1EncConfiguration::enable_dlf_flag"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, enable_dlf_flag) - 284usize];
    ["Offset of field: EbSvtAv1EncConfiguration::film_grain_denoise_strength"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, film_grain_denoise_strength) - 288usize];
    ["Offset of field: EbSvtAv1EncConfiguration::film_grain_denoise_apply"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, film_grain_denoise_apply) - 292usize];
    ["Offset of field: EbSvtAv1EncConfiguration::cdef_level"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, cdef_level) - 296usize];
    ["Offset of field: EbSvtAv1EncConfiguration::enable_restoration_filtering"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, enable_restoration_filtering) - 300usize];
    ["Offset of field: EbSvtAv1EncConfiguration::enable_mfmv"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, enable_mfmv) - 304usize];
    ["Offset of field: EbSvtAv1EncConfiguration::scene_change_detection"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, scene_change_detection) - 308usize];
    ["Offset of field: EbSvtAv1EncConfiguration::tile_columns"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, tile_columns) - 312usize];
    ["Offset of field: EbSvtAv1EncConfiguration::tile_rows"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, tile_rows) - 316usize];
    ["Offset of field: EbSvtAv1EncConfiguration::look_ahead_distance"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, look_ahead_distance) - 320usize];
    ["Offset of field: EbSvtAv1EncConfiguration::recode_loop"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, recode_loop) - 324usize];
    ["Offset of field: EbSvtAv1EncConfiguration::screen_content_mode"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, screen_content_mode) - 328usize];
    ["Offset of field: EbSvtAv1EncConfiguration::aq_mode"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, aq_mode) - 332usize];
    ["Offset of field: EbSvtAv1EncConfiguration::enable_tf"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, enable_tf) - 333usize];
    ["Offset of field: EbSvtAv1EncConfiguration::enable_overlays"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, enable_overlays) - 334usize];
    ["Offset of field: EbSvtAv1EncConfiguration::tune"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, tune) - 335usize];
    ["Offset of field: EbSvtAv1EncConfiguration::superres_mode"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, superres_mode) - 336usize];
    ["Offset of field: EbSvtAv1EncConfiguration::superres_denom"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, superres_denom) - 337usize];
    ["Offset of field: EbSvtAv1EncConfiguration::superres_kf_denom"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, superres_kf_denom) - 338usize];
    ["Offset of field: EbSvtAv1EncConfiguration::superres_qthres"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, superres_qthres) - 339usize];
    ["Offset of field: EbSvtAv1EncConfiguration::superres_kf_qthres"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, superres_kf_qthres) - 340usize];
    ["Offset of field: EbSvtAv1EncConfiguration::superres_auto_search_type"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, superres_auto_search_type) - 341usize];
    ["Offset of field: EbSvtAv1EncConfiguration::fast_decode"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, fast_decode) - 342usize];
    ["Offset of field: EbSvtAv1EncConfiguration::sframe_dist"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, sframe_dist) - 344usize];
    ["Offset of field: EbSvtAv1EncConfiguration::sframe_mode"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, sframe_mode) - 348usize];
    ["Offset of field: EbSvtAv1EncConfiguration::level_of_parallelism"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, level_of_parallelism) - 352usize];
    ["Offset of field: EbSvtAv1EncConfiguration::use_cpu_flags"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, use_cpu_flags) - 360usize];
    ["Offset of field: EbSvtAv1EncConfiguration::stat_report"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, stat_report) - 368usize];
    ["Offset of field: EbSvtAv1EncConfiguration::recon_enabled"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, recon_enabled) - 372usize];
    ["Offset of field: EbSvtAv1EncConfiguration::force_key_frames"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, force_key_frames) - 373usize];
    ["Offset of field: EbSvtAv1EncConfiguration::multiply_keyint"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, multiply_keyint) - 374usize];
    ["Offset of field: EbSvtAv1EncConfiguration::resize_mode"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, resize_mode) - 375usize];
    ["Offset of field: EbSvtAv1EncConfiguration::resize_denom"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, resize_denom) - 376usize];
    ["Offset of field: EbSvtAv1EncConfiguration::resize_kf_denom"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, resize_kf_denom) - 377usize];
    ["Offset of field: EbSvtAv1EncConfiguration::enable_qm"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, enable_qm) - 378usize];
    ["Offset of field: EbSvtAv1EncConfiguration::min_qm_level"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, min_qm_level) - 379usize];
    ["Offset of field: EbSvtAv1EncConfiguration::max_qm_level"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, max_qm_level) - 380usize];
    ["Offset of field: EbSvtAv1EncConfiguration::gop_constraint_rc"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, gop_constraint_rc) - 381usize];
    ["Offset of field: EbSvtAv1EncConfiguration::lambda_scale_factors"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, lambda_scale_factors) - 384usize];
    ["Offset of field: EbSvtAv1EncConfiguration::enable_dg"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, enable_dg) - 412usize];
    ["Offset of field: EbSvtAv1EncConfiguration::startup_mg_size"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, startup_mg_size) - 413usize];
    ["Offset of field: EbSvtAv1EncConfiguration::startup_qp_offset"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, startup_qp_offset) - 414usize];
    ["Offset of field: EbSvtAv1EncConfiguration::frame_scale_evts"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, frame_scale_evts) - 416usize];
    ["Offset of field: EbSvtAv1EncConfiguration::enable_roi_map"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, enable_roi_map) - 448usize];
    ["Offset of field: EbSvtAv1EncConfiguration::tf_strength"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, tf_strength) - 449usize];
    ["Offset of field: EbSvtAv1EncConfiguration::fgs_table"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, fgs_table) - 456usize];
    ["Offset of field: EbSvtAv1EncConfiguration::enable_variance_boost"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, enable_variance_boost) - 464usize];
    ["Offset of field: EbSvtAv1EncConfiguration::variance_boost_strength"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, variance_boost_strength) - 465usize];
    ["Offset of field: EbSvtAv1EncConfiguration::variance_octile"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, variance_octile) - 466usize];
    ["Offset of field: EbSvtAv1EncConfiguration::sharpness"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, sharpness) - 467usize];
    ["Offset of field: EbSvtAv1EncConfiguration::variance_boost_curve"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, variance_boost_curve) - 468usize];
    ["Offset of field: EbSvtAv1EncConfiguration::luminance_qp_bias"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, luminance_qp_bias) - 469usize];
    ["Offset of field: EbSvtAv1EncConfiguration::lossless"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, lossless) - 470usize];
    ["Offset of field: EbSvtAv1EncConfiguration::avif"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, avif) - 471usize];
    ["Offset of field: EbSvtAv1EncConfiguration::min_chroma_qm_level"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, min_chroma_qm_level) - 472usize];
    ["Offset of field: EbSvtAv1EncConfiguration::max_chroma_qm_level"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, max_chroma_qm_level) - 473usize];
    ["Offset of field: EbSvtAv1EncConfiguration::rtc"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, rtc) - 474usize];
    ["Offset of field: EbSvtAv1EncConfiguration::qp_scale_compress_strength"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, qp_scale_compress_strength) - 475usize];
    ["Offset of field: EbSvtAv1EncConfiguration::sframe_posi"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, sframe_posi) - 480usize];
    ["Offset of field: EbSvtAv1EncConfiguration::sframe_qp"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, sframe_qp) - 520usize];
    ["Offset of field: EbSvtAv1EncConfiguration::sframe_qp_offset"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, sframe_qp_offset) - 521usize];
    ["Offset of field: EbSvtAv1EncConfiguration::adaptive_film_grain"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, adaptive_film_grain) - 522usize];
    ["Offset of field: EbSvtAv1EncConfiguration::max_tx_size"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, max_tx_size) - 523usize];
    ["Offset of field: EbSvtAv1EncConfiguration::extended_crf_qindex_offset"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, extended_crf_qindex_offset) - 524usize];
    ["Offset of field: EbSvtAv1EncConfiguration::ac_bias"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, ac_bias) - 528usize];
    ["Offset of field: EbSvtAv1EncConfiguration::padding"]
        [::std::mem::offset_of!(EbSvtAv1EncConfiguration, padding) - 536usize];
};
unsafe extern "C" {
    pub fn svt_av1_enc_init_handle(
        p_handle: *mut *mut EbComponentType,
        config_ptr: *mut EbSvtAv1EncConfiguration,
    ) -> EbErrorType::Type;
}
unsafe extern "C" {
    pub fn svt_av1_enc_set_parameter(
        svt_enc_component: *mut EbComponentType,
        pComponentParameterStructure: *mut EbSvtAv1EncConfiguration,
    ) -> EbErrorType::Type;
}
unsafe extern "C" {
    pub fn svt_av1_enc_parse_parameter(
        pComponentParameterStructure: *mut EbSvtAv1EncConfiguration,
        name: *const ::std::os::raw::c_char,
        value: *const ::std::os::raw::c_char,
    ) -> EbErrorType::Type;
}
unsafe extern "C" {
    pub fn svt_av1_enc_init(svt_enc_component: *mut EbComponentType) -> EbErrorType::Type;
}
unsafe extern "C" {
    pub fn svt_av1_enc_stream_header(
        svt_enc_component: *mut EbComponentType,
        output_stream_ptr: *mut *mut EbBufferHeaderType,
    ) -> EbErrorType::Type;
}
unsafe extern "C" {
    pub fn svt_av1_enc_stream_header_release(
        stream_header_ptr: *mut EbBufferHeaderType,
    ) -> EbErrorType::Type;
}
unsafe extern "C" {
    pub fn svt_av1_enc_send_picture(
        svt_enc_component: *mut EbComponentType,
        p_buffer: *mut EbBufferHeaderType,
    ) -> EbErrorType::Type;
}
unsafe extern "C" {
    #[doc = " @brief Step 5: Receive packet.\n This function will become blocking if either pic_send_done is set to 1 or if we are in low-delay (pred-struct=1).\n Otherwise, this function is non-blocking and will return EB_NoErrorEmptyQueue if there are no packets available.\n\n @param svt_enc_component The encoder handler\n @param p_buffer Header pointer to return packet with\n @param pic_send_done Flag to signal that all input pictures have been sent. Should be either 0 or 1.\n @return EB_API Either EB_ErrorMax for an encode error or EB_NoErrorEmptyQueue if there are no available packets."]
    pub fn svt_av1_enc_get_packet(
        svt_enc_component: *mut EbComponentType,
        p_buffer: *mut *mut EbBufferHeaderType,
        pic_send_done: u8,
    ) -> EbErrorType::Type;
}
unsafe extern "C" {
    pub fn svt_av1_enc_release_out_buffer(p_buffer: *mut *mut EbBufferHeaderType);
}
unsafe extern "C" {
    pub fn svt_av1_enc_get_stream_info(
        svt_enc_component: *mut EbComponentType,
        stream_info_id: u32,
        info: *mut ::std::os::raw::c_void,
    ) -> EbErrorType::Type;
}
unsafe extern "C" {
    pub fn svt_av1_enc_deinit(svt_enc_component: *mut EbComponentType) -> EbErrorType::Type;
}
unsafe extern "C" {
    pub fn svt_av1_enc_deinit_handle(svt_enc_component: *mut EbComponentType) -> EbErrorType::Type;
}