On Thu, Jul 22, 2010 at 7:20 PM, Tomas Härdin <[email protected]>wrote:

> On Thu, 2010-07-22 at 18:26 +0900, Nhat Huy wrote:
> > My input file points to a ES bitstream, that's why I can not pass a char*
> > file name to av_open_input_file.
> >
> > Any helps will appreciated.
> > Thanks.
> >
> >
> >
> > On Thu, Jul 22, 2010 at 6:18 PM, Nhat Huy <[email protected]> wrote:
> >
> > > Hi all,
> > >
> > > I have a problem with the function av_open_input_file.
> > >
> > > As normal , we can use it like this:
> > >
> > > if(av_open_input_file(&pFormatCtx, argv[1], NULL, 0, NULL)!=0)
> > >   return -1; // Couldn't open file
> > >
> > > My problem is that I can not pass argv[1] into this function, now I
> have to
> > > pass a file pointer, which already is opened by fopen in another
> function.
> > >
> > > Can anyone help me with this problem ? I stuck with it.
> > >
> > > Best regards,
> > > Huy.
> > >
> > >
>
> Check out how the "pipe" protocol works. Use fileno() to get the file
> descriptor corresponding to the given FILE*. IIRC you do something like
> "pipe:<fd>", like "pipe:0" to read from stdin.
>
> You could also possibly hack it using named pipes, but I suspect the
> above method is the easiest.
>
> /Tomas
>
> _______________________________________________
> libav-user mailing list
> [email protected]
> https://lists.mplayerhq.hu/mailman/listinfo/libav-user
>
>

Thanks Tomas.

According to your reply.
Is the following code right ?

FILE* input;
input = fopen(filename,"rb");
fd = fileno(input);
if(av_open_input_file(&pFormatCtx, "pipe:fd", NULL, 0, NULL)!=0)
     return -1; // Couldn't open file

Thank you very much.
Huy
_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user

Reply via email to