summaryrefslogtreecommitdiff
path: root/gst-libs/gst/codecparsers/gsth264parser.c
diff options
context:
space:
mode:
authorThiago Santos <ts.santos@sisa.samsung.com>2014-01-20 17:24:54 -0300
committerThiago Santos <ts.santos@sisa.samsung.com>2014-01-22 08:36:30 -0300
commit4f0fc9a16fe0e340c48107cf62d17f75302d30d0 (patch)
tree02143e1dba28417188674d84a8d81e9904d8dad5 /gst-libs/gst/codecparsers/gsth264parser.c
parent99c2aa14c363c087ca690a698c40e11fb84ca118 (diff)
downloadgstreamer-plugins-bad-4f0fc9a16fe0e340c48107cf62d17f75302d30d0.tar.gz
h264parser: remove trailling 0x00 bytes as the spec doesn't allow them
The spec states that the last byte of a NAL 'shall not' be 0x00 and it is allowed for byte-stream format to add padding 0x00 for alignment. So our parser should strip any trailling 0x00. https://bugzilla.gnome.org/show_bug.cgi?id=721384
Diffstat (limited to 'gst-libs/gst/codecparsers/gsth264parser.c')
-rw-r--r--gst-libs/gst/codecparsers/gsth264parser.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gst-libs/gst/codecparsers/gsth264parser.c b/gst-libs/gst/codecparsers/gsth264parser.c
index 93bea9735..4f0f986cc 100644
--- a/gst-libs/gst/codecparsers/gsth264parser.c
+++ b/gst-libs/gst/codecparsers/gsth264parser.c
@@ -1283,7 +1283,10 @@ gst_h264_parser_identify_nalu (GstH264NalParser * nalparser,
return GST_H264_PARSER_NO_NAL_END;
}
- if (off2 > 0 && data[nalu->offset + off2 - 1] == 00)
+ /* Mini performance improvement:
+ * We could have a way to store how many 0s were skipped to avoid
+ * parsing them again on the next NAL */
+ while (off2 > 0 && data[nalu->offset + off2 - 1] == 00)
off2--;
nalu->size = off2;