コード例 #1
0
ファイル: multiple_sources.c プロジェクト: dluobo/ingex
static int64_t mls_convert_position(void* data, int64_t position, MediaSource* childSource)
{
    MultipleMediaSources* multSource = (MultipleMediaSources*)data;
    MediaSourceElement* ele = &multSource->sources;
    int64_t returnPosition = position;
    int64_t childPosition;

    if (childSource == &multSource->collectiveSource)
    {
        return position;
    }

    /* we take the position of any child source that deviates from the given position */
    while (ele != NULL && ele->source != NULL)
    {
        childPosition = msc_convert_position(ele->source, position, childSource);
        if (childPosition != position)
        {
            returnPosition = childPosition;
            break;
        }

        ele = ele->next;
    }

    return returnPosition;
}
コード例 #2
0
ファイル: clip_source.c プロジェクト: UIKit0/bbc-ingex
static int64_t cps_convert_position(void* data, int64_t position, MediaSource* childSource)
{
    ClipSource* clipSource = (ClipSource*)data;
    int64_t childPosition = position;

    if (childSource != &clipSource->mediaSource)
    {
        childPosition = msc_convert_position(clipSource->targetSource, position, childSource);
    }

    return childPosition - clipSource->start;
}