Tizen Native API
6.5
|
The Media Codec APIs provides functions for encoding and decoding using media data.
Required Header
#include <media_codec.h>
Overview
Related Features
This API is related with the following features:
- http://tizen.org/feature/multimedia.media_codec
It is recommended to design feature related codes in your application for reliability.
You can check if a device supports the related features for this API by using System Information, thereby controlling the procedure of your application.
To ensure your application is only running on the device with specific features, please define the features in your manifest file using the manifest editor in the SDK.
More details on featuring your application can be found from Feature Element.
MEDIA CODEC API allows : The API allows you to direct access to the media codec on device. It operates on "raw" data, so any file headers must be stripped off. media_packet is used for zero-copy.
Functions | |
int | mediacodec_create (mediacodec_h *mediacodec) |
Creates a mediacodec handle for decoding/encoding. | |
int | mediacodec_destroy (mediacodec_h mediacodec) |
Destroys the mediacodec handle and releases all its resources. | |
int | mediacodec_set_codec (mediacodec_h mediacodec, mediacodec_codec_type_e codec_type, int flags) |
Sets the codec type and decoder/encoder. | |
int | mediacodec_set_vdec_info (mediacodec_h mediacodec, int width, int height) |
Sets the default info for the video decoder. | |
int | mediacodec_set_venc_info (mediacodec_h mediacodec, int width, int height, int fps, int target_bits) |
Sets the default info for the video encoder. | |
int | mediacodec_set_adec_info (mediacodec_h mediacodec, int samplerate, int channel, int bit) |
Sets the default info for the audio decoder. | |
int | mediacodec_set_aenc_info (mediacodec_h mediacodec, int samplerate, int channel, int bit, int bitrate) |
Sets the default info for the audio encoder. | |
int | mediacodec_configure_from_media_format (mediacodec_h mediacodec, media_format_h format, int flags) |
Sets the codec type and codec default info via media format. | |
int | mediacodec_prepare (mediacodec_h mediacodec) |
Prepares mediacodec for encoding/decoding. | |
int | mediacodec_unprepare (mediacodec_h mediacodec) |
Unprepares mediacodec for encoding/decoding. | |
int | mediacodec_process_input (mediacodec_h mediacodec, media_packet_h inbuf, uint64_t timeOutUs) |
Decodes/Encodes a packet. The function passed undecoded/unencoded packet to the input queue and decode/encode a frame sequentially. | |
int | mediacodec_get_output (mediacodec_h mediacodec, media_packet_h *packet, uint64_t timeOutUs) |
Gets the decoded or encoded packet from the output queue. | |
int | mediacodec_flush_buffers (mediacodec_h mediacodec) |
Flushes both input and output buffers. | |
int | mediacodec_set_input_buffer_used_cb (mediacodec_h mediacodec, mediacodec_input_buffer_used_cb callback, void *user_data) |
Sets empty buffer callback the media codec for process, asynchronously. | |
int | mediacodec_unset_input_buffer_used_cb (mediacodec_h mediacodec) |
Unsets input buffer used callback the media codec for process, asynchronously. | |
int | mediacodec_set_output_buffer_available_cb (mediacodec_h mediacodec, mediacodec_output_buffer_available_cb callback, void *user_data) |
Sets output buffer available callback the media codec for process, asynchronously. | |
int | mediacodec_unset_output_buffer_available_cb (mediacodec_h mediacodec) |
unsets output buffer available callback the media codec for process, asynchronously. | |
int | mediacodec_set_error_cb (mediacodec_h mediacodec, mediacodec_error_cb callback, void *user_data) |
Sets error callback the media codec for process, asynchronously. | |
int | mediacodec_unset_error_cb (mediacodec_h mediacodec) |
Unsets error callback the media codec for process, asynchronously. | |
int | mediacodec_set_eos_cb (mediacodec_h mediacodec, mediacodec_eos_cb callback, void *user_data) |
Sets eos callback the media codec for process, asynchronously. | |
int | mediacodec_unset_eos_cb (mediacodec_h mediacodec) |
unsets eos callback the media codec for process, asynchronously. | |
int | mediacodec_set_buffer_status_cb (mediacodec_h mediacodec, mediacodec_buffer_status_cb callback, void *user_data) |
Sets a callback function to be invoked when the mediacodec needs more data or has enough data. | |
int | mediacodec_unset_buffer_status_cb (mediacodec_h mediacodec) |
Unsets the callback function. | |
int | mediacodec_foreach_supported_codec (mediacodec_h mediacodec, mediacodec_supported_codec_cb callback, void *user_data) |
Retrieves all supported codecs by invoking callback function once for each supported codecs. | |
int | mediacodec_get_supported_type (mediacodec_h mediacodec, mediacodec_codec_type_e codec_type, bool encoder, int *support_type) |
Verifies whether encoding can be performed with codec_type or not. | |
int | mediacodec_get_packet_pool (mediacodec_h mediacodec, media_packet_pool_h *pool) |
Gets the media packet pool allocated for recycling media packets. | |
Typedefs | |
typedef struct mediacodec_s * | mediacodec_h |
Media Codec type handle. | |
typedef void(* | mediacodec_input_buffer_used_cb )(media_packet_h packet, void *user_data) |
Called when the input buffer(packet) used up. | |
typedef void(* | mediacodec_output_buffer_available_cb )(media_packet_h packet, void *user_data) |
Called when the output buffer is available. | |
typedef void(* | mediacodec_error_cb )(mediacodec_error_e error, void *user_data) |
Called when the error has occurred. | |
typedef void(* | mediacodec_eos_cb )(void *user_data) |
Called when there is no data to decode/encode. | |
typedef void(* | mediacodec_buffer_status_cb )(mediacodec_status_e status, void *user_data) |
Called when the mediacodec needs more data or has enough data. | |
typedef bool(* | mediacodec_supported_codec_cb )(mediacodec_codec_type_e codec_type, void *user_data) |
Called once for each supported codec types. |
Typedef Documentation
typedef void(* mediacodec_buffer_status_cb)(mediacodec_status_e status, void *user_data) |
Called when the mediacodec needs more data or has enough data.
It is recommended that the application stops calling mediacodec_process_input() when MEDIACODEC_ENOUGH_DATA
- Since :
- 3.0 is invoked.
- Parameters:
-
[in] status The state of the buffer [in] user_data The user data passed from the callback registration function
typedef void(* mediacodec_eos_cb)(void *user_data) |
Called when there is no data to decode/encode.
It will be invoked when the end-of-stream is reached.
- Since :
- 2.3.1
- Parameters:
-
[in] user_data The user data passed from the callback registration function
- Precondition:
- It will be invoked when the eos event generate if you register this callback using mediacodec_set_eos_cb().
typedef void(* mediacodec_error_cb)(mediacodec_error_e error, void *user_data) |
Called when the error has occurred.
It will be invoked when the error has occurred. Following error codes can be delivered. MEDIACODEC_ERROR_INTERNAL, MEDIACODEC_ERROR_INVALID_STREAM, MEDIACODEC_ERROR_NOT_SUPPORTED_FORMAT, MEDIACODEC_ERROR_RESOURCE_CONFLICT
- Since :
- 2.3.1
- Parameters:
-
[in] error The error code [in] user_data The user data passed from the callback registration function
- Precondition:
- It will be invoked when the error has occurred if you register this callback using mediacodec_set_error_cb().
typedef struct mediacodec_s* mediacodec_h |
Media Codec type handle.
- Since :
- 2.3.1
typedef void(* mediacodec_input_buffer_used_cb)(media_packet_h packet, void *user_data) |
Called when the input buffer(packet) used up.
It will be invoked when mediacodec has used input buffer.
- Since :
- 2.3.1
- Remarks:
- The packet should be released using media_packet_destroy().
- Parameters:
-
[in] packet The media packet handle [in] user_data The user data passed from the callback registration function
- Precondition:
- It will be invoked when input buffer process completed if you register this callback using mediacodec_set_input_buffer_used_cb().
typedef void(* mediacodec_output_buffer_available_cb)(media_packet_h packet, void *user_data) |
Called when the output buffer is available.
It will be invoked when mediacodec has output buffer.
- Since :
- 2.3.1
- Remarks:
- The packet should be released using media_packet_destroy().
- Parameters:
-
[in] packet The media packet handle [in] user_data The user data passed from the callback registration function
- Precondition:
- It will be invoked when mediacodec process completed(had output buffer) if you register this callback using mediacodec_set_fill_buffer_cb().
typedef bool(* mediacodec_supported_codec_cb)(mediacodec_codec_type_e codec_type, void *user_data) |
Called once for each supported codec types.
- Since :
- 3.0
- Parameters:
-
[in] codec_type The codec type [in] user_data The user data passed from the foreach function
- Returns:
true
to continue with the next iteration of the loop,false
to break out of the loop.
- Precondition:
- mediacodec_foreach_supported_codec() will invoke this callback.
- See also:
- mediacodec_foreach_supported_codec()
Enumeration Type Documentation
Enumerations of media codec type.
- Since :
- 2.3.1
- Enumerator:
enum mediacodec_error_e |
Enumeration of media codec error.
- Since :
- 2.3.1
- Enumerator:
enum mediacodec_status_e |
Enumeration of media codec support type.
- Since :
- 2.3.1
- Remarks:
- If this codec is to be used as an encoder or decoder, the codec flag must be set to MEDIACODEC_ENCODER or MEDIACODEC_DECODER. If user doesn't set optional flag, default flags will be set to MEDIACODEC_SUPPORT_TYPE_SW.
Function Documentation
int mediacodec_configure_from_media_format | ( | mediacodec_h | mediacodec, |
media_format_h | format, | ||
int | flags | ||
) |
Sets the codec type and codec default info via media format.
Sets the value via media format instead of mediacodec_set_codec(), mediacodec_set_venc_info(), mediacodec_set_vdec_info(), mediacodec_set_aenc_info(), and mediacodec_set_adec_info().
- Since :
- 4.0
- Remarks:
- When using the format parameter from the output of the media demuxer, you can use media format via media_packet_get_format(). Otherwise, you must set the following values after creating media format. Set the audio or video codec type via media_format_set_video_mime() or media_format_set_audio_mime(). For video decoding, width, height must be set via media_format_set_video_width() and media_format_set_video_height(). For video encoding, width, height, target bitrate, and frame rate must be set via media_format_set_video_avg_bps() and media_format_set_video_frame_rate(). For audio decoding, samplerate, channel, and bit must be set via media_format_set_audio_samplerate(), media_format_set_audio_channel() and media_format_set_audio_bit(). For audio encoding, samplerate, channel, bit, and bitrate must be set via media_format_set_audio_avg_bps().
If this codec is to be used as a decoder, pass the MEDIACODEC_DECODER flag. If this codec is to be used as an encoder, pass the MEDIACODEC_ENCODER flag.
The software codec is used as default setting (MEDIACODEC_SUPPORT_TYPE_SW) if user doesn't set hardware flag. If you wants to use h/w decoder, you needs to pass the MEDIACODEC_DECODER | MEDIACODEC_SUPPORT_TYPE_HW.
- Parameters:
-
[in] mediacodec The mediacodec handle [in] format The media_format_h of input data [in] flags The encoding/decoding scheme, values of mediacodec_support_type_e combined with bitwise 'or'
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_CODEC_NOT_FOUND Unsupported codec MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
- Precondition:
- The media format has been created and the required values for configuration have been set.
- See also:
- media_format_set_video_mime()
- media_format_set_audio_mime()
- media_format_set_video_width()
- media_format_set_video_height()
- media_format_set_video_avg_bps()
- media_format_set_video_frame_rate()
- media_format_set_audio_channel()
- media_format_set_audio_samplerate()
- media_format_set_audio_bit()
- media_format_set_audio_avg_bps()
int mediacodec_create | ( | mediacodec_h * | mediacodec | ) |
Creates a mediacodec handle for decoding/encoding.
- Since :
- 2.3.1
- Remarks:
- you must release mediacodec using mediacodec_destroy().
Although you can create multiple mediacodec handles at the same time, the mediacodec cannot guarantee proper operation because of limited resources, like audio or display device.
- Parameters:
-
[out] mediacodec A new handle to mediacodec
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_OUT_OF_MEMORY Out of memory MEDIACODEC_ERROR_INVALID_OPERATION Invalid operation MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
int mediacodec_destroy | ( | mediacodec_h | mediacodec | ) |
Destroys the mediacodec handle and releases all its resources.
- Since :
- 2.3.1
- Remarks:
- To completely shutdown the mediacodec operation, call this function with a valid player handle from any mediacodec
- Parameters:
-
[in] mediacodec The handle to mediacodec to be destroyed.
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_OUT_OF_MEMORY Out of memory MEDIACODEC_ERROR_INVALID_OPERATION Invalid operation MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
int mediacodec_flush_buffers | ( | mediacodec_h | mediacodec | ) |
Flushes both input and output buffers.
- Since :
- 3.0
- Parameters:
-
[in] mediacodec The handle to mediacodec
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
int mediacodec_foreach_supported_codec | ( | mediacodec_h | mediacodec, |
mediacodec_supported_codec_cb | callback, | ||
void * | user_data | ||
) |
Retrieves all supported codecs by invoking callback function once for each supported codecs.
- Since :
- 3.0
- Parameters:
-
[in] mediacodec The handle to mediacodec [in] callback The callback function to invoke [in] user_data The user data to be passed to the callback function
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
- See also:
- mediacodec_supported_codec_cb()
int mediacodec_get_output | ( | mediacodec_h | mediacodec, |
media_packet_h * | packet, | ||
uint64_t | timeOutUs | ||
) |
Gets the decoded or encoded packet from the output queue.
- Since :
- 2.3.1
- Remarks:
- The packet should be released using media_packet_destroy().
- Parameters:
-
[in] mediacodec The handle to mediacodec [out] packet The current output of the decoder/encoder. this function passed decoded/encoded frame to output queue. [in] timeOutUs The timeout in microseconds.
The input buffer wait up to "timeOutUs" microseconds.
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_OUT_OF_MEMORY Out of memory MEDIACODEC_ERROR_INVALID_OPERATION Invalid operation MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
int mediacodec_get_packet_pool | ( | mediacodec_h | mediacodec, |
media_packet_pool_h * | pool | ||
) |
Gets the media packet pool allocated for recycling media packets.
The user can get the pool allocated with the number of packets are required to be used in codecs.
It is recommended to use media packet pool for better stability and performance.
- Since :
- 3.0
- Remarks:
- The pool should be released using media_packet_pool_deallocate() and destroyed using media_packet_pool_destroy().
- Parameters:
-
[in] mediacodec The mediacodec handle [out] pool The allocated pool handle
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_OUT_OF_MEMORY Out of memory MEDIACODEC_ERROR_INVALID_OPERATION The user calls mediacodec_get_packet_pool() before calling mediacodec_prepare(). MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
- Precondition:
- mediacodec_get_packet_pool() should be called after calling mediacodec_prepare().
- Postcondition:
- If the pool is used, media_packet_pool_deallocate() and media_packet_pool_destroy() should be called.
int mediacodec_get_supported_type | ( | mediacodec_h | mediacodec, |
mediacodec_codec_type_e | codec_type, | ||
bool | encoder, | ||
int * | support_type | ||
) |
Verifies whether encoding can be performed with codec_type or not.
- Since :
- 3.0
- Parameters:
-
[in] mediacodec The handle to mediacodec [in] codec_type The identifier of the codec type of the encoder. [in] encoder Whether the encoder or decoder : ( true
= encoder,false
= decoder).[out] support_type ( MEDIACODEC_SUPPORT_TYPE_HW
= mediacodec can be performed with hardware codec,MEDIACODEC_SUPPORT_TYPE_SW
= mediacodec can be performed with software codec)
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0) #include <media_codec.h> mediacodec_h mediacodec; mediacodec_support_type_e type; mediacodec_codec_type_e codec_type = MEDIACODEC_H264; mediacodec_create(&mediacodec); mediacodec_get_supported_type(mediacodec, codec_type, 1, &type); if(type == MEDIACODEC_SUPPORT_TYPE_HW) // only h/w supported else if (type == MEDIACODEC_SUPPORT_TYPE_SW) // only s/w supported else if (type == (MEDIACODEC_SUPPORT_TYPE_HW|MEDIACODEC_SUPPORT_TYPE_SW) // both supported mediacodec_set_codec(mediacodec, codec_type, MEDIACODEC_ENCODER | MEDIACODEC_SUPPORT_TYPE_HW);
int mediacodec_prepare | ( | mediacodec_h | mediacodec | ) |
Prepares mediacodec for encoding/decoding.
- Since :
- 2.3.1
- Parameters:
-
[in] mediacodec The handle to mediacodec
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_OUT_OF_MEMORY Out of memory MEDIACODEC_ERROR_INVALID_OPERATION Invalid operation MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0) MEDIACODEC_ERROR_RESOURCE_OVERLOADED Exceed the instance limits (Since 5.0) MEDIACODEC_ERROR_INTERNAL Internal error (Since 5.0)
- Precondition:
- The mediacodec should call mediacodec_set_codec()and mediacodec_set_vdec_info()/mediacodec_set_venc_info() before calling mediacodec_prepare() If the decoder is set by mediacodec_set_codec(), mediacodec_set_vdec_info() should be called. If the encoder is set by mediacodec_set_codec(), mediacodec_set_venc_info() should be called.
int mediacodec_process_input | ( | mediacodec_h | mediacodec, |
media_packet_h | inbuf, | ||
uint64_t | timeOutUs | ||
) |
Decodes/Encodes a packet. The function passed undecoded/unencoded packet to the input queue and decode/encode a frame sequentially.
- Since :
- 2.3.1
- Parameters:
-
[in] mediacodec The handle to mediacodec [in] inbuf The current input format for the decoder/encoder [in] timeOutUs The timeout in microseconds.
The input buffer wait up to "timeOutUs" microseconds.
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_OUT_OF_MEMORY Out of memory MEDIACODEC_ERROR_INVALID_OPERATION Invalid operation MEDIACODEC_ERROR_OVERFLOW_INBUFFER Overflow inputbuffer MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
int mediacodec_set_adec_info | ( | mediacodec_h | mediacodec, |
int | samplerate, | ||
int | channel, | ||
int | bit | ||
) |
Sets the default info for the audio decoder.
- Since :
- 2.3.1
- Parameters:
-
[in] mediacodec The handle to mediacodec [in] samplerate The samplerate for audio decoding. [in] channel The channels for audio decoding. [in] bit The bits resolution for audio decoding.
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_OUT_OF_MEMORY Out of memory MEDIACODEC_ERROR_INVALID_OPERATION Invalid operation MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
int mediacodec_set_aenc_info | ( | mediacodec_h | mediacodec, |
int | samplerate, | ||
int | channel, | ||
int | bit, | ||
int | bitrate | ||
) |
Sets the default info for the audio encoder.
- Since :
- 2.3.1
- Parameters:
-
[in] mediacodec The handle to mediacodec [in] samplerate The samplerate for audio encoding. [in] channel The channels for audio encoding. [in] bit The bits resolution for audio encoding. [in] bitrate The bitrate for audio encoding.
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_OUT_OF_MEMORY Out of memory MEDIACODEC_ERROR_INVALID_OPERATION Invalid operation MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
int mediacodec_set_buffer_status_cb | ( | mediacodec_h | mediacodec, |
mediacodec_buffer_status_cb | callback, | ||
void * | user_data | ||
) |
Sets a callback function to be invoked when the mediacodec needs more data or has enough data.
- Since :
- 3.0
- Parameters:
-
[in] mediacodec The handle to mediacodec [in] callback The callback function to register [in] user_data The user data to be passed to the callback function
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
- Precondition:
- mediacodec_set_buffer_status_cb() should be called before mediacodec_preare().
- Postcondition:
- mediacodec_buffer_status_cb() will be invoked.
int mediacodec_set_codec | ( | mediacodec_h | mediacodec, |
mediacodec_codec_type_e | codec_type, | ||
int | flags | ||
) |
Sets the codec type and decoder/encoder.
- Since :
- 2.3.1
- Remarks:
- If this codec is to be used as a decoder, pass the MEDIACODEC_DECODER flag. If this codec is to be used as an encoder, pass the MEDIACODEC_ENCODER flag.
The software codec is used as default setting(MEDIACODEC_SUPPORT_TYPE_SW) if user doesn't set hardware flag. If user wants to use h/w decoder, user needs to pass the MEDIACODEC_DECODER | MEDIACODEC_SUPPORT_TYPE_HW.
- Parameters:
-
[in] mediacodec The handle of mediacodec [in] codec_type The identifier of the codec type of the decoder/encoder [in] flags The encoding/decoding scheme, defined by mediacodec_support_type_e
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_OUT_OF_MEMORY Out of memory MEDIACODEC_ERROR_INVALID_OPERATION Invalid operation MEDIACODEC_ERROR_CODEC_NOT_FOUND Codec not found MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
int mediacodec_set_eos_cb | ( | mediacodec_h | mediacodec, |
mediacodec_eos_cb | callback, | ||
void * | user_data | ||
) |
Sets eos callback the media codec for process, asynchronously.
- Since :
- 2.3.1
- Parameters:
-
[in] mediacodec The handle to mediacodec [in] callback The callback function to register [in] user_data The user data to be passed to the callback function
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
- Precondition:
- mediacodec_set_eos_cb() should be called before mediacodec_preare().
- Postcondition:
- mediacodec_eos_cb() will be invoked.
int mediacodec_set_error_cb | ( | mediacodec_h | mediacodec, |
mediacodec_error_cb | callback, | ||
void * | user_data | ||
) |
Sets error callback the media codec for process, asynchronously.
- Since :
- 2.3.1
- Parameters:
-
[in] mediacodec The handle to mediacodec [in] callback The callback function to register [in] user_data The user data to be passed to the callback function
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
- Precondition:
- mediacodec_set_error_cb() should be called before mediacodec_preare().
- Postcondition:
- mediacodec_error_cb() will be invoked.
int mediacodec_set_input_buffer_used_cb | ( | mediacodec_h | mediacodec, |
mediacodec_input_buffer_used_cb | callback, | ||
void * | user_data | ||
) |
Sets empty buffer callback the media codec for process, asynchronously.
- Since :
- 2.3.1
- Parameters:
-
[in] mediacodec The handle to mediacodec [in] callback The callback function to register [in] user_data The user data to be passed to the callback function
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
- Precondition:
- mediacodec_set_input_buffer_used_cb() should be called before mediacodec_preare().
- Postcondition:
- mediacodec_input_buffer_used_cb() will be invoked.
int mediacodec_set_output_buffer_available_cb | ( | mediacodec_h | mediacodec, |
mediacodec_output_buffer_available_cb | callback, | ||
void * | user_data | ||
) |
Sets output buffer available callback the media codec for process, asynchronously.
- Since :
- 2.3.1
- Parameters:
-
[in] mediacodec The handle to mediacodec [in] callback The callback function to register [in] user_data The user data to be passed to the callback function
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
- Precondition:
- mediacodec_set_output_buffer_available_cb() should be called before mediacodec_preare().
- Postcondition:
- mediacodec_output_buffer_available_cb() will be invoked.
int mediacodec_set_vdec_info | ( | mediacodec_h | mediacodec, |
int | width, | ||
int | height | ||
) |
Sets the default info for the video decoder.
- Since :
- 2.3.1
- Parameters:
-
[in] mediacodec The handle to mediacodec [in] width The width for video decoding. [in] height The height for video decoding.
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_OUT_OF_MEMORY Out of memory MEDIACODEC_ERROR_INVALID_OPERATION Invalid operation MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
int mediacodec_set_venc_info | ( | mediacodec_h | mediacodec, |
int | width, | ||
int | height, | ||
int | fps, | ||
int | target_bits | ||
) |
Sets the default info for the video encoder.
- Since :
- 2.3.1
- Remarks:
- The frame rate is the speed of recording and the speed of playback. If user wants the default setting for ratecontrol, set target_bits to
0
.
- Parameters:
-
[in] mediacodec The handle to mediacodec [in] width The width for video encoding. [in] height The height for video encoding. [in] fps The frame rate in frames per second. [in] target_bits The target bitrates in bits per second.(a unit of kbit)
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_OUT_OF_MEMORY Out of memory MEDIACODEC_ERROR_INVALID_OPERATION Invalid operation MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
int mediacodec_unprepare | ( | mediacodec_h | mediacodec | ) |
Unprepares mediacodec for encoding/decoding.
- Since :
- 2.3.1
- Parameters:
-
[in] mediacodec The handle to mediacodec
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_OUT_OF_MEMORY Out of memory MEDIACODEC_ERROR_INVALID_OPERATION Invalid operation MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
int mediacodec_unset_buffer_status_cb | ( | mediacodec_h | mediacodec | ) |
Unsets the callback function.
- Since :
- 3.0
- Parameters:
-
[in] mediacodec The handle to mediacodec
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
- See also:
- mediacodec_set_buffer_status_cb()
int mediacodec_unset_eos_cb | ( | mediacodec_h | mediacodec | ) |
unsets eos callback the media codec for process, asynchronously.
- Since :
- 2.3.1
- Parameters:
-
[in] mediacodec The handle to mediacodec
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
- See also:
- mediacodec_set_eos_cb()
int mediacodec_unset_error_cb | ( | mediacodec_h | mediacodec | ) |
Unsets error callback the media codec for process, asynchronously.
- Since :
- 2.3.1
- Parameters:
-
[in] mediacodec The handle to mediacodec
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
- See also:
- mediacodec_set_error_cb()
int mediacodec_unset_input_buffer_used_cb | ( | mediacodec_h | mediacodec | ) |
Unsets input buffer used callback the media codec for process, asynchronously.
- Since :
- 2.3.1
- Parameters:
-
[in] mediacodec The handle to mediacodec
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)
int mediacodec_unset_output_buffer_available_cb | ( | mediacodec_h | mediacodec | ) |
unsets output buffer available callback the media codec for process, asynchronously.
- Since :
- 2.3.1
- Parameters:
-
[in] mediacodec The handle to mediacodec
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
MEDIACODEC_ERROR_NONE Successful MEDIACODEC_ERROR_INVALID_PARAMETER Invalid parameter MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE Not supported on device (Since 4.0)