I meant:

ok, I also needed to replace avcodec_register_all() by av_register_all()
thank you

On Tue, Apr 1, 2008 at 9:13 PM, gradouble <[EMAIL PROTECTED]> wrote:
> jujulj a écrit :
>
>
> > hi,
>  >
>  > I need to get the decoded samples from audio files of various formats
>  > using libavcodec.
>  > I've modified apiexample.c in order to detect automatically the
>  > appropriate codec, as shown in
>  > http://www.dranger.com/ffmpeg/tutorial03.c
>  >
>  > I replaced the following:
>  >
>  > <code>
>  >
>  >    // find the mpeg audio decoder
>  >     codec = avcodec_find_decoder(CODEC_ID_MP2);
>  >     if (!codec) {
>  >         fprintf(stderr, "codec not found\n");
>  >         exit(1);
>  >     }
>  >
>  >     c= avcodec_alloc_context();
>  >
>  > </code>
>  >
>  >
>  > by this:
>  >
>  > <code>
>  >
>  >     AVFormatContext *pFormatCtx;
>  >     int i, audioStream;
>  >
>  >     // Open audio file
>  >     if(av_open_input_file(&pFormatCtx, filename, NULL, 0, NULL)!=0) {
>  >         printf("Couldn't open file\n");
>  >         return -1;
>  >     }
>  >
>  >     // Retrieve stream information
>  >     if(av_find_stream_info(pFormatCtx)<0)
>  >         return -1; // Couldn't find stream information
>  >
>  >     // Dump information about file onto standard error
>  >     dump_format(pFormatCtx, 0, filename, 0);
>  >
>  >     // Find the first audio stream
>  >     audioStream=-1;
>  >     for(i=0; i<pFormatCtx->nb_streams; i++) {
>  >         if(pFormatCtx->streams[i]->codec->codec_type==CODEC_TYPE_AUDIO
>  > && audioStream < 0) {
>  >             audioStream=i;
>  >         }
>  >     }
>  >
>  >     if(audioStream==-1)
>  >         return -1;
>  >
>  >     c=pFormatCtx->streams[audioStream]->codec;
>  >
>  > </code>
>  >
>  > in apiexample.c (I also included avformat.h of course).
>  >
>  > My problem is that it does not even open the file, i.e.
>  >
>  > <code>
>  >
>  > av_open_input_file(&pFormatCtx, filename, NULL, 0, NULL) do not return 0
>  >
>  > </code>
>  >
>  > do not return 0.
>  >
>  > The original code (i.e. hardcoding codec =
>  > avcodec_find_decoder(CODEC_ID_MP2);) works...
>  >
>  > Is this the right way to do what I want to achieve?
>  >
>  > apiexample_modified.c is attached.
>  >
>  > thank you
>  >
>  > Jul
>  >
>  > ------------------------------------------------------------------------
>  >
>  > _______________________________________________
>  > libav-user mailing list
>  > [email protected]
>  > https://lists.mplayerhq.hu/mailman/listinfo/libav-user
>  in tutorial, he used av_register_all. Couldn't see it in your main()
>  _______________________________________________
>  libav-user mailing list
>  [email protected]
>  https://lists.mplayerhq.hu/mailman/listinfo/libav-user
>
_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user

Reply via email to