"AVIOContext" 结构中 "write_packet()/seek()" 回调函数的 return val 是什么意思?

What's the meaning of return val about the "write_packet()/seek()" callback functions in "AVIOContext" struct?

我正在使用 libav 编写多路复用器 DirectShow 过滤器,我需要将多路复用器的输出重定向到过滤器的输出引脚,所以我使用 avio_alloc_context() 通过我的 write_packet 和 [=16= 创建 AVIOContext ] 回调函数,这2个函数定义如下:

int (*write_packet)(void *opaque, uint8_t *buf, int buf_size)
int64_t (*seek)(void *opaque, int64_t offset, int whence)

我能理解这些函数的输入参数的含义,但是它的return是什么意思?是实际写入的字节数吗?

int (*write_packet)(void *opaque, uint8_t *buf, int buf_size)

写入的字节数。负值表示错误。

int64_t (*seek)(void *opaque, int64_t offset, int whence)

偏移量的位置,以字节为单位,由搜索调用实现,从输出文件的开头开始测量。负值表示错误。