On Wed, Sep 30, 2015 at 6:03 PM, Paul B Mahol <one...@gmail.com> wrote: > Dana 30. 9. 2015. 17:19 osoba "Hendrik Leppkes" <h.lepp...@gmail.com> > napisala je: >> >> On Wed, Sep 30, 2015 at 4:35 PM, Paul B Mahol <one...@gmail.com> wrote: >> > On 9/30/15, Hendrik Leppkes <h.lepp...@gmail.com> wrote: >> >> On Wed, Sep 30, 2015 at 2:51 PM, Michael Niedermayer <michae...@gmx.at> >> >> wrote: >> >>> On Wed, Sep 30, 2015 at 02:39:21PM +0200, Hendrik Leppkes wrote: >> >>>> On Wed, Sep 30, 2015 at 2:33 PM, Michael Niedermayer < > michae...@gmx.at> >> >>>> wrote: >> >>>> > On Wed, Sep 30, 2015 at 02:29:43PM +0200, Hendrik Leppkes wrote: >> >>>> >> On Wed, Sep 30, 2015 at 2:10 PM, Michael Niedermayer >> >>>> >> <michae...@gmx.at> wrote: >> >>>> >> > On Wed, Sep 30, 2015 at 12:42:59PM +0200, Hendrik Leppkes wrote: >> >>>> >> >> The chroma format can be still unset in postinit when a badly > cut >> >>>> >> >> stream >> >>>> >> >> starts with a slice instead of a sequence header. This is a > common >> >>>> >> >> occurance when feeding avcodec from a Live TV stream. >> >>>> >> >> --- >> >>>> >> >> libavcodec/mpeg12dec.c | 1 - >> >>>> >> >> 1 file changed, 1 deletion(-) >> >>>> >> >> >> >>>> >> >> diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c >> >>>> >> >> index 5d916d1..b3c2c45 100644 >> >>>> >> >> --- a/libavcodec/mpeg12dec.c >> >>>> >> >> +++ b/libavcodec/mpeg12dec.c >> >>>> >> >> @@ -1389,7 +1389,6 @@ static int >> >>>> >> >> mpeg_decode_postinit(AVCodecContext *avctx) >> >>>> >> >> case 1: avctx->chroma_sample_location = >> >>>> >> >> AVCHROMA_LOC_LEFT; break; >> >>>> >> >> case 2: >> >>>> >> >> case 3: avctx->chroma_sample_location = >> >>>> >> >> AVCHROMA_LOC_TOPLEFT; break; >> >>>> >> >> - default: av_assert0(0); >> >>>> >> >> } >> >>>> >> >> } // MPEG-2 >> >>>> >> > >> >>>> >> > This assert double checks that the context init which uses >> >>>> >> > width/height/chroma format is done after the chroma format and > w/h >> >>>> >> > has >> >>>> >> > been read from the headers >> >>>> >> > if this is reached without the headers being read then the code > is >> >>>> >> > buggy and removing the assert will not fix that bug >> >>>> >> > >> >>>> >> > also if there is no sequence header how is width/height set ? >> >>>> >> > theres a check for width/height before mpeg_decode_postinit is >> >>>> >> > called >> >>>> >> > >> >>>> >> >> >>>> >> The dimensions are set by the caller in the avctx before opening > the >> >>>> >> codec, which apparently inits the mpeg context as well. >> >>>> >> >> >>>> >> Feel free to fix it differently, error out or something, but I can >> >>>> >> trip an assert with input data, which should never happen. >> >>>> > >> >>>> > how can this be reproduced ? >> >>>> > >> >>>> >> >>>> I can only trigger it with API usage, not through the CLI tools, so I >> >>>> cannot produce a test case. >> >>> >> >>> is this with a unmodified up to date ffmpeg ? >> >>> i fixed this assert failing a while ago >> >>> (b54e03c9dc2a05324c08b503bfe7535c49c0f281) >> >>> >> >>> >> >> >> >> Its up to date, but slightly modified - but nothing pertinent to the >> >> mpeg2 decoder as far as I know. >> >> I'll just add this to the list of modifications then. I can clearly >> >> trigger this assert in a release build (which is hilarious on its own, >> >> asserts are a debugging tool), which crashes the application, so thats >> >> no good. >> > >> > WTF, can you just give sample/link something? >> >> Like I said earlier in the thread, it happens with API usage in a Live >> TV scenario. I cannot produce a sample of that. > > Not even backtrace? >
postinit is only called from one place, the trace isn't very interesting. mpeg_decode_postinit decode_chunks mpeg_decode_frame avcodec_decode_video2 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel