Your laptop has a Realtek ALC295 audio codec connected to the analogue output. You can see this in your device list as Realtek(R) Audio - Realtek is a known audio codec developer / manufacturer and it's device ID DEV_0295 identify it as the ALC295.
Something like "ALC 892/897" is a special audio chip connected to an Intel HDA compatible soundcard. It's called a codec because it codes and decodes the digital data stream coming from the soundcard, and converts it to and from audio signals.
Most modern chipsets have an Intel HDA "soundcard" integrated into the chipset (after all, the point of having an external codec is that you just need a few extra pins to connect it to the standard chipset).
Now, even if it's integrated into the chipset, your motherboard doesn't have to use the Intel SDA soundcard. So if they have a different soundcard (like your Realtek one) which doesn't use external codec chips, then no actual "codec" will appear in the system information.
Finally, don't confuse Intel HDA codec chips with software codecs (the list in your first image) like MP3, MPEG, etc. These also code and decode and digital data stream, but this is compressed audio, and coding and decoding happens purely in the CPU, by software.
I find it helpful to set device manager to "Devices by connection", which show what's connected to what. For reference, below is my laptop (Lenovo T14), attached to a docking station. The "Realtek(R) Audio" device is the on-board codec. Its hardware ID says INTELAUDIO\FUNC_01&VEN_10EC&DEV_0257&... - not sure how that's different from your HDAUDIO\... hardware ID.
This module defines base classes for standard Python codecs (encoders anddecoders) and provides access to the internal Python codec registry, whichmanages the codec and error handling lookup process. Most standard codecsare text encodings, which encode text to bytes (anddecode bytes to text), but there are also codecs provided that encode text totext, and bytes to bytes. Custom codecs may encode and decode between arbitrarytypes, but some module features are restricted to be used specifically withtext encodings or with codecs that encode tobytes.
Errors may be given to set the desired error handling scheme. Thedefault error handler is 'strict' meaning that encoding errors raiseValueError (or a more codec specific subclass, such asUnicodeEncodeError). Refer to Codec Base Classes for moreinformation on codec error handling.
Errors may be given to set the desired error handling scheme. Thedefault error handler is 'strict' meaning that decoding errors raiseValueError (or a more codec specific subclass, such asUnicodeDecodeError). Refer to Codec Base Classes for moreinformation on codec error handling.
Incremental encoder and decoder classes or factory functions.These have to provide the interface defined by the base classesIncrementalEncoder and IncrementalDecoder,respectively. Incremental codecs can maintain state.
Register a codec search function. Search functions are expected to take oneargument, being the encoding name in all lower case letters with hyphensand spaces converted to underscores, and return a CodecInfo object.In case a search function cannot find a given encoding, it should returnNone.
While the builtin open() and the associated io module are therecommended approach for working with encoded text files, this moduleprovides additional utility functions and classes that allow the use of awider range of codecs when working with binary files:
encoding specifies the encoding which is to be used for the file.Any encoding that encodes to and decodes from bytes is allowed, andthe data types supported by the file methods depend on the codec used.
Each codec has to define four interfaces to make it usable as codec in Python:stateless encoder, stateless decoder, stream reader and stream writer. Thestream reader and writers typically reuse the stateless encoder/decoder toimplement the file protocols. Codec authors also need to define how thecodec will handle encoding and decoding errors.
Replace with backslashed escape sequences.On encoding, use hexadecimal form of Unicodecode point with formats \xhh\uxxxx \Uxxxxxxxx.On decoding, use hexadecimal form of bytevalue with format \xhh.Implemented inbackslashreplace_errors().
Register the error handling function error_handler under the name name.The error_handler argument will be called during encoding and decodingin case of an error, when name is specified as the errors parameter.
The IncrementalEncoder class is used for encoding an input in multiplesteps. It defines the following methods which every incremental encoder mustdefine in order to be compatible with the Python codec registry.
The errors argument will be assigned to an attribute of the same name.Assigning to this attribute makes it possible to switch between different errorhandling strategies during the lifetime of the IncrementalEncoderobject.
The IncrementalDecoder class is used for decoding an input in multiplesteps. It defines the following methods which every incremental decoder mustdefine in order to be compatible with the Python codec registry.
The errors argument will be assigned to an attribute of the same name.Assigning to this attribute makes it possible to switch between different errorhandling strategies during the lifetime of the IncrementalDecoderobject.
The errors argument will be assigned to an attribute of the same name.Assigning to this attribute makes it possible to switch between different errorhandling strategies during the lifetime of the StreamWriter object.
Writes the concatenated iterable of strings to the stream (possibly by reusingthe write() method). Infinite orvery large iterables are not supported. The standard bytes-to-bytes codecsdo not support this method.
The errors argument will be assigned to an attribute of the same name.Assigning to this attribute makes it possible to switch between different errorhandling strategies during the lifetime of the StreamReader object.
The chars argument indicates the number of decodedcode points or bytes to return. The read() method willnever return more data than requested, but it might return less,if there is not enough available.
The size argument indicates the approximate maximumnumber of encoded bytes or code points to readfor decoding. The decoder can modify this setting asappropriate. The default value -1 indicates to read and decode as much aspossible. This parameter is intended toprevent having to decode huge files in one step.
in iso-8859-1), this increases the probability that a utf-8-sig encoding can becorrectly guessed from the byte sequence. So here the BOM is not used to be ableto determine the byte order used for generating the byte sequence, but as asignature that helps in guessing the encoding. On encoding the utf-8-sig codecwill write 0xef, 0xbb, 0xbf as the first three bytes to the file. Ondecoding utf-8-sig will skip those three bytes if they appear as the firstthree bytes in the file. In UTF-8, the use of the BOM is discouraged andshould generally be avoided.
Python comes with a number of codecs built-in, either implemented as C functionsor with dictionaries as mapping tables. The following table lists the codecs byname, together with a few common aliases, and the languages for which theencoding is likely used. Neither the list of aliases nor the list of languagesis meant to be exhaustive. Notice that spelling alternatives that only differ incase or use a hyphen instead of an underscore are also valid aliases; therefore,e.g. 'utf-8' is a valid alias for the 'utf_8' codec.
A number of predefined codecs are specific to Python, so their codec names haveno meaning outside Python. These are listed in the tables below based on theexpected input and output types (note that while text encodings are the mostcommon use case for codecs, the underlying codec infrastructure supportsarbitrary data transforms rather than just text encodings). For asymmetriccodecs, the stated meaning describes the encoding direction.
These RFCs together define a protocol to support non-ASCII characters in domainnames. A domain name containing non-ASCII characters (such aswww.Alliancefrançaise.nu) is converted into an ASCII-compatible encoding(ACE, such as www.xn--alliancefranaise-npb.nu). The ACE form of the domainname is then used in all places where arbitrary characters are not allowed bythe protocol, such as DNS queries, HTTP Host fields, and soon. This conversion is carried out in the application; if possible invisible tothe user: The application should transparently convert Unicode domain labels toIDNA on the wire, and convert back ACE labels to Unicode before presenting themto the user.
Python supports this conversion in several ways: the idna codec performsconversion between Unicode and ACE, separating an input string into labelsbased on the separator characters defined in section 3.1 of RFC 3490and converting each label to ACE as required, and conversely separating an inputbyte string into labels based on the . separator and converting any ACElabels found into unicode. Furthermore, the socket moduletransparently converts Unicode host names to ACE, so that applications need notbe concerned about converting host names themselves when they pass them to thesocket module. On top of that, modules that have host names as functionparameters, such as http.client and ftplib, accept Unicode hostnames (http.client then also transparently sends an IDNA hostname in theHost field if it sends that field at all).
When receiving host names from the wire (such as in reverse name lookup), noautomatic conversion to Unicode is performed: applications wishing to presentsuch host names to the user should decode them to Unicode.
The module encodings.idna also implements the nameprep procedure, whichperforms certain normalizations on host names, to achieve case-insensitivity ofinternational domain names, and to unify similar characters. The nameprepfunctions can be used directly if desired.
aa06259810