FFmpeg
Macros | Enumerations | Functions | Variables
mediacodecdec_common.c File Reference
#include <string.h>
#include <sys/types.h>
#include "libavutil/avassert.h"
#include "libavutil/common.h"
#include "libavutil/hwcontext_mediacodec.h"
#include "libavutil/mem.h"
#include "libavutil/log.h"
#include "libavutil/pixfmt.h"
#include "libavutil/time.h"
#include "libavutil/timestamp.h"
#include "libavutil/channel_layout.h"
#include "avcodec.h"
#include "decode.h"
#include "mediacodec.h"
#include "mediacodec_surface.h"
#include "mediacodec_sw_buffer.h"
#include "mediacodec_wrapper.h"
#include "mediacodecdec_common.h"

Go to the source code of this file.

Macros

#define INPUT_DEQUEUE_TIMEOUT_US   8000
 OMX.k3.video.decoder.avc, OMX.NVIDIA. More...
 
#define OUTPUT_DEQUEUE_TIMEOUT_US   8000
 
#define OUTPUT_DEQUEUE_BLOCK_TIMEOUT_US   1000000
 
#define AMEDIAFORMAT_GET_INT32(name, key, mandatory)
 

Enumerations

enum  {
  ENCODING_PCM_16BIT = 0x00000002, ENCODING_PCM_8BIT = 0x00000003, ENCODING_PCM_FLOAT = 0x00000004, ENCODING_PCM_24BIT_PACKED = 0x00000015,
  ENCODING_PCM_32BIT = 0x00000016
}
 
enum  {
  CHANNEL_OUT_FRONT_LEFT = 0x4, CHANNEL_OUT_FRONT_RIGHT = 0x8, CHANNEL_OUT_FRONT_CENTER = 0x10, CHANNEL_OUT_LOW_FREQUENCY = 0x20,
  CHANNEL_OUT_BACK_LEFT = 0x40, CHANNEL_OUT_BACK_RIGHT = 0x80, CHANNEL_OUT_FRONT_LEFT_OF_CENTER = 0x100, CHANNEL_OUT_FRONT_RIGHT_OF_CENTER = 0x200,
  CHANNEL_OUT_BACK_CENTER = 0x400, CHANNEL_OUT_SIDE_LEFT = 0x800, CHANNEL_OUT_SIDE_RIGHT = 0x1000, CHANNEL_OUT_TOP_CENTER = 0x2000,
  CHANNEL_OUT_TOP_FRONT_LEFT = 0x4000, CHANNEL_OUT_TOP_FRONT_CENTER = 0x8000, CHANNEL_OUT_TOP_FRONT_RIGHT = 0x10000, CHANNEL_OUT_TOP_BACK_LEFT = 0x20000,
  CHANNEL_OUT_TOP_BACK_CENTER = 0x40000, CHANNEL_OUT_TOP_BACK_RIGHT = 0x80000
}
 
enum  {
  COLOR_FormatYUV420Planar = 0x13, COLOR_FormatYUV420SemiPlanar = 0x15, COLOR_FormatYCbYCr = 0x19, COLOR_FormatAndroidOpaque = 0x7F000789,
  COLOR_QCOM_FormatYUV420SemiPlanar = 0x7fa30c00, COLOR_QCOM_FormatYUV420SemiPlanar32m = 0x7fa30c04, COLOR_QCOM_FormatYUV420PackedSemiPlanar64x32Tile2m8ka = 0x7fa30c03, COLOR_TI_FormatYUV420PackedSemiPlanar = 0x7f000100,
  COLOR_TI_FormatYUV420PackedSemiPlanarInterlaced = 0x7f000001
}
 

Functions

static enum AVSampleFormat mcdec_map_pcm_format (AVCodecContext *avctx, MediaCodecDecContext *s, int pcm_format)
 
static uint64_t mcdec_map_channel_mask (AVCodecContext *avctx, int channel_mask)
 
static enum AVPixelFormat mcdec_map_color_format (AVCodecContext *avctx, MediaCodecDecContext *s, int color_format)
 
static void ff_mediacodec_dec_ref (MediaCodecDecContext *s)
 
static void ff_mediacodec_dec_unref (MediaCodecDecContext *s)
 
static void mediacodec_buffer_release (void *opaque, uint8_t *data)
 
static int mediacodec_wrap_hw_buffer (AVCodecContext *avctx, MediaCodecDecContext *s, ssize_t index, FFAMediaCodecBufferInfo *info, AVFrame *frame)
 
static int mediacodec_wrap_sw_audio_buffer (AVCodecContext *avctx, MediaCodecDecContext *s, uint8_t *data, size_t size, ssize_t index, FFAMediaCodecBufferInfo *info, AVFrame *frame)
 
static int mediacodec_wrap_sw_video_buffer (AVCodecContext *avctx, MediaCodecDecContext *s, uint8_t *data, size_t size, ssize_t index, FFAMediaCodecBufferInfo *info, AVFrame *frame)
 
static int mediacodec_wrap_sw_buffer (AVCodecContext *avctx, MediaCodecDecContext *s, uint8_t *data, size_t size, ssize_t index, FFAMediaCodecBufferInfo *info, AVFrame *frame)
 
