LINUX.ORG.RU

Сообщения fopen

 

Новый дизайн сайта FFmpeg

Форум — Talks

Сайт FFmpeg обрел новый вид. Цель изменений - еще большее меню и удобная навигация.

Первое впечатление от нового вида сайта было: «Оу! Я попал на „рыбака“!?» Он темный!. И «современный» - на главной большая кнопка «загрузить бесплатно без смс», везде гламурные монохромные иконы (и батоны) с кругленькими углами, ну и просто HTML5.нольненько.

fopen
()

EFL 1.10

Новости — Open Source
Группа Open Source

После трех месяцев разработки представлена новая версия набора библиотек из проекта Enlightenment: EFL 1.10 - библиотека для построения графического интерфейса пользователя, Elementary 1.10 - набор элементов графического интерфейса пользователя, Evas Generic Loaders 1.10 и Emotion Generic Players 1.10 - дополнительные декодеры изображений и видео. Следующий выпуск 1.11 запланирован через 12 недель.

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

( читать дальше... )

>>> Подробности

 ,

fopen
()

Стиль switch - case

Форум — Development

Увидел в http://www.linux.org.ru/forum/development/10302494 такой стиль:

    switch (event.type) {
        case SDL_QUIT: {
	    quit = 1;
        } break;
    }
Вопрос ко всем и к Bizun в частности.

В чем физический смысл такого «{...} break;»?

Я в этом вижу только яростную ненависть к goto. Господа, кто еще в мире пишет в таком стиле?

В каких open source проектах используют такой стиль программирования?

 ,

fopen
()

Десериализация сырых данных

Форум — Development

Надо мне сохранить некие данные, а позже прочитать их той же программой.

struct data *data;
write (f, data, size_of_data);
...
read (f, data, size_of_data);
Сберег природу.

Если кто-то не знает, что так делать нельзя, сообщаю - так делать нельзя. Если кто-то захочет сообщить в этой теме, что так делать нельзя, то не надо - это оффтоп, заводите свои темы.

Я хочу поговорить, как так сделать!

Чтобы успешно прочесть такие данные, потребуется заголовок с метаданными (описание структуры, как она представляется в оперативной памяти) и десериализатор, который по метаданным декодирует данные в случае несовпадения представления данных в памяти записавшего с прочитавшим.

current = meta_current ();
write (f, current, size_of_meta (current));
...
meta = meta_read (f);
read (f, data, size_of_data (current));
if (!meta_eq (meta, current)) meta_decode (meta, data);

Что нужно предусмотреть в этом случае?

  • указатели относительные
  • порядок байт
  • размер элементарных типов данных
  • смещение всех элементов структуры
  • как узнать определить два предыдущих пункта не компилируя и не запуская тест
  • текстовое описание структуры или его хэш

Что еще?

Числа с плавающей точкой мне не надо, но послушать про них будет интересно.

Магией в meta_decode и вопросом, кто будет писать эту функцию можно пренебречь.

 

fopen
()

Флэш-пластилин

Галерея — Рабочие места

Рассерженные птички на рабочем столе.

 

fopen
()

Вышел FFmpeg 2.0 с поддержкой OpenCL

Новости — Мультимедиа
Группа Мультимедиа

В новой версии FFmpeg 2.0, программе для обработки и вещания мультимедиа потоков, добавлено много новых фильтров, стало больше кодеков и контейнеров, улучшена производительность и удобство использования.

( читать дальше... )

>>> Подробнее о FFmpeg 2.0

 

fopen
()

Проверка типов параметров makecontext

Форум — Development

Запутавшись в обратных вызовах, приобщился я к новой религии - Сопрограммы! Но вот осталась одна досадная мелочь, мешающая ощутить счастье в полной мере: контроль типов параметров makecontext. В примере ниже параметр «a» передается с ошибкой. Как сделать, чтобы компилятор об этом сообщил?

$ cat makecontext.c

#include <stdio.h>
#include <ucontext.h>

void foo (const char *f, int a, int *ret)
{
    *ret = printf (f, a);
}

void test (void)
{
    unsigned int a = 10;
    int *ret;
    ucontext_t c;

    makecontext (&c, foo, 3, "foo %d", a, &ret);
}

$ gcc -c -Wall makecontext.c

makecontext.c: In function ‘test’:
makecontext.c:15: warning: passing argument 2 of ‘makecontext’ from incompatible pointer type
/usr/include/ucontext.h:48: note: expected ‘void (*)(void)’ but argument is of type ‘void (*)(const char *, int,  int *)’

Ну, и, пятница, же... В каких проектах используются сопрограммы? putty, samba, ещё? Какие субъективные впечатления и объективные результаты от использования сопрограмм?

 , makecontext,

fopen
()

RSS подписка на новые темы