PR #20953 opened by Martin Storsjö (mstorsjo)
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20953
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20953.patch

Following up on previous concerns:
- Adding new unconditionally built source files in libraries. Yes, that's 
indeed a bit bad, but that's pretty much what's required when it's new API, 
that isn't tied to any specific muxer or similar.
- Whether such functionality should be in libavcodec or libavformat; IMO this 
is mostly a container level concern. We already have all the necessary parsers 
in libavformat already (e.g. for AV1, this does parse out all the nitty gritty 
color detail fields as well).

Essentially I'm trying to cover two different use cases here:
- Muxing a file using the API. While muxing the file, I want to know the RFC 
4281 codec string for the file I'm creating. With the suggested API this is 
easily possible.
- Muxing a file using the ffmpeg CLI tool. After muxing the file, I want to 
build the RFC 4281 codec string, e.g. extracting the relevant info using 
ffprobe. The suggested API works with an `AVCodecParameters`, both from the 
input to the muxer, and from what I get out of demuxers (in ffprobe).


From 10d93a01f00a7d0232ff79771ef63f5642c1e136 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <[email protected]>
Date: Thu, 23 Oct 2025 13:49:15 +0300
Subject: [PATCH 1/2] avformat: Make av_make_codec_str a public API

Implementing this requires a bunch of nontrivial codec specific
parsing. As libavformat already implements this, expose it
for users as well.
---
 doc/APIchanges            |  3 +++
 libavformat/Makefile      | 12 ++++++++----
 libavformat/avformat.h    | 15 +++++++++++++++
 libavformat/codecstring.c |  2 +-
 libavformat/dashenc.c     |  4 ++--
 libavformat/hlsenc.c      |  2 +-
 libavformat/internal.h    | 14 --------------
 libavformat/version.h     |  4 ++--
 8 files changed, 32 insertions(+), 24 deletions(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index bfea83c73a..b9db8383ac 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -2,6 +2,9 @@ The last version increases of all libraries were on 2025-03-28
 
 API changes, most recent first:
 
+2025-11-xx - xxxxxxxxxx - lavf 62.x.xxx - avformat.h
+  Add av_make_codec_str
+
 2025-11-16 - xxxxxxxxxx - lavu 60.18.100 - cpu.h
   Deprecate AV_CPU_FLAG_FORCE without replacement.
 
diff --git a/libavformat/Makefile b/libavformat/Makefile
index 86177af2f4..f78f673e58 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -7,9 +7,11 @@ HEADERS = avformat.h                                           
         \
           version_major.h                                               \
 
 OBJS = allformats.o         \
+       av1.o                \
        avformat.o           \
        avio.o               \
        aviobuf.o            \
+       codecstring.o        \
        demux.o              \
        demux_utils.o        \
        dump.o               \
@@ -21,6 +23,7 @@ OBJS = allformats.o         \
        metadata.o           \
        mux.o                \
        mux_utils.o          \
+       nal.o                \
        options.o            \
        os_support.o         \
        protocols.o          \
@@ -31,12 +34,13 @@ OBJS = allformats.o         \
        urldecode.o          \
        utils.o              \
        version.o            \
+       vpcc.o               \
 
 OBJS-$(HAVE_LIBC_MSVCRT)                 += file_open.o
 
 # subsystems
 OBJS-$(CONFIG_ISO_MEDIA)                 += isom.o
-OBJS-$(CONFIG_ISO_WRITER)                += av1.o avc.o hevc.o nal.o vvc.o 
vpcc.o
+OBJS-$(CONFIG_ISO_WRITER)                += avc.o hevc.o vvc.o
 OBJS-$(CONFIG_IAMFDEC)                   += iamf_reader.o iamf_parse.o iamf.o
 OBJS-$(CONFIG_IAMFENC)                   += iamf_writer.o iamf.o
 OBJS-$(CONFIG_NETWORK)                   += network.o
@@ -179,7 +183,7 @@ OBJS-$(CONFIG_CONCAT_DEMUXER)            += concatdec.o
 OBJS-$(CONFIG_CRC_MUXER)                 += crcenc.o
 OBJS-$(CONFIG_DATA_DEMUXER)              += rawdec.o
 OBJS-$(CONFIG_DATA_MUXER)                += rawenc.o
-OBJS-$(CONFIG_DASH_MUXER)                += dash.o dashenc.o hlsplaylist.o 
codecstring.o
+OBJS-$(CONFIG_DASH_MUXER)                += dash.o dashenc.o hlsplaylist.o
 OBJS-$(CONFIG_DASH_DEMUXER)              += dash.o dashdec.o
 OBJS-$(CONFIG_DAUD_DEMUXER)              += dauddec.o
 OBJS-$(CONFIG_DAUD_MUXER)                += daudenc.o
@@ -267,7 +271,7 @@ OBJS-$(CONFIG_HEVC_MUXER)                += rawenc.o
 OBJS-$(CONFIG_EVC_DEMUXER)               += evcdec.o rawdec.o
 OBJS-$(CONFIG_EVC_MUXER)                 += rawenc.o
 OBJS-$(CONFIG_HLS_DEMUXER)               += hls.o hls_sample_encryption.o
-OBJS-$(CONFIG_HLS_MUXER)                 += hlsenc.o hlsplaylist.o 
codecstring.o
+OBJS-$(CONFIG_HLS_MUXER)                 += hlsenc.o hlsplaylist.o
 OBJS-$(CONFIG_HNM_DEMUXER)               += hnm.o
 OBJS-$(CONFIG_HXVS_DEMUXER)              += hxvs.o
 OBJS-$(CONFIG_IAMF_DEMUXER)              += iamfdec.o
@@ -634,7 +638,7 @@ OBJS-$(CONFIG_WAV_DEMUXER)               += wavdec.o pcm.o
 OBJS-$(CONFIG_WAV_MUXER)                 += wavenc.o
 OBJS-$(CONFIG_WC3_DEMUXER)               += wc3movie.o
 OBJS-$(CONFIG_WEBM_MUXER)                += matroskaenc.o matroska.o \
-                                            av1.o avlanguage.o
+                                            avlanguage.o
 OBJS-$(CONFIG_WEBM_DASH_MANIFEST_MUXER)  += webmdashenc.o
 OBJS-$(CONFIG_WEBM_CHUNK_MUXER)          += webm_chunk.o
 OBJS-$(CONFIG_WEBP_MUXER)                += webpenc.o
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index a7446546e5..8e44031284 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -2890,6 +2890,21 @@ int av_match_ext(const char *filename, const char 
*extensions);
 int avformat_query_codec(const AVOutputFormat *ofmt, enum AVCodecID codec_id,
                          int std_compliance);
 
+struct AVBPrint;
+/**
+ * Make a RFC 4281/6381 like string describing a codec.
+ *
+ * @param logctx a context for potential log messages
+ * @param par pointer to an AVCodecParameters struct describing the codec
+ * @param frame_rate an optional pointer to AVRational for the frame rate,
+ *                   for deciding the right profile for video codecs
+ * @param str the output string buffer
+ * @param size the size of the string pointed to by str
+ * @return <0 on error
+ */
+int av_make_codec_str(void *logctx, const AVCodecParameters *par,
+                      const AVRational *frame_rate, struct AVBPrint *out);
+
 /**
  * @defgroup riff_fourcc RIFF FourCCs
  * @{
diff --git a/libavformat/codecstring.c b/libavformat/codecstring.c
index 12e0fd22c8..cb4f3b4cf6 100644
--- a/libavformat/codecstring.c
+++ b/libavformat/codecstring.c
@@ -59,7 +59,7 @@ static void set_vp9_codec_str(void *logctx, const 
AVCodecParameters *par,
     }
 }
 
-int ff_make_codec_str(void *logctx, const AVCodecParameters *par,
+int av_make_codec_str(void *logctx, const AVCodecParameters *par,
                       const AVRational *frame_rate, struct AVBPrint *out)
 {
     int i;
diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
index da7725fc3f..f60d760759 100644
--- a/libavformat/dashenc.c
+++ b/libavformat/dashenc.c
@@ -1576,7 +1576,7 @@ static int dash_init(AVFormatContext *s)
         }
 
         av_bprint_init_for_buffer(&buffer, os->codec_str, 
sizeof(os->codec_str));
-        ff_make_codec_str(s, st->codecpar, &st->avg_frame_rate, &buffer);
+        av_make_codec_str(s, st->codecpar, &st->avg_frame_rate, &buffer);
         os->first_pts = AV_NOPTS_VALUE;
         os->max_pts = AV_NOPTS_VALUE;
         os->last_dts = AV_NOPTS_VALUE;
@@ -1714,7 +1714,7 @@ static int update_stream_extradata(AVFormatContext *s, 
OutputStream *os,
     memcpy(par->extradata, extradata, extradata_size);
 
     av_bprint_init_for_buffer(&buffer, os->codec_str, sizeof(os->codec_str));
-    ff_make_codec_str(s, par, frame_rate, &buffer);
+    av_make_codec_str(s, par, frame_rate, &buffer);
 
     return 0;
 }
diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 7105404d1e..06e3f451ba 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -358,7 +358,7 @@ static void write_codec_attr(AVStream *st, VariantStream 
*vs)
         return;
 
     av_bprint_init_for_buffer(&buffer, attr, sizeof(attr));
-    if (ff_make_codec_str(vs->avf, st->codecpar, &st->avg_frame_rate,
+    if (av_make_codec_str(vs->avf, st->codecpar, &st->avg_frame_rate,
                           &buffer) < 0)
         goto fail;
 
diff --git a/libavformat/internal.h b/libavformat/internal.h
index d32a3376cc..1a50ba07d3 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -661,18 +661,4 @@ int ff_dict_set_timestamp(AVDictionary **dict, const char 
*key, int64_t timestam
  */
 int ff_parse_opts_from_query_string(void *obj, const char *str, int 
allow_unkown);
 
-/**
- * Make a RFC 4281/6381 like string describing a codec.
- *
- * @param logctx a context for potential log messages
- * @param par pointer to an AVCodecParameters struct describing the codec
- * @param frame_rate an optional pointer to AVRational for the frame rate,
- *                   for deciding the right profile for video codecs
- * @param str the output string buffer
- * @param size the size of the string pointed to by str
- * @return <0 on error
- */
-int ff_make_codec_str(void *logctx, const AVCodecParameters *par,
-                      const AVRational *frame_rate, struct AVBPrint *out);
-
 #endif /* AVFORMAT_INTERNAL_H */
diff --git a/libavformat/version.h b/libavformat/version.h
index 8c1af81917..70c554c19c 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -31,8 +31,8 @@
 
 #include "version_major.h"
 
-#define LIBAVFORMAT_VERSION_MINOR   6
-#define LIBAVFORMAT_VERSION_MICRO 103
+#define LIBAVFORMAT_VERSION_MINOR   7
+#define LIBAVFORMAT_VERSION_MICRO 100
 
 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
                                                LIBAVFORMAT_VERSION_MINOR, \
-- 
2.49.1


From 8b460ffbcef71642f8eb0e16499ae7f9ced597a0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <[email protected]>
Date: Mon, 27 Oct 2025 13:43:45 +0200
Subject: [PATCH 2/2] ffprobe: Include the RFC 4281 "codec string" in
 show_stream output

---
 doc/ffprobe.xsd                                           | 1 +
 fftools/ffprobe.c                                         | 4 ++++
 tests/fate/mov.mak                                        | 3 +++
 tests/ref/fate/cavs-demux                                 | 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            | 4 ++--
 tests/ref/fate/concat-demuxer-simple1-lavf-mxf_d10        | 4 ++--
 tests/ref/fate/concat-demuxer-simple2-lavf-ts             | 4 ++--
 tests/ref/fate/ffprobe_compact                            | 6 +++---
 tests/ref/fate/ffprobe_csv                                | 6 +++---
 tests/ref/fate/ffprobe_default                            | 3 +++
 tests/ref/fate/ffprobe_flat                               | 3 +++
 tests/ref/fate/ffprobe_ini                                | 3 +++
 tests/ref/fate/ffprobe_json                               | 3 +++
 tests/ref/fate/ffprobe_xml                                | 6 +++---
 tests/ref/fate/ffprobe_xsd                                | 6 +++---
 tests/ref/fate/flv-demux                                  | 4 ++--
 tests/ref/fate/gapless-mp3-side-data                      | 2 +-
 tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov | 1 +
 tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov         | 1 +
 tests/ref/fate/mov-codecstring                            | 6 ++++++
 tests/ref/fate/mov-zombie                                 | 2 +-
 tests/ref/fate/mxf-probe-applehdr10                       | 3 +++
 tests/ref/fate/mxf-probe-d10                              | 2 ++
 tests/ref/fate/mxf-probe-dnxhd                            | 4 ++++
 tests/ref/fate/mxf-probe-dv25                             | 3 +++
 tests/ref/fate/mxf-probe-j2k                              | 1 +
 tests/ref/fate/oggopus-demux                              | 2 +-
 tests/ref/fate/ts-demux                                   | 6 +++---
 tests/ref/fate/ts-opus-demux                              | 2 +-
 tests/ref/fate/ts-small-demux                             | 2 +-
 tests/ref/fate/ts-timed-id3-demux                         | 2 +-
 33 files changed, 73 insertions(+), 32 deletions(-)
 create mode 100644 tests/ref/fate/mov-codecstring

diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
index b53b799227..82578042ec 100644
--- a/doc/ffprobe.xsd
+++ b/doc/ffprobe.xsd
@@ -270,6 +270,7 @@
     <xsd:attribute name="codec_name"       type="xsd:string" />
     <xsd:attribute name="codec_long_name"  type="xsd:string" />
     <xsd:attribute name="profile"          type="xsd:string" />
+    <xsd:attribute name="codec_string"     type="xsd:string" use="required"/>
     <xsd:attribute name="codec_type"       type="xsd:string" />
     <xsd:attribute name="codec_tag"        type="xsd:string" use="required"/>
     <xsd:attribute name="codec_tag_string" type="xsd:string" use="required"/>
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 89b8dd3802..4c299ba221 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -1776,6 +1776,10 @@ static int show_stream(AVTextFormatContext *tfc, 
AVFormatContext *fmt_ctx, int s
     print_str("codec_tag_string",    av_fourcc2str(par->codec_tag));
     print_fmt("codec_tag", "0x%04"PRIx32, par->codec_tag);
 
+    av_bprint_clear(&pbuf);
+    av_make_codec_str(fmt_ctx, par, &stream->avg_frame_rate, &pbuf);
+    print_str("codec_string", pbuf.str);
+
     switch (par->codec_type) {
     case AVMEDIA_TYPE_VIDEO:
         print_int("width",        par->width);
diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak
index 1f2f589beb..342fdaa800 100644
--- a/tests/fate/mov.mak
+++ b/tests/fate/mov.mak
@@ -34,6 +34,7 @@ FATE_MOV_FFPROBE-$(call FRAMEMD5, MOV, H264, H264_PARSER) += 
fate-mov-neg-firstp
                    fate-mov-guess-delay-2 \
                    fate-mov-guess-delay-3 \
                    fate-mov-mp4-with-mov-in24-ver \
+                   fate-mov-codecstring \
 
 FATE_MOV_FFPROBE-$(call FRAMEMD5, MOV, MPEG4, H264_PARSER) += 
fate-mov-mp4-extended-atom \
 
@@ -146,6 +147,8 @@ fate-mov-mp4-with-mov-in24-ver: CMD = run 
ffprobe$(PROGSSUF)$(EXESUF) -show_entr
 
 fate-mov-mp4-extended-atom: CMD = run ffprobe$(PROGSSUF)$(EXESUF) 
-show_packets -print_format compact -select_streams v 
$(TARGET_SAMPLES)/mov/extended_atom_size_probe
 
+fate-mov-codecstring: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries 
stream=codec_string -v 0 $(TARGET_SAMPLES)/mov/mov_stream_shorter_than_movie.mov
+
 FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call REMUX, MP4 MOV, OGG_DEMUXER 
VORBIS_DECODER) \
                           += fate-mov-mp4-chapters
 fate-mov-mp4-chapters: CMD = transcode ogg 
$(TARGET_SAMPLES)/vorbis/vorbis_chapter_extension_demo.ogg mp4 "-c copy" "-c 
copy -t 0.1" "-show_chapters"
diff --git a/tests/ref/fate/cavs-demux b/tests/ref/fate/cavs-demux
index b1e2c2fd25..f720e923ab 100644
--- a/tests/ref/fate/cavs-demux
+++ b/tests/ref/fate/cavs-demux
@@ -58,5 +58,5 @@ 
packet|codec_type=video|stream_index=0|pts=2280000|pts_time=1.900000|dts=2280000
 
packet|codec_type=video|stream_index=0|pts=2320000|pts_time=1.933333|dts=2320000|dts_time=1.933333|duration=40000|duration_time=0.033333|size=67|pos=172185|flags=K__|data_hash=CRC32:42484449
 
packet|codec_type=video|stream_index=0|pts=2360000|pts_time=1.966667|dts=2360000|dts_time=1.966667|duration=40000|duration_time=0.033333|size=83|pos=172252|flags=K__|data_hash=CRC32:a941bdf0
 
packet|codec_type=video|stream_index=0|pts=2400000|pts_time=2.000000|dts=2400000|dts_time=2.000000|duration=40000|duration_time=0.033333|size=5417|pos=172335|flags=K__|data_hash=CRC32:9d0d503b
-stream|index=0|codec_name=cavs|profile=unknown|codec_type=video|codec_tag_string=[0][0][0][0]|codec_tag=0x0000|width=1280|height=720|coded_width=1280|coded_height=720|has_b_frames=0|sample_aspect_ratio=N/A|display_aspect_ratio=N/A|pix_fmt=yuv420p|level=-99|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=unspecified|field_order=unknown|refs=1|id=N/A|r_frame_rate=30/1|avg_frame_rate=25/1|time_base=1/1200000|start_pts=N/A|start_time=N/A|duration_ts=N/A|duration=N/A|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=60|extradata_size=18|extradata_hash=CRC32:1255d52e|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0
+stream|index=0|codec_name=cavs|profile=unknown|codec_type=video|codec_tag_string=[0][0][0][0]|codec_tag=0x0000|codec_string=|width=1280|height=720|coded_width=1280|coded_height=720|has_b_frames=0|sample_aspect_ratio=N/A|display_aspect_ratio=N/A|pix_fmt=yuv420p|level=-99|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=unspecified|field_order=unknown|refs=1|id=N/A|r_frame_rate=30/1|avg_frame_rate=25/1|time_base=1/1200000|start_pts=N/A|start_time=N/A|duration_ts=N/A|duration=N/A|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=60|extradata_size=18|extradata_hash=CRC32:1255d52e|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0
 
format|filename=bunny.mp4|nb_streams=1|nb_programs=0|nb_stream_groups=0|format_name=cavsvideo|start_time=N/A|duration=N/A|size=177752|bit_rate=N/A|probe_score=51
diff --git a/tests/ref/fate/concat-demuxer-extended-lavf-mxf 
b/tests/ref/fate/concat-demuxer-extended-lavf-mxf
index c5df6fc048..df6dd62c88 100644
--- a/tests/ref/fate/concat-demuxer-extended-lavf-mxf
+++ b/tests/ref/fate/concat-demuxer-extended-lavf-mxf
@@ -1 +1 @@
-efaed079aa49fb9867eeb25219ba6224 
*tests/data/fate/concat-demuxer-extended-lavf-mxf.ffprobe
+976bdb6ee9946cce008ab0113a9e4f8c 
*tests/data/fate/concat-demuxer-extended-lavf-mxf.ffprobe
diff --git a/tests/ref/fate/concat-demuxer-extended-lavf-mxf_d10 
b/tests/ref/fate/concat-demuxer-extended-lavf-mxf_d10
index dac134f273..5c98c41a9f 100644
--- a/tests/ref/fate/concat-demuxer-extended-lavf-mxf_d10
+++ b/tests/ref/fate/concat-demuxer-extended-lavf-mxf_d10
@@ -1 +1 @@
-e22c1d8905c1b3d3ec5d7d2638fc36ba 
*tests/data/fate/concat-demuxer-extended-lavf-mxf_d10.ffprobe
+60ad718d3df1887ce4f660ea02d3245c 
*tests/data/fate/concat-demuxer-extended-lavf-mxf_d10.ffprobe
diff --git a/tests/ref/fate/concat-demuxer-simple1-lavf-mxf 
b/tests/ref/fate/concat-demuxer-simple1-lavf-mxf
index 78dc7396ea..dd666b11ed 100644
--- a/tests/ref/fate/concat-demuxer-simple1-lavf-mxf
+++ b/tests/ref/fate/concat-demuxer-simple1-lavf-mxf
@@ -99,5 +99,5 @@ 
audio|1|63360|1.320000|63360|1.320000|1920|0.040000|3840|190464|K__|1|Strings Me
 video|0|33|1.320000|33|1.320000|1|0.040000|12362|195072|___|1|Strings Metadata
 audio|1|65280|1.360000|65280|1.360000|1920|0.040000|3840|207872|K__|1|Strings 
Metadata
 video|0|37|1.480000|34|1.360000|1|0.040000|24786|212480|K__|1|Strings Metadata
-0|mpeg2video|4|video|[0][0][0][0]|0x0000|352|288|0|0|1|1:1|11:9|yuv420p|8|tv|unknown|unknown|unknown|left|progressive|1|N/A|25/1|25/1|1/25|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|51|22|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0x060A2B340101010501010D001300000000000000000000000000000000000001|CPB
 properties|0|0|0|49152|-1
-1|pcm_s16le|unknown|audio|[0][0][0][0]|0x0000|s16|48000|1|unknown|16|0|N/A|0/0|0/0|1/48000|0|0.000000|N/A|N/A|768000|N/A|N/A|N/A|N/A|50|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0x060A2B340101010501010D001300000000000000000000000000000000000001
+0|mpeg2video|4|video|[0][0][0][0]|0x0000||352|288|0|0|1|1:1|11:9|yuv420p|8|tv|unknown|unknown|unknown|left|progressive|1|N/A|25/1|25/1|1/25|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|51|22|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0x060A2B340101010501010D001300000000000000000000000000000000000001|CPB
 properties|0|0|0|49152|-1
+1|pcm_s16le|unknown|audio|[0][0][0][0]|0x0000||s16|48000|1|unknown|16|0|N/A|0/0|0/0|1/48000|0|0.000000|N/A|N/A|768000|N/A|N/A|N/A|N/A|50|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0x060A2B340101010501010D001300000000000000000000000000000000000001
diff --git a/tests/ref/fate/concat-demuxer-simple1-lavf-mxf_d10 
b/tests/ref/fate/concat-demuxer-simple1-lavf-mxf_d10
index ac362637d5..fa93cd3b83 100644
--- a/tests/ref/fate/concat-demuxer-simple1-lavf-mxf_d10
+++ b/tests/ref/fate/concat-demuxer-simple1-lavf-mxf_d10
@@ -68,5 +68,5 @@ 
video|0|33|1.320000|33|1.320000|1|0.040000|150000|1711104|K__|1|Strings Metadata
 audio|1|63360|1.320000|63360|1.320000|1920|0.040000|7680|1861632|K__|1|Strings 
Metadata
 video|0|34|1.360000|34|1.360000|1|0.040000|150000|1924096|K__|1|Strings 
Metadata
 audio|1|65280|1.360000|65280|1.360000|1920|0.040000|7680|2074624|K__|1|Strings 
Metadata
-0|mpeg2video|0|video|[0][0][0][0]|0x0000|720|608|0|0|0|1:1|45:38|yuv422p|5|tv|unknown|unknown|unknown|topleft|tt|1|N/A|25/1|25/1|1/25|0|0.000000|N/A|N/A|30000000|N/A|N/A|N/A|N/A|35|22|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0x060A2B340101010501010D001300000000000000000000000000000000000001|CPB
 properties|30000000|0|0|1212416|-1
-1|pcm_s16le|unknown|audio|[0][0][0][0]|0x0000|s16|48000|2|unknown|16|0|N/A|0/0|0/0|1/48000|0|0.000000|N/A|N/A|1536000|N/A|N/A|N/A|N/A|35|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0x060A2B340101010501010D001300000000000000000000000000000000000001
+0|mpeg2video|0|video|[0][0][0][0]|0x0000||720|608|0|0|0|1:1|45:38|yuv422p|5|tv|unknown|unknown|unknown|topleft|tt|1|N/A|25/1|25/1|1/25|0|0.000000|N/A|N/A|30000000|N/A|N/A|N/A|N/A|35|22|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0x060A2B340101010501010D001300000000000000000000000000000000000001|CPB
 properties|30000000|0|0|1212416|-1
+1|pcm_s16le|unknown|audio|[0][0][0][0]|0x0000||s16|48000|2|unknown|16|0|N/A|0/0|0/0|1/48000|0|0.000000|N/A|N/A|1536000|N/A|N/A|N/A|N/A|35|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0x060A2B340101010501010D001300000000000000000000000000000000000001
diff --git a/tests/ref/fate/concat-demuxer-simple2-lavf-ts 
b/tests/ref/fate/concat-demuxer-simple2-lavf-ts
index c43f424e81..863be122a4 100644
--- a/tests/ref/fate/concat-demuxer-simple2-lavf-ts
+++ b/tests/ref/fate/concat-demuxer-simple2-lavf-ts
@@ -147,5 +147,5 @@ 
video|1|164782|1.830911|161182|1.790911|3600|0.040000|12282|168448|___|MPEGTS St
 video|1|168382|1.870911|164782|1.830911|3600|0.040000|24786|181420|K__|MPEGTS 
Stream ID|224
 video|1|171982|1.910911|168382|1.870911|3600|0.040000|17440|206988|___|MPEGTS 
Stream ID|224
 video|1|175582|1.950911|171982|1.910911|3600|0.040000|15019|224848|___|MPEGTS 
Stream ID|224
-0|mp2|unknown|audio|[3][0][0][0]|0x0003|s16p|44100|1|mono|0|0|N/A|0/0|0/0|1/90000|0|0.000000|N/A|N/A|64000|N/A|N/A|N/A|N/A|89|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|this
 is stream 0
-1|mpeg2video|4|video|[2][0][0][0]|0x0002|352|288|0|0|1|1:1|11:9|yuv420p|8|tv|unknown|unknown|unknown|left|progressive|1|N/A|25/1|25/1|1/90000|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|60|22|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|this
 is stream 1|CPB properties|0|0|0|49152|-1
+0|mp2|unknown|audio|[3][0][0][0]|0x0003|mp4a.40.33|s16p|44100|1|mono|0|0|N/A|0/0|0/0|1/90000|0|0.000000|N/A|N/A|64000|N/A|N/A|N/A|N/A|89|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|this
 is stream 0
+1|mpeg2video|4|video|[2][0][0][0]|0x0002||352|288|0|0|1|1:1|11:9|yuv420p|8|tv|unknown|unknown|unknown|left|progressive|1|N/A|25/1|25/1|1/90000|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|60|22|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|this
 is stream 1|CPB properties|0|0|0|49152|-1
diff --git a/tests/ref/fate/ffprobe_compact b/tests/ref/fate/ffprobe_compact
index 53456ce358..2e36079acb 100644
--- a/tests/ref/fate/ffprobe_compact
+++ b/tests/ref/fate/ffprobe_compact
@@ -26,7 +26,7 @@ 
packet|codec_type=video|stream_index=1|pts=6144|pts_time=0.120000|dts=6144|dts_t
 
frame|media_type=video|stream_index=1|key_frame=1|pts=6144|pts_time=0.120000|pkt_dts=6144|pkt_dts_time=0.120000|best_effort_timestamp=6144|best_effort_timestamp_time=0.120000|duration=2048|duration_time=0.040000|pkt_pos=793142|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|interlaced_frame=0|top_field_first=0|lossless=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified|alpha_mode=unspecified
 
packet|codec_type=video|stream_index=2|pts=6144|pts_time=0.120000|dts=6144|dts_time=0.120000|duration=2048|duration_time=0.040000|size=30000|pos=1023566|flags=K__
 
frame|media_type=video|stream_index=2|key_frame=1|pts=6144|pts_time=0.120000|pkt_dts=6144|pkt_dts_time=0.120000|best_effort_timestamp=6144|best_effort_timestamp_time=0.120000|duration=2048|duration_time=0.040000|pkt_pos=1023566|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|interlaced_frame=0|top_field_first=0|lossless=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified|alpha_mode=unspecified
-stream|index=0|codec_name=pcm_s16le|profile=unknown|codec_type=audio|codec_tag_string=PSD[16]|codec_tag=0x10445350|sample_fmt=s16|sample_rate=44100|channels=1|channel_layout=unknown|bits_per_sample=16|initial_padding=0|id=N/A|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/44100|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=705600|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=6|nb_read_packets=6|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:encoder=Lavc
 pcm_s16le|tag:E=mc²
-stream|index=1|codec_name=rawvideo|profile=unknown|codec_type=video|codec_tag_string=RGB[24]|codec_tag=0x18424752|width=320|height=240|coded_width=320|coded_height=240|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=4:3|pix_fmt=rgb24|level=-99|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=unspecified|field_order=unknown|refs=1|id=N/A|r_frame_rate=25/1|avg_frame_rate=25/1|time_base=1/51200|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=4|nb_read_packets=4|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:encoder=Lavc
 rawvideo|tag:title=foobar|tag:duration_ts=field-and-tags-conflict-attempt
-stream|index=2|codec_name=rawvideo|profile=unknown|codec_type=video|codec_tag_string=RGB[24]|codec_tag=0x18424752|width=100|height=100|coded_width=100|coded_height=100|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=1:1|pix_fmt=rgb24|level=-99|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=unspecified|field_order=unknown|refs=1|id=N/A|r_frame_rate=25/1|avg_frame_rate=25/1|time_base=1/51200|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=4|nb_read_packets=4|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:encoder=Lavc
 rawvideo
+stream|index=0|codec_name=pcm_s16le|profile=unknown|codec_type=audio|codec_tag_string=PSD[16]|codec_tag=0x10445350|codec_string=|sample_fmt=s16|sample_rate=44100|channels=1|channel_layout=unknown|bits_per_sample=16|initial_padding=0|id=N/A|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/44100|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=705600|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=6|nb_read_packets=6|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:encoder=Lavc
 pcm_s16le|tag:E=mc²
+stream|index=1|codec_name=rawvideo|profile=unknown|codec_type=video|codec_tag_string=RGB[24]|codec_tag=0x18424752|codec_string=|width=320|height=240|coded_width=320|coded_height=240|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=4:3|pix_fmt=rgb24|level=-99|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=unspecified|field_order=unknown|refs=1|id=N/A|r_frame_rate=25/1|avg_frame_rate=25/1|time_base=1/51200|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=4|nb_read_packets=4|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:encoder=Lavc
 rawvideo|tag:title=foobar|tag:duration_ts=field-and-tags-conflict-attempt
+stream|index=2|codec_name=rawvideo|profile=unknown|codec_type=video|codec_tag_string=RGB[24]|codec_tag=0x18424752|codec_string=|width=100|height=100|coded_width=100|coded_height=100|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=1:1|pix_fmt=rgb24|level=-99|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=unspecified|field_order=unknown|refs=1|id=N/A|r_frame_rate=25/1|avg_frame_rate=25/1|time_base=1/51200|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=4|nb_read_packets=4|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:encoder=Lavc
 rawvideo
 
format|filename=tests/data/ffprobe-test.nut|nb_streams=3|nb_programs=0|nb_stream_groups=0|format_name=nut|start_time=0.000000|duration=0.120000|size=1053646|bit_rate=70243066|probe_score=100|tag:title=ffprobe
 test file|tag:comment='A comment with CSV, XML & JSON special chars': <tag 
value="x">|tag:comment2=I ♥ Üñîçød€
diff --git a/tests/ref/fate/ffprobe_csv b/tests/ref/fate/ffprobe_csv
index 174af6d732..84f3260b81 100644
--- a/tests/ref/fate/ffprobe_csv
+++ b/tests/ref/fate/ffprobe_csv
@@ -26,7 +26,7 @@ 
packet,video,1,6144,0.120000,6144,0.120000,2048,0.040000,230400,793142,K__
 
frame,video,1,1,6144,0.120000,6144,0.120000,6144,0.120000,2048,0.040000,793142,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,0,unknown,unknown,unknown,unknown,unspecified,unspecified
 packet,video,2,6144,0.120000,6144,0.120000,2048,0.040000,30000,1023566,K__
 
frame,video,2,1,6144,0.120000,6144,0.120000,6144,0.120000,2048,0.040000,1023566,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,0,unknown,unknown,unknown,unknown,unspecified,unspecified
-stream,0,pcm_s16le,unknown,audio,PSD[16],0x10445350,s16,44100,1,unknown,16,0,N/A,0/0,0/0,1/44100,0,0.000000,N/A,N/A,705600,N/A,N/A,N/A,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,Lavc
 pcm_s16le,mc²
-stream,1,rawvideo,unknown,video,RGB[24],0x18424752,320,240,320,240,0,1:1,4:3,rgb24,-99,unknown,unknown,unknown,unknown,unspecified,unknown,1,N/A,25/1,25/1,1/51200,0,0.000000,N/A,N/A,N/A,N/A,N/A,N/A,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,Lavc
 rawvideo,foobar,field-and-tags-conflict-attempt
-stream,2,rawvideo,unknown,video,RGB[24],0x18424752,100,100,100,100,0,1:1,1:1,rgb24,-99,unknown,unknown,unknown,unknown,unspecified,unknown,1,N/A,25/1,25/1,1/51200,0,0.000000,N/A,N/A,N/A,N/A,N/A,N/A,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,Lavc
 rawvideo
+stream,0,pcm_s16le,unknown,audio,PSD[16],0x10445350,,s16,44100,1,unknown,16,0,N/A,0/0,0/0,1/44100,0,0.000000,N/A,N/A,705600,N/A,N/A,N/A,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,Lavc
 pcm_s16le,mc²
+stream,1,rawvideo,unknown,video,RGB[24],0x18424752,,320,240,320,240,0,1:1,4:3,rgb24,-99,unknown,unknown,unknown,unknown,unspecified,unknown,1,N/A,25/1,25/1,1/51200,0,0.000000,N/A,N/A,N/A,N/A,N/A,N/A,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,Lavc
 rawvideo,foobar,field-and-tags-conflict-attempt
+stream,2,rawvideo,unknown,video,RGB[24],0x18424752,,100,100,100,100,0,1:1,1:1,rgb24,-99,unknown,unknown,unknown,unknown,unspecified,unknown,1,N/A,25/1,25/1,1/51200,0,0.000000,N/A,N/A,N/A,N/A,N/A,N/A,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,Lavc
 rawvideo
 
format,tests/data/ffprobe-test.nut,3,0,0,nut,0.000000,0.120000,1053646,70243066,100,ffprobe
 test file,"'A comment with CSV, XML & JSON special chars': <tag 
value=""x"">",I ♥ Üñîçød€
diff --git a/tests/ref/fate/ffprobe_default b/tests/ref/fate/ffprobe_default
index 4289f66bbe..c837d6d89c 100644
--- a/tests/ref/fate/ffprobe_default
+++ b/tests/ref/fate/ffprobe_default
@@ -573,6 +573,7 @@ profile=unknown
 codec_type=audio
 codec_tag_string=PSD[16]
 codec_tag=0x10445350
+codec_string=
 sample_fmt=s16
 sample_rate=44100
 channels=1
@@ -622,6 +623,7 @@ profile=unknown
 codec_type=video
 codec_tag_string=RGB[24]
 codec_tag=0x18424752
+codec_string=
 width=320
 height=240
 coded_width=320
@@ -682,6 +684,7 @@ profile=unknown
 codec_type=video
 codec_tag_string=RGB[24]
 codec_tag=0x18424752
+codec_string=
 width=100
 height=100
 coded_width=100
diff --git a/tests/ref/fate/ffprobe_flat b/tests/ref/fate/ffprobe_flat
index 114def58bc..a1dd6556b5 100644
--- a/tests/ref/fate/ffprobe_flat
+++ b/tests/ref/fate/ffprobe_flat
@@ -516,6 +516,7 @@ streams.stream.0.profile="unknown"
 streams.stream.0.codec_type="audio"
 streams.stream.0.codec_tag_string="PSD[16]"
 streams.stream.0.codec_tag="0x10445350"
+streams.stream.0.codec_string=""
 streams.stream.0.sample_fmt="s16"
 streams.stream.0.sample_rate="44100"
 streams.stream.0.channels=1
@@ -563,6 +564,7 @@ streams.stream.1.profile="unknown"
 streams.stream.1.codec_type="video"
 streams.stream.1.codec_tag_string="RGB[24]"
 streams.stream.1.codec_tag="0x18424752"
+streams.stream.1.codec_string=""
 streams.stream.1.width=320
 streams.stream.1.height=240
 streams.stream.1.coded_width=320
@@ -621,6 +623,7 @@ streams.stream.2.profile="unknown"
 streams.stream.2.codec_type="video"
 streams.stream.2.codec_tag_string="RGB[24]"
 streams.stream.2.codec_tag="0x18424752"
+streams.stream.2.codec_string=""
 streams.stream.2.width=100
 streams.stream.2.height=100
 streams.stream.2.coded_width=100
diff --git a/tests/ref/fate/ffprobe_ini b/tests/ref/fate/ffprobe_ini
index c4b6a59b30..1450d60a70 100644
--- a/tests/ref/fate/ffprobe_ini
+++ b/tests/ref/fate/ffprobe_ini
@@ -575,6 +575,7 @@ profile=unknown
 codec_type=audio
 codec_tag_string=PSD[16]
 codec_tag=0x10445350
+codec_string=
 sample_fmt=s16
 sample_rate=44100
 channels=1
@@ -628,6 +629,7 @@ profile=unknown
 codec_type=video
 codec_tag_string=RGB[24]
 codec_tag=0x18424752
+codec_string=
 width=320
 height=240
 coded_width=320
@@ -692,6 +694,7 @@ profile=unknown
 codec_type=video
 codec_tag_string=RGB[24]
 codec_tag=0x18424752
+codec_string=
 width=100
 height=100
 coded_width=100
diff --git a/tests/ref/fate/ffprobe_json b/tests/ref/fate/ffprobe_json
index ac295181b5..1664e02088 100644
--- a/tests/ref/fate/ffprobe_json
+++ b/tests/ref/fate/ffprobe_json
@@ -550,6 +550,7 @@
             "codec_type": "audio",
             "codec_tag_string": "PSD[16]",
             "codec_tag": "0x10445350",
+            "codec_string": "",
             "sample_fmt": "s16",
             "sample_rate": "44100",
             "channels": 1,
@@ -595,6 +596,7 @@
             "codec_type": "video",
             "codec_tag_string": "RGB[24]",
             "codec_tag": "0x18424752",
+            "codec_string": "",
             "width": 320,
             "height": 240,
             "coded_width": 320,
@@ -645,6 +647,7 @@
             "codec_type": "video",
             "codec_tag_string": "RGB[24]",
             "codec_tag": "0x18424752",
+            "codec_string": "",
             "width": 100,
             "height": 100,
             "coded_width": 100,
diff --git a/tests/ref/fate/ffprobe_xml b/tests/ref/fate/ffprobe_xml
index 0917813fa5..af406a1907 100644
--- a/tests/ref/fate/ffprobe_xml
+++ b/tests/ref/fate/ffprobe_xml
@@ -32,14 +32,14 @@
     </packets_and_frames>
 
     <streams>
-        <stream index="0" codec_name="pcm_s16le" codec_type="audio" 
codec_tag_string="PSD[16]" codec_tag="0x10445350" sample_fmt="s16" 
sample_rate="44100" channels="1" bits_per_sample="16" initial_padding="0" 
r_frame_rate="0/0" avg_frame_rate="0/0" time_base="1/44100" start_pts="0" 
start_time="0.000000" bit_rate="705600" nb_read_frames="6" nb_read_packets="6">
+        <stream index="0" codec_name="pcm_s16le" codec_type="audio" 
codec_tag_string="PSD[16]" codec_tag="0x10445350" codec_string="" 
sample_fmt="s16" sample_rate="44100" channels="1" bits_per_sample="16" 
initial_padding="0" r_frame_rate="0/0" avg_frame_rate="0/0" time_base="1/44100" 
start_pts="0" start_time="0.000000" bit_rate="705600" nb_read_frames="6" 
nb_read_packets="6">
             <disposition default="0" dub="0" original="0" comment="0" 
lyrics="0" karaoke="0" forced="0" hearing_impaired="0" visual_impaired="0" 
clean_effects="0" attached_pic="0" timed_thumbnails="0" non_diegetic="0" 
captions="0" descriptions="0" metadata="0" dependent="0" still_image="0" 
multilayer="0"/>
             <tags>
                 <tag key="encoder" value="Lavc pcm_s16le"/>
                 <tag key="E" value="mc²"/>
             </tags>
         </stream>
-        <stream index="1" codec_name="rawvideo" codec_type="video" 
codec_tag_string="RGB[24]" codec_tag="0x18424752" width="320" height="240" 
coded_width="320" coded_height="240" has_b_frames="0" sample_aspect_ratio="1:1" 
display_aspect_ratio="4:3" pix_fmt="rgb24" level="-99" refs="1" 
r_frame_rate="25/1" avg_frame_rate="25/1" time_base="1/51200" start_pts="0" 
start_time="0.000000" nb_read_frames="4" nb_read_packets="4">
+        <stream index="1" codec_name="rawvideo" codec_type="video" 
codec_tag_string="RGB[24]" codec_tag="0x18424752" codec_string="" width="320" 
height="240" coded_width="320" coded_height="240" has_b_frames="0" 
sample_aspect_ratio="1:1" display_aspect_ratio="4:3" pix_fmt="rgb24" 
level="-99" refs="1" r_frame_rate="25/1" avg_frame_rate="25/1" 
time_base="1/51200" start_pts="0" start_time="0.000000" nb_read_frames="4" 
nb_read_packets="4">
             <disposition default="1" dub="0" original="0" comment="0" 
lyrics="0" karaoke="0" forced="0" hearing_impaired="0" visual_impaired="0" 
clean_effects="0" attached_pic="0" timed_thumbnails="0" non_diegetic="0" 
captions="0" descriptions="0" metadata="0" dependent="0" still_image="0" 
multilayer="0"/>
             <tags>
                 <tag key="encoder" value="Lavc rawvideo"/>
@@ -47,7 +47,7 @@
                 <tag key="duration_ts" 
value="field-and-tags-conflict-attempt"/>
             </tags>
         </stream>
-        <stream index="2" codec_name="rawvideo" codec_type="video" 
codec_tag_string="RGB[24]" codec_tag="0x18424752" width="100" height="100" 
coded_width="100" coded_height="100" has_b_frames="0" sample_aspect_ratio="1:1" 
display_aspect_ratio="1:1" pix_fmt="rgb24" level="-99" refs="1" 
r_frame_rate="25/1" avg_frame_rate="25/1" time_base="1/51200" start_pts="0" 
start_time="0.000000" nb_read_frames="4" nb_read_packets="4">
+        <stream index="2" codec_name="rawvideo" codec_type="video" 
codec_tag_string="RGB[24]" codec_tag="0x18424752" codec_string="" width="100" 
height="100" coded_width="100" coded_height="100" has_b_frames="0" 
sample_aspect_ratio="1:1" display_aspect_ratio="1:1" pix_fmt="rgb24" 
level="-99" refs="1" r_frame_rate="25/1" avg_frame_rate="25/1" 
time_base="1/51200" start_pts="0" start_time="0.000000" nb_read_frames="4" 
nb_read_packets="4">
             <disposition default="0" dub="0" original="0" comment="0" 
lyrics="0" karaoke="0" forced="0" hearing_impaired="0" visual_impaired="0" 
clean_effects="0" attached_pic="0" timed_thumbnails="0" non_diegetic="0" 
captions="0" descriptions="0" metadata="0" dependent="0" still_image="0" 
multilayer="0"/>
             <tags>
                 <tag key="encoder" value="Lavc rawvideo"/>
diff --git a/tests/ref/fate/ffprobe_xsd b/tests/ref/fate/ffprobe_xsd
index 743746738d..0974aa5f48 100644
--- a/tests/ref/fate/ffprobe_xsd
+++ b/tests/ref/fate/ffprobe_xsd
@@ -32,14 +32,14 @@
     </packets_and_frames>
 
     <streams>
-        <stream index="0" codec_name="pcm_s16le" codec_type="audio" 
codec_tag_string="PSD[16]" codec_tag="0x10445350" sample_fmt="s16" 
sample_rate="44100" channels="1" bits_per_sample="16" initial_padding="0" 
r_frame_rate="0/0" avg_frame_rate="0/0" time_base="1/44100" start_pts="0" 
start_time="0.000000" bit_rate="705600" nb_read_frames="6" nb_read_packets="6">
+        <stream index="0" codec_name="pcm_s16le" codec_type="audio" 
codec_tag_string="PSD[16]" codec_tag="0x10445350" codec_string="" 
sample_fmt="s16" sample_rate="44100" channels="1" bits_per_sample="16" 
initial_padding="0" r_frame_rate="0/0" avg_frame_rate="0/0" time_base="1/44100" 
start_pts="0" start_time="0.000000" bit_rate="705600" nb_read_frames="6" 
nb_read_packets="6">
             <disposition default="0" dub="0" original="0" comment="0" 
lyrics="0" karaoke="0" forced="0" hearing_impaired="0" visual_impaired="0" 
clean_effects="0" attached_pic="0" timed_thumbnails="0" non_diegetic="0" 
captions="0" descriptions="0" metadata="0" dependent="0" still_image="0" 
multilayer="0"/>
             <tags>
                 <tag key="encoder" value="Lavc pcm_s16le"/>
                 <tag key="E" value="mc²"/>
             </tags>
         </stream>
-        <stream index="1" codec_name="rawvideo" codec_type="video" 
codec_tag_string="RGB[24]" codec_tag="0x18424752" width="320" height="240" 
coded_width="320" coded_height="240" has_b_frames="0" sample_aspect_ratio="1:1" 
display_aspect_ratio="4:3" pix_fmt="rgb24" level="-99" refs="1" 
r_frame_rate="25/1" avg_frame_rate="25/1" time_base="1/51200" start_pts="0" 
start_time="0.000000" nb_read_frames="4" nb_read_packets="4">
+        <stream index="1" codec_name="rawvideo" codec_type="video" 
codec_tag_string="RGB[24]" codec_tag="0x18424752" codec_string="" width="320" 
height="240" coded_width="320" coded_height="240" has_b_frames="0" 
sample_aspect_ratio="1:1" display_aspect_ratio="4:3" pix_fmt="rgb24" 
level="-99" refs="1" r_frame_rate="25/1" avg_frame_rate="25/1" 
time_base="1/51200" start_pts="0" start_time="0.000000" nb_read_frames="4" 
nb_read_packets="4">
             <disposition default="1" dub="0" original="0" comment="0" 
lyrics="0" karaoke="0" forced="0" hearing_impaired="0" visual_impaired="0" 
clean_effects="0" attached_pic="0" timed_thumbnails="0" non_diegetic="0" 
captions="0" descriptions="0" metadata="0" dependent="0" still_image="0" 
multilayer="0"/>
             <tags>
                 <tag key="encoder" value="Lavc rawvideo"/>
@@ -47,7 +47,7 @@
                 <tag key="duration_ts" 
value="field-and-tags-conflict-attempt"/>
             </tags>
         </stream>
-        <stream index="2" codec_name="rawvideo" codec_type="video" 
codec_tag_string="RGB[24]" codec_tag="0x18424752" width="100" height="100" 
coded_width="100" coded_height="100" has_b_frames="0" sample_aspect_ratio="1:1" 
display_aspect_ratio="1:1" pix_fmt="rgb24" level="-99" refs="1" 
r_frame_rate="25/1" avg_frame_rate="25/1" time_base="1/51200" start_pts="0" 
start_time="0.000000" nb_read_frames="4" nb_read_packets="4">
+        <stream index="2" codec_name="rawvideo" codec_type="video" 
codec_tag_string="RGB[24]" codec_tag="0x18424752" codec_string="" width="100" 
height="100" coded_width="100" coded_height="100" has_b_frames="0" 
sample_aspect_ratio="1:1" display_aspect_ratio="1:1" pix_fmt="rgb24" 
level="-99" refs="1" r_frame_rate="25/1" avg_frame_rate="25/1" 
time_base="1/51200" start_pts="0" start_time="0.000000" nb_read_frames="4" 
nb_read_packets="4">
             <disposition default="0" dub="0" original="0" comment="0" 
lyrics="0" karaoke="0" forced="0" hearing_impaired="0" visual_impaired="0" 
clean_effects="0" attached_pic="0" timed_thumbnails="0" non_diegetic="0" 
captions="0" descriptions="0" metadata="0" dependent="0" still_image="0" 
multilayer="0"/>
             <tags>
                 <tag key="encoder" value="Lavc rawvideo"/>
diff --git a/tests/ref/fate/flv-demux b/tests/ref/fate/flv-demux
index 429cc50874..8492bc277d 100644
--- a/tests/ref/fate/flv-demux
+++ b/tests/ref/fate/flv-demux
@@ -601,6 +601,6 @@ 
packet|codec_type=video|stream_index=0|pts=11612|pts_time=11.612000|dts=11612|dt
 
packet|codec_type=video|stream_index=0|pts=11645|pts_time=11.645000|dts=11645|dts_time=11.645000|duration=33|duration_time=0.033000|size=2600|pos=507811|flags=___|data_hash=CRC32:d35f9e6f
 
packet|codec_type=audio|stream_index=1|pts=11656|pts_time=11.656000|dts=11656|dts_time=11.656000|duration=46|duration_time=0.046000|size=346|pos=510431|flags=K__|data_hash=CRC32:4e6b44cb
 
packet|codec_type=video|stream_index=0|pts=11678|pts_time=11.678000|dts=11678|dts_time=11.678000|duration=33|duration_time=0.033000|size=1190|pos=510794|flags=__C|data_hash=CRC32:a0206c90
-stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_tag_string=[0][0][0][0]|codec_tag=0x0000|width=426|height=240|coded_width=426|coded_height=240|has_b_frames=1|sample_aspect_ratio=1:1|display_aspect_ratio=71:40|pix_fmt=yuv420p|level=21|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=left|field_order=progressive|refs=1|is_avc=true|nal_length_size=4|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=30/1|time_base=1/1000|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=393929|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=351|extradata_size=39|extradata_hash=CRC32:07b85ca9|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0
-stream|index=1|codec_name=aac|profile=1|codec_type=audio|codec_tag_string=[0][0][0][0]|codec_tag=0x0000|sample_fmt=fltp|sample_rate=22050|channels=2|channel_layout=stereo|bits_per_sample=0|initial_padding=0|id=N/A|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/1000|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=67874|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=252|extradata_size=2|extradata_hash=CRC32:d039c029|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0
+stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_tag_string=[0][0][0][0]|codec_tag=0x0000|codec_string=avc1.4d4015|width=426|height=240|coded_width=426|coded_height=240|has_b_frames=1|sample_aspect_ratio=1:1|display_aspect_ratio=71:40|pix_fmt=yuv420p|level=21|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=left|field_order=progressive|refs=1|is_avc=true|nal_length_size=4|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=30/1|time_base=1/1000|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=393929|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=351|extradata_size=39|extradata_hash=CRC32:07b85ca9|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0
+stream|index=1|codec_name=aac|profile=1|codec_type=audio|codec_tag_string=[0][0][0][0]|codec_tag=0x0000|codec_string=mp4a.40.2|sample_fmt=fltp|sample_rate=22050|channels=2|channel_layout=stereo|bits_per_sample=0|initial_padding=0|id=N/A|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/1000|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=67874|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=252|extradata_size=2|extradata_hash=CRC32:d039c029|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0
 
format|filename=Enigma_Principles_of_Lust-part.flv|nb_streams=2|nb_programs=0|nb_stream_groups=0|format_name=flv|start_time=0.000000|duration=210.209999|size=512000|bit_rate=19485|probe_score=100|tag:hasKeyframes=true|tag:hasMetadata=true|tag:datasize=11970544|tag:hasVideo=true|tag:canSeekToEnd=false|tag:lasttimestamp=210|tag:lastkeyframetimestamp=210|tag:audiosize=1791332|tag:hasAudio=true|tag:audiodelay=0|tag:videosize=10176110|tag:metadatadate=2011-02-27T11:00:33.125000Z|tag:metadatacreator=inlet
 media FLVTool2 v1.0.6 - 
http://www.inlet-media.de/flvtool2|tag:hasCuePoints=false
diff --git a/tests/ref/fate/gapless-mp3-side-data 
b/tests/ref/fate/gapless-mp3-side-data
index 878425f092..faad960637 100644
--- a/tests/ref/fate/gapless-mp3-side-data
+++ b/tests/ref/fate/gapless-mp3-side-data
@@ -593,5 +593,5 @@ 
packet|codec_type=audio|stream_index=0|pts=217866240|pts_time=15.438367|dts=2178
 
packet|codec_type=audio|stream_index=0|pts=218234880|pts_time=15.464490|dts=218234880|dts_time=15.464490|duration=368640|duration_time=0.026122|size=418|pos=248882|flags=K__|data_hash=CRC32:fbc83c3c
 
packet|codec_type=audio|stream_index=0|pts=218603520|pts_time=15.490612|dts=218603520|dts_time=15.490612|duration=368640|duration_time=0.026122|size=418|pos=249300|flags=K__|data_hash=CRC32:d5fb5f9c|side_datum/skip_samples:side_data_type=Skip
 
Samples|side_datum/skip_samples:skip_samples=0|side_datum/skip_samples:discard_padding=303|side_datum/skip_samples:skip_reason=0|side_datum/skip_samples:discard_reason=0
 
packet|codec_type=audio|stream_index=0|pts=218972160|pts_time=15.516735|dts=218972160|dts_time=15.516735|duration=368640|duration_time=0.026122|size=418|pos=249718|flags=K__|data_hash=CRC32:3789f3cf|side_datum/skip_samples:side_data_type=Skip
 
Samples|side_datum/skip_samples:skip_samples=0|side_datum/skip_samples:discard_padding=1152|side_datum/skip_samples:skip_reason=0|side_datum/skip_samples:discard_reason=0
-stream|index=0|codec_name=mp3|profile=unknown|codec_type=audio|codec_tag_string=[0][0][0][0]|codec_tag=0x0000|sample_fmt=fltp|sample_rate=44100|channels=2|channel_layout=stereo|bits_per_sample=0|initial_padding=0|id=N/A|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/14112000|start_pts=353600|start_time=0.025057|duration_ts=218521600|duration=15.484807|bit_rate=128000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=595|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:encoder=LAME3.93
 
+stream|index=0|codec_name=mp3|profile=unknown|codec_type=audio|codec_tag_string=[0][0][0][0]|codec_tag=0x0000|codec_string=mp4a.40.34|sample_fmt=fltp|sample_rate=44100|channels=2|channel_layout=stereo|bits_per_sample=0|initial_padding=0|id=N/A|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/14112000|start_pts=353600|start_time=0.025057|duration_ts=218521600|duration=15.484807|bit_rate=128000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=595|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:encoder=LAME3.93
 
 
format|filename=gapless.mp3|nb_streams=1|nb_programs=0|nb_stream_groups=0|format_name=mp3|start_time=0.025057|duration=15.484807|size=250264|bit_rate=129295|probe_score=51|tag:title=test
diff --git a/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov 
b/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
index e829903314..496b58fcfe 100644
--- a/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
+++ b/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
@@ -19,6 +19,7 @@ profile=unknown
 codec_type=video
 codec_tag_string=HapA
 codec_tag=0x41706148
+codec_string=
 width=127
 height=71
 coded_width=128
diff --git a/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov 
b/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
index 4507519991..9406cbf553 100644
--- a/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
+++ b/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
@@ -19,6 +19,7 @@ profile=unknown
 codec_type=video
 codec_tag_string=HapY
 codec_tag=0x59706148
+codec_string=
 width=127
 height=71
 coded_width=128
diff --git a/tests/ref/fate/mov-codecstring b/tests/ref/fate/mov-codecstring
new file mode 100644
index 0000000000..6a737530ad
--- /dev/null
+++ b/tests/ref/fate/mov-codecstring
@@ -0,0 +1,6 @@
+[STREAM]
+codec_string=avc1.64001e
+[/STREAM]
+[STREAM]
+codec_string=mp4a.40.2
+[/STREAM]
diff --git a/tests/ref/fate/mov-zombie b/tests/ref/fate/mov-zombie
index 84a5168adc..76564748be 100644
--- a/tests/ref/fate/mov-zombie
+++ b/tests/ref/fate/mov-zombie
@@ -129,4 +129,4 @@ 
packet|codec_type=video|stream_index=0|pts=188623|pts_time=2.095811|dts=188622|d
 
frame|media_type=video|stream_index=0|key_frame=0|pts=188623|pts_time=2.095811|pkt_dts=188622|pkt_dts_time=2.095800|best_effort_timestamp=188623|best_effort_timestamp_time=2.095811|duration=3003|duration_time=0.033367|pkt_pos=100846|pkt_size=974|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|lossless=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|alpha_mode=unspecified|side_datum/3x3_displaymatrix:side_data_type=3x3
 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000:       
131072           0           0\n00000001:            0       65536           
0\n00000002:            0           0  
1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45]
 User Data Unregistered SEI message
 
packet|codec_type=video|stream_index=0|pts=197632|pts_time=2.195911|dts=191625|dts_time=2.129167|duration=3003|duration_time=0.033367|size=580|pos=101820|flags=__C
 
frame|media_type=video|stream_index=0|key_frame=0|pts=191626|pts_time=2.129178|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=191626|best_effort_timestamp_time=2.129178|duration=3003|duration_time=0.033367|pkt_pos=99180|pkt_size=1666|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|lossless=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|alpha_mode=unspecified|side_datum/3x3_displaymatrix:side_data_type=3x3
 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000:       
131072           0           0\n00000001:            0       65536           
0\n00000002:            0           0  
1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45]
 User Data Unregistered SEI message
-stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=progressive|refs=2|is_avc=true|nal_length_size=4|id=0x1|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|extradata_size=34|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple
 Video Media 
Handler|tag:vendor_id=appl|tag:encoder=H.264|side_datum/display_matrix:side_data_type=Display
 Matrix|side_datum/display_matrix:displaymatrix=\n00000000:       131072        
   0           0\n00000001:            0       65536           0\n00000002:     
       0           0  1073741824\n|side_datum/display_matrix:rotation=0
+stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_tag_string=avc1|codec_tag=0x31637661|codec_string=avc1.4d400c|width=160|height=240|coded_width=160|coded_height=240|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=progressive|refs=2|is_avc=true|nal_length_size=4|id=0x1|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|extradata_size=34|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple
 Video Media 
Handler|tag:vendor_id=appl|tag:encoder=H.264|side_datum/display_matrix:side_data_type=Display
 Matrix|side_datum/display_matrix:displaymatrix=\n00000000:       131072        
   0           0\n00000001:            0       65536           0\n00000002:     
       0           0  1073741824\n|side_datum/display_matrix:rotation=0
diff --git a/tests/ref/fate/mxf-probe-applehdr10 
b/tests/ref/fate/mxf-probe-applehdr10
index 96a2fb00a7..cd4eb18112 100644
--- a/tests/ref/fate/mxf-probe-applehdr10
+++ b/tests/ref/fate/mxf-probe-applehdr10
@@ -5,6 +5,7 @@ profile=0
 codec_type=video
 codec_tag_string=apco
 codec_tag=0x6f637061