static int mediacodec_dec_parse_video_format (AVCodecContext *avctx, MediaCodecDecContext *s)
 
static int mediacodec_dec_parse_audio_format (AVCodecContext *avctx, MediaCodecDecContext *s)
 
static int mediacodec_dec_parse_format (AVCodecContext *avctx, MediaCodecDecContext *s)
 
static int mediacodec_dec_flush_codec (AVCodecContext *avctx, MediaCodecDecContext *s)
 
static int mediacodec_dec_get_video_codec (AVCodecContext *avctx, MediaCodecDecContext *s, const char *mime, FFAMediaFormat *format)
 
static int mediacodec_dec_get_audio_codec (AVCodecContext *avctx, MediaCodecDecContext *s, const char *mime, FFAMediaFormat *format)
 
int ff_mediacodec_dec_init (AVCodecContext *avctx, MediaCodecDecContext *s, const char *mime, FFAMediaFormat *format)
 
int ff_mediacodec_dec_send (AVCodecContext *avctx, MediaCodecDecContext *s, AVPacket *pkt, bool wait)
 
int ff_mediacodec_dec_receive (AVCodecContext *avctx, MediaCodecDecContext *s, AVFrame *frame, bool wait)
 
int ff_mediacodec_dec_flush (AVCodecContext *avctx, MediaCodecDecContext *s)
 
int ff_mediacodec_dec_close (AVCodecContext *avctx, MediaCodecDecContext *s)
 
int ff_mediacodec_dec_is_flushing (AVCodecContext *avctx, MediaCodecDecContext *s)
 

Variables

struct {
   int   pcm_format
 
   enum AVSampleFormat   sample_format
 
sample_formats []
 
struct {
   int   mask
 
   uint64_t   layout
 
channel_masks []
 
struct {
   int   color_format
 
   enum AVPixelFormat   pix_fmt
 
color_formats []
 

Macro Definition Documentation

◆ INPUT_DEQUEUE_TIMEOUT_US

#define INPUT_DEQUEUE_TIMEOUT_US   8000

OMX.k3.video.decoder.avc, OMX.NVIDIA.

