Page 1 of 1

vlc for android record

Posted: 13 Aug 2015 08:56
by mengzhengjie
Hello everyone, would like to ask a question that I want to achieve the above vlc on android video functions, but there ready to record when an error in the file "es_out.c" in "EsOutSetRecord" approach, I want to use "sout_NewInstance", but at compile time prompt "error: undefined reference to'sout_NewInstance '", the errors when I define settings "ENABLE_SOUT" will be reported for the same is true of this "error: undefined reference to" an error but there are other ways also reported this error, as this would like to ask how to solve, thank you

Code: Select all

static int EsOutSetRecord( es_out_t *out, bool b_record ) { es_out_sys_t *p_sys = out->p_sys; input_thread_t *p_input = p_sys->p_input; assert( ( b_record && !p_sys->p_sout_record ) || ( !b_record && p_sys->p_sout_record ) ); if( b_record ) { char *psz_path = var_CreateGetNonEmptyString( p_input, "input-record-path" ); if( !psz_path ) { if( var_CountChoices( p_input, "video-es" ) ) psz_path = config_GetUserDir( VLC_VIDEOS_DIR ); else if( var_CountChoices( p_input, "audio-es" ) ) psz_path = config_GetUserDir( VLC_MUSIC_DIR ); else psz_path = config_GetUserDir( VLC_DOWNLOAD_DIR ); } char *psz_sout = NULL; // TODO conf if( !psz_sout && psz_path ) { char *psz_file = input_CreateFilename( p_input, psz_path, INPUT_RECORD_PREFIX, NULL ); if( psz_file ) { if( asprintf( &psz_sout, "#record{dst-prefix='%s'}", psz_file ) < 0 ) psz_sout = NULL; free( psz_file ); } } free( psz_path ); if( !psz_sout ) return VLC_EGENERIC; #ifdef ENABLE_SOUT p_sys->p_sout_record = sout_NewInstance( p_input, psz_sout ); #endif free( psz_sout ); if( !p_sys->p_sout_record ) return VLC_EGENERIC; for( int i = 0; i < p_sys->i_es; i++ ) { es_out_id_t *p_es = p_sys->es[i]; if( !p_es->p_dec || p_es->p_master ) continue; p_es->p_dec_record = input_DecoderNew( p_input, &p_es->fmt, p_es->p_pgrm->p_clock, p_sys->p_sout_record ); if( p_es->p_dec_record && p_sys->b_buffering ) input_DecoderStartWait( p_es->p_dec_record ); } } else { for( int i = 0; i < p_sys->i_es; i++ ) { es_out_id_t *p_es = p_sys->es[i]; if( !p_es->p_dec_record ) continue; input_DecoderDelete( p_es->p_dec_record ); p_es->p_dec_record = NULL; } #ifdef ENABLE_SOUT sout_DeleteInstance( p_sys->p_sout_record ); #endif p_sys->p_sout_record = NULL; } return VLC_SUCCESS; }

Re: vlc for android record

Posted: 30 Oct 2015 19:39
by Jean-Baptiste Kempf
VLC on Android has sout disabled.