+codec_string=
 width=1280
 height=720
 coded_width=1280
@@ -81,6 +82,7 @@ profile=unknown
 codec_type=audio
 codec_tag_string=[0][0][0][0]
 codec_tag=0x0000
+codec_string=
 sample_fmt=s32
 sample_rate=48000
 channels=1
@@ -129,6 +131,7 @@ profile=unknown
 codec_type=audio
 codec_tag_string=[0][0][0][0]
 codec_tag=0x0000
+codec_string=
 sample_fmt=s32
 sample_rate=48000
 channels=1
diff --git a/tests/ref/fate/mxf-probe-d10 b/tests/ref/fate/mxf-probe-d10
index 3630b9c4e2..f14c4468ba 100644
--- a/tests/ref/fate/mxf-probe-d10
+++ b/tests/ref/fate/mxf-probe-d10
@@ -5,6 +5,7 @@ profile=0
 codec_type=video
 codec_tag_string=[0][0][0][0]
 codec_tag=0x0000
+codec_string=
 width=720
 height=608
 coded_width=0
@@ -72,6 +73,7 @@ profile=unknown
 codec_type=audio
 codec_tag_string=[0][0][0][0]
 codec_tag=0x0000
+codec_string=
 sample_fmt=s16
 sample_rate=48000
 channels=8
diff --git a/tests/ref/fate/mxf-probe-dnxhd b/tests/ref/fate/mxf-probe-dnxhd
index b5b53c2357..8858f8bc4d 100644
--- a/tests/ref/fate/mxf-probe-dnxhd
+++ b/tests/ref/fate/mxf-probe-dnxhd
@@ -5,6 +5,7 @@ profile=unknown
 codec_type=data
 codec_tag_string=[0][0][0][0]
 codec_tag=0x0000
+codec_string=
 id=N/A
 r_frame_rate=0/0
 avg_frame_rate=0/0
@@ -48,6 +49,7 @@ profile=unknown
 codec_type=data
 codec_tag_string=[0][0][0][0]
 codec_tag=0x0000
+codec_string=
 id=N/A
 r_frame_rate=0/0
 avg_frame_rate=0/0
@@ -91,6 +93,7 @@ profile=unknown
 codec_type=data
 codec_tag_string=[0][0][0][0]
 codec_tag=0x0000
+codec_string=
 id=N/A
 r_frame_rate=0/0
 avg_frame_rate=0/0
@@ -134,6 +137,7 @@ profile=1
 codec_type=video
 codec_tag_string=[0][0][0][0]
 codec_tag=0x0000
+codec_string=
 width=640
 height=480
 coded_width=640
diff --git a/tests/ref/fate/mxf-probe-dv25 b/tests/ref/fate/mxf-probe-dv25
index 17f7390d5e..2aa64ebc9c 100644
--- a/tests/ref/fate/mxf-probe-dv25
+++ b/tests/ref/fate/mxf-probe-dv25
@@ -5,6 +5,7 @@ profile=unknown
 codec_type=video
 codec_tag_string=[0][0][0][0]
 codec_tag=0x0000
+codec_string=
 width=720
 height=576
 coded_width=720
@@ -63,6 +64,7 @@ profile=unknown
 codec_type=audio
 codec_tag_string=[0][0][0][0]
 codec_tag=0x0000
+codec_string=
 sample_fmt=s16
 sample_rate=48000
 channels=1
@@ -111,6 +113,7 @@ profile=unknown
 codec_type=audio
 codec_tag_string=[0][0][0][0]
 codec_tag=0x0000
+codec_string=
 sample_fmt=s16
 sample_rate=48000
 channels=1
diff --git a/tests/ref/fate/mxf-probe-j2k b/tests/ref/fate/mxf-probe-j2k
index 03f9dc8728..3b45d93544 100644
--- a/tests/ref/fate/mxf-probe-j2k
+++ b/tests/ref/fate/mxf-probe-j2k
@@ -5,6 +5,7 @@ profile=1798
 codec_type=video
 codec_tag_string=[0][0][0][0]
 codec_tag=0x0000
