Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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;
    }