@@ -2250,7 +2250,7 @@ static int subtitle_thread(void *arg)
pts = 0;
- if (got_subtitle && sp->sub.format == 0) {
+ if (got_subtitle && sp->sub.format == AV_SUBTITLE_FMT_BITMAP) {
if (sp->sub.pts != AV_NOPTS_VALUE)
pts = sp->sub.pts / (double)AV_TIME_BASE;
sp->pts = pts;
@@ -2212,6 +2212,7 @@ static void show_subtitle(WriterContext *w, AVSubtitle *sub, AVStream *stream,
AVFormatContext *fmt_ctx)
{
AVBPrint pbuf;
+ const char *s;
av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
@@ -2220,7 +2221,27 @@ static void show_subtitle(WriterContext *w, AVSubtitle *sub, AVStream *stream,
print_str ("media_type", "subtitle");
print_ts ("pts", sub->pts);
print_time("pts_time", sub->pts, &AV_TIME_BASE_Q);
- print_int ("format", sub->format);
+
+ // Remain compatible with previous outputs?
+ switch (sub->format) {
+ case AV_SUBTITLE_FMT_BITMAP:
+ print_int ("format", 0);
+ break;
+ case AV_SUBTITLE_FMT_TEXT:
+ print_int ("format", 1);
+ break;
+ case AV_SUBTITLE_FMT_ASS:
+ print_int ("format", 1);
+ break;
+ default:
+ print_int ("format", -1);
+ break;
+ }
+
+ s = av_get_subtitle_fmt_name(sub->format);
+ if (s) print_str ("format_str", s);
+ else print_str_opt("format_str", "unknown");
+
print_int ("start_display_time", sub->start_display_time);
print_int ("end_display_time", sub->end_display_time);
print_int ("num_rects", sub->num_rects);
Signed-off-by: softworkz <softworkz@hotmail.com> --- fftools/ffplay.c | 2 +- fftools/ffprobe.c | 23 ++++++++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-)