0

プロジェクトの 1 つで使用されている FFMpeg ソースをアップグレードしようとしていますが、get_buffer がなくなりました。どの方法で置き換えるかについては、100% 確信が持てません。これが使用される 2 つのコンテキストを次に示します。

私はあなたからのお便りを楽しみにしています、

ありがとう、ケビン

    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;
4

1 に答える 1

1

あなたはすでにあなたの答えを見つけましたが、他の人が同じ問題を抱えている場合に備えて答えを提供します. durandal_1707 は #ffmpeg-devel IRC であなたに答えを提供しました (私は推測します):

expresspotato: ffmpeg の最新バージョンを約 1 年半前の古いバージョンに統合するのに問題があります。aviobuf.c で定義されている get_buffer がなくなったようです。どの方法に置き換える必要があるか知っていますか?

durandal_1707: e63a362857d9807b23e65872598d782fa53bb6afで get_buffer の名前が avio_read に変更されました

于 2012-06-14T17:37:23.630 に答える