рд╣рдо Mediastreamer2 рд╡реАрдУрдЖрдИрдкреА рдЗрдВрдЬрди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВред рднрд╛рдЧ 12

рдореЗрд░реЗ рдЬрд╝реЗрди рдЪреИрдирд▓ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд▓реЗрдЦ рд╕рд╛рдордЧреНрд░реА ред



рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ , рдореИрдВрдиреЗ рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреНрд░реАрдорд░ рдореЗрдВ рдЕрддреНрдпрдзрд┐рдХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд▓реЛрдб рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд┐рдХрд░ рдкрд░ рд▓реЛрдб рдХрд╛ рдЖрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдФрд░ рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдмрдврд╝рддреЗ рдбреЗрдЯрд╛ рд╕реЗ рдЬреБрдбрд╝реЗ рд╢рд┐рд▓реНрдк рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдореБрджреНрджреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди рдореБрджреНрджреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред


рд╢рд┐рд▓реНрдк рдлрд╝рд┐рд▓реНрдЯрд░ рдбреАрдмрдЧ рдХрд░рдирд╛


рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдПрдХ рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреНрд░реАрдорд░ рдореЗрдВ рдбреЗрдЯрд╛ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рддрдВрддреНрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдореЗрдВ рдореМрдЬреВрдж рдЦрддрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛ред "рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣" рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдвреЗрд░ рд╕реЗ рдореЗрдореЛрд░реА рдХрд╛ рдЖрд╡рдВрдЯрди рдЙрди рдлрд┐рд▓реНрдЯрд░ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╕реНрд░реЛрдд рдкрд░ рд╕реНрдерд┐рдд рд╣реИрдВ, рдФрд░ рд╕реНрдЯреНрд░реАрдо рдкрде рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕реНрдерд┐рдд рдлрд╝рд┐рд▓реНрдЯрд░ рдореЗрдореЛрд░реА рдХреЛ рдореБрдХреНрдд рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдвреЗрд░ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирдП рдбреЗрдЯрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдирд╛рд╢ рдХрд╣реАрдВ рдордзреНрдпрд╡рд░реНрддреА рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдореЗрдореЛрд░реА рдХреЛ рдлреНрд░реАрдЬрд╝ рдХрд░рдирд╛ рдЧрд▓рдд рдлрд╝рд┐рд▓реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдмрдирд╛рддрд╛ рд╣реИред


, , , , . тАФ , . , , тАФ / .


, , ( ). "" "" . , . . "" , MS_TEE , . , : ms_free(). , , .. "". ( ) .


"" , . тАФ . , . , , , "" , .


?


, top , .


, - , . , . , , ..


( ). Valgrind ( ) gcc MemorySanitizer - . , , .



, , . "" , , , . , , .


"" , , .


, . , .



. .



, F1...F4, , . , . , , N- . , MS_VOID_SOURCE. тАФ . . .. .


, , , , "" , , . . , , . тАФ , . - .


voidsourse:


, , , . , ( ). , . , , , "" . , . "" , . ( ). "" , .


-


. :


/*  iso_filter.h    . */

#ifndef iso_filter_h
#define iso_filter_h

/*   . */
#include <mediastreamer2/msfilter.h>

#define MY_ISO_FILTER_ID 1024

extern MSFilterDesc iso_filter_desc;

#endif

:


/*  iso_filter.c    . */

#include "iso_filter.h"

    static void
iso_init (MSFilter * f)
{
}
    static void
iso_uninit (MSFilter * f)
{
}

    static void
iso_process (MSFilter * f)
{
    mblk_t *im;

    while ((im = ms_queue_get (f->inputs[0])) != NULL)
    {
        ms_queue_put (f->outputs[0], copymsg (im));
        freemsg (im);
    }
}

static MSFilterMethod iso_methods[] = {
    {0, NULL}
};

MSFilterDesc iso_filter_desc = {
    MY_ISO_FILTER_ID,
    "iso_filter",
    "A filter that reads from input and copy to its output.",
    MS_FILTER_OTHER,
    NULL,
    1,
    1,
    iso_init,
    NULL,
    iso_process,
    NULL,
    iso_uninit,
    iso_methods
};

MS_FILTER_DESC_EXPORT (iso_desc)


, , ", ". . :


OrtpMemoryFunctions reserv;
OrtpMemoryFunctions my;

reserv.malloc_fun = ortp_malloc;
reserv.realloc_fun = ortp_realloc;
reserv.free_fun = ortp_free;

my.malloc_fun = &my_malloc;
my.realloc_fun = &my_realloc;
my.free_fun = &my_free;

ortp_set_memory_functions(&my);

, , . .


, . , , .


рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЯрд┐рдХрд░ рдкрд░ рд▓реЛрдб рдХрд╛ рдЖрдХрд▓рди рдХрд░рдиреЗ рдФрд░ рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреАрдорд░ рдореЗрдВ рдЕрддреНрдпрдзрд┐рдХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд▓реЛрдб рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред


All Articles