[FFmpeg-devel] [PATCH V3 1/1] ensure closed caption info which is visible in default stream dump is also available in results when -show_streams is used

vectronic hello.vectronic at gmail.com
Sat Apr 25 13:46:44 EEST 2020



> On 25 Apr 2020, at 09:08, Marton Balint <cus at passwd.hu> wrote:
> 
> 
> 
> On Fri, 24 Apr 2020, vectronic wrote:
> 
>> Signed-off-by: vectronic <hello.vectronic at gmail.com>
>> ---
>> doc/ffprobe.xsd                                           | 1 +
>> fftools/ffprobe.c                                         | 2 ++
>> tests/ref/fate/concat-demuxer-extended-lavf-mxf           | 2 +-
>> tests/ref/fate/concat-demuxer-extended-lavf-mxf_d10       | 2 +-
>> tests/ref/fate/concat-demuxer-simple1-lavf-mxf            | 2 +-
>> tests/ref/fate/concat-demuxer-simple1-lavf-mxf_d10        | 2 +-
>> tests/ref/fate/concat-demuxer-simple2-lavf-ts             | 2 +-
>> tests/ref/fate/ffprobe_compact                            | 4 ++--
>> tests/ref/fate/ffprobe_csv                                | 4 ++--
>> tests/ref/fate/ffprobe_default                            | 2 ++
>> tests/ref/fate/ffprobe_flat                               | 2 ++
>> tests/ref/fate/ffprobe_ini                                | 2 ++
>> tests/ref/fate/ffprobe_json                               | 2 ++
>> tests/ref/fate/ffprobe_xml                                | 4 ++--
>> tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov | 1 +
>> tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov         | 1 +
>> tests/ref/fate/mov-zombie                                 | 2 +-
>> tests/ref/fate/mxf-probe-d10                              | 1 +
>> tests/ref/fate/mxf-probe-dnxhd                            | 1 +
>> tests/ref/fate/mxf-probe-dv25                             | 1 +
>> 20 files changed, 28 insertions(+), 12 deletions(-)
>> 
>> diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
>> index 97dc67def6..f88045232f 100644
>> --- a/doc/ffprobe.xsd
>> +++ b/doc/ffprobe.xsd
>> @@ -227,6 +227,7 @@
>>      <xsd:attribute name="coded_width"          type="xsd:int"/>
>>      <xsd:attribute name="coded_height"         type="xsd:int"/>
>>      <xsd:attribute name="has_b_frames"         type="xsd:int"/>
>> +      <xsd:attribute name="closed_captions"      type="xsd:int"/>
> 
> xsd:boolean seems more appropriate, no?

I was copying off has_b_frames above which I believed was also a 0/1. The output in the stream info is 0/1, not true/false.

>>      <xsd:attribute name="sample_aspect_ratio"  type="xsd:string"/>
>>      <xsd:attribute name="display_aspect_ratio" type="xsd:string"/>
>>      <xsd:attribute name="pix_fmt"              type="xsd:string"/>
>> diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
>> index 840fcb71e2..f0916cbd70 100644
>> --- a/fftools/ffprobe.c
>> +++ b/fftools/ffprobe.c
>> @@ -2550,6 +2550,7 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
>>        }
>> #endif
>>        print_int("has_b_frames", par->video_delay);
>> +        print_int("closed_captions", !!(dec_ctx->properties & FF_CODEC_PROPERTY_CLOSED_CAPTIONS));
> 
> Not strictly related to this patch, but maybe these FF_CODEC_PROPERTY_* constants should be promoted to AV_*?

I’m not sure what is meant by this, but happy to do so if you can elaborate a bit more…?


>>        sar = av_guess_sample_aspect_ratio(fmt_ctx, stream, NULL);
>>        if (sar.num) {
>>            print_q("sample_aspect_ratio", sar, ':');
>> @@ -2950,6 +2951,7 @@ static int open_input_file(InputFile *ifile, const char *filename,
>> 
>>            ist->dec_ctx->pkt_timebase = stream->time_base;
>>            ist->dec_ctx->framerate = stream->avg_frame_rate;
>> +            ist->dec_ctx->properties = stream->codec->properties;
> 
> This is using the depreacted stream->codec, so I think this should go under the #IF below.
> 
>> #if FF_API_LAVF_AVCTX
>>            ist->dec_ctx->coded_width = stream->codec->coded_width;
>>            ist->dec_ctx->coded_height = stream->codec->coded_height;

OK, if this is the case, is there anything to worry to worry about if FF_API_LAVF_AVCTX is not defined? Should I be outputting closed_captions value in this case? Or am I thinking too much?




More information about the ffmpeg-devel mailing list