1 commit 72631c9afb1b8d94a5639c6300e9e34cd2ee6859
2 Author: hschang <chang@dev3>
3 Date: Mon Dec 14 17:17:50 2015 +0900
5 dvbvideosink : fix no video problem with "FFmpeg MPEG-4" codec.
7 https://github.com/christophecvr/gstreamer1.0-plugin-multibox-dvbmediasink/commit/cefca9e0a897a806a577bc667aab8f3cc13fdad6
9 diff --git a/gstdvbvideosink.c b/gstdvbvideosink.c
10 index f50929e..7a4f5b4 100644
11 --- a/gstdvbvideosink.c
12 +++ b/gstdvbvideosink.c
13 @@ -517,6 +517,25 @@ static gboolean gst_dvbvideosink_event(GstBaseSink *sink, GstEvent *event)
19 + GstTagList *taglist;
20 + gst_event_parse_tag(event, &taglist);
21 + gchar *vcodec_value = NULL;
22 + GST_INFO_OBJECT(self,"[*] TAG %"GST_PTR_FORMAT, taglist);
23 + gst_tag_list_get_string (taglist, "video-codec", &vcodec_value);
26 + if(!strncmp(vcodec_value,"FFmpeg MPEG-4", 13) && self->mpeg4_no_fourcc)
28 + self->stream_type = STREAMTYPE_XVID;
29 + self->use_dts = TRUE;
30 + GST_INFO_OBJECT (self, "[*] VIDEO_CODEC = %s, set STREAMTYPE_XVID", vcodec_value);
33 + ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event);
37 ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event);
39 @@ -1283,6 +1302,7 @@ static gboolean gst_dvbvideosink_set_caps(GstBaseSink *basesink, GstCaps *caps)
40 const char *mimetype = gst_structure_get_name (structure);
41 self->stream_type = STREAMTYPE_UNKNOWN;
42 self->must_send_header = TRUE;
43 + self->mpeg4_no_fourcc = FALSE;
45 GST_INFO_OBJECT (self, "caps = %" GST_PTR_FORMAT, caps);
47 @@ -1320,6 +1340,9 @@ static gboolean gst_dvbvideosink_set_caps(GstBaseSink *basesink, GstCaps *caps)
48 fourcc = GST_STR_FOURCC(value);
52 + self->mpeg4_no_fourcc = TRUE;
54 case GST_MAKE_FOURCC('R', 'M', 'P', '4'):
55 case GST_MAKE_FOURCC('x', 'v', 'i', 'd'):
56 case GST_MAKE_FOURCC('X', 'V', 'I', 'D'):
57 diff --git a/gstdvbvideosink.h b/gstdvbvideosink.h
58 index 8577f2d..d055d4a 100644
59 --- a/gstdvbvideosink.h
60 +++ b/gstdvbvideosink.h
61 @@ -117,6 +117,8 @@ struct _GstDVBVideoSink
62 gboolean must_send_header;
66 + gboolean mpeg4_no_fourcc;
69 struct _GstDVBVideoSinkClass