On Sun, Apr 08, 2018 at 05:27:56PM +0200, Bodecs Bela wrote: > > > 2018.04.06. 0:39 keltezéssel, Michael Niedermayer írta: > >On Fri, Mar 30, 2018 at 02:47:25PM +0200, Bodecs Bela wrote: > >>Hi All, > >> > >>regularly, on different forums and mailing lists a requirement popups for a > >>feature to automatically failover switching between main input and a > >>secondary input in case of main input unavailability. > >> > >>The base motivation: let's say you have a unreliable live stream source and > >>you > >>want to transcode its video and audio streams in realtime but you > >>want to survive the ocasions when the source is unavailable. So use a > >>secondary live source but the transition should occur seamlessly without > >>breaking/re-starting the transcoding processs. > >> > >>Some days ago there was a discussion on devel-irc about this topic and we > >>concluded that this feature is not feasible inside ffmpeg without "hacking", > >>but a separate client app could do this. > >> > >>So I created this example app to handle two separate input sources and > >>switching realtime between them. I am not sure wheter it should be inside > >>the tools subdir. > >> > >>The detailed description is available in the header section of the source > >>file. > >> > >>I will appretiate your suggestions about it. > >> > >>Thank you in advance. > >> > >>best, > >> > >>Bela Bodecs > >> > >> > >> configure | 2 > >> doc/examples/Makefile | 1 > >> doc/examples/Makefile.example | 1 > >> doc/examples/alternative_input.c | 1233 > >> +++++++++++++++++++++++++++++++++++++++ > >You may want to add yourself to MAINTAINERS, so it is not unmaintained > ok > >I think this is complex enough that it needs a maintainer > > > > May I take your response as you agree to inlcude this as an example app?
iam fine with either > > > > >[...] > > > >>+static int open_single_input(int input_index) > >>+{ > >>+ int ret, i; > >>+ AVInputFormat *input_format = NULL; > >>+ AVDictionary * input_options = NULL; > >>+ AVFormatContext * input_fmt_ctx = NULL; > >>+ > >>+ if (app_ctx.input_format_names[input_index]) { > >>+ if (!(input_format = > >>av_find_input_format(app_ctx.input_format_names[input_index]))) { > >>+ timed_log(AV_LOG_ERROR, "Input #%d Unknown input format: > >>'%s'\n", input_index, > >>+ app_ctx.input_format_names[input_index]); > >>+ return EINVAL; > >>+ } > >>+ } > >>+ > >>+ av_dict_set(&input_options, "rw_timeout", "2000000", 0); > >>+ av_dict_set(&input_options, "timeout", "2000", 0); > >>+ if ((app_ctx.input_fmt_ctx[input_index] = avformat_alloc_context()) < > >>0) > >>+ return AVERROR(ENOMEM); > >i guess this was intended to be "!= NULL" > yes, I will fix it > > > >also you are mixing EINVAL with AVERROR(ENOMEM) these arent compatible. > >Either all should be AVERROR or none > ok, should I will modify EIVAL all of them to AVERROR(EINVAL)? yes thx [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB "I am not trying to be anyone's saviour, I'm trying to think about the future and not be sad" - Elon Musk
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel