FFMpeg未定义对get_buffer的引用

时间:2012-06-13 20:13:58

标签: c++ ffmpeg

我正在尝试升级与我们的某个项目一起使用的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;

1 个答案:

答案 0 :(得分:1)

虽然您已找到答案,但我会提供答案以防其他人遇到同样的问题。 durandal_1707在#ffmpeg-devel IRC中为你(我假设)提供了答案:

  

expresspotato:我在整合最新版本时遇到问题   从大约一年半前开始反对旧的。它出现   aviobuf.c中定义的get_buffer已经消失。你知道吗?   方法我应该用?替换它?

     

durandal_1707:在e63a362857d9807b23e65872598d782fa53bb6af get_buffer中   已被重命名为avio_read