Java 使用libffmpeg时如何计算AVPicture.data[x]指针(YUV420p)的大小
我试图分别获取Y、U、V值,以便将它们传递给openGL并映射到纹理。我知道这些值可以在AVPicture.data[0](Y)和AVPicture.data[1](U)以及AVPicture.data[2](V)中找到 ^^那很好。 我遇到的问题是通过JNI将Y、U、V值传递回Java。我必须知道AVPicture.data[x]指针指向的数据的大小。我尝试了AVPicture.linesize,但没有效果,并且:Java 使用libffmpeg时如何计算AVPicture.data[x]指针(YUV420p)的大小,java,android,ffmpeg,video-streaming,h.264,Java,Android,Ffmpeg,Video Streaming,H.264,我试图分别获取Y、U、V值,以便将它们传递给openGL并映射到纹理。我知道这些值可以在AVPicture.data[0](Y)和AVPicture.data[1](U)以及AVPicture.data[2](V)中找到 ^^那很好。 我遇到的问题是通过JNI将Y、U、V值传递回Java。我必须知道AVPicture.data[x]指针指向的数据的大小。我尝试了AVPicture.linesize,但没有效果,并且: for (y = 0; y < ctx->h
for (y = 0; y < ctx->height; y++){
for (x = 0; x < ctx->width; x++){
yDataSize++;
}
}
/* Cb and Cr */
for (y = 0; y < ctx->height / 2; y++) {
for (x = 0; x < ctx->width / 2; x++) {
uDataSize++;
vDataSize++;
}
}
(y=0;y{
对于(x=0;xwidth;x++){
yDataSize++;
}
}
/*Cb和Cr*/
对于(y=0;yheight/2;y++){
对于(x=0;xwidth/2;x++){
uDataSize++;
vDataSize++;
}
}
我真的卡住了,谢谢 缓冲区大小是行大小乘以高度(行大小是每行字节数,乘以行数得到总数)。所以
\u avPicture.linesize[x]*ctx->height
。计算C++侧,将值传递给java。< /P>我非常感谢快速响应。但愿我能不止一次投票。
for (y = 0; y < ctx->height; y++){
for (x = 0; x < ctx->width; x++){
yDataSize++;
}
}
/* Cb and Cr */
for (y = 0; y < ctx->height / 2; y++) {
for (x = 0; x < ctx->width / 2; x++) {
uDataSize++;
vDataSize++;
}
}