JNIEXPORT jint JNICALL Java_com_jazzros_ffmpegtest_AVThread_nativeDecodeFrameFromFile(JNIEnv* env, jobject thiz) { AVPacket packet; memset(&packet, 0, sizeof(packet)); //make sure we can safely free it int i; for (i = 0; i < gFormatCtx->nb_streams; ++i) { // av_init_packet(&packet); if (av_read_frame(gFormatCtx, &packet) != 0) { __android_log_print(ANDROID_LOG_ERROR, "com.jazzros.ffmpegtest", "av_read_frame() failed"); return -1; } if (packet.stream_index != gVideoStreamIdx) { av_free_packet(&packet); continue; } int ret = decodeFrameFromPacket(&packet); // av_free_packet(&packet); if (ret != 0) //an error or a frame decoded return ret; } return 0; }
JNIEXPORT jint JNICALL Java_com_example_restreaming_StreamingHeadlessCamcorder_nativeDecodeFrameFromFile(JNIEnv* env, jobject thiz) { AVPacket packet; memset(&packet, 0, sizeof(packet)); //make sure we can safely free it int i; for (i = 0; i < gFormatCtx->nb_streams; ++i) { //av_init_packet(&packet); if (av_read_frame(gFormatCtx, &packet) != 0) { __android_log_print(ANDROID_LOG_ERROR, "com.example.ffmpegav", "av_read_frame() failed"); return -1; } int ret = decodeFrameFromPacket(&packet); av_free_packet(&packet); if (ret != 0) //an error or a frame decoded return ret; } return 0; }