From df8910636a1fe171e48e684cdbaba91ffe97d0aa Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Thu, 23 May 2013 16:07:23 +0100 Subject: somewhat cleanup --- avcodec_audio_example.c | 114 ------------------------------------------------ 1 file changed, 114 deletions(-) delete mode 100644 avcodec_audio_example.c (limited to 'avcodec_audio_example.c') diff --git a/avcodec_audio_example.c b/avcodec_audio_example.c deleted file mode 100644 index 236b976..0000000 --- a/avcodec_audio_example.c +++ /dev/null @@ -1,114 +0,0 @@ -int main(int argc, char **argv) -{ - - const char* input_filename=argv[1]; - - //avcodec_register_all(); - av_register_all(); - //av_ini - - AVFormatContext* container=avformat_alloc_context(); - if(avformat_open_input(&container,input_filename,NULL,NULL)<0){ - die("Could not open file"); - } - - if(av_find_stream_info(container)<0){ - die("Could not find file info"); - } - av_dump_format(container,0,input_filename,false); - - int stream_id=-1; - int i; - for(i=0;inb_streams;i++){ - if(container->streams[i]->codec->codec_type==AVMEDIA_TYPE_AUDIO){ - stream_id=i; - break; - } - } - if(stream_id==-1){ - die("Could not find Audio Stream"); - } - - AVDictionary *metadata=container->metadata; - - AVCodecContext *ctx=container->streams[stream_id]->codec; - AVCodec *codec=avcodec_find_decoder(ctx->codec_id); - - if(codec==NULL){ - die("cannot find codec!"); - } - - if(avcodec_open(ctx,codec)<0){ - die("Codec cannot be found"); - } - - //ctx=avcodec_alloc_context3(codec); - - //initialize AO lib - ao_initialize(); - - int driver=ao_default_driver_id(); - - ao_sample_format sformat; - AVSampleFormat sfmt=ctx->sample_fmt; - if(sfmt==AV_SAMPLE_FMT_U8){ - printf("U8\n"); - - sformat.bits=8; - }else if(sfmt==AV_SAMPLE_FMT_S16){ - printf("S16\n"); - sformat.bits=16; - }else if(sfmt==AV_SAMPLE_FMT_S32){ - printf("S32\n"); - sformat.bits=32; - } - - sformat.channels=ctx->channels; - sformat.rate=ctx->sample_rate; - sformat.byte_format=AO_FMT_NATIVE; - sformat.matrix=0; - - ao_device *adevice=ao_open_live(driver,&sformat,NULL); - //end of init AO LIB - - AVPacket packet; - av_init_packet(&packet); - - AVFrame *frame=avcodec_alloc_frame(); - - - - int buffer_size=AVCODEC_MAX_AUDIO_FRAME_SIZE+ FF_INPUT_BUFFER_PADDING_SIZE;; - uint8_t buffer[buffer_size]; - packet.data=buffer; - packet.size =buffer_size; - - - - int len; - int frameFinished=0; - while(av_read_frame(container,&packet)>=0) - { - - if(packet.stream_index==stream_id){ - //printf("Audio Frame read \n"); - int len=avcodec_decode_audio4(ctx,frame,&frameFinished,&packet); - //frame-> - if(frameFinished){ - //printf("Finished reading Frame len : %d , nb_samples:%d buffer_size:%d line size: %d \n",len,frame->nb_samples,buffer_size,frame->linesize[0]); - ao_play(adevice, (char*)frame->extended_data[0],frame->linesize[0] ); - }else{ - //printf("Not Finished\n"); - } - - }else { - printf("Someother packet possibly Video\n"); - } - - - } - - av_close_input_file(container); - ao_shutdown(); - return 0; -} \ No newline at end of file -- cgit v1.2.3