[][src]Function stainless_ffmpeg_sys::avcodec_send_frame

pub unsafe extern "C" fn avcodec_send_frame(
    avctx: *mut AVCodecContext,
    frame: *const AVFrame
) -> c_int

Supply a raw video or audio frame to the encoder. Use avcodec_receive_packet() to retrieve buffered output packets.

@param avctx codec context @param[in] frame AVFrame containing the raw audio or video frame to be encoded. Ownership of the frame remains with the caller, and the encoder will not write to the frame. The encoder may create a reference to the frame data (or copy it if the frame is not reference-counted). It can be NULL, in which case it is considered a flush packet. This signals the end of the stream. If the encoder still has packets buffered, it will return them after this call. Once flushing mode has been entered, additional flush packets are ignored, and sending frames will return AVERROR_EOF.

             For audio:
             If AV_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.

@return 0 on success, otherwise negative error code: AVERROR(EAGAIN): input is not accepted in the current state - user must read output with avcodec_receive_packet() (once all output is read, the packet should be resent, and the call will not fail with EAGAIN). AVERROR_EOF: the encoder has been flushed, and no new frames can be sent to it AVERROR(EINVAL): codec not opened, refcounted_frames not set, it is a decoder, or requires flush AVERROR(ENOMEM): failed to add packet to internal queue, or similar other errors: legitimate decoding errors