我正在尝试升级与我们的某个项目一起使用的FFMpeg源,但get_buffer已经消失了。我不是100%确定用哪种方法替换它。以下是两种情况,其中使用了它,任何帮助都是值得赞赏的。
我期待很快收到你的回复,
谢谢, 凯文
cur_offset = avio_tell(pb);
if (!para->playctrl_info.read_end_flag && (0 == pkt->data_size)) {
rev_byte = get_buffer(pb, pbuf, para->max_raw_size);
if ((rev_byte > 0) && (cur_offset <= para->pFormatCtx->data_offset)) {
try_count = 0;
pkt->data_size = rev_byte;
para->read_size.total_bytes += rev_byte;
pkt->avpkt_newflag = 1;
pkt->avpkt_isvalid = 1;
do {
read_length = get_buffer(s->pb, data + 12, read_size);
if ((read_length <= 0) || (sync_flag == 1024)) {
if (read_length == AVERROR(EAGAIN)) {
continue;
} else {
FREE(data);
log_error("[%s]get data failed. ret=%d\n", __FUNCTION__, read_length);
return 0;
}
} else {
break;
}
} while (retry_get_data < am_p->playctrl_info.read_max_retry_cnt);
pkt = data;
答案 0 :(得分:1)
虽然您已找到答案,但我会提供答案以防其他人遇到同样的问题。 durandal_1707在#ffmpeg-devel IRC中为你(我假设)提供了答案:
expresspotato:我在整合最新版本时遇到问题 从大约一年半前开始反对旧的。它出现 aviobuf.c中定义的get_buffer已经消失。你知道吗? 方法我应该用?替换它?
durandal_1707:在e63a362857d9807b23e65872598d782fa53bb6af get_buffer中 已被重命名为avio_read