diff options
author | Julian Scheel <julian@jusst.de> | 2008-12-08 20:35:46 +0000 |
---|---|---|
committer | Julian Scheel <julian@jusst.de> | 2008-12-08 20:35:46 +0000 |
commit | adb82413dc9e704d644b237928c4a7d89708fbb7 (patch) | |
tree | 15c5a9fae8b97bd755f19dafeda3418a2556f092 /src | |
parent | ab45a7f79778b9bbc3a20877a165eb077fd43ee0 (diff) | |
download | xine-lib-adb82413dc9e704d644b237928c4a7d89708fbb7.tar.gz xine-lib-adb82413dc9e704d644b237928c4a7d89708fbb7.tar.bz2 |
NAL WIP.
Diffstat (limited to 'src')
-rw-r--r-- | src/libvdpau/h264_parser.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libvdpau/h264_parser.c b/src/libvdpau/h264_parser.c index c888d9e1d..555c253b7 100644 --- a/src/libvdpau/h264_parser.c +++ b/src/libvdpau/h264_parser.c @@ -961,12 +961,13 @@ void free_parser(struct nal_parser *parser) int parse_frame(struct nal_parser *parser, uint8_t *inbuf, int inbuf_len, uint8_t **ret_buf, uint32_t *ret_len, uint32_t *ret_slice_cnt) { - int next_nal; + int next_nal, second_next_nal; int parsed_len = 0; int search_offset = 0; while ((next_nal - = seek_for_nal(inbuf + search_offset, inbuf_len - parsed_len)) >= 0) { + = seek_for_nal(inbuf + search_offset, inbuf_len - parsed_len)) >= 0 && + (second_next_nal = seek_for_nal(inbuf + next_nal + 3, inbuf_len - parsed_len - next_nal - 3)) >= 0) { // save buffer up to the nal-start if (parser->buf_len + next_nal + search_offset > MAX_FRAME_SIZE) { printf("buf underrun!!\n"); |