Помогите с MPEG2!!!

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Andrushka25, 10 May 2012.

  1. Andrushka25

    Andrushka25 New Member

    Joined:
    19 Jul 2010
    Messages:
    24
    Likes Received:
    0
    Reputations:
    0
    Задание в следующем, из одного мпега, добавить в другой мпег, аудидорожку. Первую часть сделал, т.е. нашел сохранил выбарнную дорожку.
    Потом нужно было добавлять еще один PID в таблицу PMT.
    Я сохранил, решил проверить CRC32, и они не сходяться!
    Пробывал разные полиномы( 0x04C11DB7 / 0xEDB88320 / 0x82608EDB ), считаю с table id и до конца пока не заканчивается таблица, уже не знаю в чем может быть ошибка.

    Делаю по следующему алгоритму

    unsigned long crc32( unsigned char *buf, size_t len, size_t pol )
    {
    unsigned long crc_table[ 256 ];
    unsigned long crc;
    int i, j;

    for ( i = 0; i < 256; i++ )
    {
    crc = i;
    for ( j = 0; j < 8; j++ )
    crc = crc & 1 ? ( crc >> 1 ) ^ pol : crc >> 1;

    crc_table = crc;
    };

    crc = 0xFFFFFFFFUL;

    while( len-- )
    crc = crc_table[ ( crc ^ *buf++ ) & 0xFF ] ^ ( crc >> 8 );

    return crc ^ 0xFFFFFFFFUL;
    }

    Ребят помогите пожалуйста, полторы недели сижу уже, весь поиск облазил, делаю все как нужно вроде, а все ровно не работает!
    Или можно как то по другому выполнить ?
     
    #1 Andrushka25, 10 May 2012
    Last edited: 10 May 2012