[FFmpeg-devel] [PATCH 01/19] lavc/avcodec: improve enc/dec API doxy

Marvin Scholz epirat07 at gmail.com
Sat Jan 28 13:37:42 EET 2023



On 25 Jan 2023, at 17:55, Anton Khirnov wrote:

> Change return value descriptions into proper lists.
> ---
>  libavcodec/avcodec.h | 81 +++++++++++++++++++++++---------------------
>  1 file changed, 42 insertions(+), 39 deletions(-)
>
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index 0ac581d660..f3ca41f126 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -2605,17 +2605,18 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub,
>   *                  still has frames buffered, it will return them after sending
>   *                  a flush packet.
>   *
> - * @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_frame() (once
> - *                         all output is read, the packet should be resent, and
> - *                         the call will not fail with EAGAIN).
> - *      AVERROR_EOF:       the decoder has been flushed, and no new packets can
> - *                         be sent to it (also returned if more than 1 flush
> - *                         packet is sent)
> - *      AVERROR(EINVAL):   codec not opened, it is an encoder, or requires flush
> - *      AVERROR(ENOMEM):   failed to add packet to internal queue, or similar
> - *      other errors: legitimate decoding errors
> + * @return
> + * - 0:                 success
> + * - AVERROR(EAGAIN):   input is not accepted in the current state - user must
> + *                      read output with avcodec_receive_frame() (once all
> + *                      output is read, the packet should be resent, and the
> + *                      call will not fail with EAGAIN).
> + * - AVERROR_EOF:       the decoder has been flushed, and no new packets can be
> + *                      sent to it (also returned if more than 1 flush packet is
> + *                      sent)
> + * - AVERROR(EINVAL):   codec not opened, it is an encoder, or requires flush
> + * - AVERROR(ENOMEM):   failed to add packet to internal queue, or similar
> + * - other errors:      legitimate decoding errors
>   */

Wouldn't @retval work better for such return value documentation?

>  int avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpkt);
>
> @@ -2630,17 +2631,17 @@ int avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpkt);
>   *              av_frame_unref(frame) before doing anything else.
>   *
>   * @return
> - *      0:                 success, a frame was returned
> - *      AVERROR(EAGAIN):   output is not available in this state - user must try
> - *                         to send new input
> - *      AVERROR_EOF:       the codec has been fully flushed, and there will be
> - *                         no more output frames
> - *      AVERROR(EINVAL):   codec not opened, or it is an encoder without
> - *                         the AV_CODEC_FLAG_RECON_FRAME flag enabled
> - *      AVERROR_INPUT_CHANGED:   current decoded frame has changed parameters
> - *                               with respect to first decoded frame. Applicable
> - *                               when flag AV_CODEC_FLAG_DROPCHANGED is set.
> - *      other negative values: legitimate decoding errors
> + * - 0:                     success, a frame was returned
> + * - AVERROR(EAGAIN):       output is not available in this state - user must
> + *                          try to send new input
> + * - AVERROR_EOF:           the codec has been fully flushed, and there will be
> + *                          no more output frames
> + * - AVERROR(EINVAL):       codec not opened, or it is an encoder without the
> + *                          AV_CODEC_FLAG_RECON_FRAME flag enabled
> + * - AVERROR_INPUT_CHANGED: current decoded frame has changed parameters with
> + *                          respect to first decoded frame. Applicable when flag
> + *                          AV_CODEC_FLAG_DROPCHANGED is set.
> + * - other negative values: legitimate decoding errors
>   */
>  int avcodec_receive_frame(AVCodecContext *avctx, AVFrame *frame);
>
> @@ -2667,16 +2668,17 @@ int avcodec_receive_frame(AVCodecContext *avctx, AVFrame *frame);
>   *                  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, it is a decoder, or requires flush
> - *      AVERROR(ENOMEM):   failed to add packet to internal queue, or similar
> - *      other errors: legitimate encoding errors
> + * @return
> + * - 0:                 success
> + * - 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, it is a decoder, or requires flush
> + * - AVERROR(ENOMEM):   failed to add packet to internal queue, or similar
> + * - other errors:      legitimate encoding errors
>   */
>  int avcodec_send_frame(AVCodecContext *avctx, const AVFrame *frame);
>
> @@ -2687,13 +2689,14 @@ int avcodec_send_frame(AVCodecContext *avctx, const AVFrame *frame);
>   * @param avpkt This will be set to a reference-counted packet allocated by the
>   *              encoder. Note that the function will always call
>   *              av_packet_unref(avpkt) before doing anything else.
> - * @return 0 on success, otherwise negative error code:
> - *      AVERROR(EAGAIN):   output is not available in the current state - user
> - *                         must try to send input
> - *      AVERROR_EOF:       the encoder has been fully flushed, and there will be
> - *                         no more output packets
> - *      AVERROR(EINVAL):   codec not opened, or it is a decoder
> - *      other errors: legitimate encoding errors
> + * @return
> + * - 0:                 success
> + * - AVERROR(EAGAIN):   output is not available in the current state - user must
> + *                      try to send input
> + * - AVERROR_EOF:       the encoder has been fully flushed, and there will be no
> + *                      more output packets
> + * - AVERROR(EINVAL):   codec not opened, or it is a decoder
> + * - other errors:      legitimate encoding errors
>   */
>  int avcodec_receive_packet(AVCodecContext *avctx, AVPacket *avpkt);
>
> -- 
> 2.35.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list