コード例 #1
0
ファイル: vc1.c プロジェクト: jeeb/L-SMASH
int vc1_setup_parser( vc1_info_t *info, int parse_only, uint32_t (*update)( vc1_info_t *, void *, uint32_t ) )
{
    if( !info )
        return -1;
    memset( info, 0, sizeof(vc1_info_t) );
    vc1_stream_buffer_t *buffer = &info->buffer;
    buffer->bank = lsmash_create_multiple_buffers( parse_only ? 2 : 4, VC1_DEFAULT_BUFFER_SIZE );
    if( !buffer->bank )
        return -1;
    buffer->start  = lsmash_withdraw_buffer( buffer->bank, 1 );
    buffer->rbdu   = lsmash_withdraw_buffer( buffer->bank, 2 );
    buffer->pos    = buffer->start;
    buffer->end    = buffer->start;
    buffer->update = update;
    if( !parse_only )
    {
        info->access_unit.data            = lsmash_withdraw_buffer( buffer->bank, 3 );
        info->access_unit.incomplete_data = lsmash_withdraw_buffer( buffer->bank, 4 );
    }
    info->bits = lsmash_bits_adhoc_create();
    if( !info->bits )
    {
        lsmash_destroy_multiple_buffers( info->buffer.bank );
        info->buffer.bank = NULL;
        return -1;
    }
    return 0;
}
コード例 #2
0
ファイル: vc1.c プロジェクト: jeeb/L-SMASH
void vc1_cleanup_parser( vc1_info_t *info )
{
    if( !info )
        return;
    lsmash_destroy_vc1_headers( &info->dvc1_param );
    lsmash_destroy_multiple_buffers( info->buffer.bank );
    lsmash_bits_adhoc_cleanup( info->bits );
}
コード例 #3
0
ファイル: dts_imp.c プロジェクト: arodland/l-smash
static void remove_dts_importer( dts_importer_t *dts_imp )
{
    if( !dts_imp )
        return;
    lsmash_destroy_multiple_buffers( dts_imp->au_buffers );
    lsmash_bits_cleanup( dts_imp->info.bits );
    lsmash_free( dts_imp );
}