From cb0e4b2059607a8bb2303ac6608da6ab7a401807 Mon Sep 17 00:00:00 2001 From: Mark Nauwelaerts Date: Fri, 28 Sep 2012 16:51:01 +0200 Subject: [PATCH] avidemux: recognize all xsub frames as keyframes Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684977 --- gst/avi/avi-ids.h | 1 + gst/avi/gstavidemux.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/gst/avi/avi-ids.h b/gst/avi/avi-ids.h index 7b724df..695a4f8 100644 --- a/gst/avi/avi-ids.h +++ b/gst/avi/avi-ids.h @@ -49,6 +49,7 @@ typedef struct _gst_riff_avih { /* vprp (video properties) ODML header */ /* see ODML spec for some/more explanation */ #define GST_RIFF_TAG_vprp GST_MAKE_FOURCC ('v','p','r','p') +#define GST_RIFF_DXSB GST_MAKE_FOURCC ('D','X','S','B') #define GST_RIFF_VPRP_VIDEO_FIELDS (2) typedef struct _gst_riff_vprp_video_field_desc { diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 533e6bb..434c650 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -2656,6 +2656,9 @@ gst_avi_demux_parse_index (GstAviDemux * avi, GstBuffer * buf) if (stream->strh->type == GST_RIFF_FCC_auds) { /* all audio frames are keyframes */ ENTRY_SET_KEYFRAME (&entry); + } else if (stream->strf.vids->compression == GST_RIFF_DXSB) { + /* all xsub frames are keyframes */ + ENTRY_SET_KEYFRAME (&entry); } else { guint32 flags; /* else read flags */ -- 2.7.4