[Libav-user] avio_alloc_context and write_packet callback
Denis Gottardello
info at denisgottardello.it
Wed Aug 30 18:19:36 EEST 2023
Hi, I'm using mux.c example to write a file called a.mp4.
In order to do this I need to use the write_packet callback.
So, in the mux.c example file, after the line 566 I have added these lines of codes:
*566*
/* allocate the output media context */
avformat_alloc_output_context2(&oc, NULL, NULL, filename);
if (!oc) {
printf("Could not deduce output format from file extension: using MPEG.\n");
avformat_alloc_output_context2(&oc, NULL, "mpeg", filename);
}
if (!oc)
return 1;
*// my code*
pBuffer= (uint8_t*)av_malloc(BUFFERSIZE);
pAVIOContext= avio_alloc_context(pBuffer, BUFFERSIZE, 1, this, nullptr, *write_packet*, nullptr);
*// my code*
*oc->pb= pAVIOContext;*
After that I have removed the lines
*599*
/* open the output file, if needed */
if (!(fmt->flags & AVFMT_NOFILE)) {
ret = avio_open(&oc->pb, filename, AVIO_FLAG_WRITE);
if (ret < 0) {
fprintf(stderr, "Could not open '%s': %s\n", filename,
av_err2str(ret));
return 1;
}
}
Now my callback is called but the file produced is different from the one produced by avio_open() (without using the callback).
Is my approach correct or have I to use another way in order to use write_packet callback?
--
+39.347.4070897
http://www.labcsp.com[1]
http://www.denisgottardello.it[2]
GMT+1
Skype: mrdebug
--------
[1] http://www.labcsp.com
[2] http://www.denisgottardello.it
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20230830/857082bb/attachment.htm>
More information about the Libav-user
mailing list