[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