Hi Ronald. Probably I found the reason why my filter (and vp9_superframe_bsf too) is not working.
This code in "FFMPEG.C" just overwrites "ret" value, not handling EAGAIN at all (FFMPEG ver 3.1): ret = av_bsf_receive_packet(ost->bsf_ctx[idx - 1], pkt); > > /* HACK! - aac_adtstoasc updates extradata after filtering the > first frame when > * the api states this shouldn't happen after init(). > Propagate it here to the > * muxer and to the next filters in the chain to workaround > this. > * TODO/FIXME - Make aac_adtstoasc use new packet side data > instead of changing > * par_out->extradata and adapt muxers accordingly to get rid > of this. */ > > if (!(ost->bsf_extradata_updated[idx - 1] & 1)) { > ret = avcodec_parameters_copy(ost->st->codecpar, > ost->bsf_ctx[idx - 1]->par_out); > if (ret < 0) > goto finish; > ost->bsf_extradata_updated[idx - 1] |= 1; > } > > if (ret == AVERROR(EAGAIN)) { > ret = 0; > idx--; > continue; > > } else if (ret < 0) > But in the latest version ( http://git.videolan.org/?p=ffmpeg.git;a=blob_plain;f=ffmpeg.c;hb=dfc6e30cd4b9d1817b78579c11fc6881e40b9733 ) I see the bug is already corrected, that's why we couldn't understand each other. On Mon, Feb 6, 2017 at 8:41 PM, Ronald S. Bultje <rsbul...@gmail.com> wrote: > Hi Aleksey, > > On Mon, Feb 6, 2017 at 12:14 PM, Aleksey M <hex...@gmail.com> wrote: > > > Ronald, > > > > I looked the vp9_superframe_bsf.c code, but it doesn't help: The only > place > > which returns EAGAIN does output packet unref and frees input packet. > > > > I tried memset zero on output packet, av_packet_unref, setting out->size > = > > 0 and out->side_data_elems = 0, tried to return EAGAIN or 0, nothing > helps. > > In any case, "timestamps are not set", "stream is malformed", like the > > output packet is still used. > > > As frustrating as this may sound, vp9_superframe_bsf does what you're > asking for, so your best bet is to emulate what it's doing and figure out > why your code does not invoke the same code path. > > Ronald > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel