GstH264NalUnit nalu;
GstH264ParserResult pres;
gint framesize;
+#ifdef TIZEN_FEATURE_H264PARSE_MODIFICATION
+ GstH264NalUnitType last_nal_type = GST_H264_NAL_UNKNOWN;
+#endif
if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (frame->buffer,
GST_BUFFER_FLAG_DISCONT))) {
case GST_H264_PARSER_OK:
GST_DEBUG_OBJECT (h264parse, "complete nal (offset, size): (%u, %u) ",
nalu.offset, nalu.size);
+#ifdef TIZEN_FEATURE_H264PARSE_MODIFICATION
+ last_nal_type = nalu.type;
+#endif
break;
case GST_H264_PARSER_NO_NAL_END:
/* In NAL alignment, assume the NAL is complete */
("Error parsing H.264 stream"), ("Invalid H.264 stream"));
goto invalid_stream;
case GST_H264_PARSER_NO_NAL:
+#ifdef TIZEN_FEATURE_H264PARSE_MODIFICATION
+ if (last_nal_type == GST_H264_NAL_SEQ_END) {
+ GST_WARNING_OBJECT (h264parse, "No H.264 NAL unit found, but last "
+ "nal type is SEQ_END, So push remain buffer");
+ gst_buffer_unmap (buffer, &map);
+ gst_h264_parse_parse_frame (parse, frame);
+ return gst_base_parse_finish_frame (parse, frame, size);
+ }
+#endif
GST_ELEMENT_ERROR (h264parse, STREAM, FORMAT,
("Error parsing H.264 stream"), ("No H.264 NAL unit found"));
goto invalid_stream;