Hi ,
       I am trying to develop a application which reads from a buffer,
transforms into different format and writes into a different buffer. I am
trying to use the custom IO context. my code for writing into stream is as
follows:

    filename = "output_file.flv";
    fmt = av_guess_format("flv", filename, NULL);

    // allocate the output media context
    oc = avformat_alloc_context();
    unsigned char *buffer = (unsigned char *)av_malloc(bsize);
    FILE *fr = fopen(filename,"w");
    pb2 = avio_alloc_context(buffer, bsize, 1, fr, NULL, write_packet2,
NULL);

    oc->pb = pb2;
    pb2->write_flag =1;
    oc->flags = AVFMT_FLAG_CUSTOM_IO;

    oc->oformat = fmt;
    if((avformat_open_input(&oc,0, 0, 0)) != 0)
        {
        printf("format could not open input");
        exit(0);
        }
.
.
.

my write packet function:
int write_packet2(void *opaque, uint8_t *buf, int buf_size)
{
  FILE* f= (FILE *)opaque;
  return fwrite(buf,1, buf_size,f);
}

This gets stuck in avformat_open_input function and never comes out of it.
So please tell what is the problem. Or if there is some sample code for
similar work.

Regards,
Nitin
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to