Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 23.02.2011
Сообщений: 26
1

MPEG2 - Program Map Table

10.05.2012, 17:19. Просмотров 704. Ответов 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;
}
вкладываю саму таблицу
0
Вложения
Тип файла: txt PMT.txt (104 байт, 14 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2012, 17:19
Ответы с готовыми решениями:

Ошибка TD 'program has no symbol table'
Всем привет, приступил к изучению FASM, нашел уроки, в одном из уроков есть пример, как посмотреть...

TASK: Write a program that displays the multiplication table 10 by 10 as follows: 1 2 3 … 2 4 6 … 3 6 9 …
Write a program that displays the multiplication table 10 by 10 as follows: 1 2 3 … 2 4 6 … 3...

Запрос выборки из базы данных не прошел. Код ошибки:Table 'program.settings' doesn't exist
Что это и с чем его едят?

Запускается FactoryMethod.Program вместо AbstractFactory.Program - как исправить?
Запускается FactoryMethod.Program вместо AbstractFactory.Program - как исправить?

1
0 / 0 / 0
Регистрация: 23.02.2011
Сообщений: 26
19.07.2012, 14:17  [ТС] 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 ) );
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2012, 14:17

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

No rule to make target 'C:/Program', needed by 'release/Program.o'. Stop
Доброго времени суток! Помогите, пожалуйста, исправить ошибку No rule to make target...

Какой прогой можно разобрать mpeg2?
Например, для avi есть avidemux, для mkv - MKVExtractGUI2. А для mpeg2 есть подобная прога? Чтоб...

Принять по UDP multicast медиа-поток MPEG2-TS
Прочитал про сокеты и как подключиться к multicast group. #include &lt;iostream&gt; #include...

После запуска program.exe ничего не происходит, то есть program.exe запустилась, а дальше код не выполняется
int main() { system(&quot;&quot;C:\\Program Files (X86)\\Files\\program.exe&quot;&quot;); cout &lt;&lt; &quot;Hi&quot; &lt;&lt;...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.