mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
lavc doxy: add encoding functions to a doxy group.
This commit is contained in:
parent
c8ef8464c2
commit
f038515f0a
@ -435,6 +435,7 @@ enum CodecID {
|
|||||||
#define FF_INPUT_BUFFER_PADDING_SIZE 8
|
#define FF_INPUT_BUFFER_PADDING_SIZE 8
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @ingroup lavc_encoding
|
||||||
* minimum encoding buffer size
|
* minimum encoding buffer size
|
||||||
* Used to avoid some checks during header writing.
|
* Used to avoid some checks during header writing.
|
||||||
*/
|
*/
|
||||||
@ -442,6 +443,7 @@ enum CodecID {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @ingroup lavc_encoding
|
||||||
* motion estimation type.
|
* motion estimation type.
|
||||||
*/
|
*/
|
||||||
enum Motion_Est_ID {
|
enum Motion_Est_ID {
|
||||||
@ -537,6 +539,9 @@ enum AVAudioServiceType {
|
|||||||
AV_AUDIO_SERVICE_TYPE_NB , ///< Not part of ABI
|
AV_AUDIO_SERVICE_TYPE_NB , ///< Not part of ABI
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup lavc_encoding
|
||||||
|
*/
|
||||||
typedef struct RcOverride{
|
typedef struct RcOverride{
|
||||||
int start_frame;
|
int start_frame;
|
||||||
int end_frame;
|
int end_frame;
|
||||||
@ -3752,6 +3757,167 @@ void av_parser_close(AVCodecParserContext *s);
|
|||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup lavc_encoding
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find a registered encoder with a matching codec ID.
|
||||||
|
*
|
||||||
|
* @param id CodecID of the requested encoder
|
||||||
|
* @return An encoder if one was found, NULL otherwise.
|
||||||
|
*/
|
||||||
|
AVCodec *avcodec_find_encoder(enum CodecID id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find a registered encoder with the specified name.
|
||||||
|
*
|
||||||
|
* @param name name of the requested encoder
|
||||||
|
* @return An encoder if one was found, NULL otherwise.
|
||||||
|
*/
|
||||||
|
AVCodec *avcodec_find_encoder_by_name(const char *name);
|
||||||
|
|
||||||
|
#if FF_API_OLD_ENCODE_AUDIO
|
||||||
|
/**
|
||||||
|
* Encode an audio frame from samples into buf.
|
||||||
|
*
|
||||||
|
* @deprecated Use avcodec_encode_audio2 instead.
|
||||||
|
*
|
||||||
|
* @note The output buffer should be at least FF_MIN_BUFFER_SIZE bytes large.
|
||||||
|
* However, for codecs with avctx->frame_size equal to 0 (e.g. PCM) the user
|
||||||
|
* will know how much space is needed because it depends on the value passed
|
||||||
|
* in buf_size as described below. In that case a lower value can be used.
|
||||||
|
*
|
||||||
|
* @param avctx the codec context
|
||||||
|
* @param[out] buf the output buffer
|
||||||
|
* @param[in] buf_size the output buffer size
|
||||||
|
* @param[in] samples the input buffer containing the samples
|
||||||
|
* The number of samples read from this buffer is frame_size*channels,
|
||||||
|
* both of which are defined in avctx.
|
||||||
|
* For codecs which have avctx->frame_size equal to 0 (e.g. PCM) the number of
|
||||||
|
* samples read from samples is equal to:
|
||||||
|
* buf_size * 8 / (avctx->channels * av_get_bits_per_sample(avctx->codec_id))
|
||||||
|
* This also implies that av_get_bits_per_sample() must not return 0 for these
|
||||||
|
* codecs.
|
||||||
|
* @return On error a negative value is returned, on success zero or the number
|
||||||
|
* of bytes used to encode the data read from the input buffer.
|
||||||
|
*/
|
||||||
|
int attribute_deprecated avcodec_encode_audio(AVCodecContext *avctx,
|
||||||
|
uint8_t *buf, int buf_size,
|
||||||
|
const short *samples);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode a frame of audio.
|
||||||
|
*
|
||||||
|
* Takes input samples from frame and writes the next output packet, if
|
||||||
|
* available, to avpkt. The output packet does not necessarily contain data for
|
||||||
|
* the most recent frame, as encoders can delay, split, and combine input frames
|
||||||
|
* internally as needed.
|
||||||
|
*
|
||||||
|
* @param avctx codec context
|
||||||
|
* @param avpkt output AVPacket.
|
||||||
|
* The user can supply an output buffer by setting
|
||||||
|
* avpkt->data and avpkt->size prior to calling the
|
||||||
|
* function, but if the size of the user-provided data is not
|
||||||
|
* large enough, encoding will fail. All other AVPacket fields
|
||||||
|
* will be reset by the encoder using av_init_packet(). If
|
||||||
|
* avpkt->data is NULL, the encoder will allocate it.
|
||||||
|
* The encoder will set avpkt->size to the size of the
|
||||||
|
* output packet.
|
||||||
|
*
|
||||||
|
* If this function fails or produces no output, avpkt will be
|
||||||
|
* freed using av_free_packet() (i.e. avpkt->destruct will be
|
||||||
|
* called to free the user supplied buffer).
|
||||||
|
* @param[in] frame AVFrame containing the raw audio data to be encoded.
|
||||||
|
* May be NULL when flushing an encoder that has the
|
||||||
|
* CODEC_CAP_DELAY capability set.
|
||||||
|
* There are 2 codec capabilities that affect the allowed
|
||||||
|
* values of frame->nb_samples.
|
||||||
|
* If CODEC_CAP_SMALL_LAST_FRAME is set, then only the final
|
||||||
|
* frame may be smaller than avctx->frame_size, and all other
|
||||||
|
* frames must be equal to avctx->frame_size.
|
||||||
|
* If CODEC_CAP_VARIABLE_FRAME_SIZE is set, then each frame
|
||||||
|
* can have any number of samples.
|
||||||
|
* If neither is set, frame->nb_samples must be equal to
|
||||||
|
* avctx->frame_size for all frames.
|
||||||
|
* @param[out] got_packet_ptr This field is set to 1 by libavcodec if the
|
||||||
|
* output packet is non-empty, and to 0 if it is
|
||||||
|
* empty. If the function returns an error, the
|
||||||
|
* packet can be assumed to be invalid, and the
|
||||||
|
* value of got_packet_ptr is undefined and should
|
||||||
|
* not be used.
|
||||||
|
* @return 0 on success, negative error code on failure
|
||||||
|
*/
|
||||||
|
int avcodec_encode_audio2(AVCodecContext *avctx, AVPacket *avpkt,
|
||||||
|
const AVFrame *frame, int *got_packet_ptr);
|
||||||
|
|
||||||
|
#if FF_API_OLD_ENCODE_VIDEO
|
||||||
|
/**
|
||||||
|
* @deprecated use avcodec_encode_video2() instead.
|
||||||
|
*
|
||||||
|
* Encode a video frame from pict into buf.
|
||||||
|
* The input picture should be
|
||||||
|
* stored using a specific format, namely avctx.pix_fmt.
|
||||||
|
*
|
||||||
|
* @param avctx the codec context
|
||||||
|
* @param[out] buf the output buffer for the bitstream of encoded frame
|
||||||
|
* @param[in] buf_size the size of the output buffer in bytes
|
||||||
|
* @param[in] pict the input picture to encode
|
||||||
|
* @return On error a negative value is returned, on success zero or the number
|
||||||
|
* of bytes used from the output buffer.
|
||||||
|
*/
|
||||||
|
attribute_deprecated
|
||||||
|
int avcodec_encode_video(AVCodecContext *avctx, uint8_t *buf, int buf_size,
|
||||||
|
const AVFrame *pict);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode a frame of video.
|
||||||
|
*
|
||||||
|
* Takes input raw video data from frame and writes the next output packet, if
|
||||||
|
* available, to avpkt. The output packet does not necessarily contain data for
|
||||||
|
* the most recent frame, as encoders can delay and reorder input frames
|
||||||
|
* internally as needed.
|
||||||
|
*
|
||||||
|
* @param avctx codec context
|
||||||
|
* @param avpkt output AVPacket.
|
||||||
|
* The user can supply an output buffer by setting
|
||||||
|
* avpkt->data and avpkt->size prior to calling the
|
||||||
|
* function, but if the size of the user-provided data is not
|
||||||
|
* large enough, encoding will fail. All other AVPacket fields
|
||||||
|
* will be reset by the encoder using av_init_packet(). If
|
||||||
|
* avpkt->data is NULL, the encoder will allocate it.
|
||||||
|
* The encoder will set avpkt->size to the size of the
|
||||||
|
* output packet. The returned data (if any) belongs to the
|
||||||
|
* caller, he is responsible for freeing it.
|
||||||
|
*
|
||||||
|
* If this function fails or produces no output, avpkt will be
|
||||||
|
* freed using av_free_packet() (i.e. avpkt->destruct will be
|
||||||
|
* called to free the user supplied buffer).
|
||||||
|
* @param[in] frame AVFrame containing the raw video data to be encoded.
|
||||||
|
* May be NULL when flushing an encoder that has the
|
||||||
|
* CODEC_CAP_DELAY capability set.
|
||||||
|
* @param[out] got_packet_ptr This field is set to 1 by libavcodec if the
|
||||||
|
* output packet is non-empty, and to 0 if it is
|
||||||
|
* empty. If the function returns an error, the
|
||||||
|
* packet can be assumed to be invalid, and the
|
||||||
|
* value of got_packet_ptr is undefined and should
|
||||||
|
* not be used.
|
||||||
|
* @return 0 on success, negative error code on failure
|
||||||
|
*/
|
||||||
|
int avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt,
|
||||||
|
const AVFrame *frame, int *got_packet_ptr);
|
||||||
|
|
||||||
|
int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size,
|
||||||
|
const AVSubtitle *sub);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
/* resample.c */
|
/* resample.c */
|
||||||
|
|
||||||
struct ReSampleContext;
|
struct ReSampleContext;
|
||||||
@ -3986,22 +4152,6 @@ int avpicture_deinterlace(AVPicture *dst, const AVPicture *src,
|
|||||||
|
|
||||||
/* external high level API */
|
/* external high level API */
|
||||||
|
|
||||||
/**
|
|
||||||
* Find a registered encoder with a matching codec ID.
|
|
||||||
*
|
|
||||||
* @param id CodecID of the requested encoder
|
|
||||||
* @return An encoder if one was found, NULL otherwise.
|
|
||||||
*/
|
|
||||||
AVCodec *avcodec_find_encoder(enum CodecID id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Find a registered encoder with the specified name.
|
|
||||||
*
|
|
||||||
* @param name name of the requested encoder
|
|
||||||
* @return An encoder if one was found, NULL otherwise.
|
|
||||||
*/
|
|
||||||
AVCodec *avcodec_find_encoder_by_name(const char *name);
|
|
||||||
|
|
||||||
void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode);
|
void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -4019,81 +4169,6 @@ int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, v
|
|||||||
int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int, int),void *arg, int *ret, int count);
|
int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int, int),void *arg, int *ret, int count);
|
||||||
//FIXME func typedef
|
//FIXME func typedef
|
||||||
|
|
||||||
#if FF_API_OLD_ENCODE_AUDIO
|
|
||||||
/**
|
|
||||||
* Encode an audio frame from samples into buf.
|
|
||||||
*
|
|
||||||
* @deprecated Use avcodec_encode_audio2 instead.
|
|
||||||
*
|
|
||||||
* @note The output buffer should be at least FF_MIN_BUFFER_SIZE bytes large.
|
|
||||||
* However, for codecs with avctx->frame_size equal to 0 (e.g. PCM) the user
|
|
||||||
* will know how much space is needed because it depends on the value passed
|
|
||||||
* in buf_size as described below. In that case a lower value can be used.
|
|
||||||
*
|
|
||||||
* @param avctx the codec context
|
|
||||||
* @param[out] buf the output buffer
|
|
||||||
* @param[in] buf_size the output buffer size
|
|
||||||
* @param[in] samples the input buffer containing the samples
|
|
||||||
* The number of samples read from this buffer is frame_size*channels,
|
|
||||||
* both of which are defined in avctx.
|
|
||||||
* For codecs which have avctx->frame_size equal to 0 (e.g. PCM) the number of
|
|
||||||
* samples read from samples is equal to:
|
|
||||||
* buf_size * 8 / (avctx->channels * av_get_bits_per_sample(avctx->codec_id))
|
|
||||||
* This also implies that av_get_bits_per_sample() must not return 0 for these
|
|
||||||
* codecs.
|
|
||||||
* @return On error a negative value is returned, on success zero or the number
|
|
||||||
* of bytes used to encode the data read from the input buffer.
|
|
||||||
*/
|
|
||||||
int attribute_deprecated avcodec_encode_audio(AVCodecContext *avctx,
|
|
||||||
uint8_t *buf, int buf_size,
|
|
||||||
const short *samples);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Encode a frame of audio.
|
|
||||||
*
|
|
||||||
* Takes input samples from frame and writes the next output packet, if
|
|
||||||
* available, to avpkt. The output packet does not necessarily contain data for
|
|
||||||
* the most recent frame, as encoders can delay, split, and combine input frames
|
|
||||||
* internally as needed.
|
|
||||||
*
|
|
||||||
* @param avctx codec context
|
|
||||||
* @param avpkt output AVPacket.
|
|
||||||
* The user can supply an output buffer by setting
|
|
||||||
* avpkt->data and avpkt->size prior to calling the
|
|
||||||
* function, but if the size of the user-provided data is not
|
|
||||||
* large enough, encoding will fail. All other AVPacket fields
|
|
||||||
* will be reset by the encoder using av_init_packet(). If
|
|
||||||
* avpkt->data is NULL, the encoder will allocate it.
|
|
||||||
* The encoder will set avpkt->size to the size of the
|
|
||||||
* output packet.
|
|
||||||
*
|
|
||||||
* If this function fails or produces no output, avpkt will be
|
|
||||||
* freed using av_free_packet() (i.e. avpkt->destruct will be
|
|
||||||
* called to free the user supplied buffer).
|
|
||||||
* @param[in] frame AVFrame containing the raw audio data to be encoded.
|
|
||||||
* May be NULL when flushing an encoder that has the
|
|
||||||
* CODEC_CAP_DELAY capability set.
|
|
||||||
* There are 2 codec capabilities that affect the allowed
|
|
||||||
* values of frame->nb_samples.
|
|
||||||
* If CODEC_CAP_SMALL_LAST_FRAME is set, then only the final
|
|
||||||
* frame may be smaller than avctx->frame_size, and all other
|
|
||||||
* frames must be equal to avctx->frame_size.
|
|
||||||
* If CODEC_CAP_VARIABLE_FRAME_SIZE is set, then each frame
|
|
||||||
* can have any number of samples.
|
|
||||||
* If neither is set, frame->nb_samples must be equal to
|
|
||||||
* avctx->frame_size for all frames.
|
|
||||||
* @param[out] got_packet_ptr This field is set to 1 by libavcodec if the
|
|
||||||
* output packet is non-empty, and to 0 if it is
|
|
||||||
* empty. If the function returns an error, the
|
|
||||||
* packet can be assumed to be invalid, and the
|
|
||||||
* value of got_packet_ptr is undefined and should
|
|
||||||
* not be used.
|
|
||||||
* @return 0 on success, negative error code on failure
|
|
||||||
*/
|
|
||||||
int avcodec_encode_audio2(AVCodecContext *avctx, AVPacket *avpkt,
|
|
||||||
const AVFrame *frame, int *got_packet_ptr);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fill audio frame data and linesize.
|
* Fill audio frame data and linesize.
|
||||||
* AVFrame extended_data channel pointers are allocated if necessary for
|
* AVFrame extended_data channel pointers are allocated if necessary for
|
||||||
@ -4114,66 +4189,6 @@ int avcodec_fill_audio_frame(AVFrame *frame, int nb_channels,
|
|||||||
enum AVSampleFormat sample_fmt, const uint8_t *buf,
|
enum AVSampleFormat sample_fmt, const uint8_t *buf,
|
||||||
int buf_size, int align);
|
int buf_size, int align);
|
||||||
|
|
||||||
#if FF_API_OLD_ENCODE_VIDEO
|
|
||||||
/**
|
|
||||||
* @deprecated use avcodec_encode_video2() instead.
|
|
||||||
*
|
|
||||||
* Encode a video frame from pict into buf.
|
|
||||||
* The input picture should be
|
|
||||||
* stored using a specific format, namely avctx.pix_fmt.
|
|
||||||
*
|
|
||||||
* @param avctx the codec context
|
|
||||||
* @param[out] buf the output buffer for the bitstream of encoded frame
|
|
||||||
* @param[in] buf_size the size of the output buffer in bytes
|
|
||||||
* @param[in] pict the input picture to encode
|
|
||||||
* @return On error a negative value is returned, on success zero or the number
|
|
||||||
* of bytes used from the output buffer.
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
int avcodec_encode_video(AVCodecContext *avctx, uint8_t *buf, int buf_size,
|
|
||||||
const AVFrame *pict);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Encode a frame of video.
|
|
||||||
*
|
|
||||||
* Takes input raw video data from frame and writes the next output packet, if
|
|
||||||
* available, to avpkt. The output packet does not necessarily contain data for
|
|
||||||
* the most recent frame, as encoders can delay and reorder input frames
|
|
||||||
* internally as needed.
|
|
||||||
*
|
|
||||||
* @param avctx codec context
|
|
||||||
* @param avpkt output AVPacket.
|
|
||||||
* The user can supply an output buffer by setting
|
|
||||||
* avpkt->data and avpkt->size prior to calling the
|
|
||||||
* function, but if the size of the user-provided data is not
|
|
||||||
* large enough, encoding will fail. All other AVPacket fields
|
|
||||||
* will be reset by the encoder using av_init_packet(). If
|
|
||||||
* avpkt->data is NULL, the encoder will allocate it.
|
|
||||||
* The encoder will set avpkt->size to the size of the
|
|
||||||
* output packet. The returned data (if any) belongs to the
|
|
||||||
* caller, he is responsible for freeing it.
|
|
||||||
*
|
|
||||||
* If this function fails or produces no output, avpkt will be
|
|
||||||
* freed using av_free_packet() (i.e. avpkt->destruct will be
|
|
||||||
* called to free the user supplied buffer).
|
|
||||||
* @param[in] frame AVFrame containing the raw video data to be encoded.
|
|
||||||
* May be NULL when flushing an encoder that has the
|
|
||||||
* CODEC_CAP_DELAY capability set.
|
|
||||||
* @param[out] got_packet_ptr This field is set to 1 by libavcodec if the
|
|
||||||
* output packet is non-empty, and to 0 if it is
|
|
||||||
* empty. If the function returns an error, the
|
|
||||||
* packet can be assumed to be invalid, and the
|
|
||||||
* value of got_packet_ptr is undefined and should
|
|
||||||
* not be used.
|
|
||||||
* @return 0 on success, negative error code on failure
|
|
||||||
*/
|
|
||||||
int avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt,
|
|
||||||
const AVFrame *frame, int *got_packet_ptr);
|
|
||||||
|
|
||||||
int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size,
|
|
||||||
const AVSubtitle *sub);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flush buffers, should be called when seeking or when switching to a different stream.
|
* Flush buffers, should be called when seeking or when switching to a different stream.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user