[FFmpeg-devel] [PATCH 1/2] ffmpeg: skip disabled streams

Gyan ffmpeg at gyani.pro
Wed Jan 2 07:18:37 EET 2019


Ping.

On 31-12-2018 10:33 AM, Gyan wrote:
>
> On 31-12-2018 06:50 AM, Michael Niedermayer wrote:
>> On Sat, Dec 29, 2018 at 04:39:18PM +0530, Gyan wrote:
>>> At Michael's suggestion, earlier patch broken into two. This one stops
>>> discarded streams from being processed. A few more checks added.
>>>
>>> Gyan
>>>
>> [...]
>>> diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
>>> index d4851a2cd8..4ee7dbbe01 100644
>>> --- a/fftools/ffmpeg_opt.c
>>> +++ b/fftools/ffmpeg_opt.c
>>> @@ -268,7 +268,7 @@ static int opt_map(void *optctx, const char 
>>> *opt, const char *arg)
>>>   {
>>>       OptionsContext *o = optctx;
>>>       StreamMap *m = NULL;
>>> -    int i, negative = 0, file_idx;
>>> +    int i, negative = 0, file_idx, disabled;
>>>       int sync_file_idx = -1, sync_stream_idx = 0;
>>>       char *p, *sync;
>>>       char *map;
>>> @@ -303,6 +303,11 @@ static int opt_map(void *optctx, const char 
>>> *opt, const char *arg)
>>>                                          "match any streams.\n", arg);
>>>               exit_program(1);
>>>           }
>>> +        if (input_streams[input_files[sync_file_idx]->ist_index + 
>>> sync_stream_idx]->user_set_discard == AVDISCARD_ALL) {
>>> +            av_log(NULL, AV_LOG_FATAL, "Sync stream specification 
>>> in map %s matches a disabled input "
>>> +                                       "stream.\n", arg);
>>> +            exit_program(1);
>>> +        }
>>>       }
>>>     @@ -339,6 +344,10 @@ static int opt_map(void *optctx, const char 
>>> *opt, const char *arg)
>>>                   if 
>>> (check_stream_specifier(input_files[file_idx]->ctx, 
>>> input_files[file_idx]->ctx->streams[i],
>>>                               *p == ':' ? p + 1 : p) <= 0)
>>>                       continue;
>>> +                if (input_streams[input_files[file_idx]->ist_index 
>>> + i]->user_set_discard == AVDISCARD_ALL) {
>>> +                    disabled = 1;
>>> +                    continue;
>>> +                }
>>>                   GROW_ARRAY(o->stream_maps, o->nb_stream_maps);
>>>                   m = &o->stream_maps[o->nb_stream_maps - 1];
>>>   @@ -358,6 +367,10 @@ static int opt_map(void *optctx, const char 
>>> *opt, const char *arg)
>>>       if (!m) {
>>>           if (allow_unused) {
>>>               av_log(NULL, AV_LOG_VERBOSE, "Stream map '%s' matches 
>>> no streams; ignoring.\n", arg);
>>> +        } else if (disabled) {
>> disabled is set to 1 and otherwise is uninitialized, this doesnt look 
>> intended
>
> Revised.
>
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


More information about the ffmpeg-devel mailing list