X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Finternal.h;h=65760368d6c07a478a8f10b27d672831fcaa0d06;hb=cba716f55e79ebb2db9627c6e3e11d6fc77ae737;hp=df82789cdc63656b2416c9b2fd980828c8014e9e;hpb=c96904f525afcaba756a5ce8511a3ee1aa9fd2d7;p=ffmpeg diff --git a/libavcodec/internal.h b/libavcodec/internal.h index df82789cdc6..65760368d6c 100644 --- a/libavcodec/internal.h +++ b/libavcodec/internal.h @@ -110,9 +110,12 @@ typedef struct DecodeSimpleContext { AVPacket *in_pkt; - AVFrame *out_frame; } DecodeSimpleContext; +typedef struct EncodeSimpleContext { + AVFrame *in_frame; +} EncodeSimpleContext; + typedef struct AVCodecInternal { /** * Whether the parent AVCodecContext is a copy of the context which had @@ -128,7 +131,9 @@ typedef struct AVCodecInternal { */ int last_audio_frame; +#if FF_API_OLD_ENCDEC AVFrame *to_free; +#endif AVBufferRef *pool; @@ -142,6 +147,8 @@ typedef struct AVCodecInternal { * for decoding. */ AVPacket *last_pkt_props; + AVPacketList *pkt_props; + AVPacketList *pkt_props_tail; /** * temporary buffer used for encoders to store their bitstream @@ -151,6 +158,8 @@ typedef struct AVCodecInternal { void *frame_thread_encoder; + EncodeSimpleContext es; + /** * Number of audio samples to skip at the start of the next decoded frame */ @@ -170,11 +179,10 @@ typedef struct AVCodecInternal { * buffers for using new encode/decode API through legacy API */ AVPacket *buffer_pkt; - int buffer_pkt_valid; // encoding: packet without data can be valid AVFrame *buffer_frame; int draining_done; - /* set to 1 when the caller is using the old decoding API */ - int compat_decode; + +#if FF_API_OLD_ENCDEC int compat_decode_warned; /* this variable is set by the decoder internals to signal to the old * API compat wrappers the amount of data consumed from the last packet */ @@ -183,6 +191,8 @@ typedef struct AVCodecInternal { * of the packet (that should be submitted in the next decode call */ size_t compat_decode_partial_size; AVFrame *compat_decode_frame; + AVPacket *compat_encode_packet; +#endif int showed_multi_packet_warning; @@ -252,8 +262,6 @@ void ff_color_frame(AVFrame *frame, const int color[4]); */ int ff_alloc_packet2(AVCodecContext *avctx, AVPacket *avpkt, int64_t size, int64_t min_size); -attribute_deprecated int ff_alloc_packet(AVPacket *avpkt, int size); - /** * Rescale from sample rate to AVCodecContext.time_base. */ @@ -303,18 +311,6 @@ int ff_thread_can_start_frame(AVCodecContext *avctx); int avpriv_h264_has_num_reorder_frames(AVCodecContext *avctx); -/** - * Call avcodec_open2 recursively by decrementing counter, unlocking mutex, - * calling the function and then restoring again. Assumes the mutex is - * already locked - */ -int ff_codec_open2_recursive(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options); - -/** - * Finalize buf into extradata and set its size appropriately. - */ -int avpriv_bprint_to_extradata(AVCodecContext *avctx, struct AVBPrint *buf); - const uint8_t *avpriv_find_start_code(const uint8_t *p, const uint8_t *end, uint32_t *state); @@ -352,33 +348,25 @@ int ff_side_data_update_matrix_encoding(AVFrame *frame, */ int ff_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt); -/** - * Set various frame properties from the codec context / packet data. - */ -int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame); - /** * Add a CPB properties side data to an encoding context. */ AVCPBProperties *ff_add_cpb_side_data(AVCodecContext *avctx); -int ff_side_data_set_encoder_stats(AVPacket *pkt, int quality, int64_t *error, int error_count, int pict_type); - -int ff_side_data_set_prft(AVPacket *pkt, int64_t timestamp); - /** - * Check AVFrame for A53 side data and allocate and fill SEI message with A53 info + * Check AVFrame for S12M timecode side data and allocate and fill TC SEI message with timecode info * - * @param frame Raw frame to get A53 side data from + * @param frame Raw frame to get S12M timecode side data from + * @param rate The frame rate * @param prefix_len Number of bytes to allocate before SEI message * @param data Pointer to a variable to store allocated memory - * Upon return the variable will hold NULL on error or if frame has no A53 info. + * Upon return the variable will hold NULL on error or if frame has no S12M timecode info. * Otherwise it will point to prefix_len uninitialized bytes followed by * *sei_size SEI message * @param sei_size Pointer to a variable to store generated SEI message length * @return Zero on success, negative error code on failure */ -int ff_alloc_a53_sei(const AVFrame *frame, size_t prefix_len, +int ff_alloc_timecode_sei(const AVFrame *frame, AVRational rate, size_t prefix_len, void **data, size_t *sei_size); /**