From 234e68d6bccae382f64e1adac621ba2f202eac5b Mon Sep 17 00:00:00 2001 From: conrad Date: Fri, 14 Nov 2008 21:15:41 +0000 Subject: [PATCH] oggz_write: Allow negative granulepos immediately after headers, for Dirac. This in turn removes the "Granulepos decreasing within track" oggz-validate error for this case. git-svn-id: http://svn.annodex.net/liboggz/trunk@3781 8158c8cd-e7e1-0310-9fa4-c5954c97daef --- src/liboggz/oggz_write.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/liboggz/oggz_write.c b/src/liboggz/oggz_write.c index a3d8832..1f212e8 100644 --- a/src/liboggz/oggz_write.c +++ b/src/liboggz/oggz_write.c @@ -271,7 +271,9 @@ oggz_write_feed (OGGZ * oggz, ogg_packet * op, long serialno, int flush, if (strict) { if (op->bytes < 0) return OGGZ_ERR_BAD_BYTES; if (!suffix && b_o_s != stream->b_o_s) return OGGZ_ERR_BAD_B_O_S; - if (op->granulepos != -1 && op->granulepos < stream->granulepos) + if (op->granulepos != -1 && op->granulepos < stream->granulepos && + /* Allow negative granulepos immediately after headers, for Dirac: */ + !(stream->granulepos == 0 && op->granulepos < 0)) return OGGZ_ERR_BAD_GRANULEPOS; /* Allow packetno == -1 to indicate oggz should fill it in; otherwise: -- GitLab