Форум программистов, компьютерный форум CyberForum.ru

MPEG2 - Program Map Table - C++

Восстановить пароль Регистрация
 
Andruchka
0 / 0 / 0
Регистрация: 23.02.2011
Сообщений: 26
10.05.2012, 17:19     MPEG2 - Program Map Table #1
Необходимо добавить еще один PID в таблицу PMT.

На этапе сохранения самой таблицы решил сравнить CRC32, и они не сходяться! Пробывал разные полиномы( 0x04C11DB7 / 0xEDB88320 / 0x82608EDB ), считаю с table id и до конца пока не заканчивается таблица, уже не знаю в чем может быть ошибка.

Делаю по следующему алгоритму
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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[i] = crc;
    };
 
    crc = 0xFFFFFFFFUL;
 
    while( len-- ) 
        crc = crc_table[ ( crc ^ *buf++ ) & 0xFF ] ^ ( crc >> 8 );
 
    return crc ^ 0xFFFFFFFFUL;
}
вкладываю саму таблицу
Вложения
Тип файла: txt PMT.txt (104 байт, 11 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2012, 17:19     MPEG2 - Program Map Table
Посмотрите здесь:

C++ table *str=new table [n];
ошибка stray '\xxx' in program C++
Write a program to perform the following operations C++
C++ Write a program that performs operations
C++ Как вставить map в map
Приведение map<int, B> к map<int, A> C++
не компилируется unable to starm program C++
Определение папки Program Files C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andruchka
0 / 0 / 0
Регистрация: 23.02.2011
Сообщений: 26
19.07.2012, 14:17  [ТС]     MPEG2 - Program Map Table #2
Используя библиотеку ffmpeg-а: crc.h и bswap.h. Которые находятся в avutil.lib

Заполняем таблицу:
C
1
ctx = av_crc_get_table( AV_CRC_32_IEEE );
Где ctx - ссылка на эту таблицу( const AVCRC *ctx )

И далее рассчитываем контрольную сумму.
C
1
crc = av_bswap32 ( av_crc( ctx, -1, data, sectionLengthPMT - 1 ) );
Yandex
Объявления
19.07.2012, 14:17     MPEG2 - Program Map Table
Ответ Создать тему
Опции темы

Текущее время: 23:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru