FFmpeg
|
#include <stdint.h>
#include <string.h>
#include "config.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/common.h"
#include "libavutil/frame.h"
#include "libavutil/hwcontext.h"
#include "libavutil/imgutils.h"
#include "libavutil/internal.h"
#include "libavutil/intmath.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "bytestream.h"
#include "decode.h"
#include "hwconfig.h"
#include "internal.h"
#include "thread.h"
Go to the source code of this file.
Data Structures | |
struct | FramePool |
Macros | |
#define | UTF8_MAX_BYTES 4 /* 5 and 6 bytes sequences should not be used */ |
|
static |
Definition at line 67 of file decode.c.
Referenced by ff_decode_get_packet().
|
static |
Definition at line 145 of file decode.c.
Referenced by avcodec_decode_subtitle2(), and ff_decode_get_packet().
|
static |
Definition at line 158 of file decode.c.
Referenced by compat_decode().
int ff_decode_bsfs_init | ( | AVCodecContext * | avctx | ) |
Called during avcodec_open2() to initialize avctx->internal->bsf.
The bsf should be freed with av_bsf_free().
Definition at line 204 of file decode.c.
Referenced by avcodec_open2().
int ff_decode_get_packet | ( | AVCodecContext * | avctx, |
AVPacket * | pkt | ||
) |
Called by decoders to get the next packet for decoding.
pkt | An empty packet to be filled with data. |
Definition at line 238 of file decode.c.
Referenced by binkaudio_receive_frame(), crystalhd_receive_frame(), cuvid_output_frame(), decode_simple_internal(), libdav1d_receive_frame(), mediacodec_receive_frame(), and v4l2_receive_frame().
|
static |
Attempt to guess proper monotonic timestamps for decoded video frames which might have incorrect times.
Input timestamps may wrap around, in which case the output will as well.
pts | the pts field of the decoded AVPacket, as passed through AVFrame.pts |
dts | the dts field of the decoded AVPacket |
Definition at line 279 of file decode.c.
Referenced by decode_simple_internal().
|
inlinestatic |
Definition at line 311 of file decode.c.
Referenced by decode_simple_receive_frame().
|
static |
Definition at line 533 of file decode.c.
Referenced by decode_receive_frame_internal().
|
static |
Definition at line 546 of file decode.c.
Referenced by avcodec_receive_frame(), and avcodec_send_packet().
|
static |
Definition at line 622 of file decode.c.
Referenced by avcodec_receive_frame().
|
static |
Definition at line 725 of file decode.c.
Referenced by avcodec_decode_audio4(), and avcodec_decode_video2().
|
static |
Definition at line 821 of file decode.c.
Referenced by avcodec_decode_subtitle2().
|
static |
Definition at line 828 of file decode.c.
Referenced by avcodec_decode_subtitle2().
Definition at line 886 of file decode.c.
Referenced by avcodec_decode_subtitle2().
|
static |
Definition at line 906 of file decode.c.
Referenced by convert_sub_to_old_ass_form().
|
static |
Definition at line 920 of file decode.c.
Referenced by avcodec_decode_subtitle2().
int ff_decode_get_hw_frames_ctx | ( | AVCodecContext * | avctx, |
enum AVHWDeviceType | dev_type | ||
) |
Make sure avctx.hw_frames_ctx is set.
If it's not set, the function will try to allocate it from hw_device_ctx. If that is not possible, an error message is printed, and an error code is returned.
Definition at line 1130 of file decode.c.
Referenced by ff_dxva2_decode_init(), ff_vaapi_decode_init(), and ff_vdpau_common_init().
|
static |
Definition at line 1230 of file decode.c.
Referenced by ff_get_format().
|
static |
Definition at line 1267 of file decode.c.
Referenced by ff_get_format().
int ff_get_format | ( | AVCodecContext * | avctx, |
const enum AVPixelFormat * | fmt | ||
) |
Select the (possibly hardware accelerated) pixel format.
This is a wrapper around AVCodecContext.get_format() and should be used instead of calling get_format() directly.
The list of pixel formats must contain at least one valid entry, and is terminated with AV_PIX_FMT_NONE. If it is possible to decode to software, the last entry in the list must be the most accurate software format. If it is not possible to decode to software, AVCodecContext.sw_pix_fmt must be set before calling this function.
Definition at line 1279 of file decode.c.
Referenced by cuvid_decode_init(), decode_init(), ff_mediacodec_dec_init(), ff_mjpeg_decode_sof(), ff_thread_get_format(), ffmmal_init_decoder(), get_pixel_format(), h263_get_format(), qsv_decode_preinit(), submit_packet(), and vc1_decode_init().
|
static |
Definition at line 1416 of file decode.c.
Referenced by frame_pool_alloc().
|
static |
Definition at line 1427 of file decode.c.
Referenced by update_frame_pool().
|
static |
Definition at line 1445 of file decode.c.
Referenced by avcodec_default_get_buffer2().
|
static |
Definition at line 1557 of file decode.c.
Referenced by avcodec_default_get_buffer2().
|
static |
Definition at line 1602 of file decode.c.
Referenced by avcodec_default_get_buffer2().
Definition at line 1673 of file decode.c.
Referenced by ff_decode_frame_props().
int ff_decode_frame_props | ( | AVCodecContext * | avctx, |
AVFrame * | frame | ||
) |
Set various frame properties from the codec context / packet data.
Definition at line 1685 of file decode.c.
Referenced by cuvid_output_frame(), ff_get_buffer(), ff_qsv_get_continuous_buffer(), ffmal_copy_frame(), qtrle_decode_frame(), raw_decode(), reget_buffer_internal(), vpx_decode(), and wrapped_avframe_decode().
|
static |
Definition at line 1794 of file decode.c.
Referenced by ff_get_buffer().
|
static |
Definition at line 1817 of file decode.c.
Referenced by ff_attach_decode_data().
Definition at line 1830 of file decode.c.
Referenced by ff_get_buffer(), ff_qsv_get_continuous_buffer(), ff_videotoolbox_alloc_frame(), and wrapped_avframe_decode().
int ff_get_buffer | ( | AVCodecContext * | avctx, |
AVFrame * | frame, | ||
int | flags | ||
) |
Get a buffer for a frame.
This is a wrapper around AVCodecContext.get_buffer() and should be used instead calling get_buffer() directly.
Definition at line 1854 of file decode.c.
Referenced by ac3_decode_frame(), adpcm_decode_frame(), adx_decode_frame(), alloc_frame(), amrnb_decode_frame(), amrwb_decode_frame(), aom_decode(), ape_decode_frame(), aptx_decode_frame(), atrac1_decode_frame(), atrac3_decode_frame(), atrac3al_decode_frame(), atrac3p_decode_frame(), atrac9_decode_frame(), aura_decode_frame(), avui_decode_frame(), bfi_decode_frame(), binkaudio_receive_frame(), bitpacked_decode_yuv422p10(), bmp_decode_frame(), bmv_aud_decode_frame(), cdg_decode_frame(), cdxl_decode_frame(), cinaudio_decode_frame(), cmv_decode_frame(), cng_decode_frame(), cook_decode_frame(), copy_frame(), copy_output(), cuvid_output_frame(), cyuv_decode_frame(), dds_decode(), decode_frame(), decode_pic(), decode_tag(), dfa_decode_frame(), dpcm_decode_frame(), dss_sp_decode_frame(), dxtory_decode_v1_410(), dxtory_decode_v1_420(), dxtory_decode_v1_444(), dxtory_decode_v1_rgb(), dxtory_decode_v2(), eightsvx_decode_frame(), escape124_decode_frame(), escape130_decode_frame(), evrc_decode_frame(), execute_code(), fdk_aac_decode_frame(), ff_dca_lbr_filter_frame(), ff_dca_xll_filter_frame(), ff_ivi_decode_frame(), ff_mjpeg_decode_sof(), ff_snow_common_init_after_header(), ff_snow_get_buffer(), ff_thread_get_buffer(), ff_twinvq_decode_frame(), ff_vp56_decode_frame(), ffat_decode(), ffmal_copy_frame(), filter_frame(), filter_frame_fixed(), filter_frame_float(), fits_decode_frame(), frame_configure_elements(), g2m_decode_frame(), g722_decode_frame(), g723_1_decode_frame(), gdv_decode_frame(), get_buffer(), get_buffer_with_edge(), gif_decode_frame(), gsm_decode_frame(), hcom_decode(), hnm_decode_frame(), hq_decode_frame(), hqa_decode_frame(), idcin_decode_frame(), ilbc_decode_frame(), imc_decode_frame(), init_frames(), ipvideo_decode_frame(), libcelt_dec_decode(), libcodec2_decode(), libgsm_decode_frame(), libopus_decode(), librsvg_decode_frame(), libspeex_decode_frame(), m101_decode_frame(), mace_decode_frame(), mediacodec_wrap_sw_buffer(), mp_decode_frame(), mpc7_decode_frame(), mpc8_decode_frame(), mss2_decode_frame(), mvc_decode_frame(), mxpeg_decode_frame(), oggvorbis_decode_frame(), on2avc_decode_frame(), opus_decode_packet(), output_data(), paf_audio_decode(), pcm_bluray_decode_frame(), pcm_decode_frame(), pcm_dvd_decode_frame(), pcx_decode_frame(), pix_decode_frame(), pnm_decode_frame(), ptx_decode_frame(), qcelp_decode_frame(), qdm2_decode_frame(), qdmc_decode_frame(), ra144_decode_frame(), ra288_decode_frame(), reget_buffer_internal(), rl2_decode_frame(), roq_encode_frame(), s302m_decode_frame(), sbc_decode_frame(), sgirle_decode_frame(), shorten_decode_frame(), sipr_decode_frame(), siren_decode(), smka_decode_frame(), speedhq_decode_frame(), submit_packet(), sunrast_decode_frame(), svc_decode_frame(), svq1_decode_frame(), svq1_encode_frame(), synth_superframe(), tdsc_decode_frame(), tgq_decode_frame(), tgv_decode_frame(), thread_get_buffer_internal(), tmv_decode_frame(), tqi_decode_frame(), truemotion2rt_decode_frame(), truespeech_decode_frame(), txd_decode_frame(), v308_decode_frame(), v408_decode_frame(), vcr1_decode_frame(), vmdaudio_decode_frame(), vmdvideo_decode_frame(), vorbis_decode_frame(), vpx_decode(), vqa_decode_frame(), wavesynth_decode(), wma_decode_superframe(), wmapro_decode_packet(), ws_snd_decode_frame(), xan_decode_frame(), xbm_decode_frame(), xface_decode_frame(), xma_decode_packet(), xpm_decode_frame(), xwd_decode_frame(), y216_decode_frame(), y41p_decode_frame(), yuv4_decode_frame(), zero12v_decode_frame(), and zerocodec_decode_frame().
|
static |
Definition at line 1924 of file decode.c.
Referenced by ff_reget_buffer().
int ff_reget_buffer | ( | AVCodecContext * | avctx, |
AVFrame * | frame, | ||
int | flags | ||
) |
Identical in function to ff_get_buffer(), except it reuses the existing buffer if available.
Definition at line 1961 of file decode.c.
Referenced by aasc_decode_frame(), avs_decode_frame(), bethsoftvid_decode_frame(), cdg_decode_frame(), cdtoons_decode_frame(), cinepak_decode_frame(), cinvideo_decode_frame(), clv_decode_frame(), cpia_decode_frame(), decode_frame(), fic_decode_frame(), flashsv_decode_frame(), flic_decode_frame_15_16BPP(), flic_decode_frame_24BPP(), flic_decode_frame_8BPP(), gif_decode_frame(), ir2_decode_frame(), mm_decode_frame(), mp_decode_frame(), msrle_decode_frame(), mss1_decode_frame(), mss2_decode_frame(), mss3_decode_frame(), mss4_decode_frame(), msvideo1_decode_frame(), paf_video_decode(), qtrle_decode_frame(), roq_decode_frame(), rpza_decode_stream(), rscc_decode_frame(), screenpresso_decode_frame(), seqvideo_decode_frame(), smc_decode_frame(), truemotion1_decode_frame(), tscc2_decode_frame(), ulti_decode_frame(), xan_decode_frame(), and yop_decode_frame().