[FFmpeg-devel] [PATCH v2 2/2] ffprobe: Fix incorrect display of closed_captions property

James Almer jamrial at gmail.com
Sun Sep 19 06:05:17 EEST 2021


On 9/18/2021 7:10 PM, Soft Works wrote:
> Repro Example:
> ffprobe -show_entries stream=closed_captions:disposition=:side_data=  "http://streams.videolan.org/streams/ts/CC/NewsStream-608-ac3.ts"
> 
> While the codec string includes "Closed Captions",
> the stream data is showing: closed_captions=0
> 
> The test ref was incorrect as the test media file
> actually does have cc.
> 
> Signed-off-by: softworkz <softworkz at hotmail.com>
> ---
> v2: Fix test result. It was undiscovered locally as make fate
>      does not seem to properly rebuild ffprobe.
> 
>   fftools/ffprobe.c       | 5 +++--
>   tests/ref/fate/ts-demux | 2 +-
>   2 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
> index 880f05a6c2..9425c1a2e3 100644
> --- a/fftools/ffprobe.c
> +++ b/fftools/ffprobe.c
> @@ -2678,10 +2678,11 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
>           print_int("width",        par->width);
>           print_int("height",       par->height);
>           if (dec_ctx) {
> +            unsigned codec_properties = av_stream_get_codec_properties(ist->st);

Library users are meant to use their own decoder contexts if they want 
this kind of information. AVStream->internal->avctx is internal to lavf. 
Accessors like this should be avoided.

ffprobe is already decoding frames for the purpose of show_frames, and 
in fact if you add -show_frames to the above command line example you 
gave, the output of show_streams will report closed_captions=1.
So the correct approach here is to make ffprobe decode a few frames when 
you request show_streams, even if you don't request show_frames.

I'll send a patch for this later.


More information about the ffmpeg-devel mailing list