Извлечение заголовка последовательности из видео файла mpeg

Я тоже новичок mpeg2dec и я пытался извлечь заголовок последовательности из видеофайла с mpeg2.h(от libmpeg2) но никуда не денется.
Я пытался получить STATE_SEQUENCE и попытался указать на это местоположение в файле, но не смог скопировать его в другой файл.

#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
//mpeg2dec library
#include "mpeg2dec/mpeg2.h"
//jni header
#include "VideoProc.h"

int mpeg2Fun(uint8_t * pointer);
//jni function to get byte array from and return integer
JNIEXPORT jint JNICALL Java_VideoProc_mpeg2FunC(JNIEnv * env, jobject jobj, jbyteArray bytes)
{
    jbyte u_byte[4096] ;
    (*env)->GetByteArrayRegion(env,bytes, 0, 4096, u_byte);

    jint reply=mpeg2Fun(u_byte);

    return reply;
}

int mpeg2Fun(uint8_t * pointer)
{
    mpeg2dec_t * decoder;
    const mpeg2_info_t * info;
    const mpeg2_sequence_t * sequence;
    mpeg2_state_t state;
    size_t size;
    int framenum = 0;

    decoder = mpeg2_init ();
    if (decoder == NULL) {
    fprintf (stderr, "Could not allocate a decoder object.\n");
    exit (1);
    }
    info = mpeg2_info (decoder);

    int t;
    size = (size_t)-1;
    do {
    state = mpeg2_parse (decoder);
    sequence = info->sequence;
    switch (state) {
    case STATE_BUFFER:
        mpeg2_buffer (decoder, pointer, pointer + 4096);
        break;
    case STATE_SEQUENCE:
        t=mpeg2_getpos(decoder);
        return 4096-t;
        break;
    default:
        break;
    }
    } while (size);

    mpeg2_close (decoder);
}

В изложении дела STATE_SEQUENCE: вместо возврата позиции я хотел записать весь заголовок последовательности в другой файл. Это правильно или нет?

0 ответов

Другие вопросы по тегам