コード例 #1
0
ファイル: chapter.c プロジェクト: darcyg/vapoursynth-plugins
static int isom_read_minimum_chapter( FILE *chapter, isom_chapter_entry_t *data )
{
    char buff[CHAPTER_BUFSIZE];
    if( isom_lumber_line( buff, CHAPTER_BUFSIZE, chapter ) < 0 )    /* read newline */
        return LSMASH_ERR_NAMELESS;
    char *p_buff = &buff[ !memcmp( buff, UTF8_BOM, UTF8_BOM_LENGTH ) ? UTF8_BOM_LENGTH : 0 ];   /* BOM detection */
    if( isom_get_start_time( p_buff, data ) < 0 )   /* get start_time */
        return LSMASH_ERR_INVALID_DATA;
    /* get chapter_name */
    char *chapter_name = strchr( buff, ' ' );   /* find separator */
    if( !chapter_name++ )
        return LSMASH_ERR_INVALID_DATA;
    int len = LSMASH_MIN( 255, strlen( chapter_name ) );    /* We support length of chapter_name up to 255 */
    data->chapter_name = (char *)lsmash_malloc( len + 1 );
    if( !data->chapter_name )
        return LSMASH_ERR_MEMORY_ALLOC;
    memcpy( data->chapter_name, chapter_name, len );
    data->chapter_name[len] = '\0';
    return 0;
}
コード例 #2
0
ファイル: chapter.c プロジェクト: jeeb/L-SMASH
static int isom_read_minimum_chapter( FILE *chapter, isom_chapter_entry_t *data )
{
    char buff[CHAPTER_BUFSIZE];
    int len;

    if( isom_lumber_line( buff, CHAPTER_BUFSIZE, chapter ) ) /* read newline */
        return -1;
    char *p_buff = !memcmp( buff, UTF8_BOM, UTF8_BOM_LENGTH ) ? &buff[UTF8_BOM_LENGTH] : &buff[0]; /* BOM detection */
    if( isom_get_start_time( p_buff, data ) ) /* get start_time */
        return -1;
    /* get chapter_name */
    char *chapter_name = strchr( buff, ' ' );   /* find separator */
    if( !chapter_name++ )
        return -1;
    len = LSMASH_MIN( 255, strlen( chapter_name ) );  /* We support length of chapter_name up to 255 */
    data->chapter_name = (char *)malloc( len + 1 );
    if( !data->chapter_name )
        return -1;
    memcpy( data->chapter_name, chapter_name, len );
    data->chapter_name[len] = '\0';
    return 0;
}
コード例 #3
0
ファイル: chapter.c プロジェクト: darcyg/vapoursynth-plugins
static int isom_read_simple_chapter( FILE *chapter, isom_chapter_entry_t *data )
{
    char buff[CHAPTER_BUFSIZE];
    /* get start_time */
    if( isom_lumber_line( buff, CHAPTER_BUFSIZE, chapter ) < 0 )
        return LSMASH_ERR_NAMELESS;
    char *chapter_time = strchr( buff, '=' );   /* find separator */
    if( !chapter_time++ )
        return LSMASH_ERR_INVALID_DATA;
    if( isom_get_start_time( chapter_time, data ) < 0 )
        return LSMASH_ERR_INVALID_DATA;
    if( isom_lumber_line( buff, CHAPTER_BUFSIZE, chapter ) < 0 )    /* get chapter_name */
        return LSMASH_ERR_NAMELESS;
    char *chapter_name = strchr( buff, '=' );   /* find separator */
    if( !chapter_name++ )
        return LSMASH_ERR_INVALID_DATA;
    int len = LSMASH_MIN( 255, strlen( chapter_name ) );    /* We support length of chapter_name up to 255 */
    data->chapter_name = (char *)lsmash_malloc( len + 1 );
    if( !data->chapter_name )
        return LSMASH_ERR_MEMORY_ALLOC;
    memcpy( data->chapter_name, chapter_name, len );
    data->chapter_name[len] = '\0';
    return 0;
}
コード例 #4
0
ファイル: chapter.c プロジェクト: jeeb/L-SMASH
static int isom_read_simple_chapter( FILE *chapter, isom_chapter_entry_t *data )
{
    char buff[CHAPTER_BUFSIZE];
    int len;

    /* get start_time */
    if( isom_lumber_line( buff, CHAPTER_BUFSIZE, chapter ) )
        return -1;
    char *chapter_time = strchr( buff, '=' );   /* find separator */
    if( !chapter_time++
        || isom_get_start_time( chapter_time, data )
        || isom_lumber_line( buff, CHAPTER_BUFSIZE, chapter ) ) /* get chapter_name */
        return -1;
    char *chapter_name = strchr( buff, '=' );   /* find separator */
    if( !chapter_name++ )
        return -1;
    len = LSMASH_MIN( 255, strlen( chapter_name ) );  /* We support length of chapter_name up to 255 */
    data->chapter_name = (char *)malloc( len + 1 );
    if( !data->chapter_name )
        return -1;
    memcpy( data->chapter_name, chapter_name, len );
    data->chapter_name[len] = '\0';
    return 0;
}