+codec_string=
 width=640
 height=360
 coded_width=640
diff --git a/tests/ref/fate/oggopus-demux b/tests/ref/fate/oggopus-demux
index 03b7b76cf2..f99ce56d46 100644
--- a/tests/ref/fate/oggopus-demux
+++ b/tests/ref/fate/oggopus-demux
@@ -39,5 +39,5 @@ 
packet|codec_type=audio|stream_index=0|pts=35164|pts_time=0.732583|dts=35164|dts
 
packet|codec_type=audio|stream_index=0|pts=36124|pts_time=0.752583|dts=36124|dts_time=0.752583|duration=960|duration_time=0.020000|size=217|pos=841|flags=K__|data_hash=CRC32:b04fe85a
 
packet|codec_type=audio|stream_index=0|pts=37084|pts_time=0.772583|dts=37084|dts_time=0.772583|duration=960|duration_time=0.020000|size=217|pos=841|flags=K__|data_hash=CRC32:06797ece
 
packet|codec_type=audio|stream_index=0|pts=38044|pts_time=0.792583|dts=38044|dts_time=0.792583|duration=356|duration_time=0.007417|size=359|pos=841|flags=K__|data_hash=CRC32:01ca3f8f|side_datum/skip_samples:side_data_type=Skip
 
Samples|side_datum/skip_samples:skip_samples=0|side_datum/skip_samples:discard_padding=604|side_datum/skip_samples:skip_reason=0|side_datum/skip_samples:discard_reason=0
-stream|index=0|codec_name=opus|profile=unknown|codec_type=audio|codec_tag_string=[0][0][0][0]|codec_tag=0x0000|sample_fmt=fltp|sample_rate=48000|channels=2|channel_layout=stereo|bits_per_sample=0|initial_padding=356|id=N/A|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/48000|start_pts=0|start_time=0.000000|duration_ts=38756|duration=0.807417|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=41|extradata_size=19|extradata_hash=CRC32:58ba5ff3|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:ENCODER=opusenc
 from opus-tools 0.1.9|tag:ENCODER_OPTIONS=--discard-comments
