/src/ffmpeg/libavcodec/decode.h
Line | Count | Source |
1 | | /* |
2 | | * generic decoding-related code |
3 | | * |
4 | | * This file is part of FFmpeg. |
5 | | * |
6 | | * FFmpeg is free software; you can redistribute it and/or |
7 | | * modify it under the terms of the GNU Lesser General Public |
8 | | * License as published by the Free Software Foundation; either |
9 | | * version 2.1 of the License, or (at your option) any later version. |
10 | | * |
11 | | * FFmpeg is distributed in the hope that it will be useful, |
12 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 | | * Lesser General Public License for more details. |
15 | | * |
16 | | * You should have received a copy of the GNU Lesser General Public |
17 | | * License along with FFmpeg; if not, write to the Free Software |
18 | | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
19 | | */ |
20 | | |
21 | | #ifndef AVCODEC_DECODE_H |
22 | | #define AVCODEC_DECODE_H |
23 | | |
24 | | #include "libavutil/frame.h" |
25 | | #include "libavutil/hwcontext.h" |
26 | | |
27 | | #include "avcodec.h" |
28 | | |
29 | | /** |
30 | | * This struct stores per-frame lavc-internal data and is attached to it via |
31 | | * private_ref. |
32 | | */ |
33 | | typedef struct FrameDecodeData { |
34 | | /** |
35 | | * The callback to perform some delayed processing on the frame right |
36 | | * before it is returned to the caller. |
37 | | * |
38 | | * @note This code is called at some unspecified point after the frame is |
39 | | * returned from the decoder's decode/receive_frame call. Therefore it cannot rely |
40 | | * on AVCodecContext being in any specific state, so it does not get to |
41 | | * access AVCodecContext directly at all. All the state it needs must be |
42 | | * stored in the post_process_opaque object. |
43 | | */ |
44 | | int (*post_process)(void *logctx, AVFrame *frame); |
45 | | void *post_process_opaque; ///< RefStruct reference |
46 | | |
47 | | /** |
48 | | * Per-frame private data for hwaccels. |
49 | | * |
50 | | * Same as @ref post_process, but used only by some hwaccels to retrieve or |
51 | | * finalize frames, and executed first. |
52 | | */ |
53 | | int (*hwaccel_priv_post_process)(void *logctx, AVFrame *frame); |
54 | | void *hwaccel_priv; |
55 | | void (*hwaccel_priv_free)(void *priv); |
56 | | } FrameDecodeData; |
57 | | |
58 | | /** |
59 | | * Called by decoders to get the next packet for decoding. |
60 | | * |
61 | | * @param pkt An empty packet to be filled with data. |
62 | | * @return 0 if a new reference has been successfully written to pkt |
63 | | * AVERROR(EAGAIN) if no data is currently available |
64 | | * AVERROR_EOF if and end of stream has been reached, so no more data |
65 | | * will be available |
66 | | */ |
67 | | int ff_decode_get_packet(AVCodecContext *avctx, AVPacket *pkt); |
68 | | |
69 | | /** |
70 | | * Set various frame properties from the provided packet. |
71 | | */ |
72 | | int ff_decode_frame_props_from_pkt(const AVCodecContext *avctx, |
73 | | AVFrame *frame, const AVPacket *pkt); |
74 | | |
75 | | /** |
76 | | * Set various frame properties from the codec context / packet data. |
77 | | */ |
78 | | int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame); |
79 | | |
80 | | static inline int ff_decode_skip_all_pixels(const AVCodecContext *avctx) |
81 | 5.46M | { |
82 | 5.46M | return avctx->skip_pred >= AVDISCARD_ALL && |
83 | 0 | avctx->skip_idct >= AVDISCARD_ALL && |
84 | 0 | !avctx->err_recognition && |
85 | 0 | !(avctx->flags2 & AV_CODEC_FLAG2_CHUNKS) && |
86 | 0 | !(avctx->export_side_data & (AV_CODEC_EXPORT_DATA_MVS | |
87 | 0 | AV_CODEC_EXPORT_DATA_VIDEO_ENC_PARAMS)) && |
88 | 0 | !(avctx->debug & (FF_DEBUG_QP | FF_DEBUG_MB_TYPE)); |
89 | 5.46M | } Unexecuted instantiation: avcodec.c:ff_decode_skip_all_pixels Unexecuted instantiation: decode.c:ff_decode_skip_all_pixels Unexecuted instantiation: pthread_frame.c:ff_decode_skip_all_pixels Unexecuted instantiation: utils.c:ff_decode_skip_all_pixels Unexecuted instantiation: h263dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: mpegvideo_dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: rv10.c:ff_decode_skip_all_pixels Unexecuted instantiation: mpeg4video_parser.c:ff_decode_skip_all_pixels Unexecuted instantiation: mpegvideo_parser.c:ff_decode_skip_all_pixels Unexecuted instantiation: pnm.c:ff_decode_skip_all_pixels Unexecuted instantiation: vc1.c:ff_decode_skip_all_pixels Unexecuted instantiation: h2645_sei.c:ff_decode_skip_all_pixels Unexecuted instantiation: itut35.c:ff_decode_skip_all_pixels Unexecuted instantiation: atrac9dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: pcm.c:ff_decode_skip_all_pixels Unexecuted instantiation: targa_y216dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: gsmdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: imc.c:ff_decode_skip_all_pixels Unexecuted instantiation: adpcm.c:ff_decode_skip_all_pixels Unexecuted instantiation: pnmdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: cfhd.c:ff_decode_skip_all_pixels Unexecuted instantiation: srtdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: wavarc.c:ff_decode_skip_all_pixels Unexecuted instantiation: escape130.c:ff_decode_skip_all_pixels Unexecuted instantiation: jacosubdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: mvcdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: realtextdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: v4l2_context.c:ff_decode_skip_all_pixels Unexecuted instantiation: cyuv.c:ff_decode_skip_all_pixels Unexecuted instantiation: libfdk-aacdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: asvdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: diracdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: libvpxdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: wmadec.c:ff_decode_skip_all_pixels Unexecuted instantiation: snowdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: bethsoftvideo.c:ff_decode_skip_all_pixels Unexecuted instantiation: imm4.c:ff_decode_skip_all_pixels Unexecuted instantiation: exr.c:ff_decode_skip_all_pixels Unexecuted instantiation: aacdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: ptx.c:ff_decode_skip_all_pixels Unexecuted instantiation: mjpegdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: xfacedec.c:ff_decode_skip_all_pixels Unexecuted instantiation: jvdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: lscrdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: pngdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: msvideo1.c:ff_decode_skip_all_pixels Unexecuted instantiation: screenpresso.c:ff_decode_skip_all_pixels h264dec.c:ff_decode_skip_all_pixels Line | Count | Source | 81 | 2.30M | { | 82 | 2.30M | return avctx->skip_pred >= AVDISCARD_ALL && | 83 | 0 | avctx->skip_idct >= AVDISCARD_ALL && | 84 | 0 | !avctx->err_recognition && | 85 | 0 | !(avctx->flags2 & AV_CODEC_FLAG2_CHUNKS) && | 86 | 0 | !(avctx->export_side_data & (AV_CODEC_EXPORT_DATA_MVS | | 87 | 0 | AV_CODEC_EXPORT_DATA_VIDEO_ENC_PARAMS)) && | 88 | 0 | !(avctx->debug & (FF_DEBUG_QP | FF_DEBUG_MB_TYPE)); | 89 | 2.30M | } |
h264_slice.c:ff_decode_skip_all_pixels Line | Count | Source | 81 | 3.04M | { | 82 | 3.04M | return avctx->skip_pred >= AVDISCARD_ALL && | 83 | 0 | avctx->skip_idct >= AVDISCARD_ALL && | 84 | 0 | !avctx->err_recognition && | 85 | 0 | !(avctx->flags2 & AV_CODEC_FLAG2_CHUNKS) && | 86 | 0 | !(avctx->export_side_data & (AV_CODEC_EXPORT_DATA_MVS | | 87 | 0 | AV_CODEC_EXPORT_DATA_VIDEO_ENC_PARAMS)) && | 88 | 0 | !(avctx->debug & (FF_DEBUG_QP | FF_DEBUG_MB_TYPE)); | 89 | 3.04M | } |
Unexecuted instantiation: bmp.c:ff_decode_skip_all_pixels Unexecuted instantiation: alsdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: bonk.c:ff_decode_skip_all_pixels Unexecuted instantiation: mxpegdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: rv34.c:ff_decode_skip_all_pixels Unexecuted instantiation: xpmdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: aptxdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: indeo3.c:ff_decode_skip_all_pixels Unexecuted instantiation: ansi.c:ff_decode_skip_all_pixels Unexecuted instantiation: eamad.c:ff_decode_skip_all_pixels Unexecuted instantiation: misc4.c:ff_decode_skip_all_pixels Unexecuted instantiation: g726.c:ff_decode_skip_all_pixels Unexecuted instantiation: vc1dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: dsddec.c:ff_decode_skip_all_pixels Unexecuted instantiation: rtv1.c:ff_decode_skip_all_pixels Unexecuted instantiation: xbmdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: mpegaudiodec_float.c:ff_decode_skip_all_pixels Unexecuted instantiation: 8bps.c:ff_decode_skip_all_pixels Unexecuted instantiation: speexdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: subviewerdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: qdrw.c:ff_decode_skip_all_pixels Unexecuted instantiation: mace.c:ff_decode_skip_all_pixels Unexecuted instantiation: mmvideo.c:ff_decode_skip_all_pixels Unexecuted instantiation: pafvideo.c:ff_decode_skip_all_pixels Unexecuted instantiation: vmdvideo.c:ff_decode_skip_all_pixels Unexecuted instantiation: v4l2_m2m_dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: brenderpix.c:ff_decode_skip_all_pixels Unexecuted instantiation: dfpwmdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: atrac3plusdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: mss4.c:ff_decode_skip_all_pixels Unexecuted instantiation: tiff.c:ff_decode_skip_all_pixels Unexecuted instantiation: ac3dec_float.c:ff_decode_skip_all_pixels Unexecuted instantiation: vp8.c:ff_decode_skip_all_pixels Unexecuted instantiation: on2avc.c:ff_decode_skip_all_pixels Unexecuted instantiation: smacker.c:ff_decode_skip_all_pixels Unexecuted instantiation: gdv.c:ff_decode_skip_all_pixels Unexecuted instantiation: vb.c:ff_decode_skip_all_pixels Unexecuted instantiation: dvbsubdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: mss1.c:ff_decode_skip_all_pixels Unexecuted instantiation: dpcm.c:ff_decode_skip_all_pixels Unexecuted instantiation: null.c:ff_decode_skip_all_pixels Unexecuted instantiation: mss2.c:ff_decode_skip_all_pixels Unexecuted instantiation: ulti.c:ff_decode_skip_all_pixels Unexecuted instantiation: zerocodec.c:ff_decode_skip_all_pixels Unexecuted instantiation: wrapped_avframe.c:ff_decode_skip_all_pixels Unexecuted instantiation: roqvideodec.c:ff_decode_skip_all_pixels Unexecuted instantiation: dvaudiodec.c:ff_decode_skip_all_pixels Unexecuted instantiation: osq.c:ff_decode_skip_all_pixels Unexecuted instantiation: vp6.c:ff_decode_skip_all_pixels Unexecuted instantiation: vp56.c:ff_decode_skip_all_pixels Unexecuted instantiation: loco.c:ff_decode_skip_all_pixels Unexecuted instantiation: magicyuv.c:ff_decode_skip_all_pixels Unexecuted instantiation: yuv4dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: vp5.c:ff_decode_skip_all_pixels Unexecuted instantiation: ra144dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: ivi.c:ff_decode_skip_all_pixels Unexecuted instantiation: apac.c:ff_decode_skip_all_pixels Unexecuted instantiation: prosumer.c:ff_decode_skip_all_pixels Unexecuted instantiation: clearvideo.c:ff_decode_skip_all_pixels Unexecuted instantiation: prores_raw.c:ff_decode_skip_all_pixels Unexecuted instantiation: 8svx.c:ff_decode_skip_all_pixels Unexecuted instantiation: sunrast.c:ff_decode_skip_all_pixels Unexecuted instantiation: mpegaudiodec_fixed.c:ff_decode_skip_all_pixels Unexecuted instantiation: ralf.c:ff_decode_skip_all_pixels Unexecuted instantiation: pixlet.c:ff_decode_skip_all_pixels Unexecuted instantiation: dsicinvideo.c:ff_decode_skip_all_pixels Unexecuted instantiation: pcm-dvda.c:ff_decode_skip_all_pixels Unexecuted instantiation: wnv1.c:ff_decode_skip_all_pixels Unexecuted instantiation: qoadec.c:ff_decode_skip_all_pixels Unexecuted instantiation: xl.c:ff_decode_skip_all_pixels Unexecuted instantiation: vima.c:ff_decode_skip_all_pixels Unexecuted instantiation: leaddec.c:ff_decode_skip_all_pixels Unexecuted instantiation: tscc.c:ff_decode_skip_all_pixels Unexecuted instantiation: eatqi.c:ff_decode_skip_all_pixels Unexecuted instantiation: dfa.c:ff_decode_skip_all_pixels Unexecuted instantiation: dss_sp.c:ff_decode_skip_all_pixels Unexecuted instantiation: siren.c:ff_decode_skip_all_pixels Unexecuted instantiation: cavsdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: hcom.c:ff_decode_skip_all_pixels Unexecuted instantiation: sgirledec.c:ff_decode_skip_all_pixels Unexecuted instantiation: vp3.c:ff_decode_skip_all_pixels Unexecuted instantiation: webp.c:ff_decode_skip_all_pixels Unexecuted instantiation: mpc8.c:ff_decode_skip_all_pixels Unexecuted instantiation: eatgv.c:ff_decode_skip_all_pixels Unexecuted instantiation: eatgq.c:ff_decode_skip_all_pixels Unexecuted instantiation: sga.c:ff_decode_skip_all_pixels Unexecuted instantiation: mpl2dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: binkaudio.c:ff_decode_skip_all_pixels Unexecuted instantiation: mpeg12dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: indeo2.c:ff_decode_skip_all_pixels Unexecuted instantiation: yop.c:ff_decode_skip_all_pixels Unexecuted instantiation: 4xm.c:ff_decode_skip_all_pixels Unexecuted instantiation: wmalosslessdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: ilbcdec.c:ff_decode_skip_all_pixels hevcdec.c:ff_decode_skip_all_pixels Line | Count | Source | 81 | 76.2k | { | 82 | 76.2k | return avctx->skip_pred >= AVDISCARD_ALL && | 83 | 0 | avctx->skip_idct >= AVDISCARD_ALL && | 84 | 0 | !avctx->err_recognition && | 85 | 0 | !(avctx->flags2 & AV_CODEC_FLAG2_CHUNKS) && | 86 | 0 | !(avctx->export_side_data & (AV_CODEC_EXPORT_DATA_MVS | | 87 | 0 | AV_CODEC_EXPORT_DATA_VIDEO_ENC_PARAMS)) && | 88 | 0 | !(avctx->debug & (FF_DEBUG_QP | FF_DEBUG_MB_TYPE)); | 89 | 76.2k | } |
refs.c:ff_decode_skip_all_pixels Line | Count | Source | 81 | 28.5k | { | 82 | 28.5k | return avctx->skip_pred >= AVDISCARD_ALL && | 83 | 0 | avctx->skip_idct >= AVDISCARD_ALL && | 84 | 0 | !avctx->err_recognition && | 85 | 0 | !(avctx->flags2 & AV_CODEC_FLAG2_CHUNKS) && | 86 | 0 | !(avctx->export_side_data & (AV_CODEC_EXPORT_DATA_MVS | | 87 | 0 | AV_CODEC_EXPORT_DATA_VIDEO_ENC_PARAMS)) && | 88 | 0 | !(avctx->debug & (FF_DEBUG_QP | FF_DEBUG_MB_TYPE)); | 89 | 28.5k | } |
Unexecuted instantiation: tscc2.c:ff_decode_skip_all_pixels Unexecuted instantiation: mobiclip.c:ff_decode_skip_all_pixels Unexecuted instantiation: wmaprodec.c:ff_decode_skip_all_pixels Unexecuted instantiation: y41pdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: gifdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: fastaudio.c:ff_decode_skip_all_pixels Unexecuted instantiation: bmvaudio.c:ff_decode_skip_all_pixels Unexecuted instantiation: bintext.c:ff_decode_skip_all_pixels Unexecuted instantiation: g729dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: txd.c:ff_decode_skip_all_pixels Unexecuted instantiation: mscc.c:ff_decode_skip_all_pixels Unexecuted instantiation: sipr.c:ff_decode_skip_all_pixels Unexecuted instantiation: g722dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: nellymoserdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: avuidec.c:ff_decode_skip_all_pixels Unexecuted instantiation: interplayvideo.c:ff_decode_skip_all_pixels Unexecuted instantiation: dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: libopusdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: bink.c:ff_decode_skip_all_pixels Unexecuted instantiation: dpx.c:ff_decode_skip_all_pixels Unexecuted instantiation: r210dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: pcm-dvd.c:ff_decode_skip_all_pixels Unexecuted instantiation: mss3.c:ff_decode_skip_all_pixels Unexecuted instantiation: hdrdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: av1dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: iff.c:ff_decode_skip_all_pixels Unexecuted instantiation: dvdsubdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: nuv.c:ff_decode_skip_all_pixels Unexecuted instantiation: hnm4video.c:ff_decode_skip_all_pixels Unexecuted instantiation: truespeech.c:ff_decode_skip_all_pixels Unexecuted instantiation: twinvq.c:ff_decode_skip_all_pixels Unexecuted instantiation: psd.c:ff_decode_skip_all_pixels Unexecuted instantiation: escape124.c:ff_decode_skip_all_pixels Unexecuted instantiation: dvdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: vcr1.c:ff_decode_skip_all_pixels Unexecuted instantiation: bfi.c:ff_decode_skip_all_pixels Unexecuted instantiation: qoidec.c:ff_decode_skip_all_pixels Unexecuted instantiation: photocd.c:ff_decode_skip_all_pixels Unexecuted instantiation: pictordec.c:ff_decode_skip_all_pixels Unexecuted instantiation: motionpixels.c:ff_decode_skip_all_pixels Unexecuted instantiation: msp2dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: vp9.c:ff_decode_skip_all_pixels Unexecuted instantiation: ffv1dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: frwu.c:ff_decode_skip_all_pixels Unexecuted instantiation: ps.c:ff_decode_skip_all_pixels Unexecuted instantiation: kmvc.c:ff_decode_skip_all_pixels Unexecuted instantiation: wmavoice.c:ff_decode_skip_all_pixels Unexecuted instantiation: kgv1dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: rawdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: svq1dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: sanm.c:ff_decode_skip_all_pixels Unexecuted instantiation: pafaudio.c:ff_decode_skip_all_pixels Unexecuted instantiation: rka.c:ff_decode_skip_all_pixels Unexecuted instantiation: mpc7.c:ff_decode_skip_all_pixels Unexecuted instantiation: dds.c:ff_decode_skip_all_pixels Unexecuted instantiation: truemotion2rt.c:ff_decode_skip_all_pixels Unexecuted instantiation: adxdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: wcmv.c:ff_decode_skip_all_pixels Unexecuted instantiation: webvttdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: rasc.c:ff_decode_skip_all_pixels Unexecuted instantiation: c93.c:ff_decode_skip_all_pixels Unexecuted instantiation: notchlc.c:ff_decode_skip_all_pixels Unexecuted instantiation: vqcdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: dolby_e.c:ff_decode_skip_all_pixels Unexecuted instantiation: proresdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: evrcdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: rw2dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: anm.c:ff_decode_skip_all_pixels Unexecuted instantiation: dnxhddec.c:ff_decode_skip_all_pixels Unexecuted instantiation: zmbv.c:ff_decode_skip_all_pixels Unexecuted instantiation: tdsc.c:ff_decode_skip_all_pixels Unexecuted instantiation: xwddec.c:ff_decode_skip_all_pixels Unexecuted instantiation: dca_core.c:ff_decode_skip_all_pixels Unexecuted instantiation: dca_lbr.c:ff_decode_skip_all_pixels Unexecuted instantiation: dca_xll.c:ff_decode_skip_all_pixels Unexecuted instantiation: mlpdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: atrac3.c:ff_decode_skip_all_pixels Unexecuted instantiation: vmdaudio.c:ff_decode_skip_all_pixels Unexecuted instantiation: vorbisdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: qtrle.c:ff_decode_skip_all_pixels Unexecuted instantiation: gemdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: xxan.c:ff_decode_skip_all_pixels Unexecuted instantiation: arbc.c:ff_decode_skip_all_pixels Unexecuted instantiation: flashsv.c:ff_decode_skip_all_pixels Unexecuted instantiation: rscc.c:ff_decode_skip_all_pixels Unexecuted instantiation: v210x.c:ff_decode_skip_all_pixels Unexecuted instantiation: dsicinaudio.c:ff_decode_skip_all_pixels Unexecuted instantiation: speedhqdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: g723_1dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: scpr.c:ff_decode_skip_all_pixels Unexecuted instantiation: 012v.c:ff_decode_skip_all_pixels Unexecuted instantiation: g2meet.c:ff_decode_skip_all_pixels Unexecuted instantiation: shorten.c:ff_decode_skip_all_pixels Unexecuted instantiation: fmvc.c:ff_decode_skip_all_pixels Unexecuted instantiation: mvha.c:ff_decode_skip_all_pixels Unexecuted instantiation: qpeg.c:ff_decode_skip_all_pixels Unexecuted instantiation: vmnc.c:ff_decode_skip_all_pixels Unexecuted instantiation: atrac1.c:ff_decode_skip_all_pixels Unexecuted instantiation: sgidec.c:ff_decode_skip_all_pixels Unexecuted instantiation: apv_decode.c:ff_decode_skip_all_pixels Unexecuted instantiation: avs.c:ff_decode_skip_all_pixels Unexecuted instantiation: imm5.c:ff_decode_skip_all_pixels Unexecuted instantiation: m101.c:ff_decode_skip_all_pixels Unexecuted instantiation: aura.c:ff_decode_skip_all_pixels Unexecuted instantiation: cngdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: pcm-bluray.c:ff_decode_skip_all_pixels Unexecuted instantiation: vbndec.c:ff_decode_skip_all_pixels Unexecuted instantiation: rv60dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: targa.c:ff_decode_skip_all_pixels Unexecuted instantiation: tiertexseqv.c:ff_decode_skip_all_pixels Unexecuted instantiation: bmvvideo.c:ff_decode_skip_all_pixels Unexecuted instantiation: ffwavesynth.c:ff_decode_skip_all_pixels Unexecuted instantiation: rpza.c:ff_decode_skip_all_pixels Unexecuted instantiation: aliaspixdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: amrnbdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: pdvdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: libvorbisdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: cinepak.c:ff_decode_skip_all_pixels Unexecuted instantiation: hcadec.c:ff_decode_skip_all_pixels Unexecuted instantiation: pcx.c:ff_decode_skip_all_pixels Unexecuted instantiation: qcelpdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: s302m.c:ff_decode_skip_all_pixels Unexecuted instantiation: aasc.c:ff_decode_skip_all_pixels Unexecuted instantiation: dxa.c:ff_decode_skip_all_pixels Unexecuted instantiation: ac3dec_fixed.c:ff_decode_skip_all_pixels Unexecuted instantiation: argo.c:ff_decode_skip_all_pixels Unexecuted instantiation: midivid.c:ff_decode_skip_all_pixels Unexecuted instantiation: mimic.c:ff_decode_skip_all_pixels Unexecuted instantiation: eacmv.c:ff_decode_skip_all_pixels Unexecuted instantiation: fic.c:ff_decode_skip_all_pixels Unexecuted instantiation: pgssubdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: qdmc.c:ff_decode_skip_all_pixels Unexecuted instantiation: ra288.c:ff_decode_skip_all_pixels Unexecuted instantiation: fitsdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: interplayacm.c:ff_decode_skip_all_pixels Unexecuted instantiation: mwsc.c:ff_decode_skip_all_pixels Unexecuted instantiation: ftr.c:ff_decode_skip_all_pixels Unexecuted instantiation: cdgraphics.c:ff_decode_skip_all_pixels Unexecuted instantiation: amrwbdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: cdtoons.c:ff_decode_skip_all_pixels Unexecuted instantiation: truemotion1.c:ff_decode_skip_all_pixels Unexecuted instantiation: agm.c:ff_decode_skip_all_pixels Unexecuted instantiation: xan.c:ff_decode_skip_all_pixels Unexecuted instantiation: imx.c:ff_decode_skip_all_pixels Unexecuted instantiation: svq3.c:ff_decode_skip_all_pixels Unexecuted instantiation: ws-snd1.c:ff_decode_skip_all_pixels Unexecuted instantiation: flicvideo.c:ff_decode_skip_all_pixels Unexecuted instantiation: sbcdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: msrle.c:ff_decode_skip_all_pixels Unexecuted instantiation: pgxdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: cri.c:ff_decode_skip_all_pixels Unexecuted instantiation: qdm2.c:ff_decode_skip_all_pixels Unexecuted instantiation: cljrdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: g728dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: cook.c:ff_decode_skip_all_pixels Unexecuted instantiation: wbmpdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: vqavideo.c:ff_decode_skip_all_pixels Unexecuted instantiation: hq_hqa.c:ff_decode_skip_all_pixels Unexecuted instantiation: rl2.c:ff_decode_skip_all_pixels Unexecuted instantiation: avrndec.c:ff_decode_skip_all_pixels Unexecuted instantiation: cdxl.c:ff_decode_skip_all_pixels Unexecuted instantiation: tmv.c:ff_decode_skip_all_pixels Unexecuted instantiation: idcinvideo.c:ff_decode_skip_all_pixels Unexecuted instantiation: mv30.c:ff_decode_skip_all_pixels Unexecuted instantiation: apedec.c:ff_decode_skip_all_pixels Unexecuted instantiation: cpia.c:ff_decode_skip_all_pixels Unexecuted instantiation: h261dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: imm6.c:ff_decode_skip_all_pixels Unexecuted instantiation: smc.c:ff_decode_skip_all_pixels Unexecuted instantiation: jpeg2000dec.c:ff_decode_skip_all_pixels Unexecuted instantiation: dstdec.c:ff_decode_skip_all_pixels Unexecuted instantiation: cscd.c:ff_decode_skip_all_pixels Unexecuted instantiation: truemotion2.c:ff_decode_skip_all_pixels |
90 | | |
91 | | /** |
92 | | * Make sure avctx.hw_frames_ctx is set. If it's not set, the function will |
93 | | * try to allocate it from hw_device_ctx. If that is not possible, an error |
94 | | * message is printed, and an error code is returned. |
95 | | */ |
96 | | int ff_decode_get_hw_frames_ctx(AVCodecContext *avctx, |
97 | | enum AVHWDeviceType dev_type); |
98 | | |
99 | | int ff_attach_decode_data(AVCodecContext *avctx, AVFrame *frame); |
100 | | |
101 | | /** |
102 | | * Check whether the side-data of src contains a palette of |
103 | | * size AVPALETTE_SIZE; if so, copy it to dst and return 1; |
104 | | * else return 0. |
105 | | * Also emit an error message upon encountering a palette |
106 | | * with invalid size. |
107 | | */ |
108 | | int ff_copy_palette(void *dst, const AVPacket *src, void *logctx); |
109 | | |
110 | | /* |
111 | | * Validate and set video frame dimensions on AVCodecContext. |
112 | | * |
113 | | * Dimensions accepted here satisfy FFmpeg's generic image-size validation |
114 | | * (see av_image_check_size2()). Decoder code normally should not duplicate |
115 | | * generic width/height overflow checks before ff_get_buffer(); add local |
116 | | * checks only for codec-specific derived sizes or complexity bounds. |
117 | | */ |
118 | | int ff_set_dimensions(AVCodecContext *s, int width, int height); |
119 | | |
120 | | /** |
121 | | * Check that the provided sample aspect ratio is valid and set it on the codec |
122 | | * context. |
123 | | */ |
124 | | int ff_set_sar(AVCodecContext *avctx, AVRational sar); |
125 | | |
126 | | /** |
127 | | * Select the (possibly hardware accelerated) pixel format. |
128 | | * This is a wrapper around AVCodecContext.get_format() and should be used |
129 | | * instead of calling get_format() directly. |
130 | | * |
131 | | * The list of pixel formats must contain at least one valid entry, and is |
132 | | * terminated with AV_PIX_FMT_NONE. If it is possible to decode to software, |
133 | | * the first entry after the last hwaccel one in the list must be the most |
134 | | * accurate software format, followed by less accurate ones in order of |
135 | | * preference. |
136 | | * If it is not possible to decode to software, AVCodecContext.sw_pix_fmt |
137 | | * must be set before calling this function. |
138 | | */ |
139 | | int ff_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt); |
140 | | |
141 | | /** |
142 | | * Get a buffer for a frame. This is a wrapper around |
143 | | * AVCodecContext.get_buffer() and should be used instead calling get_buffer() |
144 | | * directly. |
145 | | */ |
146 | | int ff_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags); |
147 | | |
148 | 10.6M | #define FF_REGET_BUFFER_FLAG_READONLY 1 ///< the returned buffer does not need to be writable |
149 | | /** |
150 | | * Identical in function to ff_get_buffer(), except it reuses the existing buffer |
151 | | * if available. |
152 | | */ |
153 | | int ff_reget_buffer(AVCodecContext *avctx, AVFrame *frame, int flags); |
154 | | |
155 | | /** |
156 | | * Add or update AV_FRAME_DATA_MATRIXENCODING side data. |
157 | | */ |
158 | | int ff_side_data_update_matrix_encoding(AVFrame *frame, |
159 | | enum AVMatrixEncoding matrix_encoding); |
160 | | |
161 | | /** |
162 | | * Allocate a hwaccel frame private data if the provided avctx |
163 | | * uses a hwaccel method that needs it. The returned data is |
164 | | * a RefStruct reference (if allocated). |
165 | | * |
166 | | * @param avctx The codec context |
167 | | * @param hwaccel_picture_private Pointer to return hwaccel_picture_private |
168 | | * @return 0 on success, < 0 on error |
169 | | */ |
170 | | int ff_hwaccel_frame_priv_alloc(AVCodecContext *avctx, void **hwaccel_picture_private); |
171 | | |
172 | | /** |
173 | | * Get side data of the given type from a decoding context. |
174 | | */ |
175 | | const AVPacketSideData *ff_get_coded_side_data(const AVCodecContext *avctx, |
176 | | enum AVPacketSideDataType type); |
177 | | |
178 | | /** |
179 | | * Wrapper around av_frame_new_side_data, which rejects side data overridden by |
180 | | * the demuxer. Returns 0 on success, and a negative error code otherwise. |
181 | | * If successful and sd is not NULL, *sd may either contain a pointer to the new |
182 | | * side data, or NULL in case the side data was already present. |
183 | | */ |
184 | | int ff_frame_new_side_data(const AVCodecContext *avctx, AVFrame *frame, |
185 | | enum AVFrameSideDataType type, size_t size, |
186 | | AVFrameSideData **sd); |
187 | | |
188 | | /** |
189 | | * Similar to `ff_frame_new_side_data`, but using an existing buffer ref. |
190 | | * |
191 | | * *buf is ALWAYS consumed by this function and NULL written in its place, even |
192 | | * on failure. |
193 | | */ |
194 | | int ff_frame_new_side_data_from_buf(const AVCodecContext *avctx, |
195 | | AVFrame *frame, enum AVFrameSideDataType type, |
196 | | AVBufferRef **buf); |
197 | | |
198 | | /** |
199 | | * Same as `ff_frame_new_side_data_from_buf`, but taking a AVFrameSideData |
200 | | * array directly instead of an AVFrame. |
201 | | */ |
202 | | int ff_frame_new_side_data_from_buf_ext(const AVCodecContext *avctx, |
203 | | AVFrameSideData ***sd, int *nb_sd, |
204 | | enum AVFrameSideDataType type, |
205 | | AVBufferRef **buf); |
206 | | |
207 | | struct AVMasteringDisplayMetadata; |
208 | | struct AVContentLightMetadata; |
209 | | |
210 | | /** |
211 | | * Wrapper around av_mastering_display_metadata_create_side_data(), which |
212 | | * rejects side data overridden by the demuxer. Returns 0 on success, and a |
213 | | * negative error code otherwise. If successful, *mdm may either be a pointer to |
214 | | * the new side data, or NULL in case the side data was already present. |
215 | | */ |
216 | | int ff_decode_mastering_display_new(const AVCodecContext *avctx, AVFrame *frame, |
217 | | struct AVMasteringDisplayMetadata **mdm); |
218 | | |
219 | | /** |
220 | | * Same as `ff_decode_mastering_display_new`, but taking a AVFrameSideData |
221 | | * array directly instead of an AVFrame. |
222 | | */ |
223 | | int ff_decode_mastering_display_new_ext(const AVCodecContext *avctx, |
224 | | AVFrameSideData ***sd, int *nb_sd, |
225 | | struct AVMasteringDisplayMetadata **mdm); |
226 | | |
227 | | /** |
228 | | * Wrapper around av_content_light_metadata_create_side_data(), which |
229 | | * rejects side data overridden by the demuxer. Returns 0 on success, and a |
230 | | * negative error code otherwise. If successful, *clm may either be a pointer to |
231 | | * the new side data, or NULL in case the side data was already present. |
232 | | */ |
233 | | int ff_decode_content_light_new(const AVCodecContext *avctx, AVFrame *frame, |
234 | | struct AVContentLightMetadata **clm); |
235 | | |
236 | | /** |
237 | | * Same as `ff_decode_content_light_new`, but taking a AVFrameSideData |
238 | | * array directly instead of an AVFrame. |
239 | | */ |
240 | | int ff_decode_content_light_new_ext(const AVCodecContext *avctx, |
241 | | AVFrameSideData ***sd, int *nb_sd, |
242 | | struct AVContentLightMetadata **clm); |
243 | | |
244 | | /** |
245 | | * Get the data of a subtitle packet followed by a 0 byte. |
246 | | * |
247 | | * @return avpkt->data if avpkt->size <= 0 or its first padding byte is 0, |
248 | | * otherwise a copy valid until the decode callback returns, |
249 | | * NULL on allocation failure |
250 | | */ |
251 | | const char *ff_decode_subtitle_text(AVCodecContext *avctx, const AVPacket *avpkt); |
252 | | |
253 | | #endif /* AVCODEC_DECODE_H */ |