[libav-devel] [PATCH 1/6] avconv: set discard on input streams automatically.
Anton Khirnov
anton at khirnov.net
Sun Feb 26 06:31:51 CET 2012
On Sat, 25 Feb 2012 20:39:54 -0500, Justin Ruggles <justin.ruggles at gmail.com> wrote:
> On 02/24/2012 10:11 AM, Anton Khirnov wrote:
>
> > ---
> > avconv.c | 16 ++++------------
> > 1 files changed, 4 insertions(+), 12 deletions(-)
> >
> > diff --git a/avconv.c b/avconv.c
> > index d7ca8bd..e272182 100644
> > --- a/avconv.c
> > +++ b/avconv.c
> > @@ -3147,6 +3147,7 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
> > ist->st = st;
> > ist->file_index = nb_input_files;
> > ist->discard = 1;
> > + st->discard = AVDISCARD_ALL;
> > ist->opts = filter_codec_opts(codec_opts, ist->st->codec->codec_id, ic, st);
> >
> > ist->ts_scale = 1.0;
> > @@ -3155,10 +3156,6 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
> > ist->dec = choose_decoder(o, ic, st);
> >
> > switch (dec->codec_type) {
> > - case AVMEDIA_TYPE_AUDIO:
> > - if (o->audio_disable)
> > - st->discard = AVDISCARD_ALL;
> > - break;
> > case AVMEDIA_TYPE_VIDEO:
> > if (dec->lowres) {
> > dec->flags |= CODEC_FLAG_EMU_EDGE;
> > @@ -3166,17 +3163,10 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
> > dec->width >>= dec->lowres;
> > }
> >
> > - if (o->video_disable)
> > - st->discard = AVDISCARD_ALL;
> > - else if (video_discard)
> > - st->discard = video_discard;
> > break;
> > + case AVMEDIA_TYPE_AUDIO:
> > case AVMEDIA_TYPE_DATA:
> > - break;
> > case AVMEDIA_TYPE_SUBTITLE:
> > - if (o->subtitle_disable)
> > - st->discard = AVDISCARD_ALL;
> > - break;
> > case AVMEDIA_TYPE_ATTACHMENT:
> > case AVMEDIA_TYPE_UNKNOWN:
> > break;
> > @@ -3850,6 +3840,7 @@ static void opt_output_file(void *optctx, const char *filename)
> > ost->source_index = index;\
> > ost->sync_ist = &input_streams[index];\
> > input_streams[index].discard = 0;\
> > + input_streams[index].st->discard = AVDISCARD_NONE;\
> > }
> >
> > /* video: highest resolution */
> > @@ -3913,6 +3904,7 @@ static void opt_output_file(void *optctx, const char *filename)
> > ost->sync_ist = &input_streams[input_files[map->sync_file_index].ist_index +
> > map->sync_stream_index];
> > ist->discard = 0;
> > + ist->st->discard = AVDISCARD_NONE;
> > }
> > }
> >
>
>
> Does this change current avconv behavior or just simplify things?
>
It makes lavf not return packets for streams we're not interested in.
Shouldn't result in any changes in output, but I found it useful for
debugging.
--
Anton Khirnov
More information about the libav-devel
mailing list