+stream|index=0|codec_name=opus|profile=unknown|codec_type=audio|codec_tag_string=[0][0][0][0]|codec_tag=0x0000|codec_string=opus|sample_fmt=fltp|sample_rate=48000|channels=2|channel_layout=stereo|bits_per_sample=0|initial_padding=356|id=N/A|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/48000|start_pts=0|start_time=0.000000|duration_ts=38756|duration=0.807417|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=41|extradata_size=19|extradata_hash=CRC32:58ba5ff3|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:ENCODER=opusenc
 from opus-tools 0.1.9|tag:ENCODER_OPTIONS=--discard-comments
 
format|filename=intro-partial.opus|nb_streams=1|nb_programs=0|nb_stream_groups=0|format_name=ogg|start_time=0.000000|duration=0.807417|size=10250|bit_rate=101558|probe_score=100
diff --git a/tests/ref/fate/ts-demux b/tests/ref/fate/ts-demux
index d56cc27937..b1f78860d9 100644
--- a/tests/ref/fate/ts-demux
+++ b/tests/ref/fate/ts-demux
@@ -23,7 +23,7 @@ 
packet|codec_type=audio|stream_index=2|pts=3912642700|pts_time=43473.807778|dts=
 
packet|codec_type=video|stream_index=0|pts=3912686363|pts_time=43474.292922|dts=3912686363|dts_time=43474.292922|duration=1501|duration_time=0.016678|size=4944|pos=506660|flags=___|data_hash=CRC32:54a86cbb
 
packet|codec_type=audio|stream_index=1|pts=3912644825|pts_time=43473.831389|dts=3912644825|dts_time=43473.831389|duration=2880|duration_time=0.032000|size=906|pos=474888|flags=K__|data_hash=CRC32:0893d398
 
packet|codec_type=audio|stream_index=2|pts=3912645580|pts_time=43473.839778|dts=3912645580|dts_time=43473.839778|duration=2880|duration_time=0.032000|size=354|pos=491808|flags=K__|data_hash=CRC32:f5963fa6
-stream|index=0|codec_name=mpeg2video|profile=4|codec_type=video|codec_tag_string=[2][0][0][0]|codec_tag=0x0002|width=1280|height=720|coded_width=0|coded_height=0|has_b_frames=1|sample_aspect_ratio=1:1|display_aspect_ratio=16:9|pix_fmt=yuv420p|level=4|color_range=tv|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=left|field_order=progressive|refs=1|ts_id=32776|ts_packetsize=188|id=0x31|r_frame_rate=60000/1001|avg_frame_rate=60000/1001|time_base=1/90000|start_pts=3912669846|start_time=43474.109400|duration_ts=19519|duration=0.216878|bit_rate=15000000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=15|extradata_size=150|extradata_hash=CRC32:53134fa8|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|side_datum/cpb_properties:side_data_type=CPB
 
properties|side_datum/cpb_properties:max_bitrate=15000000|side_datum/cpb_properties:min_bitrate=0|side_datum/cpb_properties:avg_bitrate=0|side_datum/cpb_properties:buffer_size=9781248|side_datum/cpb_properties:vbv_delay=-1
-stream|index=1|codec_name=ac3|profile=unknown|codec_type=audio|codec_tag_string=[6][0][0][0]|codec_tag=0x0006|sample_fmt=fltp|sample_rate=48000|channels=6|channel_layout=5.1(side)|bits_per_sample=0|initial_padding=0|dmix_mode=0|ltrt_cmixlev=0.000000|ltrt_surmixlev=0.000000|loro_cmixlev=0.000000|loro_surmixlev=0.000000|ts_id=32776|ts_packetsize=188|id=0x34|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=3912633305|start_time=43473.703389|duration_ts=14400|duration=0.160000|bit_rate=384000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=5|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:language=eng
-stream|index=2|codec_name=ac3|profile=unknown|codec_type=audio|codec_tag_string=[6][0][0][0]|codec_tag=0x0006|sample_fmt=fltp|sample_rate=48000|channels=2|channel_layout=stereo|bits_per_sample=0|initial_padding=0|dmix_mode=0|ltrt_cmixlev=0.000000|ltrt_surmixlev=0.000000|loro_cmixlev=0.000000|loro_surmixlev=0.000000|ts_id=32776|ts_packetsize=188|id=0x35|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=3912634060|start_time=43473.711778|duration_ts=14400|duration=0.160000|bit_rate=192000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=5|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:language=es
+stream|index=0|codec_name=mpeg2video|profile=4|codec_type=video|codec_tag_string=[2][0][0][0]|codec_tag=0x0002|codec_string=|width=1280|height=720|coded_width=0|coded_height=0|has_b_frames=1|sample_aspect_ratio=1:1|display_aspect_ratio=16:9|pix_fmt=yuv420p|level=4|color_range=tv|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=left|field_order=progressive|refs=1|ts_id=32776|ts_packetsize=188|id=0x31|r_frame_rate=60000/1001|avg_frame_rate=60000/1001|time_base=1/90000|start_pts=3912669846|start_time=43474.109400|duration_ts=19519|duration=0.216878|bit_rate=15000000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=15|extradata_size=150|extradata_hash=CRC32:53134fa8|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|side_datum/cpb_properties:side_data_type=CPB
 
