GST_DEBUG_FUNCPTR (gst_asf_demux_activate_mode));
gst_element_add_pad (GST_ELEMENT (demux), demux->sinkpad);
+#ifdef TIZEN_FEATURE_ASFDEMUX_DISABLE_UNSUPPORTED_FORMAT
+ demux->is_supported_format = TRUE;
+#endif
+
/* set initial state */
gst_asf_demux_reset (demux, FALSE);
}
&data, &size)) {
goto not_enough_data;
}
-
+#ifdef TIZEN_FEATURE_ASFDEMUX_DISABLE_UNSUPPORTED_FORMAT
+ /* Compare video format WMV*, WVC* */
+ if (((video_format_object.tag & 0x00ffffff) == (guint32)(('W')|('M')<<8|('V')<<16))
+ || ((video_format_object.tag & 0x00ffffff) == (guint32)(('W')|('V')<<8|('C')<<16))) {
+ GST_ERROR_OBJECT (demux, "WMV file format is not supported.");
+ demux->is_supported_format = FALSE;
+ return NULL;
+ }
+#endif
stream = gst_asf_demux_add_video_stream (demux, &video_format_object,
stream_id, &data, &size);
stream = gst_asf_demux_parse_stream_object (demux, stream_obj_data, len);
g_free (stream_obj_data);
+#ifdef TIZEN_FEATURE_ASFDEMUX_DISABLE_UNSUPPORTED_FORMAT
+ if ((stream == NULL) && (demux->is_supported_format == FALSE)) {
+ g_free (esp.payload_extensions);
+ return GST_FLOW_NOT_SUPPORTED;
+ }
+#endif
+
done:
if (stream) {
switch (obj.id) {
case ASF_OBJ_STREAM:
gst_asf_demux_parse_stream_object (demux, *p_data, obj_data_size);
+#ifdef TIZEN_FEATURE_ASFDEMUX_MODIFICATION
+ if (demux->is_supported_format == FALSE) {
+ ret = GST_FLOW_NOT_SUPPORTED;
+ break;
+ }
+#endif
ret = GST_FLOW_OK;
break;
case ASF_OBJ_FILE:
#include "asfheaders.h"
G_BEGIN_DECLS
-
+
#define GST_TYPE_ASF_DEMUX \
(gst_asf_demux_get_type())
#define GST_ASF_DEMUX(obj) \
/* extended stream properties (optional) */
AsfStreamExtProps ext_props;
-
+
gboolean inspect_payload;
} AsfStream;
GstClockTime sidx_interval; /* interval between entries in ns */
guint sidx_num_entries; /* number of index entries */
AsfSimpleIndexEntry *sidx_entries; /* packet number for each entry */
-
+
GSList *other_streams; /* remember streams that are in header but have unknown type */
/* For reverse playback */
GstASF3DMode asf_3D_mode;
gboolean saw_file_header;
+#ifdef TIZEN_FEATURE_ASFDEMUX_DISABLE_UNSUPPORTED_FORMAT
+ gboolean is_supported_format;
+#endif
};
struct _GstASFDemuxClass {
-DTIZEN_FEATURE_TRUSTZONE\
%endif
-DTIZEN_FEATURE_ASFDEMUX_CHECK_DATA_SIZE\
+ -DTIZEN_FEATURE_ASFDEMUX_DISABLE_UNSUPPORTED_FORMAT\
-fstack-protector-strong\
-Wl,-z,relro\
-D_FORTIFY_SOURCE=2"
%exclude %{_datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs
%endif
%{_libdir}/gstreamer-1.0/libgstamrwbdec.so
-
-