  • OMX.SEC.avc.dec and OMX.google codec workarounds used in various place are taken from the Gstreamer project.

Gstreamer references: https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/sys/androidmedia/

Gstreamer copyright notice:

Copyright (C) 2012, Collabora Ltd. Author: Sebastian Dröge sebas.nosp@m.tian.nosp@m..droe.nosp@m.ge@c.nosp@m.ollab.nosp@m.ora..nosp@m.co.uk

Copyright (C) 2012, Rafaël Carré <funman@videolanorg>

Copyright (C) 2015, Sebastian Dröge sebas.nosp@m.tian.nosp@m.@cent.nosp@m.ricu.nosp@m.lar.c.nosp@m.om

Copyright (C) 2014-2015, Collabora Ltd. Author: Matthieu Bouron matth.nosp@m.ieu..nosp@m.bouro.nosp@m.n@gc.nosp@m.ollab.nosp@m.ora..nosp@m.com

Copyright (C) 2015, Edward Hervey Author: Edward Hervey bilbo.nosp@m.ed@g.nosp@m.mail..nosp@m.com

Copyright (C) 2015, Matthew Waters matth.nosp@m.ew@c.nosp@m.entri.nosp@m.cula.nosp@m.r.com

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation version 2.1 of the License.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Definition at line 86 of file mediacodecdec_common.c.

◆ OUTPUT_DEQUEUE_TIMEOUT_US

#define OUTPUT_DEQUEUE_TIMEOUT_US   8000

Definition at line 87 of file mediacodecdec_common.c.

◆ OUTPUT_DEQUEUE_BLOCK_TIMEOUT_US

#define OUTPUT_DEQUEUE_BLOCK_TIMEOUT_US   1000000

Definition at line 88 of file mediacodecdec_common.c.

◆ AMEDIAFORMAT_GET_INT32

#define AMEDIAFORMAT_GET_INT32 (   name,
  key,
  mandatory 
)
Value:
do { \
int32_t value = 0; \
if (ff_AMediaFormat_getInt32(s->format, key, &value)) { \
(name) = value; \
} else if (mandatory) { \
av_log(avctx, AV_LOG_ERROR, "Could not get %s from format %s\n", key, format); \
goto fail; \
} \
} while (0) \

Definition at line 532 of file mediacodecdec_common.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ENCODING_PCM_16BIT 
ENCODING_PCM_8BIT 
ENCODING_PCM_FLOAT 
ENCODING_PCM_24BIT_PACKED 
ENCODING_PCM_32BIT 

Definition at line 90 of file mediacodecdec_common.c.

◆ anonymous enum

anonymous enum
Enumerator
CHANNEL_OUT_FRONT_LEFT 
CHANNEL_OUT_FRONT_RIGHT 
CHANNEL_OUT_FRONT_CENTER 
CHANNEL_OUT_LOW_FREQUENCY 
CHANNEL_OUT_BACK_LEFT 
CHANNEL_OUT_BACK_RIGHT 
CHANNEL_OUT_FRONT_LEFT_OF_CENTER 
CHANNEL_OUT_FRONT_RIGHT_OF_CENTER 
CHANNEL_OUT_BACK_CENTER 
CHANNEL_OUT_SIDE_LEFT 
CHANNEL_OUT_SIDE_RIGHT 
CHANNEL_OUT_TOP_CENTER 
CHANNEL_OUT_TOP_FRONT_LEFT 
CHANNEL_OUT_TOP_FRONT_CENTER 
CHANNEL_OUT_TOP_FRONT_RIGHT 
CHANNEL_OUT_TOP_BACK_LEFT 
CHANNEL_OUT_TOP_BACK_CENTER 
CHANNEL_OUT_TOP_BACK_RIGHT 

Definition at line 130 of file mediacodecdec_common.c.

◆ anonymous enum

anonymous enum
Enumerator
COLOR_FormatYUV420Planar 
COLOR_FormatYUV420SemiPlanar 
COLOR_FormatYCbYCr 
COLOR_FormatAndroidOpaque 
COLOR_QCOM_FormatYUV420SemiPlanar 
COLOR_QCOM_FormatYUV420SemiPlanar32m 
COLOR_QCOM_FormatYUV420PackedSemiPlanar64x32Tile2m8ka 
COLOR_TI_FormatYUV420PackedSemiPlanar 
COLOR_TI_FormatYUV420PackedSemiPlanarInterlaced 

Definition at line 191 of file mediacodecdec_common.c.

Function Documentation

◆ mcdec_map_pcm_format()

static enum AVSampleFormat mcdec_map_pcm_format ( AVCodecContext avctx,
MediaCodecDecContext s,
int  pcm_format 
)
static

Definition at line 112 of file mediacodecdec_common.c.

Referenced by mediacodec_dec_parse_audio_format().

◆ mcdec_map_channel_mask()

static uint64_t mcdec_map_channel_mask ( AVCodecContext avctx,
int  channel_mask 
)
static

Definition at line 178 of file mediacodecdec_common.c.

Referenced by mediacodec_dec_parse_audio_format().

◆ mcdec_map_color_format()

static enum AVPixelFormat mcdec_map_color_format ( AVCodecContext avctx,
MediaCodecDecContext s,
int  color_format 
)
static

Definition at line 220 of file mediacodecdec_common.c.

Referenced by mediacodec_dec_parse_video_format().

◆ ff_mediacodec_dec_ref()

static void ff_mediacodec_dec_ref ( MediaCodecDecContext s)
static

Definition at line 247 of file mediacodecdec_common.c.

Referenced by mediacodec_wrap_hw_buffer().

◆ ff_mediacodec_dec_unref()

static void ff_mediacodec_dec_unref ( MediaCodecDecContext s)
static

Definition at line 252 of file mediacodecdec_common.c.

Referenced by ff_mediacodec_dec_close(), and mediacodec_buffer_release().

◆ mediacodec_buffer_release()

static void mediacodec_buffer_release ( void *  opaque,
uint8_t *  data 
)
static

Definition at line 278 of file mediacodecdec_common.c.

Referenced by mediacodec_wrap_hw_buffer().

◆ mediacodec_wrap_hw_buffer()

static int mediacodec_wrap_hw_buffer ( AVCodecContext avctx,
MediaCodecDecContext s,
ssize_t  index,
FFAMediaCodecBufferInfo info,
AVFrame frame 
)
static

Definition at line 296 of file mediacodecdec_common.c.

Referenced by ff_mediacodec_dec_receive().

◆ mediacodec_wrap_sw_audio_buffer()

static int mediacodec_wrap_sw_audio_buffer ( AVCodecContext avctx,
MediaCodecDecContext s,
uint8_t *  data,
size_t  size,
ssize_t  index,
FFAMediaCodecBufferInfo info,
AVFrame frame 
)
static

Definition at line 371 of file mediacodecdec_common.c.

Referenced by mediacodec_wrap_sw_buffer().

◆ mediacodec_wrap_sw_video_buffer()

static int mediacodec_wrap_sw_video_buffer ( AVCodecContext avctx,
MediaCodecDecContext s,
uint8_t *  data,
size_t  size,
ssize_t  index,
FFAMediaCodecBufferInfo info,
AVFrame frame 
)
static

Definition at line 438 of file mediacodecdec_common.c.

Referenced by mediacodec_wrap_sw_buffer().

◆ mediacodec_wrap_sw_buffer()

static int mediacodec_wrap_sw_buffer ( AVCodecContext avctx,
MediaCodecDecContext s,
uint8_t *  data,
size_t  size,
ssize_t  index,
FFAMediaCodecBufferInfo info,
AVFrame frame 
)
static

Definition at line 516 of file mediacodecdec_common.c.

Referenced by ff_mediacodec_dec_receive().

◆ mediacodec_dec_parse_video_format()

static int mediacodec_dec_parse_video_format ( AVCodecContext avctx,
MediaCodecDecContext s 
)
static

Definition at line 543 of file mediacodecdec_common.c.

Referenced by mediacodec_dec_parse_format().

◆ mediacodec_dec_parse_audio_format()

static int mediacodec_dec_parse_audio_format ( AVCodecContext avctx,
MediaCodecDecContext s 
)
static

Definition at line 653 of file mediacodecdec_common.c.

Referenced by mediacodec_dec_parse_format().

◆ mediacodec_dec_parse_format()

static int mediacodec_dec_parse_format ( AVCodecContext avctx,
MediaCodecDecContext s 
)
static

Definition at line 700 of file mediacodecdec_common.c.

Referenced by ff_mediacodec_dec_init(), and ff_mediacodec_dec_receive().

◆ mediacodec_dec_flush_codec()

static int mediacodec_dec_flush_codec ( AVCodecContext avctx,
MediaCodecDecContext s 
)
static

Definition at line 710 of file mediacodecdec_common.c.

Referenced by ff_mediacodec_dec_flush().

◆ mediacodec_dec_get_video_codec()

static int mediacodec_dec_get_video_codec ( AVCodecContext avctx,
MediaCodecDecContext s,
const char *  mime,
FFAMediaFormat format 
)
static

Definition at line 733 of file mediacodecdec_common.c.

Referenced by ff_mediacodec_dec_init().

◆ mediacodec_dec_get_audio_codec()

static int mediacodec_dec_get_audio_codec ( AVCodecContext avctx,
MediaCodecDecContext s,
const char *  mime,
FFAMediaFormat format 
)
static

Definition at line 800 of file mediacodecdec_common.c.

Referenced by ff_mediacodec_dec_init().

◆ ff_mediacodec_dec_init()

int ff_mediacodec_dec_init ( AVCodecContext avctx,
MediaCodecDecContext s,
const char *  mime,
FFAMediaFormat format 
)

Definition at line 819 of file mediacodecdec_common.c.

Referenced by mediacodec_decode_init().

◆ ff_mediacodec_dec_send()

int ff_mediacodec_dec_send ( AVCodecContext avctx,
MediaCodecDecContext s,
AVPacket pkt,
bool  wait 
)

Definition at line 884 of file mediacodecdec_common.c.

Referenced by mediacodec_receive_frame().

◆ ff_mediacodec_dec_receive()

int ff_mediacodec_dec_receive ( AVCodecContext avctx,
MediaCodecDecContext s,
AVFrame frame,
bool  wait 
)

Definition at line 978 of file mediacodecdec_common.c.

Referenced by mediacodec_receive_frame().

◆ ff_mediacodec_dec_flush()

int ff_mediacodec_dec_flush ( AVCodecContext avctx,
MediaCodecDecContext s 
)

Definition at line 1103 of file mediacodecdec_common.c.

Referenced by mediacodec_decode_flush(), and mediacodec_receive_frame().

◆ ff_mediacodec_dec_close()

int ff_mediacodec_dec_close ( AVCodecContext avctx,
MediaCodecDecContext s 
)

Definition at line 1121 of file mediacodecdec_common.c.

Referenced by ff_mediacodec_dec_init(), and mediacodec_decode_close().

◆ ff_mediacodec_dec_is_flushing()

int ff_mediacodec_dec_is_flushing ( AVCodecContext avctx,
MediaCodecDecContext s 
)

Definition at line 1140 of file mediacodecdec_common.c.

Referenced by mediacodec_receive_frame().

Variable Documentation

◆ pcm_format

int pcm_format

Definition at line 100 of file mediacodecdec_common.c.

Referenced by mcdec_map_pcm_format().

◆ sample_format

enum AVSampleFormat sample_format

Definition at line 101 of file mediacodecdec_common.c.

Referenced by ipcm_decoder_config().

◆ sample_formats

const { ... } sample_formats[]

◆ mask

int mask

Definition at line 154 of file mediacodecdec_common.c.

Referenced by ac3_bit_alloc_calc_bap_c(), ac3_decode_frame(), add_hfyu_median_pred_int16_c(), add_int16_c(), add_left_pred_int16_c(), affine_merge_candidate(), affine_merge_const1(), affine_merge_const2(), affine_merge_const3(), affine_merge_const4(), affine_merge_const5(), affine_merge_const6(), apply_filter(), argo_brp_read_header(), av_channel_layout_describe_bprint(), av_channel_layout_from_mask(), av_channel_layout_from_string(), av_channel_layout_index_from_channel(), av_channel_layout_retype(), av_channel_layout_subset(), av_opt_set_defaults2(), av_read_image_line2(), av_write_image_line2(), avc_chroma_hv_2x2_msa(), avc_chroma_hv_2x4_msa(), avc_chroma_hv_4x2_msa(), avc_chroma_hv_4x4_msa(), avc_chroma_hv_4x8_msa(), avc_chroma_hv_8x4_msa(), avc_chroma_hv_8x8_msa(), avc_chroma_hv_and_aver_dst_2x2_msa(), avc_chroma_hv_and_aver_dst_2x4_msa(), avc_chroma_hv_and_aver_dst_4x2_msa(), avc_chroma_hv_and_aver_dst_4x4_msa(), avc_chroma_hv_and_aver_dst_4x8_msa(), avc_chroma_hv_and_aver_dst_8x4_msa(), avc_chroma_hv_and_aver_dst_8x8_msa(), avc_chroma_hz_2x2_msa(), avc_chroma_hz_2x4_msa(), avc_chroma_hz_4x2_msa(), avc_chroma_hz_4x4_msa(), avc_chroma_hz_4x8_msa(), avc_chroma_hz_8x4_msa(), avc_chroma_hz_8x8_msa(), avc_chroma_hz_and_aver_dst_2x2_msa(), avc_chroma_hz_and_aver_dst_2x4_msa(), avc_chroma_hz_and_aver_dst_4x2_msa(), avc_chroma_hz_and_aver_dst_4x4_msa(), avc_chroma_hz_and_aver_dst_4x8_msa(), avc_chroma_hz_and_aver_dst_8x4_msa(), avc_chroma_hz_and_aver_dst_8x8_msa(), avc_chroma_hz_nonmult_msa(), binkb_read_bundle(), bit_depth(), blend_line_hv(), blend_line_hv16(), blend_pixel(), blend_pixel16(), blur_image(), blur_pixel(), build_xlaw_table(), check_add_int16(), check_add_left_pred_16(), check_add_res(), check_loop_filter(), check_loop_filter_intra(), checkasm_check_vf_bwdif(), cinepak_decode_codebook(), cinepak_decode_vectors(), cmp_direct_inline(), codebook_bits_offset(), common_hv_2ht_2vt_4x4_msa(), common_hv_2ht_2vt_4x8_msa(), common_hv_2ht_2vt_8x4_msa(), common_hv_2ht_2vt_8x8mult_msa(), common_hv_2ht_2vt_and_aver_dst_4x4_msa(), common_hv_2ht_2vt_and_aver_dst_4x8_msa(), common_hv_2ht_2vt_and_aver_dst_8x4_msa(), common_hv_2ht_2vt_and_aver_dst_8x8mult_msa(), common_hz_2t_4x4_msa(), common_hz_2t_4x8_msa(), common_hz_2t_8x4_msa(), common_hz_2t_8x8mult_msa(), common_hz_2t_and_aver_dst_4x4_msa(), common_hz_2t_and_aver_dst_4x8_msa(), common_hz_2t_and_aver_dst_8x4_msa(), common_hz_2t_and_aver_dst_8x8mult_msa(), compare_add_res(), compare_mv_ref_idx(), compare_pf_ref_idx(), compress_alpha(), compress_color(), compute_bit_depth(), config_output(), copy_color_mask(), copy_src_mask(), cu_get_max_y(), decode_0(), decode_13(), decode_bmv_frame(), decode_cblk(), decode_channel_code_tab(), decode_clnpass(), decode_dds1(), decode_dsw1(), decode_init(), decode_inter(), decode_long_vertical_delta2(), decode_mvc1(), decode_mvc2(), decode_mvdv(), decode_region_masked(), decode_residual(), decode_residual_block(), decode_scaling_list(), decode_scaling_matrices(), decode_sigpass(), decode_tsw1(), decodeplane32(), diff_int16_c(), draw_htext(), draw_htext16(), draw_ihtext(), draw_ihtext16(), draw_rectangle(), draw_vtext(), draw_vtext16(), drawtext(), encode_alpha_plane(), encode_alpha_slice_data(), encode_clnpass(), encode_plane_bitstream(), encode_refpass(), encode_sigpass(), epic_jb_decode_tile(), escape124_decode_frame(), estimate_alpha_plane(), ff_ac3_bit_alloc_calc_mask(), ff_acelp_fc_pulse_per_track(), ff_avg_bilin_16h_msa(), ff_avg_bilin_16hv_msa(), ff_avg_bilin_32h_msa(), ff_avg_bilin_64h_msa(), ff_blend_mask(), ff_dca_count_chs_for_mask(), ff_decode_10_pulses_35bits(), ff_draw_pc_font(), ff_er_add_slice(), ff_h264_check_intra4x4_pred_mode(), ff_hls_senc_parse_audio_setup_info(), ff_jpeg2000_decode_htj2k(), ff_loop_filter_h_44_16_lsx(), ff_loop_filter_h_44_16_msa(), ff_loop_filter_h_48_16_lsx(), ff_loop_filter_h_48_16_msa(), ff_loop_filter_h_4_8_lsx(), ff_loop_filter_h_4_8_msa(), ff_loop_filter_h_84_16_lsx(), ff_loop_filter_h_84_16_msa(), ff_loop_filter_h_88_16_lsx(), ff_loop_filter_h_88_16_msa(), ff_loop_filter_h_8_8_lsx(), ff_loop_filter_h_8_8_msa(), ff_loop_filter_v_16_8_lsx(), ff_loop_filter_v_16_8_msa(), ff_loop_filter_v_44_16_lsx(), ff_loop_filter_v_44_16_msa(), ff_loop_filter_v_48_16_lsx(), ff_loop_filter_v_48_16_msa(), ff_loop_filter_v_4_8_lsx(), ff_loop_filter_v_4_8_msa(), ff_loop_filter_v_84_16_lsx(), ff_loop_filter_v_84_16_msa(), ff_loop_filter_v_88_16_lsx(), ff_loop_filter_v_88_16_msa(), ff_loop_filter_v_8_8_lsx(), ff_loop_filter_v_8_8_msa(), ff_lsb2full(), ff_mlp_rematrix_channel(), ff_opus_rc_enc_end(), ff_put_bilin_16h_msa(), ff_put_bilin_16hv_msa(), ff_put_bilin_32h_msa(), ff_put_bilin_64h_msa(), ff_put_no_rnd_pixels_l2_msa(), ff_put_vp8_bilinear16_h_msa(), ff_put_vp8_bilinear16_hv_msa(), ff_sbc_crc8(), ff_vk_extensions_to_mask(), ff_vp3_h_loop_filter_msa(), ff_vp3_idct_dc_add_msa(), ff_vp3_v_loop_filter_msa(), ff_vp8_h_loop_filter16_inner_lsx(), ff_vp8_h_loop_filter16_inner_msa(), ff_vp8_h_loop_filter16_lsx(), ff_vp8_h_loop_filter16_msa(), ff_vp8_h_loop_filter8uv_inner_msa(), ff_vp8_h_loop_filter8uv_lsx(), ff_vp8_h_loop_filter8uv_msa(), ff_vp8_h_loop_filter_simple_msa(), ff_vp8_idct_add_msa(), ff_vp8_idct_dc_add_msa(), ff_vp8_v_loop_filter16_inner_lsx(), ff_vp8_v_loop_filter16_inner_msa(), ff_vp8_v_loop_filter16_lsx(), ff_vp8_v_loop_filter16_msa(), ff_vp8_v_loop_filter8uv_inner_msa(), ff_vp8_v_loop_filter8uv_lsx(), ff_vp8_v_loop_filter8uv_msa(), ff_vp8_v_loop_filter_simple_msa(), ff_vvc_luma_mv_merge_gpm(), ff_vvc_store_mv(), ff_vvc_store_sb_mvs(), file_check(), fill_ltable(), fill_tile4(), fill_tileX(), filter_channel(), filter_frame(), filter_plane_cols(), filter_plane_rows(), filter_slice(), find_ref_idx(), flac_read_header(), FUNC(), get_cabac_bypass_sign(), get_len(), get_mb_score(), h263_dct_unquantize_msa(), hevc_sao_band_filter_4width_msa(), horiz_mc_qpel_16width_msa(), horiz_mc_qpel_aver_src0_16width_msa(), horiz_mc_qpel_aver_src1_16width_msa(), horiz_mc_qpel_avg_dst_16width_msa(), horiz_mc_qpel_avg_dst_aver_src0_16width_msa(), horiz_mc_qpel_avg_dst_aver_src1_16width_msa(), horiz_mc_qpel_no_rnd_16width_msa(), horiz_mc_qpel_no_rnd_aver_src0_16width_msa(), horiz_mc_qpel_no_rnd_aver_src1_16width_msa(), hv_mc_qpel_aver_horiz_16x16_msa(), hv_mc_qpel_aver_horiz_src0_16x16_msa(), hv_mc_qpel_aver_horiz_src1_16x16_msa(), hv_mc_qpel_no_rnd_horiz_16x16_msa(), hv_mc_qpel_no_rnd_horiz_src0_16x16_msa(), hv_mc_qpel_no_rnd_horiz_src1_16x16_msa(), idct_column_false_mmi(), idct_column_true_mmi(), idct_msa(), idct_row_mmi(), idraw_htext(), idraw_htext16(), idraw_vtext(), idraw_vtext16(), init(), init_cavlc_level_tab(), init_luts(), intra_predict_vert_dc_8x8_msa(), jpeg2000_bitbuf_get_bits_lsb(), jpeg2000_bitbuf_get_bits_lsb_forward(), jpeg2000_bitbuf_peek_bits_lsb(), jpg_decode_data(), linemask_matches(), ljpeg_decode_rgb_scan(), ljpeg_decode_yuv_scan(), LLVMFuzzerTestOneInput(), load_mask(), main(), mask_edges(), masked_description(), match_colors(), mcdec_map_channel_mask(), mlp_channel_layout_subset(), mlp_filter_channel(), mov_read_dac3(), mov_read_dec3(), mp3_write_xing(), mpc8_decode_frame(), mpc8_get_mask(), mpeg2_dct_unquantize_inter_msa(), mpegts_check_bitstream(), mss2_blit_wmv9_masked_c(), mss2_blit_wmv9_template(), mss2_gray_fill_masked_c(), mszh_decomp(), mv_compression(), mv_merge_pairwise_candidate(), mvf_to_mi(), mvp_add_difference(), mvp_history_candidates(), parse_coding_header(), parse_waveformatex(), parse_xxch_frame(), pchip_edge_case(), picmemset(), planar_rgb_to_uv_lasx(), planar_rgb_to_y_lasx(), png_get_interlaced_row(), png_put_interlaced_row(), pp_get_mode_by_name_and_quality(), pred_get_refs(), pred_mv(), pred_spatial_direct_motion(), print_stats(), process_float(), process_frame(), put_swf_line_edge(), put_swf_rect(), randomize_buffers(), randomize_loopfilter_buffers(), read_residue(), refine_colors(), render_default_font(), renorm_encoder(), rgb2yuv_fsb(), rv34_decode_cbp(), rv34_pred_mv_b(), sad_hv_bilinear_filter_8width_msa(), select_region(), set_bit(), set_channel_info(), set_metadata(), set_sr_golomb_flac(), setup_window(), store_slice16_c(), sub_hfyu_median_pred_int16_c(), subsampling_bounds(), try_describe_ambisonic(), twiddle(), ulti_pattern(), unpack_alpha(), vertClassify_altivec(), vlc_decode_u_suffix(), vp56_mc(), vp6_filter(), vp8_h_loop_filter8_mmi(), vp8_v_loop_filter8_mmi(), vp9_hz_lpf_t4_and_t8_16w(), vp9_vt_lpf_t4_and_t8_16w(), vp9_vt_lpf_t4_and_t8_8w(), vvc_deblock_bs_chroma(), vvc_deblock_bs_luma(), write_element(), x8_get_ac_rlf(), xan_unpack_luma(), and yuv2planeX_8_lasx().

◆ layout

uint64_t layout

Definition at line 155 of file mediacodecdec_common.c.

◆ channel_masks

const { ... } channel_masks[]

◆ color_format

int color_format

Definition at line 205 of file mediacodecdec_common.c.

Referenced by mcdec_map_color_format().

◆ pix_fmt

enum AVPixelFormat pix_fmt

Definition at line 206 of file mediacodecdec_common.c.

Referenced by mediacodec_dec_get_video_codec().

◆ color_formats

const { ... } color_formats[]
name
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
Definition: writing_filters.txt:88
CHANNEL_OUT_TOP_BACK_LEFT
@ CHANNEL_OUT_TOP_BACK_LEFT
Definition: mediacodecdec_common.c:147
AV_CH_TOP_FRONT_CENTER
#define AV_CH_TOP_FRONT_CENTER
Definition: channel_layout.h:188
AV_CH_TOP_FRONT_RIGHT
#define AV_CH_TOP_FRONT_RIGHT
Definition: channel_layout.h:189
ENCODING_PCM_32BIT
@ ENCODING_PCM_32BIT
Definition: mediacodecdec_common.c:95
AV_CH_TOP_FRONT_LEFT
#define AV_CH_TOP_FRONT_LEFT
Definition: channel_layout.h:187
COLOR_QCOM_FormatYUV420SemiPlanar
@ COLOR_QCOM_FormatYUV420SemiPlanar
Definition: mediacodecdec_common.c:196
CHANNEL_OUT_SIDE_RIGHT
@ CHANNEL_OUT_SIDE_RIGHT
Definition: mediacodecdec_common.c:142
AV_CH_TOP_BACK_LEFT
#define AV_CH_TOP_BACK_LEFT
Definition: channel_layout.h:190
AV_CH_TOP_BACK_CENTER
#define AV_CH_TOP_BACK_CENTER
Definition: channel_layout.h:191
fail
#define fail()
Definition: checkasm.h:193
CHANNEL_OUT_FRONT_CENTER
@ CHANNEL_OUT_FRONT_CENTER
Definition: mediacodecdec_common.c:134
AV_CH_BACK_LEFT
#define AV_CH_BACK_LEFT
Definition: channel_layout.h:179
CHANNEL_OUT_TOP_CENTER
@ CHANNEL_OUT_TOP_CENTER
Definition: mediacodecdec_common.c:143
CHANNEL_OUT_FRONT_LEFT_OF_CENTER
@ CHANNEL_OUT_FRONT_LEFT_OF_CENTER
Definition: mediacodecdec_common.c:138
AV_LOG_ERROR
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition: log.h:209
AV_CH_LOW_FREQUENCY
#define AV_CH_LOW_FREQUENCY
Definition: channel_layout.h:178
COLOR_TI_FormatYUV420PackedSemiPlanar
@ COLOR_TI_FormatYUV420PackedSemiPlanar
Definition: mediacodecdec_common.c:199
s
#define s(width, name)
Definition: cbs_vp9.c:198
format
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample format(the sample packing is implied by the sample format) and sample rate. The lists are not just lists
CHANNEL_OUT_BACK_CENTER
@ CHANNEL_OUT_BACK_CENTER
Definition: mediacodecdec_common.c:140
AV_PIX_FMT_YUV420P
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:73
key
const char * key
Definition: hwcontext_opencl.c:189
CHANNEL_OUT_SIDE_LEFT
@ CHANNEL_OUT_SIDE_LEFT
Definition: mediacodecdec_common.c:141
CHANNEL_OUT_BACK_LEFT
@ CHANNEL_OUT_BACK_LEFT
Definition: mediacodecdec_common.c:136
AV_CH_TOP_CENTER
#define AV_CH_TOP_CENTER
Definition: channel_layout.h:186
CHANNEL_OUT_TOP_BACK_RIGHT
@ CHANNEL_OUT_TOP_BACK_RIGHT
Definition: mediacodecdec_common.c:149
CHANNEL_OUT_TOP_BACK_CENTER
@ CHANNEL_OUT_TOP_BACK_CENTER
Definition: mediacodecdec_common.c:148
AV_CH_FRONT_CENTER
#define AV_CH_FRONT_CENTER
Definition: channel_layout.h:177
AV_CH_FRONT_LEFT_OF_CENTER
#define AV_CH_FRONT_LEFT_OF_CENTER
Definition: channel_layout.h:181
CHANNEL_OUT_FRONT_LEFT
@ CHANNEL_OUT_FRONT_LEFT
Definition: mediacodecdec_common.c:132
COLOR_FormatYUV420Planar
@ COLOR_FormatYUV420Planar
Definition: mediacodecdec_common.c:192
ENCODING_PCM_16BIT
@ ENCODING_PCM_16BIT
Definition: mediacodecdec_common.c:91
AVERROR_EXTERNAL
#define AVERROR_EXTERNAL
Generic error in an external library.
Definition: error.h:59
CHANNEL_OUT_TOP_FRONT_CENTER
@ CHANNEL_OUT_TOP_FRONT_CENTER
Definition: mediacodecdec_common.c:145
AV_CH_TOP_BACK_RIGHT
#define AV_CH_TOP_BACK_RIGHT
Definition: channel_layout.h:192
ff_AMediaFormat_getInt32
static int ff_AMediaFormat_getInt32(FFAMediaFormat *format, const char *name, int32_t *out)
Definition: mediacodec_wrapper.h:102
AV_CH_FRONT_RIGHT_OF_CENTER
#define AV_CH_FRONT_RIGHT_OF_CENTER
Definition: channel_layout.h:182
CHANNEL_OUT_BACK_RIGHT
@ CHANNEL_OUT_BACK_RIGHT
Definition: mediacodecdec_common.c:137
AV_SAMPLE_FMT_U8
@ AV_SAMPLE_FMT_U8
unsigned 8 bits
Definition: samplefmt.h:57
AV_CH_BACK_CENTER
#define AV_CH_BACK_CENTER
Definition: channel_layout.h:183
value
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default value
Definition: writing_filters.txt:86
AV_CH_FRONT_LEFT
#define AV_CH_FRONT_LEFT
Definition: channel_layout.h:175
AV_SAMPLE_FMT_S16
@ AV_SAMPLE_FMT_S16
signed 16 bits
Definition: samplefmt.h:58
AV_CH_SIDE_RIGHT
#define AV_CH_SIDE_RIGHT
Definition: channel_layout.h:185
CHANNEL_OUT_LOW_FREQUENCY
@ CHANNEL_OUT_LOW_FREQUENCY
Definition: mediacodecdec_common.c:135
AV_PIX_FMT_NV12
@ AV_PIX_FMT_NV12
planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (firs...
Definition: pixfmt.h:96
CHANNEL_OUT_TOP_FRONT_RIGHT
@ CHANNEL_OUT_TOP_FRONT_RIGHT
Definition: mediacodecdec_common.c:146
COLOR_QCOM_FormatYUV420SemiPlanar32m
@ COLOR_QCOM_FormatYUV420SemiPlanar32m
Definition: mediacodecdec_common.c:197
CHANNEL_OUT_FRONT_RIGHT_OF_CENTER
@ CHANNEL_OUT_FRONT_RIGHT_OF_CENTER
Definition: mediacodecdec_common.c:139
AV_CH_FRONT_RIGHT
#define AV_CH_FRONT_RIGHT
Definition: channel_layout.h:176
COLOR_QCOM_FormatYUV420PackedSemiPlanar64x32Tile2m8ka
@ COLOR_QCOM_FormatYUV420PackedSemiPlanar64x32Tile2m8ka
Definition: mediacodecdec_common.c:198
CHANNEL_OUT_TOP_FRONT_LEFT
@ CHANNEL_OUT_TOP_FRONT_LEFT
Definition: mediacodecdec_common.c:144
COLOR_FormatYUV420SemiPlanar
@ COLOR_FormatYUV420SemiPlanar
Definition: mediacodecdec_common.c:193
CHANNEL_OUT_FRONT_RIGHT
@ CHANNEL_OUT_FRONT_RIGHT
Definition: mediacodecdec_common.c:133
AV_CH_BACK_RIGHT
#define AV_CH_BACK_RIGHT
Definition: channel_layout.h:180
AV_SAMPLE_FMT_S32
@ AV_SAMPLE_FMT_S32
signed 32 bits
Definition: samplefmt.h:59
ENCODING_PCM_FLOAT
@ ENCODING_PCM_FLOAT
Definition: mediacodecdec_common.c:93
AV_SAMPLE_FMT_FLT
@ AV_SAMPLE_FMT_FLT
float
Definition: samplefmt.h:60
ENCODING_PCM_8BIT
@ ENCODING_PCM_8BIT
Definition: mediacodecdec_common.c:92
AV_CH_SIDE_LEFT
#define AV_CH_SIDE_LEFT
Definition: channel_layout.h:184
COLOR_TI_FormatYUV420PackedSemiPlanarInterlaced
@ COLOR_TI_FormatYUV420PackedSemiPlanarInterlaced
Definition: mediacodecdec_common.c:200