properties|side_datum/cpb_properties:max_bitrate=15000000|side_datum/cpb_properties:min_bitrate=0|side_datum/cpb_properties:avg_bitrate=0|side_datum/cpb_properties:buffer_size=9781248|side_datum/cpb_properties:vbv_delay=-1
+stream|index=1|codec_name=ac3|profile=unknown|codec_type=audio|codec_tag_string=[6][0][0][0]|codec_tag=0x0006|codec_string=ac-3|sample_fmt=fltp|sample_rate=48000|channels=6|channel_layout=5.1(side)|bits_per_sample=0|initial_padding=0|dmix_mode=0|ltrt_cmixlev=0.000000|ltrt_surmixlev=0.000000|loro_cmixlev=0.000000|loro_surmixlev=0.000000|ts_id=32776|ts_packetsize=188|id=0x34|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=3912633305|start_time=43473.703389|duration_ts=14400|duration=0.160000|bit_rate=384000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=5|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:language=eng
+stream|index=2|codec_name=ac3|profile=unknown|codec_type=audio|codec_tag_string=[6][0][0][0]|codec_tag=0x0006|codec_string=ac-3|sample_fmt=fltp|sample_rate=48000|channels=2|channel_layout=stereo|bits_per_sample=0|initial_padding=0|dmix_mode=0|ltrt_cmixlev=0.000000|ltrt_surmixlev=0.000000|loro_cmixlev=0.000000|loro_surmixlev=0.000000|ts_id=32776|ts_packetsize=188|id=0x35|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=3912634060|start_time=43473.711778|duration_ts=14400|duration=0.160000|bit_rate=192000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=5|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:language=es
 
format|filename=mp3ac325-4864-small.ts|nb_streams=3|nb_programs=1|nb_stream_groups=0|format_name=mpegts|start_time=43473.703389|duration=0.622889|size=512000|bit_rate=6575810|probe_score=50
diff --git a/tests/ref/fate/ts-opus-demux b/tests/ref/fate/ts-opus-demux
index d13b97aa6f..131b777ba7 100644
--- a/tests/ref/fate/ts-opus-demux
+++ b/tests/ref/fate/ts-opus-demux
@@ -510,5 +510,5 @@ 
packet|codec_type=audio|stream_index=0|pts=914400|pts_time=10.160000|dts=914400|
 
packet|codec_type=audio|stream_index=0|pts=916200|pts_time=10.180000|dts=916200|dts_time=10.180000|duration=1800|duration_time=0.020000|size=760|pos=508728|flags=K__|data_hash=CRC32:fdf0ce4a|side_datum/mpegts_stream_id:side_data_type=MPEGTS
 Stream ID|side_datum/mpegts_stream_id:id=189
 
packet|codec_type=audio|stream_index=0|pts=918000|pts_time=10.200000|dts=918000|dts_time=10.200000|duration=1800|duration_time=0.020000|size=761|pos=510044|flags=K__|data_hash=CRC32:75113c11|side_datum/mpegts_stream_id:side_data_type=MPEGTS
 Stream ID|side_datum/mpegts_stream_id:id=189
 
packet|codec_type=audio|stream_index=0|pts=919800|pts_time=10.220000|dts=919800|dts_time=10.220000|duration=1800|duration_time=0.020000|size=759|pos=510984|flags=K__|data_hash=CRC32:59fc266f|side_datum/mpegts_stream_id:side_data_type=MPEGTS
 Stream ID|side_datum/mpegts_stream_id:id=189
-stream|index=0|codec_name=opus|profile=unknown|codec_type=audio|codec_tag_string=Opus|codec_tag=0x7375704f|sample_fmt=fltp|sample_rate=48000|channels=8|channel_layout=7.1|bits_per_sample=0|initial_padding=0|ts_id=51338|ts_packetsize=188|id=0x44|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=919800|duration=10.220000|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=512|extradata_size=29|extradata_hash=CRC32:6d6089a7|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0
+stream|index=0|codec_name=opus|profile=unknown|codec_type=audio|codec_tag_string=Opus|codec_tag=0x7375704f|codec_string=opus|sample_fmt=fltp|sample_rate=48000|channels=8|channel_layout=7.1|bits_per_sample=0|initial_padding=0|ts_id=51338|ts_packetsize=188|id=0x44|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=919800|duration=10.220000|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=512|extradata_size=29|extradata_hash=CRC32:6d6089a7|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0
 
format|filename=test-8-7.1.opus-small.ts|nb_streams=1|nb_programs=1|nb_stream_groups=0|format_name=mpegts|start_time=0.000000|duration=10.220000|size=512000|bit_rate=400782|probe_score=50
diff --git a/tests/ref/fate/ts-small-demux b/tests/ref/fate/ts-small-demux
index 6e29b29896..5226cc1d6b 100644
--- a/tests/ref/fate/ts-small-demux
+++ b/tests/ref/fate/ts-small-demux
@@ -72,5 +72,5 @@ 
packet|codec_type=video|stream_index=0|pts=546000|pts_time=6.066667|dts=546000|d
 
packet|codec_type=video|stream_index=0|pts=552000|pts_time=6.133333|dts=552000|dts_time=6.133333|duration=6000|duration_time=0.066667|size=16|pos=15604|flags=___|data_hash=CRC32:cca62b67|side_datum/mpegts_stream_id:side_data_type=MPEGTS
 Stream ID|side_datum/mpegts_stream_id:id=224
 
packet|codec_type=video|stream_index=0|pts=558000|pts_time=6.200000|dts=558000|dts_time=6.200000|duration=6000|duration_time=0.066667|size=16|pos=15792|flags=___|data_hash=CRC32:27b943ef|side_datum/mpegts_stream_id:side_data_type=MPEGTS
 Stream ID|side_datum/mpegts_stream_id:id=224
 
packet|codec_type=video|stream_index=0|pts=564000|pts_time=6.266667|dts=564000|dts_time=6.266667|duration=6000|duration_time=0.066667|size=16|pos=16356|flags=___|data_hash=CRC32:f7116111
-stream|index=0|codec_name=h264|profile=578|codec_type=video|codec_tag_string=[27][0][0][0]|codec_tag=0x001b|width=82|height=144|coded_width=82|coded_height=144|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=41:72|pix_fmt=yuv420p|level=10|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=left|field_order=progressive|refs=1|is_avc=false|nal_length_size=0|ts_id=1|ts_packetsize=188|id=0x100|r_frame_rate=15/1|avg_frame_rate=15/1|time_base=1/90000|start_pts=126000|start_time=1.400000|duration_ts=444000|duration=4.933333|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=74|extradata_size=35|extradata_hash=CRC32:e62cae27|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0
+stream|index=0|codec_name=h264|profile=578|codec_type=video|codec_tag_string=[27][0][0][0]|codec_tag=0x001b|codec_string=avc1.42c00a|width=82|height=144|coded_width=82|coded_height=144|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=41:72|pix_fmt=yuv420p|level=10|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=left|field_order=progressive|refs=1|is_avc=false|nal_length_size=0|ts_id=1|ts_packetsize=188|id=0x100|r_frame_rate=15/1|avg_frame_rate=15/1|time_base=1/90000|start_pts=126000|start_time=1.400000|duration_ts=444000|duration=4.933333|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=74|extradata_size=35|extradata_hash=CRC32:e62cae27|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0
 
format|filename=h264small.ts|nb_streams=1|nb_programs=1|nb_stream_groups=0|format_name=mpegts|start_time=1.400000|duration=4.933333|size=16544|bit_rate=26828|probe_score=50
diff --git a/tests/ref/fate/ts-timed-id3-demux 
b/tests/ref/fate/ts-timed-id3-demux
index 3de1ca2990..f711373d5e 100644
--- a/tests/ref/fate/ts-timed-id3-demux
+++ b/tests/ref/fate/ts-timed-id3-demux
@@ -1,4 +1,4 @@
 
packet|codec_type=data|stream_index=0|pts=126000|pts_time=1.400000|dts=126000|dts_time=1.400000|duration=N/A|duration_time=N/A|size=26|pos=564|flags=K__|data_hash=CRC32:469f474b|side_datum/mpegts_stream_id:side_data_type=MPEGTS
 Stream ID|side_datum/mpegts_stream_id:id=189
 
packet|codec_type=data|stream_index=0|pts=577350|pts_time=6.415000|dts=577350|dts_time=6.415000|duration=N/A|duration_time=N/A|size=26|pos=1316|flags=K__|data_hash=CRC32:469f474b|side_datum/mpegts_stream_id:side_data_type=MPEGTS
 Stream ID|side_datum/mpegts_stream_id:id=189
-stream|index=0|codec_name=timed_id3|profile=unknown|codec_type=data|codec_tag_string=ID3
 
|codec_tag=0x20334449|ts_id=1|ts_packetsize=188|id=0x100|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=126000|start_time=1.400000|duration_ts=451350|duration=5.015000|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=2|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0
+stream|index=0|codec_name=timed_id3|profile=unknown|codec_type=data|codec_tag_string=ID3
 
|codec_tag=0x20334449|codec_string=|ts_id=1|ts_packetsize=188|id=0x100|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=126000|start_time=1.400000|duration_ts=451350|duration=5.015000|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=2|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0
 
format|filename=id3.ts|nb_streams=1|nb_programs=1|nb_stream_groups=0|format_name=mpegts|start_time=1.400000|duration=5.015000|size=1504|bit_rate=2399|probe_score=2
-- 
2.49.1

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to