FFmpeg
frame.h
Go to the documentation of this file.
1 /*
2  * This file is part of FFmpeg.
3  *
4  * FFmpeg is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * FFmpeg is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with FFmpeg; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18 
19 /**
20  * @file
21  * @ingroup lavu_frame
22  * reference-counted frame API
23  */
24 
25 #ifndef AVUTIL_FRAME_H
26 #define AVUTIL_FRAME_H
27 
28 #include <stddef.h>
29 #include <stdint.h>
30 
31 #include "avutil.h"
32 #include "buffer.h"
33 #include "dict.h"
34 #include "rational.h"
35 #include "samplefmt.h"
36 #include "pixfmt.h"
37 #include "version.h"
38 
39 
40 /**
41  * @defgroup lavu_frame AVFrame
42  * @ingroup lavu_data
43  *
44  * @{
45  * AVFrame is an abstraction for reference-counted raw multimedia data.
46  */
47 
49  /**
50  * The data is the AVPanScan struct defined in libavcodec.
51  */
53  /**
54  * ATSC A53 Part 4 Closed Captions.
55  * A53 CC bitstream is stored as uint8_t in AVFrameSideData.data.
56  * The number of bytes of CC data is AVFrameSideData.size.
57  */
59  /**
60  * Stereoscopic 3d metadata.
61  * The data is the AVStereo3D struct defined in libavutil/stereo3d.h.
62  */
64  /**
65  * The data is the AVMatrixEncoding enum defined in libavutil/channel_layout.h.
66  */
68  /**
69  * Metadata relevant to a downmix procedure.
70  * The data is the AVDownmixInfo struct defined in libavutil/downmix_info.h.
71  */
73  /**
74  * ReplayGain information in the form of the AVReplayGain struct.
75  */
77  /**
78  * This side data contains a 3x3 transformation matrix describing an affine
79  * transformation that needs to be applied to the frame for correct
80  * presentation.
81  *
82  * See libavutil/display.h for a detailed description of the data.
83  */
85  /**
86  * Active Format Description data consisting of a single byte as specified
87  * in ETSI TS 101 154 using AVActiveFormatDescription enum.
88  */
90  /**
91  * Motion vectors exported by some codecs (on demand through the export_mvs
92  * flag set in the libavcodec AVCodecContext flags2 option).
93  * The data is the AVMotionVector struct defined in
94  * libavutil/motion_vector.h.
95  */
97  /**
98  * Recommmends skipping the specified number of samples. This is exported
99  * only if the "skip_manual" AVOption is set in libavcodec.
100  * This has the same format as AV_PKT_DATA_SKIP_SAMPLES.
101  * @code
102  * u32le number of samples to skip from start of this packet
103  * u32le number of samples to skip from end of this packet
104  * u8 reason for start skip
105  * u8 reason for end skip (0=padding silence, 1=convergence)
106  * @endcode
107  */
109  /**
110  * This side data must be associated with an audio frame and corresponds to
111  * enum AVAudioServiceType defined in avcodec.h.
112  */
114  /**
115  * Mastering display metadata associated with a video frame. The payload is
116  * an AVMasteringDisplayMetadata type and contains information about the
117  * mastering display color volume.
118  */
120  /**
121  * The GOP timecode in 25 bit timecode format. Data format is 64-bit integer.
122  * This is set on the first frame of a GOP that has a temporal reference of 0.
123  */
125 
126  /**
127  * The data represents the AVSphericalMapping structure defined in
128  * libavutil/spherical.h.
129  */
131 
132  /**
133  * Content light level (based on CTA-861.3). This payload contains data in
134  * the form of the AVContentLightMetadata struct.
135  */
137 
138  /**
139  * The data contains an ICC profile as an opaque octet buffer following the
140  * format described by ISO 15076-1 with an optional name defined in the
141  * metadata key entry "name".
142  */
144 
145 #if FF_API_FRAME_QP
146  /**
147  * Implementation-specific description of the format of AV_FRAME_QP_TABLE_DATA.
148  * The contents of this side data are undocumented and internal; use
149  * av_frame_set_qp_table() and av_frame_get_qp_table() to access this in a
150  * meaningful way instead.
151  */
153 
154  /**
155  * Raw QP table data. Its format is described by
156  * AV_FRAME_DATA_QP_TABLE_PROPERTIES. Use av_frame_set_qp_table() and
157  * av_frame_get_qp_table() to access this instead.
158  */
160 #endif
161 
162  /**
163  * Timecode which conforms to SMPTE ST 12-1. The data is an array of 4 uint32_t
164  * where the first uint32_t describes how many (1-3) of the other timecodes are used.
165  * The timecode format is described in the documentation of av_timecode_get_smpte_from_framenum()
166  * function in libavutil/timecode.h.
167  */
169 
170  /**
171  * HDR dynamic metadata associated with a video frame. The payload is
172  * an AVDynamicHDRPlus type and contains information for color
173  * volume transform - application 4 of SMPTE 2094-40:2016 standard.
174  */
176 
177  /**
178  * Regions Of Interest, the data is an array of AVRegionOfInterest type, the number of
179  * array element is implied by AVFrameSideData.size / AVRegionOfInterest.self_size.
180  */
182 
183  /**
184  * Encoding parameters for a video frame, as described by AVVideoEncParams.
185  */
187 
188  /**
189  * User data unregistered metadata associated with a video frame.
190  * This is the H.26[45] UDU SEI message, and shouldn't be used for any other purpose
191  * The data is stored as uint8_t in AVFrameSideData.data which is 16 bytes of
192  * uuid_iso_iec_11578 followed by AVFrameSideData.size - 16 bytes of user_data_payload_byte.
193  */
195 
196  /**
197  * Film grain parameters for a frame, described by AVFilmGrainParams.
198  * Must be present for every frame which should have film grain applied.
199  */
201 };
202 
211 };
212 
213 
214 /**
215  * Structure to hold side data for an AVFrame.
216  *
217  * sizeof(AVFrameSideData) is not a part of the public ABI, so new fields may be added
218  * to the end with a minor bump.
219  */
220 typedef struct AVFrameSideData {
223 #if FF_API_BUFFER_SIZE_T
224  int size;
225 #else
226  size_t size;
227 #endif
231 
232 /**
233  * Structure describing a single Region Of Interest.
234  *
235  * When multiple regions are defined in a single side-data block, they
236  * should be ordered from most to least important - some encoders are only
237  * capable of supporting a limited number of distinct regions, so will have
238  * to truncate the list.
239  *
240  * When overlapping regions are defined, the first region containing a given
241  * area of the frame applies.
242  */
243 typedef struct AVRegionOfInterest {
244  /**
245  * Must be set to the size of this data structure (that is,
246  * sizeof(AVRegionOfInterest)).
247  */
248  uint32_t self_size;
249  /**
250  * Distance in pixels from the top edge of the frame to the top and
251  * bottom edges and from the left edge of the frame to the left and
252  * right edges of the rectangle defining this region of interest.
253  *
254  * The constraints on a region are encoder dependent, so the region
255  * actually affected may be slightly larger for alignment or other
256  * reasons.
257  */
258  int top;
259  int bottom;
260  int left;
261  int right;
262  /**
263  * Quantisation offset.
264  *
265  * Must be in the range -1 to +1. A value of zero indicates no quality
266  * change. A negative value asks for better quality (less quantisation),
267  * while a positive value asks for worse quality (greater quantisation).
268  *
269  * The range is calibrated so that the extreme values indicate the
270  * largest possible offset - if the rest of the frame is encoded with the
271  * worst possible quality, an offset of -1 indicates that this region
272  * should be encoded with the best possible quality anyway. Intermediate
273  * values are then interpolated in some codec-dependent way.
274  *
275  * For example, in 10-bit H.264 the quantisation parameter varies between
276  * -12 and 51. A typical qoffset value of -1/10 therefore indicates that
277  * this region should be encoded with a QP around one-tenth of the full
278  * range better than the rest of the frame. So, if most of the frame
279  * were to be encoded with a QP of around 30, this region would get a QP
280  * of around 24 (an offset of approximately -1/10 * (51 - -12) = -6.3).
281  * An extreme value of -1 would indicate that this region should be
282  * encoded with the best possible quality regardless of the treatment of
283  * the rest of the frame - that is, should be encoded at a QP of -12.
284  */
287 
288 /**
289  * This structure describes decoded (raw) audio or video data.
290  *
291  * AVFrame must be allocated using av_frame_alloc(). Note that this only
292  * allocates the AVFrame itself, the buffers for the data must be managed
293  * through other means (see below).
294  * AVFrame must be freed with av_frame_free().
295  *
296  * AVFrame is typically allocated once and then reused multiple times to hold
297  * different data (e.g. a single AVFrame to hold frames received from a
298  * decoder). In such a case, av_frame_unref() will free any references held by
299  * the frame and reset it to its original clean state before it
300  * is reused again.
301  *
302  * The data described by an AVFrame is usually reference counted through the
303  * AVBuffer API. The underlying buffer references are stored in AVFrame.buf /
304  * AVFrame.extended_buf. An AVFrame is considered to be reference counted if at
305  * least one reference is set, i.e. if AVFrame.buf[0] != NULL. In such a case,
306  * every single data plane must be contained in one of the buffers in
307  * AVFrame.buf or AVFrame.extended_buf.
308  * There may be a single buffer for all the data, or one separate buffer for
309  * each plane, or anything in between.
310  *
311  * sizeof(AVFrame) is not a part of the public ABI, so new fields may be added
312  * to the end with a minor bump.
313  *
314  * Fields can be accessed through AVOptions, the name string used, matches the
315  * C structure field name for fields accessible through AVOptions. The AVClass
316  * for AVFrame can be obtained from avcodec_get_frame_class()
317  */
318 typedef struct AVFrame {
319 #define AV_NUM_DATA_POINTERS 8
320  /**
321  * pointer to the picture/channel planes.
322  * This might be different from the first allocated byte
323  *
324  * Some decoders access areas outside 0,0 - width,height, please
325  * see avcodec_align_dimensions2(). Some filters and swscale can read
326  * up to 16 bytes beyond the planes, if these filters are to be used,
327  * then 16 extra bytes must be allocated.
328  *
329  * NOTE: Except for hwaccel formats, pointers not needed by the format
330  * MUST be set to NULL.
331  */
333 
334  /**
335  * For video, size in bytes of each picture line.
336  * For audio, size in bytes of each plane.
337  *
338  * For audio, only linesize[0] may be set. For planar audio, each channel
339  * plane must be the same size.
340  *
341  * For video the linesizes should be multiples of the CPUs alignment
342  * preference, this is 16 or 32 for modern desktop CPUs.
343  * Some code requires such alignment other code can be slower without
344  * correct alignment, for yet other it makes no difference.
345  *
346  * @note The linesize may be larger than the size of usable data -- there
347  * may be extra padding present for performance reasons.
348  */
350 
351  /**
352  * pointers to the data planes/channels.
353  *
354  * For video, this should simply point to data[].
355  *
356  * For planar audio, each channel has a separate data pointer, and
357  * linesize[0] contains the size of each channel buffer.
358  * For packed audio, there is just one data pointer, and linesize[0]
359  * contains the total size of the buffer for all channels.
360  *
361  * Note: Both data and extended_data should always be set in a valid frame,
362  * but for planar audio with more channels that can fit in data,
363  * extended_data must be used in order to access all channels.
364  */
366 
367  /**
368  * @name Video dimensions
369  * Video frames only. The coded dimensions (in pixels) of the video frame,
370  * i.e. the size of the rectangle that contains some well-defined values.
371  *
372  * @note The part of the frame intended for display/presentation is further
373  * restricted by the @ref cropping "Cropping rectangle".
374  * @{
375  */
376  int width, height;
377  /**
378  * @}
379  */
380 
381  /**
382  * number of audio samples (per channel) described by this frame
383  */
385 
386  /**
387  * format of the frame, -1 if unknown or unset
388  * Values correspond to enum AVPixelFormat for video frames,
389  * enum AVSampleFormat for audio)
390  */
391  int format;
392 
393  /**
394  * 1 -> keyframe, 0-> not
395  */
397 
398  /**
399  * Picture type of the frame.
400  */
402 
403  /**
404  * Sample aspect ratio for the video frame, 0/1 if unknown/unspecified.
405  */
407 
408  /**
409  * Presentation timestamp in time_base units (time when frame should be shown to user).
410  */
411  int64_t pts;
412 
413 #if FF_API_PKT_PTS
414  /**
415  * PTS copied from the AVPacket that was decoded to produce this frame.
416  * @deprecated use the pts field instead
417  */
419  int64_t pkt_pts;
420 #endif
421 
422  /**
423  * DTS copied from the AVPacket that triggered returning this frame. (if frame threading isn't used)
424  * This is also the Presentation time of this AVFrame calculated from
425  * only AVPacket.dts values without pts values.
426  */
427  int64_t pkt_dts;
428 
429  /**
430  * picture number in bitstream order
431  */
433  /**
434  * picture number in display order
435  */
437 
438  /**
439  * quality (between 1 (good) and FF_LAMBDA_MAX (bad))
440  */
441  int quality;
442 
443  /**
444  * for some private data of the user
445  */
446  void *opaque;
447 
448 #if FF_API_ERROR_FRAME
449  /**
450  * @deprecated unused
451  */
454 #endif
455 
456  /**
457  * When decoding, this signals how much the picture must be delayed.
458  * extra_delay = repeat_pict / (2*fps)
459  */
461 
462  /**
463  * The content of the picture is interlaced.
464  */
466 
467  /**
468  * If the content is interlaced, is top field displayed first.
469  */
471 
472  /**
473  * Tell user application that palette has changed from previous frame.
474  */
476 
477  /**
478  * reordered opaque 64 bits (generally an integer or a double precision float
479  * PTS but can be anything).
480  * The user sets AVCodecContext.reordered_opaque to represent the input at
481  * that time,
482  * the decoder reorders values as needed and sets AVFrame.reordered_opaque
483  * to exactly one of the values provided by the user through AVCodecContext.reordered_opaque
484  */
486 
487  /**
488  * Sample rate of the audio data.
489  */
491 
492  /**
493  * Channel layout of the audio data.
494  */
495  uint64_t channel_layout;
496 
497  /**
498  * AVBuffer references backing the data for this frame. If all elements of
499  * this array are NULL, then this frame is not reference counted. This array
500  * must be filled contiguously -- if buf[i] is non-NULL then buf[j] must
501  * also be non-NULL for all j < i.
502  *
503  * There may be at most one AVBuffer per data plane, so for video this array
504  * always contains all the references. For planar audio with more than
505  * AV_NUM_DATA_POINTERS channels, there may be more buffers than can fit in
506  * this array. Then the extra AVBufferRef pointers are stored in the
507  * extended_buf array.
508  */
510 
511  /**
512  * For planar audio which requires more than AV_NUM_DATA_POINTERS
513  * AVBufferRef pointers, this array will hold all the references which
514  * cannot fit into AVFrame.buf.
515  *
516  * Note that this is different from AVFrame.extended_data, which always
517  * contains all the pointers. This array only contains the extra pointers,
518  * which cannot fit into AVFrame.buf.
519  *
520  * This array is always allocated using av_malloc() by whoever constructs
521  * the frame. It is freed in av_frame_unref().
522  */
524  /**
525  * Number of elements in extended_buf.
526  */
528 
531 
532 /**
533  * @defgroup lavu_frame_flags AV_FRAME_FLAGS
534  * @ingroup lavu_frame
535  * Flags describing additional frame properties.
536  *
537  * @{
538  */
539 
540 /**
541  * The frame data may be corrupted, e.g. due to decoding errors.
542  */
543 #define AV_FRAME_FLAG_CORRUPT (1 << 0)
544 /**
545  * A flag to mark the frames which need to be decoded, but shouldn't be output.
546  */
547 #define AV_FRAME_FLAG_DISCARD (1 << 2)
548 /**
549  * @}
550  */
551 
552  /**
553  * Frame flags, a combination of @ref lavu_frame_flags
554  */
555  int flags;
556 
557  /**
558  * MPEG vs JPEG YUV range.
559  * - encoding: Set by user
560  * - decoding: Set by libavcodec
561  */
563 
565 
567 
568  /**
569  * YUV colorspace type.
570  * - encoding: Set by user
571  * - decoding: Set by libavcodec
572  */
574 
576 
577  /**
578  * frame timestamp estimated using various heuristics, in stream time base
579  * - encoding: unused
580  * - decoding: set by libavcodec, read by user.
581  */
583 
584  /**
585  * reordered pos from the last AVPacket that has been input into the decoder
586  * - encoding: unused
587  * - decoding: Read by user.
588  */
589  int64_t pkt_pos;
590 
591  /**
592  * duration of the corresponding packet, expressed in
593  * AVStream->time_base units, 0 if unknown.
594  * - encoding: unused
595  * - decoding: Read by user.
596  */
597  int64_t pkt_duration;
598 
599  /**
600  * metadata.
601  * - encoding: Set by user.
602  * - decoding: Set by libavcodec.
603  */
605 
606  /**
607  * decode error flags of the frame, set to a combination of
608  * FF_DECODE_ERROR_xxx flags if the decoder produced a frame, but there
609  * were errors during the decoding.
610  * - encoding: unused
611  * - decoding: set by libavcodec, read by user.
612  */
614 #define FF_DECODE_ERROR_INVALID_BITSTREAM 1
615 #define FF_DECODE_ERROR_MISSING_REFERENCE 2
616 #define FF_DECODE_ERROR_CONCEALMENT_ACTIVE 4
617 #define FF_DECODE_ERROR_DECODE_SLICES 8
618 
619  /**
620  * number of audio channels, only used for audio.
621  * - encoding: unused
622  * - decoding: Read by user.
623  */
624  int channels;
625 
626  /**
627  * size of the corresponding packet containing the compressed
628  * frame.
629  * It is set to a negative value if unknown.
630  * - encoding: unused
631  * - decoding: set by libavcodec, read by user.
632  */
633  int pkt_size;
634 
635 #if FF_API_FRAME_QP
636  /**
637  * QP table
638  */
640  int8_t *qscale_table;
641  /**
642  * QP store stride
643  */
645  int qstride;
646 
649 
652 #endif
653  /**
654  * For hwaccel-format frames, this should be a reference to the
655  * AVHWFramesContext describing the frame.
656  */
658 
659  /**
660  * AVBufferRef for free use by the API user. FFmpeg will never check the
661  * contents of the buffer ref. FFmpeg calls av_buffer_unref() on it when
662  * the frame is unreferenced. av_frame_copy_props() calls create a new
663  * reference with av_buffer_ref() for the target frame's opaque_ref field.
664  *
665  * This is unrelated to the opaque field, although it serves a similar
666  * purpose.
667  */
669 
670  /**
671  * @anchor cropping
672  * @name Cropping
673  * Video frames only. The number of pixels to discard from the the
674  * top/bottom/left/right border of the frame to obtain the sub-rectangle of
675  * the frame intended for presentation.
676  * @{
677  */
678  size_t crop_top;
679  size_t crop_bottom;
680  size_t crop_left;
681  size_t crop_right;
682  /**
683  * @}
684  */
685 
686  /**
687  * AVBufferRef for internal use by a single libav* library.
688  * Must not be used to transfer data between libraries.
689  * Has to be NULL when ownership of the frame leaves the respective library.
690  *
691  * Code outside the FFmpeg libs should never check or change the contents of the buffer ref.
692  *
693  * FFmpeg calls av_buffer_unref() on it when the frame is unreferenced.
694  * av_frame_copy_props() calls create a new reference with av_buffer_ref()
695  * for the target frame's private_ref field.
696  */
698 } AVFrame;
699 
700 #if FF_API_FRAME_GET_SET
701 /**
702  * Accessors for some AVFrame fields. These used to be provided for ABI
703  * compatibility, and do not need to be used anymore.
704  */
710 int64_t av_frame_get_pkt_duration (const AVFrame *frame);
712 void av_frame_set_pkt_duration (AVFrame *frame, int64_t val);
714 int64_t av_frame_get_pkt_pos (const AVFrame *frame);
716 void av_frame_set_pkt_pos (AVFrame *frame, int64_t val);
718 int64_t av_frame_get_channel_layout (const AVFrame *frame);
722 int av_frame_get_channels (const AVFrame *frame);
741 #if FF_API_FRAME_QP
743 int8_t *av_frame_get_qp_table(AVFrame *f, int *stride, int *type);
745 int av_frame_set_qp_table(AVFrame *f, AVBufferRef *buf, int stride, int type);
746 #endif
755 #endif
756 
757 /**
758  * Get the name of a colorspace.
759  * @return a static string identifying the colorspace; can be NULL.
760  */
761 const char *av_get_colorspace_name(enum AVColorSpace val);
762 
763 /**
764  * Allocate an AVFrame and set its fields to default values. The resulting
765  * struct must be freed using av_frame_free().
766  *
767  * @return An AVFrame filled with default values or NULL on failure.
768  *
769  * @note this only allocates the AVFrame itself, not the data buffers. Those
770  * must be allocated through other means, e.g. with av_frame_get_buffer() or
771  * manually.
772  */
773 AVFrame *av_frame_alloc(void);
774 
775 /**
776  * Free the frame and any dynamically allocated objects in it,
777  * e.g. extended_data. If the frame is reference counted, it will be
778  * unreferenced first.
779  *
780  * @param frame frame to be freed. The pointer will be set to NULL.
781  */
782 void av_frame_free(AVFrame **frame);
783 
784 /**
785  * Set up a new reference to the data described by the source frame.
786  *
787  * Copy frame properties from src to dst and create a new reference for each
788  * AVBufferRef from src.
789  *
790  * If src is not reference counted, new buffers are allocated and the data is
791  * copied.
792  *
793  * @warning: dst MUST have been either unreferenced with av_frame_unref(dst),
794  * or newly allocated with av_frame_alloc() before calling this
795  * function, or undefined behavior will occur.
796  *
797  * @return 0 on success, a negative AVERROR on error
798  */
799 int av_frame_ref(AVFrame *dst, const AVFrame *src);
800 
801 /**
802  * Create a new frame that references the same data as src.
803  *
804  * This is a shortcut for av_frame_alloc()+av_frame_ref().
805  *
806  * @return newly created AVFrame on success, NULL on error.
807  */
809 
810 /**
811  * Unreference all the buffers referenced by frame and reset the frame fields.
812  */
814 
815 /**
816  * Move everything contained in src to dst and reset src.
817  *
818  * @warning: dst is not unreferenced, but directly overwritten without reading
819  * or deallocating its contents. Call av_frame_unref(dst) manually
820  * before calling this function to ensure that no memory is leaked.
821  */
822 void av_frame_move_ref(AVFrame *dst, AVFrame *src);
823 
824 /**
825  * Allocate new buffer(s) for audio or video data.
826  *
827  * The following fields must be set on frame before calling this function:
828  * - format (pixel format for video, sample format for audio)
829  * - width and height for video
830  * - nb_samples and channel_layout for audio
831  *
832  * This function will fill AVFrame.data and AVFrame.buf arrays and, if
833  * necessary, allocate and fill AVFrame.extended_data and AVFrame.extended_buf.
834  * For planar formats, one buffer will be allocated for each plane.
835  *
836  * @warning: if frame already has been allocated, calling this function will
837  * leak memory. In addition, undefined behavior can occur in certain
838  * cases.
839  *
840  * @param frame frame in which to store the new buffers.
841  * @param align Required buffer size alignment. If equal to 0, alignment will be
842  * chosen automatically for the current CPU. It is highly
843  * recommended to pass 0 here unless you know what you are doing.
844  *
845  * @return 0 on success, a negative AVERROR on error.
846  */
847 int av_frame_get_buffer(AVFrame *frame, int align);
848 
849 /**
850  * Check if the frame data is writable.
851  *
852  * @return A positive value if the frame data is writable (which is true if and
853  * only if each of the underlying buffers has only one reference, namely the one
854  * stored in this frame). Return 0 otherwise.
855  *
856  * If 1 is returned the answer is valid until av_buffer_ref() is called on any
857  * of the underlying AVBufferRefs (e.g. through av_frame_ref() or directly).
858  *
859  * @see av_frame_make_writable(), av_buffer_is_writable()
860  */
862 
863 /**
864  * Ensure that the frame data is writable, avoiding data copy if possible.
865  *
866  * Do nothing if the frame is writable, allocate new buffers and copy the data
867  * if it is not.
868  *
869  * @return 0 on success, a negative AVERROR on error.
870  *
871  * @see av_frame_is_writable(), av_buffer_is_writable(),
872  * av_buffer_make_writable()
873  */
875 
876 /**
877  * Copy the frame data from src to dst.
878  *
879  * This function does not allocate anything, dst must be already initialized and
880  * allocated with the same parameters as src.
881  *
882  * This function only copies the frame data (i.e. the contents of the data /
883  * extended data arrays), not any other properties.
884  *
885  * @return >= 0 on success, a negative AVERROR on error.
886  */
887 int av_frame_copy(AVFrame *dst, const AVFrame *src);
888 
889 /**
890  * Copy only "metadata" fields from src to dst.
891  *
892  * Metadata for the purpose of this function are those fields that do not affect
893  * the data layout in the buffers. E.g. pts, sample rate (for audio) or sample
894  * aspect ratio (for video), but not width/height or channel layout.
895  * Side data is also copied.
896  */
897 int av_frame_copy_props(AVFrame *dst, const AVFrame *src);
898 
899 /**
900  * Get the buffer reference a given data plane is stored in.
901  *
902  * @param plane index of the data plane of interest in frame->extended_data.
903  *
904  * @return the buffer reference that contains the plane or NULL if the input
905  * frame is not valid.
906  */
908 
909 /**
910  * Add a new side data to a frame.
911  *
912  * @param frame a frame to which the side data should be added
913  * @param type type of the added side data
914  * @param size size of the side data
915  *
916  * @return newly added side data on success, NULL on error
917  */
921  int size);
922 #else
923  size_t size);
924 #endif
925 
926 /**
927  * Add a new side data to a frame from an existing AVBufferRef
928  *
929  * @param frame a frame to which the side data should be added
930  * @param type the type of the added side data
931  * @param buf an AVBufferRef to add as side data. The ownership of
932  * the reference is transferred to the frame.
933  *
934  * @return newly added side data on success, NULL on error. On failure
935  * the frame is unchanged and the AVBufferRef remains owned by
936  * the caller.
937  */
940  AVBufferRef *buf);
941 
942 /**
943  * @return a pointer to the side data of a given type on success, NULL if there
944  * is no side data with such type in this frame.
945  */
948 
949 /**
950  * Remove and free all side data instances of the given type.
951  */
953 
954 
955 /**
956  * Flags for frame cropping.
957  */
958 enum {
959  /**
960  * Apply the maximum possible cropping, even if it requires setting the
961  * AVFrame.data[] entries to unaligned pointers. Passing unaligned data
962  * to FFmpeg API is generally not allowed, and causes undefined behavior
963  * (such as crashes). You can pass unaligned data only to FFmpeg APIs that
964  * are explicitly documented to accept it. Use this flag only if you
965  * absolutely know what you are doing.
966  */
968 };
969 
970 /**
971  * Crop the given video AVFrame according to its crop_left/crop_top/crop_right/
972  * crop_bottom fields. If cropping is successful, the function will adjust the
973  * data pointers and the width/height fields, and set the crop fields to 0.
974  *
975  * In all cases, the cropping boundaries will be rounded to the inherent
976  * alignment of the pixel format. In some cases, such as for opaque hwaccel
977  * formats, the left/top cropping is ignored. The crop fields are set to 0 even
978  * if the cropping was rounded or ignored.
979  *
980  * @param frame the frame which should be cropped
981  * @param flags Some combination of AV_FRAME_CROP_* flags, or 0.
982  *
983  * @return >= 0 on success, a negative AVERROR on error. If the cropping fields
984  * were invalid, AVERROR(ERANGE) is returned, and nothing is changed.
985  */
987 
988 /**
989  * @return a string identifying the side data type
990  */
992 
993 /**
994  * @}
995  */
996 
997 #endif /* AVUTIL_FRAME_H */
AVFrame::extended_buf
AVBufferRef ** extended_buf
For planar audio which requires more than AV_NUM_DATA_POINTERS AVBufferRef pointers,...
Definition: frame.h:523
AVFrame::color_trc
enum AVColorTransferCharacteristic color_trc
Definition: frame.h:566
av_frame_set_color_range
attribute_deprecated void av_frame_set_color_range(AVFrame *frame, enum AVColorRange val)
stride
int stride
Definition: mace.c:144
av_frame_set_sample_rate
attribute_deprecated void av_frame_set_sample_rate(AVFrame *frame, int val)
AV_AFD_14_9
@ AV_AFD_14_9
Definition: frame.h:207
AVFrame::color_range
enum AVColorRange color_range
MPEG vs JPEG YUV range.
Definition: frame.h:562
av_frame_get_sample_rate
attribute_deprecated int av_frame_get_sample_rate(const AVFrame *frame)
AVFrame::qstride
attribute_deprecated int qstride
QP store stride.
Definition: frame.h:645
AVColorTransferCharacteristic
AVColorTransferCharacteristic
Color Transfer Characteristic.
Definition: pixfmt.h:483
AV_FRAME_DATA_QP_TABLE_PROPERTIES
@ AV_FRAME_DATA_QP_TABLE_PROPERTIES
Implementation-specific description of the format of AV_FRAME_QP_TABLE_DATA.
Definition: frame.h:152
av_frame_get_buffer
int av_frame_get_buffer(AVFrame *frame, int align)
Allocate new buffer(s) for audio or video data.
Definition: frame.c:337
av_frame_get_pkt_size
attribute_deprecated int av_frame_get_pkt_size(const AVFrame *frame)
av_frame_get_side_data
AVFrameSideData * av_frame_get_side_data(const AVFrame *frame, enum AVFrameSideDataType type)
Definition: frame.c:738
AV_FRAME_DATA_A53_CC
@ AV_FRAME_DATA_A53_CC
ATSC A53 Part 4 Closed Captions.
Definition: frame.h:58
AVFrame::nb_side_data
int nb_side_data
Definition: frame.h:530
AVPictureType
AVPictureType
Definition: avutil.h:272
av_frame_new_side_data
AVFrameSideData * av_frame_new_side_data(AVFrame *frame, enum AVFrameSideDataType type, int size)
Add a new side data to a frame.
Definition: frame.c:726
rational.h
AVFrame::coded_picture_number
int coded_picture_number
picture number in bitstream order
Definition: frame.h:432
AV_FRAME_DATA_FILM_GRAIN_PARAMS
@ AV_FRAME_DATA_FILM_GRAIN_PARAMS
Film grain parameters for a frame, described by AVFilmGrainParams.
Definition: frame.h:200
AVFrame::color_primaries
enum AVColorPrimaries color_primaries
Definition: frame.h:564
AV_FRAME_DATA_S12M_TIMECODE
@ AV_FRAME_DATA_S12M_TIMECODE
Timecode which conforms to SMPTE ST 12-1.
Definition: frame.h:168
av_frame_free
void av_frame_free(AVFrame **frame)
Free the frame and any dynamically allocated objects in it, e.g.
Definition: frame.c:203
AVFrame::opaque
void * opaque
for some private data of the user
Definition: frame.h:446
AVFrame::colorspace
enum AVColorSpace colorspace
YUV colorspace type.
Definition: frame.h:573
AVFrame
This structure describes decoded (raw) audio or video data.
Definition: frame.h:318
av_frame_make_writable
int av_frame_make_writable(AVFrame *frame)
Ensure that the frame data is writable, avoiding data copy if possible.
Definition: frame.c:611
AVFrameSideData::buf
AVBufferRef * buf
Definition: frame.h:229
AVFrame::pts
int64_t pts
Presentation timestamp in time_base units (time when frame should be shown to user).
Definition: frame.h:411
AVFrame::width
int width
Definition: frame.h:376
AVFrame::top_field_first
int top_field_first
If the content is interlaced, is top field displayed first.
Definition: frame.h:470
AVFrame::pkt_duration
int64_t pkt_duration
duration of the corresponding packet, expressed in AVStream->time_base units, 0 if unknown.
Definition: frame.h:597
AV_FRAME_CROP_UNALIGNED
@ AV_FRAME_CROP_UNALIGNED
Apply the maximum possible cropping, even if it requires setting the AVFrame.data[] entries to unalig...
Definition: frame.h:967
AV_FRAME_DATA_DISPLAYMATRIX
@ AV_FRAME_DATA_DISPLAYMATRIX
This side data contains a 3x3 transformation matrix describing an affine transformation that needs to...
Definition: frame.h:84
AV_AFD_16_9
@ AV_AFD_16_9
Definition: frame.h:206
AVDictionary
Definition: dict.c:30
av_frame_get_channels
attribute_deprecated int av_frame_get_channels(const AVFrame *frame)
AVFrame::flags
int flags
Frame flags, a combination of AV_FRAME_FLAGS.
Definition: frame.h:555
AVColorPrimaries
AVColorPrimaries
Chromaticity coordinates of the source primaries.
Definition: pixfmt.h:458
AVFrame::buf
AVBufferRef * buf[AV_NUM_DATA_POINTERS]
AVBuffer references backing the data for this frame.
Definition: frame.h:509
av_frame_get_pkt_pos
attribute_deprecated int64_t av_frame_get_pkt_pos(const AVFrame *frame)
av_frame_apply_cropping
int av_frame_apply_cropping(AVFrame *frame, int flags)
Crop the given video AVFrame according to its crop_left/crop_top/crop_right/ crop_bottom fields.
Definition: frame.c:891
AVFrame::data
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
Definition: frame.h:332
av_frame_get_qp_table
attribute_deprecated int8_t * av_frame_get_qp_table(AVFrame *f, int *stride, int *type)
Definition: frame.c:91
AVFrame::opaque_ref
AVBufferRef * opaque_ref
AVBufferRef for free use by the API user.
Definition: frame.h:668
AVFrame::chroma_location
enum AVChromaLocation chroma_location
Definition: frame.h:575
av_get_colorspace_name
const char * av_get_colorspace_name(enum AVColorSpace val)
Get the name of a colorspace.
Definition: frame.c:123
AVFrame::qscale_table
attribute_deprecated int8_t * qscale_table
QP table.
Definition: frame.h:640
AV_AFD_SAME
@ AV_AFD_SAME
Definition: frame.h:204
AV_FRAME_DATA_MATRIXENCODING
@ AV_FRAME_DATA_MATRIXENCODING
The data is the AVMatrixEncoding enum defined in libavutil/channel_layout.h.
Definition: frame.h:67
samplefmt.h
av_frame_get_pkt_duration
attribute_deprecated int64_t av_frame_get_pkt_duration(const AVFrame *frame)
AVFrame::qp_table_buf
attribute_deprecated AVBufferRef * qp_table_buf
Definition: frame.h:651
AVFrame::key_frame
int key_frame
1 -> keyframe, 0-> not
Definition: frame.h:396
val
static double val(void *priv, double ch)
Definition: aeval.c:76
type
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 type
Definition: writing_filters.txt:86
AVFrameSideDataType
AVFrameSideDataType
Definition: frame.h:48
av_frame_alloc
AVFrame * av_frame_alloc(void)
Allocate an AVFrame and set its fields to default values.
Definition: frame.c:190
AVRegionOfInterest
Structure describing a single Region Of Interest.
Definition: frame.h:243
AVRegionOfInterest::bottom
int bottom
Definition: frame.h:259
AVFrame::channels
int channels
number of audio channels, only used for audio.
Definition: frame.h:624
AVFrame::pkt_pos
int64_t pkt_pos
reordered pos from the last AVPacket that has been input into the decoder
Definition: frame.h:589
AV_FRAME_DATA_AUDIO_SERVICE_TYPE
@ AV_FRAME_DATA_AUDIO_SERVICE_TYPE
This side data must be associated with an audio frame and corresponds to enum AVAudioServiceType defi...
Definition: frame.h:113
av_frame_get_metadata
attribute_deprecated AVDictionary * av_frame_get_metadata(const AVFrame *frame)
AV_AFD_SP_4_3
@ AV_AFD_SP_4_3
Definition: frame.h:210
av_frame_clone
AVFrame * av_frame_clone(const AVFrame *src)
Create a new frame that references the same data as src.
Definition: frame.c:540
av_frame_set_pkt_pos
attribute_deprecated void av_frame_set_pkt_pos(AVFrame *frame, int64_t val)
AVFrame::crop_right
size_t crop_right
Definition: frame.h:681
f
#define f(width, name)
Definition: cbs_vp9.c:255
av_frame_set_metadata
attribute_deprecated void av_frame_set_metadata(AVFrame *frame, AVDictionary *val)
AV_FRAME_DATA_SPHERICAL
@ AV_FRAME_DATA_SPHERICAL
The data represents the AVSphericalMapping structure defined in libavutil/spherical....
Definition: frame.h:130
av_frame_copy_props
int av_frame_copy_props(AVFrame *dst, const AVFrame *src)
Copy only "metadata" fields from src to dst.
Definition: frame.c:658
AVRational
Rational number (pair of numerator and denominator).
Definition: rational.h:58
av_frame_get_color_range
attribute_deprecated enum AVColorRange av_frame_get_color_range(const AVFrame *frame)
AVRegionOfInterest::self_size
uint32_t self_size
Must be set to the size of this data structure (that is, sizeof(AVRegionOfInterest)).
Definition: frame.h:248
AVActiveFormatDescription
AVActiveFormatDescription
Definition: frame.h:203
src
#define src
Definition: vp8dsp.c:255
AV_FRAME_DATA_ICC_PROFILE
@ AV_FRAME_DATA_ICC_PROFILE
The data contains an ICC profile as an opaque octet buffer following the format described by ISO 1507...
Definition: frame.h:143
AV_FRAME_DATA_MASTERING_DISPLAY_METADATA
@ AV_FRAME_DATA_MASTERING_DISPLAY_METADATA
Mastering display metadata associated with a video frame.
Definition: frame.h:119
av_frame_new_side_data_from_buf
AVFrameSideData * av_frame_new_side_data_from_buf(AVFrame *frame, enum AVFrameSideDataType type, AVBufferRef *buf)
Add a new side data to a frame from an existing AVBufferRef.
Definition: frame.c:694
AVFrame::pkt_dts
int64_t pkt_dts
DTS copied from the AVPacket that triggered returning this frame.
Definition: frame.h:427
AVFrame::pkt_pts
attribute_deprecated int64_t pkt_pts
PTS copied from the AVPacket that was decoded to produce this frame.
Definition: frame.h:419
AV_FRAME_DATA_AFD
@ AV_FRAME_DATA_AFD
Active Format Description data consisting of a single byte as specified in ETSI TS 101 154 using AVAc...
Definition: frame.h:89
av_frame_get_decode_error_flags
attribute_deprecated int av_frame_get_decode_error_flags(const AVFrame *frame)
AV_AFD_4_3_SP_14_9
@ AV_AFD_4_3_SP_14_9
Definition: frame.h:208
av_frame_set_channel_layout
attribute_deprecated void av_frame_set_channel_layout(AVFrame *frame, int64_t val)
AV_FRAME_DATA_SEI_UNREGISTERED
@ AV_FRAME_DATA_SEI_UNREGISTERED
User data unregistered metadata associated with a video frame.
Definition: frame.h:194
AVFrame::crop_bottom
size_t crop_bottom
Definition: frame.h:679
AVFrame::best_effort_timestamp
int64_t best_effort_timestamp
frame timestamp estimated using various heuristics, in stream time base
Definition: frame.h:582
AVFrame::crop_left
size_t crop_left
Definition: frame.h:680
AVFrame::pict_type
enum AVPictureType pict_type
Picture type of the frame.
Definition: frame.h:401
AV_FRAME_DATA_REPLAYGAIN
@ AV_FRAME_DATA_REPLAYGAIN
ReplayGain information in the form of the AVReplayGain struct.
Definition: frame.h:76
AV_FRAME_DATA_PANSCAN
@ AV_FRAME_DATA_PANSCAN
The data is the AVPanScan struct defined in libavcodec.
Definition: frame.h:52
av_frame_ref
int av_frame_ref(AVFrame *dst, const AVFrame *src)
Set up a new reference to the data described by the source frame.
Definition: frame.c:443
av_frame_copy
int av_frame_copy(AVFrame *dst, const AVFrame *src)
Copy the frame data from src to dst.
Definition: frame.c:799
AVFrame::quality
int quality
quality (between 1 (good) and FF_LAMBDA_MAX (bad))
Definition: frame.h:441
AVFrame::sample_rate
int sample_rate
Sample rate of the audio data.
Definition: frame.h:490
size
int size
Definition: twinvq_data.h:10344
AVFrame::error
attribute_deprecated uint64_t error[AV_NUM_DATA_POINTERS]
Definition: frame.h:453
AV_NUM_DATA_POINTERS
#define AV_NUM_DATA_POINTERS
Definition: frame.h:319
AVFrameSideData::data
uint8_t * data
Definition: frame.h:222
av_frame_is_writable
int av_frame_is_writable(AVFrame *frame)
Check if the frame data is writable.
Definition: frame.c:594
AVFrame::format
int format
format of the frame, -1 if unknown or unset Values correspond to enum AVPixelFormat for video frames,...
Definition: frame.h:391
buffer.h
attribute_deprecated
#define attribute_deprecated
Definition: attributes.h:104
av_frame_remove_side_data
void av_frame_remove_side_data(AVFrame *frame, enum AVFrameSideDataType type)
Remove and free all side data instances of the given type.
Definition: frame.c:812
AVFrame::channel_layout
uint64_t channel_layout
Channel layout of the audio data.
Definition: frame.h:495
AVRegionOfInterest::right
int right
Definition: frame.h:261
av_frame_get_colorspace
attribute_deprecated enum AVColorSpace av_frame_get_colorspace(const AVFrame *frame)
AVFrame::private_ref
AVBufferRef * private_ref
AVBufferRef for internal use by a single libav* library.
Definition: frame.h:697
AV_FRAME_DATA_SKIP_SAMPLES
@ AV_FRAME_DATA_SKIP_SAMPLES
Recommmends skipping the specified number of samples.
Definition: frame.h:108
AVChromaLocation
AVChromaLocation
Location of chroma samples.
Definition: pixfmt.h:605
AVFrame::interlaced_frame
int interlaced_frame
The content of the picture is interlaced.
Definition: frame.h:465
AVRegionOfInterest::left
int left
Definition: frame.h:260
AVFrame::nb_samples
int nb_samples
number of audio samples (per channel) described by this frame
Definition: frame.h:384
AV_FRAME_DATA_CONTENT_LIGHT_LEVEL
@ AV_FRAME_DATA_CONTENT_LIGHT_LEVEL
Content light level (based on CTA-861.3).
Definition: frame.h:136
AVRegionOfInterest::top
int top
Distance in pixels from the top edge of the frame to the top and bottom edges and from the left edge ...
Definition: frame.h:258
AVFrame::extended_data
uint8_t ** extended_data
pointers to the data planes/channels.
Definition: frame.h:365
AVColorSpace
AVColorSpace
YUV colorspace type.
Definition: pixfmt.h:512
av_frame_set_pkt_size
attribute_deprecated void av_frame_set_pkt_size(AVFrame *frame, int val)
av_frame_set_decode_error_flags
attribute_deprecated void av_frame_set_decode_error_flags(AVFrame *frame, int val)
AV_FRAME_DATA_STEREO3D
@ AV_FRAME_DATA_STEREO3D
Stereoscopic 3d metadata.
Definition: frame.h:63
av_frame_move_ref
void av_frame_move_ref(AVFrame *dst, AVFrame *src)
Move everything contained in src to dst and reset src.
Definition: frame.c:582
uint8_t
uint8_t
Definition: audio_convert.c:194
av_frame_unref
void av_frame_unref(AVFrame *frame)
Unreference all the buffers referenced by frame and reset the frame fields.
Definition: frame.c:553
AVFrame::side_data
AVFrameSideData ** side_data
Definition: frame.h:529
version.h
AVFrame::decode_error_flags
int decode_error_flags
decode error flags of the frame, set to a combination of FF_DECODE_ERROR_xxx flags if the decoder pro...
Definition: frame.h:613
AV_FRAME_DATA_GOP_TIMECODE
@ AV_FRAME_DATA_GOP_TIMECODE
The GOP timecode in 25 bit timecode format.
Definition: frame.h:124
pixfmt.h
frame
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a frame
Definition: filter_design.txt:264
dict.h
AVFrame::sample_aspect_ratio
AVRational sample_aspect_ratio
Sample aspect ratio for the video frame, 0/1 if unknown/unspecified.
Definition: frame.h:406
AVFrame::hw_frames_ctx
AVBufferRef * hw_frames_ctx
For hwaccel-format frames, this should be a reference to the AVHWFramesContext describing the frame.
Definition: frame.h:657
AV_FRAME_DATA_DYNAMIC_HDR_PLUS
@ AV_FRAME_DATA_DYNAMIC_HDR_PLUS
HDR dynamic metadata associated with a video frame.
Definition: frame.h:175
AVFrame::height
int height
Definition: frame.h:376
FF_API_BUFFER_SIZE_T
#define FF_API_BUFFER_SIZE_T
Definition: version.h:136
AVFrame::qscale_type
attribute_deprecated int qscale_type
Definition: frame.h:648
av_frame_set_channels
attribute_deprecated void av_frame_set_channels(AVFrame *frame, int val)
AVFrame::palette_has_changed
int palette_has_changed
Tell user application that palette has changed from previous frame.
Definition: frame.h:475
AV_FRAME_DATA_VIDEO_ENC_PARAMS
@ AV_FRAME_DATA_VIDEO_ENC_PARAMS
Encoding parameters for a video frame, as described by AVVideoEncParams.
Definition: frame.h:186
AVFrame::metadata
AVDictionary * metadata
metadata.
Definition: frame.h:604
av_frame_get_best_effort_timestamp
attribute_deprecated int64_t av_frame_get_best_effort_timestamp(const AVFrame *frame)
Accessors for some AVFrame fields.
av_frame_set_best_effort_timestamp
attribute_deprecated void av_frame_set_best_effort_timestamp(AVFrame *frame, int64_t val)
AVFrameSideData::type
enum AVFrameSideDataType type
Definition: frame.h:221
AVFrame::pkt_size
int pkt_size
size of the corresponding packet containing the compressed frame.
Definition: frame.h:633
AVFrame::reordered_opaque
int64_t reordered_opaque
reordered opaque 64 bits (generally an integer or a double precision float PTS but can be anything).
Definition: frame.h:485
av_frame_set_colorspace
attribute_deprecated void av_frame_set_colorspace(AVFrame *frame, enum AVColorSpace val)
avutil.h
AVBufferRef
A reference to a data buffer.
Definition: buffer.h:84
AVFrameSideData
Structure to hold side data for an AVFrame.
Definition: frame.h:220
AV_FRAME_DATA_QP_TABLE_DATA
@ AV_FRAME_DATA_QP_TABLE_DATA
Raw QP table data.
Definition: frame.h:159
AVFrameSideData::size
int size
Definition: frame.h:224
AVFrame::crop_top
size_t crop_top
Definition: frame.h:678
av_frame_side_data_name
const char * av_frame_side_data_name(enum AVFrameSideDataType type)
Definition: frame.c:826
AV_FRAME_DATA_REGIONS_OF_INTEREST
@ AV_FRAME_DATA_REGIONS_OF_INTEREST
Regions Of Interest, the data is an array of AVRegionOfInterest type, the number of array element is ...
Definition: frame.h:181
flags
#define flags(name, subs,...)
Definition: cbs_av1.c:561
AVFrame::linesize
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line.
Definition: frame.h:349
AVFrameSideData::metadata
AVDictionary * metadata
Definition: frame.h:228
AV_FRAME_DATA_MOTION_VECTORS
@ AV_FRAME_DATA_MOTION_VECTORS
Motion vectors exported by some codecs (on demand through the export_mvs flag set in the libavcodec A...
Definition: frame.h:96
av_frame_get_plane_buffer
AVBufferRef * av_frame_get_plane_buffer(AVFrame *frame, int plane)
Get the buffer reference a given data plane is stored in.
Definition: frame.c:663
AV_AFD_4_3
@ AV_AFD_4_3
Definition: frame.h:205
AVColorRange
AVColorRange
Visual content value range.
Definition: pixfmt.h:551
AVFrame::display_picture_number
int display_picture_number
picture number in display order
Definition: frame.h:436
AVRegionOfInterest::qoffset
AVRational qoffset
Quantisation offset.
Definition: frame.h:285
AV_FRAME_DATA_DOWNMIX_INFO
@ AV_FRAME_DATA_DOWNMIX_INFO
Metadata relevant to a downmix procedure.
Definition: frame.h:72
av_frame_get_channel_layout
attribute_deprecated int64_t av_frame_get_channel_layout(const AVFrame *frame)
av_frame_set_qp_table
attribute_deprecated int av_frame_set_qp_table(AVFrame *f, AVBufferRef *buf, int stride, int type)
Definition: frame.c:55
AVFrame::repeat_pict
int repeat_pict
When decoding, this signals how much the picture must be delayed.
Definition: frame.h:460
AVFrame::nb_extended_buf
int nb_extended_buf
Number of elements in extended_buf.
Definition: frame.h:527
AV_AFD_16_9_SP_14_9
@ AV_AFD_16_9_SP_14_9
Definition: frame.h:209
av_frame_set_pkt_duration
attribute_deprecated void av_frame_set_pkt_duration(AVFrame *frame, int64_t val)