[FFmpeg-cvslog] oggparsevorbis: Support official chapter extension

James Almer git at videolan.org
Sun Jul 14 22:39:58 CEST 2013


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Sat Jul 13 06:09:38 2013 -0300| [04b9836274f390e39879c2666f7967990f0382cc] | committer: Michael Niedermayer

oggparsevorbis: Support official chapter extension

Fixes ticket #1833

Signed-off-by: James Almer <jamrial at gmail.com>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=04b9836274f390e39879c2666f7967990f0382cc
---

 libavformat/oggparsevorbis.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c
index a21b3a9..719cf7b 100644
--- a/libavformat/oggparsevorbis.c
+++ b/libavformat/oggparsevorbis.c
@@ -41,10 +41,10 @@ static int ogm_chapter(AVFormatContext *as, uint8_t *key, uint8_t *val)
     int i, cnum, h, m, s, ms, keylen = strlen(key);
     AVChapter *chapter = NULL;
 
-    if (keylen < 9 || sscanf(key, "CHAPTER%02d", &cnum) != 1)
+    if (keylen < 9 || sscanf(key, "CHAPTER%03d", &cnum) != 1)
         return 0;
 
-    if (keylen == 9) {
+    if (keylen <= 10) {
         if (sscanf(val, "%02d:%02d:%02d.%03d", &h, &m, &s, &ms) < 4)
             return 0;
 
@@ -52,7 +52,7 @@ static int ogm_chapter(AVFormatContext *as, uint8_t *key, uint8_t *val)
                        ms + 1000*(s + 60*(m + 60*h)),
                        AV_NOPTS_VALUE, NULL);
         av_free(val);
-    } else if (!strcmp(key+9, "NAME")) {
+    } else if (!strcmp(key+(keylen-4), "NAME")) {
         for(i = 0; i < as->nb_chapters; i++)
             if (as->chapters[i]->id == cnum) {
                 chapter = as->chapters[i];



More information about the ffmpeg-cvslog mailing list