On Thu, Oct 29, 2015 at 08:34:42AM +0100, Clément Bœsch wrote: > On Wed, Oct 28, 2015 at 06:34:06PM +0100, Hendrik Leppkes wrote: > > On Sat, Oct 17, 2015 at 10:34 PM, Matthieu Bouron > > <matthieu.bou...@gmail.com> wrote: > > > From: Matthieu Bouron <matthieu.bou...@stupeflix.com> > > > > > > Avoid decoding twice images such as jpeg and png, once in the > > > avformat_find_stream_info and once when the actual decode is made. > > > > > > The decoder must honor the skip_frame option in order to skip > > > decoding. For now the AVDISCARD_ALL flag is only set for the mjpeg and > > > png decoders. > > > --- > > > libavformat/utils.c | 15 +++++++++++++++ > > > 1 file changed, 15 insertions(+) > > > > > > diff --git a/libavformat/utils.c b/libavformat/utils.c > > > index 689473e..67dfffc 100644 > > > --- a/libavformat/utils.c > > > +++ b/libavformat/utils.c > > > @@ -2676,11 +2676,16 @@ static int has_codec_parameters(AVStream *st, > > > const char **errmsg_ptr) > > > static int try_decode_frame(AVFormatContext *s, AVStream *st, AVPacket > > > *avpkt, > > > AVDictionary **options) > > > { > > > + int i; > > > const AVCodec *codec; > > > int got_picture = 1, ret = 0; > > > AVFrame *frame = av_frame_alloc(); > > > AVSubtitle subtitle; > > > AVPacket pkt = *avpkt; > > > + int skip_frame; > > > + static const enum AVCodecID no_decode_codecs[] = { > > > + AV_CODEC_ID_MJPEG, AV_CODEC_ID_PNG, > > > + }; > > > > Hardcoded lists of codecs in random places are never a good thing to have. > > If this is a feature we agree to have, its codecs should just get an > > internal capability that tells this code if it can parse all params > > without decoding. > > > > This list is supposed to be temporary (yes I know) until all other > decoders that currently support AVDISCARD_ALL set the information field > required for probing. > > Not full frames decoding at probing but just filling the information will > also be useful for these codecs (I think there are about 20?). > Unfortunately, the changes are sensible so it's probably better to do it > progressively one by one, updating this white list progressively. A > blacklist system was also suggested earlier in the thread. > > Maybe a FIXME/XXX should be added above? (And maybe even with a compiler > warning to not forget this?) >
And forgot to say: if you choose to add a capability, it will have to be dropped when the other decoders are updated to match the behaviour. -- Clément B.
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel