本文整理汇总了C++中ADM_assert函数的典型用法代码示例。如果您正苦于以下问题:C++ ADM_assert函数的具体用法?C++ ADM_assert怎么用?C++ ADM_assert使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ADM_assert函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: printf
//.........这里部分代码省略.........
}
fread(&_video_bih,sizeof(_video_bih),1,_fd);
#ifdef ADM_BIG_ENDIAN
Endian_BitMapInfo(&_video_bih);
#endif
if(extra>0)
{
_videoExtraLen=extra;
_videoExtraData=new uint8_t [extra];
fread(_videoExtraData,extra,1,_fd);
}
_isvideopresent=1;
//--------------------------------------------------
// Read audio trak info, select if there is
// several
//--------------------------------------------------
// and audio track
if(_mainaviheader.dwStreams>=2)
{
// which one is the audio track, is there several ?
if(!(_nbAudioTracks=countAudioTrack()))
{
printf("Weird, there is no audio track, but more than one stream...\n");
}
else
{
uint32_t run=0,audio=0;
odmlAudioTrack *track;
_audioTracks=new odmlAudioTrack[_nbAudioTracks];
_audioStreams=new ADM_audioStream *[_nbAudioTracks];
while(audio<_nbAudioTracks)
{
ADM_assert(run<_nbTrack);
track=&(_audioTracks[audio]);
fseeko(_fd,_Tracks[run].strh.offset,SEEK_SET);
if(_Tracks[run].strh.size != sizeof(_audiostream))
{
printf("[AVI]Mmm(2) we have a bogey here, size mismatch : %"PRIu64"\n",_Tracks[run].strh.size);
printf("[AVI]expected %d\n",(int)sizeof(_audiostream));
if(_Tracks[run].strh.size<sizeof(_audiostream)-8)
{
GUI_Error_HIG(QT_TR_NOOP("Malformed header"), NULL);
return 0;
}
printf("[AVI]Trying to continue anyway\n");
}
fread(track->avistream,sizeof(_audiostream),1,_fd);
#ifdef ADM_BIG_ENDIAN
Endian_AviStreamHeader(track->avistream);
#endif
if(track->avistream->fccType!=MKFCC('a','u','d','s'))
{
printf("Not an audio track!\n");
run++;
continue;
}
// now read extra stuff
fseeko(_fd,_Tracks[run].strf.offset,SEEK_SET);
extra=_Tracks[run].strf.size-sizeof(WAVHeader);
if(extra<0)
{
printf("[AVI]WavHeader is not big enough (%"PRIu64"/%d)!\n",
_Tracks[run].strf.size,(int)sizeof(WAVHeader));
return 0;
示例2: ADM_assert
//___________________________________________________
uint8_t ADM_ogmWrite::writeVideo(uint32_t frame)
{
ADM_assert(0);
return 0;
}
示例3: switch
uint8_t lavMuxer::open(const char *filename,uint32_t inbitrate, ADM_MUXER_TYPE type, aviInfo *info,
uint32_t videoExtraDataSize, uint8_t *videoExtraData, WAVHeader *audioheader,
uint32_t audioextraSize,uint8_t *audioextraData)
{
AVCodecContext *c;
_type=type;
_fps1000=info->fps1000;
switch(_type)
{
case MUXER_TS:
fmt=guess_format("mpegts", NULL, NULL);
break;
case MUXER_DVD:
fmt = guess_format("dvd", NULL, NULL);
break;
case MUXER_VCD:
fmt = guess_format("vcd", NULL, NULL);
break;
case MUXER_SVCD:
fmt = guess_format("svcd", NULL, NULL);
break;
case MUXER_MP4:
fmt = guess_format("mp4", NULL, NULL);
break;
case MUXER_PSP:
fmt = guess_format("psp", NULL, NULL);
break;
case MUXER_FLV:
fmt = guess_format("flv", NULL, NULL);
break;
case MUXER_MATROSKA:
fmt = guess_format("matroska", NULL, NULL);
break;
default:
fmt=NULL;
}
if (!fmt)
{
printf("Lav:Cannot guess format\n");
ADM_assert(0);
return 0;
}
oc = av_alloc_format_context();
if (!oc)
{
printf("Lav:Cannot allocate context\n");
return 0;
}
oc->oformat = fmt;
snprintf(oc->filename,1000,"file://%s",filename);
// Video
//________
video_st = av_new_stream(oc, 0);
if (!video_st)
{
printf("Lav: new stream failed\n");
return 0;
}
c = video_st->codec;
switch(_type)
{
case MUXER_FLV:
c->codec=new AVCodec;
memset(c->codec,0,sizeof(AVCodec));
if(fourCC::check(info->fcc,(uint8_t *)"FLV1"))
{
c->codec_id=CODEC_ID_FLV1;
c->codec->name=ADM_strdup("FLV1");
}else
{
if(fourCC::check(info->fcc,(uint8_t *)"VP6F"))
{
c->codec_id=CODEC_ID_VP6F;
c->codec->name=ADM_strdup("VP6F");
}
else
ADM_assert(0);
}
break;
case MUXER_MATROSKA:
strcpy(oc->title,"Avidemux");
strcpy(oc->author,"Avidemux");
c->sample_aspect_ratio.num=1;
c->sample_aspect_ratio.den=1;
if(isMpeg4Compatible(info->fcc))
{
c->codec_id = CODEC_ID_MPEG4;
c->has_b_frames=1; // in doubt...
}else
{
if(isH264Compatible(info->fcc))
{
c->has_b_frames=1; // in doubt...
c->codec_id = CODEC_ID_H264;
c->codec=new AVCodec;
//.........这里部分代码省略.........
示例4: ADM_assert
//--------------------------------
uint8_t EncoderFFMPEG::configure (AVDMGenericVideoStream * instream, int useExistingLogFile)
{
ADM_assert (instream);
ADV_Info *
info;
uint32_t
flag1,
flag2,
flag3;
flag1 = flag2 = flag3 = 0;
info = instream->getInfo ();
_fps = info->fps1000;
_w = info->width;
_h = info->height;
_vbuffer = new ADMImage (_w, _h);
ADM_assert (_vbuffer);
_in = instream;
switch (_param.mode)
{
case COMPRESS_SAME:
printf ("FFmpeg in follow quant mode\n");
_state = enc_Same;
_codec = new ffmpegEncoderVBRExternal (_w, _h, _id);
_codec->setConfig (&_settings);
_codec->init (2, _fps, 0);
break;
case COMPRESS_CQ:
printf ("ffmpeg cq mode: %ld\n", _param.qz);
_state = enc_CQ;
_codec = new ffmpegEncoderCQ (_w, _h, _id);
_codec->setConfig (&_settings);
_codec->init (_param.qz, _fps, 0);
break;
case COMPRESS_CBR:
printf ("ffmpeg cbr mode: %ld\n", _param.bitrate);
_state = enc_CBR;
_codec = new ffmpegEncoderCBR (_w, _h, _id);
_codec->setConfig (&_settings);
_codec->init (_param.bitrate, _fps, flag1);
break;
case COMPRESS_2PASS:
case COMPRESS_2PASS_BITRATE:
ffmpegEncoderCQ * cdec;
if(_param.mode==COMPRESS_2PASS)
printf ("\n ffmpeg dual size: %lu", _param.finalsize);
else
printf ("\n ffmpeg dual bitrate: %lu", _param.avg_bitrate);
_state = enc_Pass1;
cdec = new ffmpegEncoderCQ (_w, _h, _id); // Pass1
cdec->setConfig (&_settings);
// 1+ VBR stats required
// no stats
// force internal
cdec->setLogFile (_logname);
cdec->init (2, _fps, 1);
_codec = cdec;
if (flag1)
_internal = 0;
else
_internal = 1;
break;
break;
default:
ADM_assert (0);
}
_in = instream;
printf ("\n ffmpeg Encoder , w: %lu h:%lu mode:%d", _w, _h, _state);
return 1;
}
示例5: printf
uint8_t dmx_demuxerTS::sync( uint8_t *stream,uint64_t *abs,uint64_t *r,uint64_t *pts,uint64_t *dts)
{
uint32_t val,hnt;
retry:
*r=0;
val=0;
hnt=0;
// preload
hnt=(read8i()<<16) + (read8i()<<8) +read8i();
if(_lastErr)
{
_lastErr=0;
printf("\n io error , aborting sync\n");
return 0;
}
while((hnt!=0x00001))
{
hnt<<=8;
val=read8i();
hnt+=val;
hnt&=0xffffff;
if(_lastErr)
{
_lastErr=0;
printf("\n io error , aborting sync\n");
return 0;
}
}
*stream=read8i();
// Case 1 : assume we are still in the same packet
if(_pesBufferIndex>=4)
{
*abs=_pesBufferStart;
*r=_pesBufferIndex-4;
*pts=_pesPTS;
*dts=_pesDTS;
}
else
{ // pick what is needed from oldPesStart etc...
// since the beginning in the previous packet
uint32_t left=4-_pesBufferIndex;
if(left>_oldPesLen)
{ // previous Packet which len is very shoty
// Ignore
_pesBufferIndex=0;
printf("Ignoring too short packet");
goto retry;
}
left=_oldPesLen-left;
#if 0
printf("Next packet : %I64X Len :%lu, using previous packet %I64X len:%u as pos=%lu\n",
_pesBufferStart,_pesBufferLen,_oldPesStart,_oldPesLen,_pesBufferIndex);
#endif
if(left>_oldPesLen)
{
printf("Need %lu bytes from previous packet, which len is %lu\n",left,_oldPesLen);
ADM_assert(0);
}
*abs=_oldPesStart;
*r=left;
*pts=_oldPTS;
*dts=_oldDTS;
}
return 1;
}
示例6: GUI_FileSelWrite
void GUI_FileSelWrite(const char *label,char * * name)
{
ADM_assert(fileSelDescriptor);
return fileSelDescriptor->fileWriteName(label,name);
}
示例7: ADM_assert
//________________________________________________
// Init lame encoder
// frequence : Impose frequency , 0 means reuse the incoming fq
// mode : ADM_STEREO etc...
// bitrate : Bitrate in kbps (96,192...)
// return 0 : init failed
// 1 : init succeeded
//_______________________________________________
uint8_t AUDMEncoder_Twolame::init(ADM_audioEncoderDescriptor *config)
{
int ret;
TWOLAME_MPEG_mode mmode;
uint32_t frequence;
TWOLAME_encoderParam *lameConf=(TWOLAME_encoderParam *)config->param;
ADM_assert(config->paramSize==sizeof(TWOLAME_encoderParam));
_twolameOptions = twolame_init();
if (_twolameOptions == NULL)
return 0;
if(_wavheader->channels>2)
{
printf("[TwoLame]Too many channels\n");
return 0;
}
_wavheader->byterate=(config->bitrate*1000)>>3;
_chunk = 1152*_wavheader->channels;
printf("[TwoLame]Incoming :fq : %lu, channel : %lu bitrate: %lu \n",
_wavheader->frequency,_wavheader->channels,config->bitrate);
twolame_set_in_samplerate(OPTIONS, _wavheader->frequency);
twolame_set_out_samplerate (OPTIONS, _wavheader->frequency);
twolame_set_num_channels(OPTIONS, _wavheader->channels);
if(_wavheader->channels==1) mmode=TWOLAME_MONO;
else
switch (lameConf->mode)
{
case ADM_STEREO:
mmode = TWOLAME_STEREO;
break;
case ADM_JSTEREO:
mmode = TWOLAME_JOINT_STEREO;
break;
case ADM_MONO:
mmode=TWOLAME_MONO;
break;
default:
printf("\n **** unknown mode, going stereo ***\n");
mmode = TWOLAME_STEREO;
break;
}
twolame_set_mode(OPTIONS,mmode);
twolame_set_error_protection(OPTIONS,TRUE);
//toolame_setPadding (options,TRUE);
twolame_set_bitrate (OPTIONS,config->bitrate);
twolame_set_verbosity(OPTIONS, 2);
if(twolame_init_params(OPTIONS))
{
printf("[TwoLame]Twolame init failed\n");
return 0;
}
printf("[TwoLame]Libtoolame successfully initialized\n");
return 1;
}
示例8: update
//*************************************
void update( void )
{
uint32_t audioSize;
uint32_t totalSize;
char string[200];
aviInfo info;
video_body->getVideoInfo(&info);
track1=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(GW(spinbuttonTrack1)));
track2=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(GW(spinbuttonTrack2)));
gtk_spin_button_set_value(GTK_SPIN_BUTTON(GW(spinbuttonTrack1)), track1);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(GW(spinbuttonTrack2)), track1);
// kb->Byte
audioSize=(track1+track2)*1000;
audioSize/=8;
audioSize*=videoDuration;
audioSize>>=20;
sprintf(string,"%"PRIu32,audioSize);
gtk_label_set_text(GTK_LABEL(GW(labelAudio)),string);
// Compute total size (for Avi)
uint32_t s74,s80,dvd;
// For avi/ogm
int f = gtk_combo_box_get_active(GTK_COMBO_BOX(GW(comboboxFormat)));
if(f==2)
{ // Mpeg
s74=730;
s80=790;
dvd=4300;
}
else
{//AVI or OGM
s74=650;
s80=700;
dvd=4300;
}
int j=gtk_combo_box_get_active(GTK_COMBO_BOX(GW(comboboxMedium)));
switch(j)
{
case 2: totalSize=1*s74;break;
case 3: totalSize=2*s74;break;
case 0: totalSize=1*s80;break;
case 1: totalSize=2*s80;break;
case 4: totalSize=dvd;break;
case 5: totalSize=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(GW(spinbuttonCustom)));
if(totalSize<1) totalSize=1;
break;
default:
ADM_assert(0);
}
sprintf(string,"%"PRIu32,totalSize);
gtk_label_set_text(GTK_LABEL(GW(labelTotal)),string);
// Compute muxing overhead size
uint32_t muxingOverheadSize;
int numberOfAudioTracks = 0;
int numberOfChunks;
switch (f)
{
case 0:
// AVI
/*
Muxing overhead is 8 + 32 = 40 bytes per chunk.
More or less: numberOfChunks = (x + 1) * numberOfVideoFrames,
where x - the number of audio tracks
*/
if (track1 != 0)
{
numberOfAudioTracks++;
}
if (track2 != 0)
{
numberOfAudioTracks++;
}
numberOfChunks = (numberOfAudioTracks + 1) * numberOfVideoFrames;
muxingOverheadSize = (uint32_t) ceil((numberOfChunks * 40) / 1048576.0);;
break;
case 1:
// OGM
// Muxing overhead is 1.1% to 1.2% of (videoSize + audioSize)
muxingOverheadSize = (uint32_t) ceil(totalSize - totalSize / 1.012);
break;
case 2:
// MPEG
// Muxing overhead is 1% to 2% of (videoSize + audioSize)
muxingOverheadSize = (uint32_t) ceil(totalSize - totalSize / 1.02);
break;
default:
ADM_assert(0);
}
//sprintf(string,"%lu",muxingOverheadSize);
//gtk_label_set_text(GTK_LABEL(GW(labelMux)),string);
//.........这里部分代码省略.........
示例9: ADM_assert
/**
\fn decodeSEI
\brief decode SEI to get short ref I
@param recoveryLength # of recovery frame
\return true if recovery found
*/
bool TsIndexer::decodeSEI(uint32_t nalSize, uint8_t *org,uint32_t *recoveryLength,
pictureStructure *picStruct)
{
ADM_assert(nalSize+16<ADM_NAL_BUFFER_SIZE)
uint8_t *payload=payloadBuffer;
bool r=false;
nalSize=ADM_unescapeH264(nalSize,org,payload);
uint8_t *tail=payload+nalSize;
*picStruct=pictureFrame; // frame
while( payload<tail-2)
{
uint32_t sei_type=0,sei_size=0;
while(payload[0]==0xff) {sei_type+=0xff;payload++;};
sei_type+=payload[0];payload++;
while(payload[0]==0xff) {sei_size+=0xff;payload++;};
sei_size+=payload[0];payload++;
aprintf(" [SEI] Type : 0x%x size:%d\n",sei_type,sei_size);
switch(sei_type) // Recovery point
{
case 1:
{
if(spsInfo.hasStructInfo)
{
getBits bits(sei_size,payload);
payload+=sei_size;
if(spsInfo.CpbDpbToSkip)
{
bits.get(spsInfo.CpbDpbToSkip);
}
//printf("Consumed: %d,\n",bits.getConsumedBits());
int pic=bits.get(4);
aprintf("Pic struct: %d,\n",pic);
switch(pic)
{
case 0: *picStruct=pictureFrame; break;
case 3:
case 4: *picStruct=pictureFrame;
case 1: *picStruct=pictureTopField;break;
case 2: *picStruct=pictureBottomField;break;
default:*picStruct=pictureFrame;
}
}else
payload+=sei_size;
}
break;
case 6:
{
getBits bits(sei_size,payload);
payload+=sei_size;
*recoveryLength=bits.getUEG();
aprintf("[SEI] Recovery :%"PRIu32"\n",*recoveryLength);
r=true;
break;
}
default:
payload+=sei_size;
break;
}
}
//if(payload+1<tail) ADM_warning("Bytes left in SEI %d\n",(int)(tail-payload));
return r;
}
示例10: ADM_assert
uint8_t AVDMBufferedAudioStream::goToTime(uint32_t newoffset) {
ADM_assert(!newoffset);
_instream->goToTime(0);
_headBuff=_tailBuff=0;
return 1;
}
示例11: ADM_assert
void GenericAviSave::guiSetPhasis(const char *str)
{
ADM_assert(encoding_gui);
encoding_gui->setPhasis(str);
}
示例12: printf
uint8_t OpenDMLHeader::indexRegular(uint32_t vidTrack)
{
uint32_t fcc,flags,offset,len;
uint32_t count,total=0;
uint32_t trackId,ccType;
uint32_t audioCount[9]={0,0,0,0, 0,0,0,0,0};
uint32_t forward[9];
uint32_t backward[9];
int64_t startOfData;
printf("Trying avi type 1 index\n");
if(!_regularIndex.offset)
{
printf("No regular index\n");
return 0;
}
fseeko(_fd,_regularIndex.offset,SEEK_SET);
// first pass : count how much
count=_regularIndex.size >> 4;
while(count)
{
fcc=len=0;
fcc=read32();
flags=read32();
offset=read32();
len=read32();
if(fcc==MKFCC('r','e','c',' '))
{
_recHack=1;
count--;
continue;
}
trackId=((fcc>>8) & 0xFF) -'0';;
if(trackId>9) trackId=0;
ccType=fcc >>16;
switch(ccType)
{
case MKFCC('d','c',0,0): // video tracks
case MKFCC('d','b',0,0):
total++;
break;
case MKFCC('w','b',0,0):
audioCount[trackId]++;
break;
default:
printf("Unknown fcc:");fourCC::print(fcc);printf("\n");
}
count--;
}
printf("Found %u videos chunk\n",total);
for(int i=0;i<9;i++)
printf("Audio track :%d, %u audio chunk\n",i,audioCount[i]);
fseeko(_fd,_regularIndex.offset,SEEK_SET);
_idx=new odmlIndex[total];
memset(_idx,0,sizeof(odmlIndex)*total);
count=0;
int run=0;
// Pack tracks
for(int i=0;i<9;i++)
{
if(audioCount[i])
{
forward[run]=i;
backward[i]=run;
run++;
}
}
if(!run)
{
_nbAudioTracks=0;
printf("No audio chunk found in index..\n");
}else
ADM_assert(run==_nbAudioTracks);
// Create index
uint32_t nb;
for(int i=0;i<_nbAudioTracks;i++)
{
nb=audioCount[forward[i]];
_audioTracks[i].index=new odmlIndex[nb+1];
memset(_audioTracks[i].index,0,(sizeof(odmlIndex)*(nb+1)));
_audioTracks[i].nbChunks=0;
}
uint32_t audiocount=0,videocount=0;
uint32_t audiototal=0;
uint32_t audioSize=0;
odmlIndex *track;
int Achunk;
count=_regularIndex.size >> 4;
while(count)
//.........这里部分代码省略.........
示例13: printf
/*
Uncompress frame, set flags if needed
*/
uint8_t decoderPng::uncompress(ADMCompressedImage * in, ADMImage * out)
{
int bpp;
int colortype;
// Check if it is png, and fill it
if (!!png_sig_cmp (in->data, 0, 8))
{
printf ("[PNG] wrong sig\n");
return 0;
}
//
//
gain2:
Init ();
io.data = in->data;
io.size = in->dataLength;
io.cur = 0;
png_read_png (PNG_PTR, INFO_PTR, PNG_TRANSFORM_IDENTITY, NULL);
// Check if it is 24 or 32 bits RGB
bpp = png_get_bit_depth (PNG_PTR, INFO_PTR);
// printf("Bpp:%u\n",bpp);
// if needed we change colorspace
colortype = png_get_color_type (PNG_PTR, INFO_PTR);
//
if (colorspace == ADM_COLOR_RGB24 && colortype == PNG_COLOR_TYPE_RGB_ALPHA) // RGB32
{
// Switch to 32 bits
colorspace = ADM_COLOR_RGB32A;
recalc ();
goto gain2;
}
else if (colorspace == ADM_COLOR_RGB32A && colortype == PNG_COLOR_TYPE_RGB)
{
// Switch to 24 bits
colorspace = ADM_COLOR_RGB24;
recalc ();
goto gain2;
}
ADM_assert (out->_isRef);
out->_planes[0] = decoded;
out->_planes[1] = NULL;
out->_planes[2] = NULL;
if (colorspace == ADM_COLOR_RGB32A)
out->_planeStride[0] = _w * 4;
else
out->_planeStride[0] = _w * 3;
out->_planeStride[1] = 0;
out->_planeStride[2] = 0;
out->_colorspace = colorspace;
Cleanup ();
return 1;
}
示例14: automation
/**
* \fn automation
* @return
*/
int automation(void )
{
static char **argv;
static int argc;
static int cur;
static int myargc;
static int index;
static three_arg_type three;
static two_arg_type two;
argc=global_argc;
argv = global_argv;
//the port change has to be done before the video load
for( int runParaSearch=2 ; runParaSearch < argc ; ){
if(*argv[runParaSearch] == '-' && *(argv[runParaSearch]+1) == '-')
{
index = searchReactionTable(argv[runParaSearch]+2);
if(index != -1)
{
if(!strcmp(avs_port_change, argv[runParaSearch] +2 ))
{
A_set_avisynth_port(argv[runParaSearch+1]);
break;
}
runParaSearch += reaction_table[index].have_arg +1;
}
else
runParaSearch += 1;
}
else
runParaSearch += 1;
}
printf("\n *** Automated : %" PRIu32" entries*************\n",(uint32_t)NB_AUTO);
// we need to process
argc-=1;
cur=1;
myargc=argc;
while(myargc>0)
{
if(( *argv[cur]!='-') || (*(argv[cur]+1)!='-'))
{
if(cur==1)
{
loadCB(argv[cur]);
}
else
printf("\n Found garbage %s\n",argv[cur]);
cur+=1;myargc-=1;
continue;
}
// else it begins with --
if(!strcmp(argv[cur]+2,"portable")) // portable mode switch has been already taken care of, ignore
{
cur++;
myargc--;
continue;
}
index= searchReactionTable(argv[cur]+2);
if(index==-1) // not found
{
printf("\n Unknown command :%s\n",argv[cur] );
cur+=1;myargc-=1;
}
else
{
printf("%s-->%d\n", reaction_table[index].string,reaction_table[index].have_arg);
one_arg_type call=reaction_table[index].callback;
switch( reaction_table[index].have_arg)
{
case 3:
three=(three_arg_type)call;
three( argv[cur+1],argv[cur+2],argv[cur+3]);
break;
case 2:
two=(two_arg_type)call;
two( argv[cur+1],argv[cur+2]);
break;
case 1:
call(argv[cur+1]);
break;
case 0:
call(NULL);
break;
default:
ADM_assert(0);
break;
}
cur+=1+reaction_table[index].have_arg;
myargc-=1+reaction_table[index].have_arg;
}
} // end while
GUI_Verbose();
printf("\n ********** Automation ended***********\n");
//.........这里部分代码省略.........
示例15: GUI_FileSelRead
/**
* \fn GUI_FileSelRead
* \brief Select a file for reading, name is allocated with a copy of the name, null if fail.
*/
void GUI_FileSelRead(const char *label,char * * name)
{
ADM_assert(fileSelDescriptor);
return fileSelDescriptor->fileReadName(label,name);
}