[FFmpeg-trac] #6529(avformat:new): interrupt_callback not working
FFmpeg
trac at avcodec.org
Sun Jul 16 07:41:58 EEST 2017
#6529: interrupt_callback not working
-------------------------------------+-------------------------------------
Reporter: sergman | Type: defect
Status: new | Priority: normal
Component: avformat | Version:
Keywords: interrupt | unspecified
callback | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
The issue is related to the old problem described here:
https://trac.ffmpeg.org/ticket/2694#comment:14
I installed the latest version and the callback is not called if I pass
non-existing/broken link to avio_open2 or avformat_open_input
Even av_dict_set(&options, "timeout", "5", 0); does not have any effect.
The call just hangs.
Note that if the link exists the callback is working fine.
Here is the small code (actually copied from the mentioned ticked above).
Compiled in Visual Studio 2015. Includes/libraries/DLLs are all up to date
from https://ffmpeg.zeranoe.com/builds/
{{{
#include <Windows.h>
#include <libavcodec\avcodec.h>
#include <libavformat\avformat.h>
#include <stdio.h>
static int interrupt_cb(void *ctx)
{
printf("Interrupt callback called\n");
return 0;
}
int main(int argc, char *argv[]) {
AVFormatContext *pFormatCtx;
if (argc < 2) {
printf("Please provide a movie file\n");
return -1;
}
// Register all formats and codecs
av_register_all();
avcodec_register_all();
avformat_network_init();
// Open video file
pFormatCtx = avformat_alloc_context();
pFormatCtx->interrupt_callback.callback = interrupt_cb;
pFormatCtx->interrupt_callback.opaque = pFormatCtx;
AVDictionary* options = NULL;
AVIOContext* av = NULL;
AVIOInterruptCB cb = {
.callback = interrupt_cb,
.opaque = NULL,
};
//av_dict_set(&options, "timeout", "5", 0);
// hangs
int ret = avio_open2(&av, argv[1], AVIO_FLAG_READ, &cb, &options);
// hangs
if (avformat_open_input(&pFormatCtx, argv[1], NULL, &options) !=
0)
return -1; // Couldn't open file
avformat_close_input(pFormatCtx);
printf("Exiting\n");
return 0;
}
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/6529>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list