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. If avpkt->data and
avpkt->size are set, avpkt->destruct must also be set. 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).
@paramin 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.
If CODEC_CAP_VARIABLE_FRAME_SIZE is set, then each frame
can have any number of samples.
If it is not set, frame->nb_samples must be equal to
avctx->frame_size for all frames except the last.
The final frame may be smaller than avctx->frame_size.
@paramout 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
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. If avpkt->data and avpkt->size are set, avpkt->destruct must also be set. 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). @paramin 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. If CODEC_CAP_VARIABLE_FRAME_SIZE is set, then each frame can have any number of samples. If it is not set, frame->nb_samples must be equal to avctx->frame_size for all frames except the last. The final frame may be smaller than avctx->frame_size. @paramout 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