Ronald S. Bultje <rsbultje <at> gmail.com> writes: > You set your own I/O through a AVIOContext, which you set in > AVFormatContext->pb.
Seems like I should use "av_open_input_stream", as the "avformat_open_input" is not supported on most distributions. So in short my code would look something like: | AVIOContext *pb; | pb = avio_alloc_context(...); | pb->is_streamed = 1; | | AVProbeData probe_data; | probe_data.buf_size = xxxxx; | probe_data.buf = ....; | AVInputFormat *fmt_in = av_probe_input_format(&probe_data, 1); | | av_open_input_stream(NULL, pb, NULL, fmt_in, NULL); Means, that I have to fetch a few bytes first to pass them to av_probe_input_format. Somewhere I've read that it may even be a good idea to try this a few times with increasing buffer sizes and data. Or can I avoid av_probe_input_format? Is there a common "input format" for all HTTP streams? What is an input format. Does this have something to do with selection of the right decoder? I didn't find any good documentation for avio_alloc_context. Do I have to set a buffer and buffer_size there, if I want to pass a "read_packet" function pointer. Will libav provide a buffer for me, if I set both to NULL or is it my job to pre-create a buffer and libav then provides my own buffer to my read_packet function? Can I just pass NULL for write_packet? What about seek, which doesn't apply to streams? What is "opaque" meant for. May I pass a pointer to my "streaming class" here? Seems like it gets passed to my callback functions. Yours Manuel _______________________________________________ libav-api mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-api
