/*!\brief Current ABI version number * *\internal *IfthisfileisalteredinanywaythatchangestheABI,thisvalue *mustbebumped.Examplesinclude,butarenotlimitedto,changing *types,removingorreassigningenums,adding/removing/rearranging *fieldstostructures
*/ #define AOM_IMAGE_ABI_VERSION (9) /**<\hideinitializer*/
#define AOM_IMG_FMT_PLANAR 0x100 /**< Image is a planar format. */ #define AOM_IMG_FMT_UV_FLIP 0x200 /**< V plane precedes U in memory. */ /** 0x400 used to signal alpha channel, skipping for backwards compatibility. */ #define AOM_IMG_FMT_HIGHBITDEPTH 0x800 /**< Image uses 16bit framebuffer. */
/*!\brief List of supported image formats */ typedefenum aom_img_fmt {
AOM_IMG_FMT_NONE,
AOM_IMG_FMT_YV12 =
AOM_IMG_FMT_PLANAR | AOM_IMG_FMT_UV_FLIP | 1, /**< planar YVU */
AOM_IMG_FMT_I420 = AOM_IMG_FMT_PLANAR | 2, /** Planar 4:2:0 format with aom color space * *\deprecatedThisvalueisunsupportedandwillberemovedinafuture *release.
*/
AOM_IMG_FMT_AOMYV12 = AOM_IMG_FMT_PLANAR | AOM_IMG_FMT_UV_FLIP | 3, /** Planar 4:2:0 format with aom color space * *\deprecatedThisvalueisunsupportedandwillberemovedinafuture *release.
*/
AOM_IMG_FMT_AOMI420 = AOM_IMG_FMT_PLANAR | 4,
AOM_IMG_FMT_I422 = AOM_IMG_FMT_PLANAR | 5,
AOM_IMG_FMT_I444 = AOM_IMG_FMT_PLANAR | 6, /*!\brief Allows detection of the presence of AOM_IMG_FMT_NV12 at compile time.
*/ #define AOM_HAVE_IMG_FMT_NV12 1
AOM_IMG_FMT_NV12 =
AOM_IMG_FMT_PLANAR | 7, /**< 4:2:0 with U and V interleaved */
AOM_IMG_FMT_I42016 = AOM_IMG_FMT_I420 | AOM_IMG_FMT_HIGHBITDEPTH,
AOM_IMG_FMT_YV1216 = AOM_IMG_FMT_YV12 | AOM_IMG_FMT_HIGHBITDEPTH,
AOM_IMG_FMT_I42216 = AOM_IMG_FMT_I422 | AOM_IMG_FMT_HIGHBITDEPTH,
AOM_IMG_FMT_I44416 = AOM_IMG_FMT_I444 | AOM_IMG_FMT_HIGHBITDEPTH,
} aom_img_fmt_t; /**< alias for enum aom_img_fmt */
/*!\brief List of supported color primaries */ typedefenum aom_color_primaries {
AOM_CICP_CP_RESERVED_0 = 0, /**< For future use */
AOM_CICP_CP_BT_709 = 1, /**< BT.709 */
AOM_CICP_CP_UNSPECIFIED = 2, /**< Unspecified */
AOM_CICP_CP_RESERVED_3 = 3, /**< For future use */
AOM_CICP_CP_BT_470_M = 4, /**< BT.470 System M (historical) */
AOM_CICP_CP_BT_470_B_G = 5, /**< BT.470 System B, G (historical) */
AOM_CICP_CP_BT_601 = 6, /**< BT.601 */
AOM_CICP_CP_SMPTE_240 = 7, /**< SMPTE 240 */
AOM_CICP_CP_GENERIC_FILM = 8, /**< Generic film (color filters using illuminant C) */
AOM_CICP_CP_BT_2020 = 9, /**< BT.2020, BT.2100 */
AOM_CICP_CP_XYZ = 10, /**< SMPTE 428 (CIE 1921 XYZ) */
AOM_CICP_CP_SMPTE_431 = 11, /**< SMPTE RP 431-2 */
AOM_CICP_CP_SMPTE_432 = 12, /**< SMPTE EG 432-1 */
AOM_CICP_CP_RESERVED_13 = 13, /**< For future use (values 13 - 21) */
AOM_CICP_CP_EBU_3213 = 22, /**< EBU Tech. 3213-E */
AOM_CICP_CP_RESERVED_23 = 23/**< For future use (values 23 - 255) */
} aom_color_primaries_t; /**< alias for enum aom_color_primaries */
/*!\brief List of supported transfer functions */ typedefenum aom_transfer_characteristics {
AOM_CICP_TC_RESERVED_0 = 0, /**< For future use */
AOM_CICP_TC_BT_709 = 1, /**< BT.709 */
AOM_CICP_TC_UNSPECIFIED = 2, /**< Unspecified */
AOM_CICP_TC_RESERVED_3 = 3, /**< For future use */
AOM_CICP_TC_BT_470_M = 4, /**< BT.470 System M (historical) */
AOM_CICP_TC_BT_470_B_G = 5, /**< BT.470 System B, G (historical) */
AOM_CICP_TC_BT_601 = 6, /**< BT.601 */
AOM_CICP_TC_SMPTE_240 = 7, /**< SMPTE 240 M */
AOM_CICP_TC_LINEAR = 8, /**< Linear */
AOM_CICP_TC_LOG_100 = 9, /**< Logarithmic (100 : 1 range) */
AOM_CICP_TC_LOG_100_SQRT10 = 10, /**< Logarithmic (100 * Sqrt(10) : 1 range) */
AOM_CICP_TC_IEC_61966 = 11, /**< IEC 61966-2-4 */
AOM_CICP_TC_BT_1361 = 12, /**< BT.1361 */
AOM_CICP_TC_SRGB = 13, /**< sRGB or sYCC*/
AOM_CICP_TC_BT_2020_10_BIT = 14, /**< BT.2020 10-bit systems */
AOM_CICP_TC_BT_2020_12_BIT = 15, /**< BT.2020 12-bit systems */
AOM_CICP_TC_SMPTE_2084 = 16, /**< SMPTE ST 2084, ITU BT.2100 PQ */
AOM_CICP_TC_SMPTE_428 = 17, /**< SMPTE ST 428 */
AOM_CICP_TC_HLG = 18, /**< BT.2100 HLG, ARIB STD-B67 */
AOM_CICP_TC_RESERVED_19 = 19/**< For future use (values 19-255) */
} aom_transfer_characteristics_t; /**< alias for enum
aom_transfer_characteristics */
/*!\brief List of supported color range */ typedefenum aom_color_range {
AOM_CR_STUDIO_RANGE = 0, /**<- Y [16..235], UV [16..240] (bit depth 8) */ /**<- Y [64..940], UV [64..960] (bit depth 10) */ /**<- Y [256..3760], UV [256..3840] (bit depth 12) */
AOM_CR_FULL_RANGE = 1/**<- YUV/RGB [0..255] (bit depth 8) */ /**<- YUV/RGB [0..1023] (bit depth 10) */ /**<- YUV/RGB [0..4095] (bit depth 12) */
} aom_color_range_t; /**< alias for enum aom_color_range */
/*!\brief List of chroma sample positions */ typedefenum aom_chroma_sample_position {
AOM_CSP_UNKNOWN = 0, /**< Unknown */
AOM_CSP_VERTICAL = 1, /**< Horizontally co-located with luma(0, 0)*/ /**< sample, between two vertical samples */
AOM_CSP_COLOCATED = 2, /**< Co-located with luma(0, 0) sample */
AOM_CSP_RESERVED = 3/**< Reserved value */
} aom_chroma_sample_position_t; /**< alias for enum aom_chroma_sample_position
*/
/*!\brief List of insert flags for Metadata * *Theseflagscontrolhowthelibrarytreatsmetadataduringencode. * *Whileencoding,whenmetadataisaddedtoanaom_imagevia *aom_img_add_metadata(),theflagpassedalongwiththemetadatawill *determinewherethemetadataOBUwillbeplacedintheencodedOBUstream, *andwhetherit'slayer-specific.Metadatawillbeemittedintotheoutput *streamwithinthenexttemporalunitifitsatisfiesthespecifiedinsertion *flag. * *Ifthevideocontainsmultiplespatialand/ortemporallayers, *alayer-specificmetadataOBUonlyappliestothecurrentframe'slayer,as *determinedbytheframe'stemporal_idandspatial_id.Somemetadatatypes *cannotbelayer-specific,aslistedinSection6.7.1ofthedraftAV1 *specificationasof2025-03-06. * *Duringdecoding,whenthelibraryencountersametadataOBU,itisemitted *withthenextoutputaom_image.Itsinsert_flagissettoeither *AOM_MIF_ANY_FRAME,orAOM_MIF_ANY_FRAME_LAYER_SPECIFICiftheOBUcontainsan *OBUheaderextension(i.e.thevideocontainsmultiplelayersANDthe *metadatawasaddedusing*_LAYER_SPECIFICinsertflagifusinglibaom).
*/ typedefenum aom_metadata_insert_flags {
AOM_MIF_NON_KEY_FRAME = 0, /**< Adds metadata if it's not a keyframe */
AOM_MIF_KEY_FRAME = 1, /**< Adds metadata only if it's a keyframe */
AOM_MIF_ANY_FRAME = 2, /**< Adds metadata to any type of frame */ /** Adds layer-specific metadata if it's not a keyframe */
AOM_MIF_NON_KEY_FRAME_LAYER_SPECIFIC = 16, /** Adds layer-specific metadata only if it's a keyframe */
AOM_MIF_KEY_FRAME_LAYER_SPECIFIC = 17, /** Adds layer-specific metadata to any type of frame */
AOM_MIF_ANY_FRAME_LAYER_SPECIFIC = 18,
} aom_metadata_insert_flags_t;
/*!\brief Array of aom_metadata structs for an image. */ typedefstruct aom_metadata_array aom_metadata_array_t;
/* Chroma subsampling info */ unsignedint x_chroma_shift; /**< subsampling order, X */ unsignedint y_chroma_shift; /**< subsampling order, Y */
/* Image data pointers. */ #define AOM_PLANE_PACKED 0/**< To be used for all packed formats */ #define AOM_PLANE_Y 0/**< Y (Luminance) plane */ #define AOM_PLANE_U 1/**< U (Chroma) plane */ #define AOM_PLANE_V 2/**< V (Chroma) plane */ /* planes[AOM_PLANE_V] = NULL and stride[AOM_PLANE_V] = 0 when fmt ==
* AOM_IMG_FMT_NV12 */ unsignedchar *planes[3]; /**< pointer to the top left pixel for each plane */ /*!Stride between rows for each plane * *\noteWithplanarformats,\cstride[AOM_PLANE_U]mustbethesameas\c *stride[AOM_PLANE_V].
*/ int stride[3];
size_t sz; /**< data size */
int bps; /**< bits per sample (for packed formats) */
int temporal_id; /**< Temporal layer Id of image */ int spatial_id; /**< Spatial layer Id of image */
/*!\brief The following member may be set by the application to associate *datawiththisimage.
*/ void *user_priv;
/* The following members should be treated as private. */ unsignedchar *img_data; /**< private */ int img_data_owner; /**< private */ int self_allocd; /**< private */
aom_metadata_array_t
*metadata; /**< Metadata payloads associated with the image. */
void *fb_priv; /**< Frame buffer data associated with the image. */
} aom_image_t; /**< alias for struct aom_image */
/*!\brief Open a descriptor, allocating storage for the underlying image with a *border * *Returnsadescriptorforstoringanimageofthegivenformatandits *borders.Thestoragefortheimageisallocatedontheheap. * *\param[in]imgPointertostoragefordescriptor.Ifthisparameter *isNULL,thestorageforthedescriptorwillbe *allocatedontheheap. *\param[in]fmtFormatfortheimage *\param[in]d_wWidthoftheimage.Mustnotexceed0x08000000 *(2^27). *\param[in]d_hHeightoftheimage.Mustnotexceed0x08000000 *(2^27). *\param[in]alignAlignment,inbytes,oftheimagebufferand *eachrowintheimage(stride).Mustnotexceed *65536. *\param[in]size_alignAlignment,inpixels,oftheimagewidthandheight. *Mustnotexceed65536. *\param[in]borderAborderthatispaddedonfoursidesoftheimage. *Mustnotexceed65536. * *\returnReturnsapointertotheinitializedimagedescriptor.Iftheimg *parameterisnon-null,thevalueoftheimgparameterwillbe *returned.
*/
aom_image_t *aom_img_alloc_with_border(aom_image_t *img, aom_img_fmt_t fmt, unsignedint d_w, unsignedint d_h, unsignedint align, unsignedint size_align, unsignedint border);
/*!\brief Set the rectangle identifying the displayed portion of the image * *Updatesthedisplayedrectangle(akaviewport)ontheimagesurfaceto *matchthespecifiedcoordinatesandsize.Specifically,setsimg->d_w, *img->d_h,andelementsoftheimg->planes[]array. * *\param[in]imgImagedescriptor *\param[in]xleftmostcolumn *\param[in]ytopmostrow *\param[in]wwidth *\param[in]hheight *\param[in]borderAborderthatispaddedonfoursidesoftheimage. * *\return0iftherequestedrectangleisvalid,nonzero(-1)otherwise.
*/ int aom_img_set_rect(aom_image_t *img, unsignedint x, unsignedint y, unsignedint w, unsignedint h, unsignedint border);
/*!\brief Flip the image vertically (top for bottom) * *Adjuststheimagedescriptor'spointersandstridestomaketheimage *bereferencedupside-down. * *\param[in]imgImagedescriptor
*/ void aom_img_flip(aom_image_t *img);
/*!\brief Close an image descriptor * *Freesallallocatedstorageassociatedwithanimagedescriptor. * *\param[in]imgImagedescriptor
*/ void aom_img_free(aom_image_t *img);
/*!\brief Get the width of a plane * *Getthewidthofaplaneofanimage * *\param[in]imgImagedescriptor *\param[in]planePlaneindex
*/ int aom_img_plane_width(const aom_image_t *img, int plane);
/*!\brief Get the height of a plane * *Gettheheightofaplaneofanimage * *\param[in]imgImagedescriptor *\param[in]planePlaneindex
*/ int aom_img_plane_height(const aom_image_t *img, int plane);
/*!\brief Return a metadata payload stored within the image metadata array. * *Getsthemetadata(aom_metadata_t)attheindicatedindexintheimage *metadataarray. * *\param[in]imgPointertoimagedescriptortogetmetadatafrom *\param[in]indexMetadataindextogetfrommetadataarray * *\returnReturnsaconstpointertotheselectedmetadata,ifimgand/orindex *isinvalid,itreturnsNULL.
*/ const aom_metadata_t *aom_img_get_metadata(const aom_image_t *img,
size_t index);
/*!\brief Return the number of metadata blocks within the image. * *Getsthenumberofmetadatablockscontainedwithintheprovidedimage *metadataarray. * *\param[in]imgPointertoimagedescriptortogetmetadatanumber *from. * *\returnReturnsthesizeofthemetadataarray.IfimgormetadataisNULL, *itreturns0.
*/
size_t aom_img_num_metadata(const aom_image_t *img);
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.17Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-08-22)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.