comparison matroskadec.c @ 3323:4bf98e198eec libavformat

Add id to AVChapter, untested (where do i find matroska files with chapters?).
author michael
date Fri, 23 May 2008 13:02:27 +0000
parents 609eabc17cb2
children 374e74567a4e
comparison
equal deleted inserted replaced
3322:97f7b77a969b 3323:4bf98e198eec
2158 } 2158 }
2159 2159
2160 switch (id) { 2160 switch (id) {
2161 case MATROSKA_ID_EDITIONENTRY: { 2161 case MATROSKA_ID_EDITIONENTRY: {
2162 uint64_t end = AV_NOPTS_VALUE, start = AV_NOPTS_VALUE; 2162 uint64_t end = AV_NOPTS_VALUE, start = AV_NOPTS_VALUE;
2163 int64_t uid= -1;
2163 char* title = NULL; 2164 char* title = NULL;
2164 /* if there is more than one chapter edition 2165 /* if there is more than one chapter edition
2165 we take only the first one */ 2166 we take only the first one */
2166 if(s->chapters) { 2167 if(s->chapters) {
2167 ebml_read_skip(matroska); 2168 ebml_read_skip(matroska);
2233 break; 2234 break;
2234 } 2235 }
2235 } 2236 }
2236 break; 2237 break;
2237 2238
2239 case MATROSKA_ID_CHAPTERUID:
2240 res = ebml_read_uint(matroska, &id, &uid);
2241 break;
2238 default: 2242 default:
2239 av_log(s, AV_LOG_INFO, "Ignoring unknown Chapter atom ID 0x%x\n", id); 2243 av_log(s, AV_LOG_INFO, "Ignoring unknown Chapter atom ID 0x%x\n", id);
2240 case MATROSKA_ID_CHAPTERUID:
2241 case MATROSKA_ID_CHAPTERFLAGHIDDEN: 2244 case MATROSKA_ID_CHAPTERFLAGHIDDEN:
2242 case EBML_ID_VOID: 2245 case EBML_ID_VOID:
2243 res = ebml_read_skip(matroska); 2246 res = ebml_read_skip(matroska);
2244 break; 2247 break;
2245 } 2248 }
2248 matroska->level_up--; 2251 matroska->level_up--;
2249 break; 2252 break;
2250 } 2253 }
2251 } 2254 }
2252 2255
2253 if (start != AV_NOPTS_VALUE) { 2256 if (start != AV_NOPTS_VALUE && uid != -1) {
2254 start = start * AV_TIME_BASE / 1000000000; 2257 start = start * AV_TIME_BASE / 1000000000;
2255 if (end != AV_NOPTS_VALUE) 2258 if (end != AV_NOPTS_VALUE)
2256 end = end * AV_TIME_BASE / 1000000000; 2259 end = end * AV_TIME_BASE / 1000000000;
2257 res = ff_new_chapter(s, start, end, title); 2260 res = ff_new_chapter(s, uid, start, end, title);
2258 } 2261 }
2259 av_free(title); 2262 av_free(title);
2260 break; 2263 break;
2261 2264
2262 default: 2265 default: