LINUX.ORG.RU

Поиск куска кода отвечающий за счетчики

 ,


0

1

Коллеги, пытаюсь найти кусок кода в проекте vlc ( интересует последняя стабильная версия и 2.1.5) отвественный за Алгоритм ,которым заполняються счетчики Discarded (оба) и lost frame ,Пример - http://img1.imagehousing.com/29/7f26f129571bb8fd5f474b5f325061f0.png . Enum его нашел

enum
{
    STATS_INPUT_BITRATE,
    STATS_READ_BYTES,
    STATS_READ_PACKETS,
    STATS_DEMUX_READ,
    STATS_DEMUX_BITRATE,
    STATS_DEMUX_CORRUPTED,
    STATS_DEMUX_DISCONTINUITY,
    STATS_PLAYED_ABUFFERS,
    STATS_LOST_ABUFFERS,
    STATS_DECODED_AUDIO,
    STATS_DECODED_VIDEO,
    STATS_DECODED_SUB,
    STATS_CLIENT_CONNECTIONS,
    STATS_ACTIVE_CONNECTIONS,
    STATS_SOUT_SENT_PACKETS,
    STATS_SOUT_SENT_BYTES,
    STATS_SOUT_SEND_BITRATE,
    STATS_DISPLAYED_PICTURES,
    STATS_LOST_PICTURES,
};

Как бы хочу использовать для решения этой темы - IPTV плеер/софт для детектинга кривых фреймов

★★★★★

Ответ на: комментарий от andreyu

Поискать, кто сеттит эти параметры. Пофиксить баг.

Пока нашел только VLC_TS_INVALID в src/decoder.c однако логика работы немного непонятно для случая :
STATS_DEMUX_CORRUPTED,
STATS_DEMUX_DISCONTINUITY,

pinachet ★★★★★
() автор топика
Последнее исправление: pinachet (всего исправлений: 1)
Ответ на: комментарий от pinachet

Не понял задачи, вам нужно найти где происходит установка значений или разобраться почему значения неверные?

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Установка значений, и по какому алгоритму .В принципе я нашел что за последние два параметра отвечает этот кусок кода в es_out.c


        /* Update number of corrupted data packats */
        if( p_block->i_flags & BLOCK_FLAG_CORRUPTED )
        {
            stats_Update( p_input->p->counters.p_demux_corrupted, 1, NULL );
        }
        /* Update number of discontinuities */
        if( p_block->i_flags & BLOCK_FLAG_DISCONTINUITY )
        {
            stats_Update( p_input->p->counters.p_demux_discontinuity, 1, NULL );
        }
./include/vlc_block.h:79:#define BLOCK_FLAG_CORRUPTED     0x1000

Причем что за i_flags ? у меня контейнер mpeg ts

./modules/demux/ts.c:2047:                p_reset->i_flags = BLOCK_FLAG_DISCONTINUITY | BLOCK_FLAG_CORRUPTED;
./modules/demux/ts.c:2246:            pid->es->p_data->i_flags |= BLOCK_FLAG_CORRUPTED;
./modules/demux/ts.c:2314:                pid->es->p_data->i_flags |= BLOCK_FLAG_CORRUPTED;

Может не подскажите нормальный и простой алгоритм как ловить все потеряны кадры видео и аудио для mpeg ts ,а то тут так все накрученно (?

pinachet ★★★★★
() автор топика
Ответ на: комментарий от pinachet

Может не подскажите нормальный и простой алгоритм как ловить все потеряны кадры видео и аудио для mpeg ts ,

Тут ничем не помогу. Нужно смотреть код самому, а ленивый.

а то тут так все накрученно (?

В коде, что вы привели, ничего накрученного нет.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

В коде, что вы привели, ничего накрученного нет.

Да синтаксис понятный, просто непонятно что откуда растет и почему вбиты именно эти констаты в define .

pinachet ★★★★★
() автор топика
Ответ на: комментарий от HighwayStar

из комплексных решений есть опенсорсный https://github.com/netoptimizer/IPTV-Analyzer но я его ставил на сбор только на pc, в приставки запихивать не пробовал, там модуль ядра нужно собирать, если SDK приставки есть, то должно быть возможно

HighwayStar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.