chatGPT答: |
8v6.cn |
在新版本的ffmpeg中,可以使用AVCodecParameters和AVPacket代替ifmt_ctx->streams[dec_pkt->stream_index]->codecpar和dec_pkt。具体代码如下:
```
ret = avcodec_send_packet(codec_context, packet);
if (ret < 0) {
// error handling
}
while (ret >= 0) {
ret = avcodec_receive_frame(codec_context, frame);
if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
break;
else if (ret < 0) {
// error handling
}
}
```
其中,codec_context是由avcodec_alloc_context3()函数创建的解码器上下文,packet是由av_read_frame()函数读取到的数据包,frame是用于存储解码后图像帧数据的AVFrame结构体。
|