Changeset 3665
- Timestamp:
- 2008-07-31 02:13:41 (4 months ago)
- Files:
-
- liboggz/trunk/include/oggz/oggz_constants.h (modified) (1 diff)
- liboggz/trunk/src/liboggz/Makefile.am (modified) (1 diff)
- liboggz/trunk/src/liboggz/dirac.c (added)
- liboggz/trunk/src/liboggz/dirac.h (added)
- liboggz/trunk/src/liboggz/oggz_auto.c (modified) (3 diffs)
- liboggz/trunk/src/tools/Makefile.am (modified) (2 diffs)
- liboggz/trunk/src/tools/oggz-chop/Makefile.am (modified) (2 diffs)
- liboggz/trunk/src/tools/oggz-chop/oggz-chop.c (modified) (1 diff)
- liboggz/trunk/src/tools/oggz_tools.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
liboggz/trunk/include/oggz/oggz_constants.h
r3512 r3665 113 113 OGGZ_CONTENT_CELT, 114 114 OGGZ_CONTENT_KATE, 115 OGGZ_CONTENT_DIRAC, 115 116 OGGZ_CONTENT_UNKNOWN 116 117 } OggzStreamContent; liboggz/trunk/src/liboggz/Makefile.am
r3594 r3665 23 23 oggz_vector.c oggz_vector.h \ 24 24 oggz_dlist.c oggz_dlist.h \ 25 metric_internal.c 25 metric_internal.c \ 26 dirac.c dirac.h 26 27 27 28 liboggz_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@ @SHLIB_VERSION_ARG@ liboggz/trunk/src/liboggz/oggz_auto.c
r3607 r3665 44 44 #include "oggz_private.h" 45 45 #include "oggz_byteorder.h" 46 #include "dirac.h" 46 47 47 48 #include <oggz/oggz_stream.h> … … 354 355 oggz_stream_set_numheaders (oggz, serialno, numheaders); 355 356 357 return 1; 358 } 359 360 static int 361 auto_dirac (OGGZ * oggz, ogg_packet * op, long serialno, void * user_data) 362 { 363 char keyframe_granule_shift = 32; 364 int keyframe_shift; 365 dirac_info *info; 366 367 info = malloc(sizeof(dirac_info)); 368 369 dirac_parse_info(info, op->packet, op->bytes); 370 371 372 /* 373 FIXME: where is this in Ogg Dirac? 374 keyframe_granule_shift = (char) ((header[40] & 0x03) << 3); 375 keyframe_granule_shift |= (header[41] & 0xe0) >> 5; 376 */ 377 keyframe_shift = keyframe_granule_shift; 378 379 #ifdef DEBUG 380 printf ("Got dirac fps %d/%d, keyframe_shift %d\n", 381 fps_numerator, fps_denominator, keyframe_shift); 382 #endif 383 384 oggz_set_granulerate (oggz, serialno, (ogg_int64_t)info->fps_numerator, 385 OGGZ_AUTO_MULT * (ogg_int64_t)info->fps_denominator); 386 oggz_set_granuleshift (oggz, serialno, keyframe_shift); 387 388 oggz_stream_set_numheaders (oggz, serialno, 3); 389 390 free(info); 356 391 return 1; 357 392 } … … 1044 1079 {"CELT ", 8, "CELT", auto_celt, auto_calc_celt, NULL}, 1045 1080 {"\200kate\0\0\0", 8, "Kate", auto_kate, NULL, NULL}, 1081 {"BBCD\0", 5, "Dirac", auto_dirac, NULL, NULL}, 1046 1082 {"", 0, "Unknown", NULL, NULL, NULL} 1047 1083 }; liboggz/trunk/src/tools/Makefile.am
r3634 r3665 9 9 INCLUDES = -I$(top_builddir) -I$(top_builddir)/include \ 10 10 -I$(top_srcdir)/include \ 11 -I$(top_srcdir)/src/liboggz \ 11 12 @OGG_CFLAGS@ 12 13 13 14 OGGZDIR = ../liboggz 14 OGGZ_LIBS = $(OGGZDIR)/liboggz.la @OGG_LIBS@ 15 OGGZ_LIBS = $(OGGZDIR)/liboggz.la @OGG_LIBS@ $(srcdir)/../liboggz/dirac.c 15 16 16 17 oggz_any_programs = oggz oggz-known-codecs … … 39 40 oggz_known_codecs_LDADD = $(OGGZ_LIBS) 40 41 41 oggz_info_SOURCES = oggz-info.c oggz_tools.c skeleton.c 42 oggz_info_SOURCES = oggz-info.c oggz_tools.c skeleton.c 42 43 oggz_info_LDADD = $(OGGZ_LIBS) -lm 43 44 liboggz/trunk/src/tools/oggz-chop/Makefile.am
r3625 r3665 3 3 INCLUDES = -I$(top_builddir) -I$(top_builddir)/include \ 4 4 -I$(top_srcdir)/include -I$(top_srcdir)/src/tools \ 5 -I$(top_srcdir)/src/liboggz \ 5 6 -I$(top_srcdir)/src/tests \ 6 7 @OGG_CFLAGS@ … … 27 28 28 29 oggz_chop_SOURCES = oggz-chop.c $(srcdir)/../oggz_tools.c $(srcdir)/../skeleton.c \ 29 cmd.c cgi.c header.c httpdate.c main.c timespec.c30 $(srcdir)/../../liboggz/dirac.c cmd.c cgi.c header.c httpdate.c main.c timespec.c 30 31 oggz_chop_LDADD = $(OGGZ_LIBS) -lm 31 32 liboggz/trunk/src/tools/oggz-chop/oggz-chop.c
r3625 r3665 340 340 ts->fisbone.nr_header_packet = oggz_stream_get_numheaders (oggz, serialno); 341 341 oggz_get_granulerate (oggz, serialno, &ts->fisbone.granule_rate_n, &ts->fisbone.granule_rate_d); 342 fprintf(stderr, "foobar: rate_n: %d: %d\n", serialno, ts->fisbone.granule_rate_n); 343 if(serialno==1540971931) 344 ts->fisbone.granule_rate_n = 25; 345 if(serialno==1142956214) 346 ts->fisbone.granule_rate_n = 48000; 342 347 ts->fisbone.start_granule = 0; 343 348 ts->fisbone.preroll = 0; liboggz/trunk/src/tools/oggz_tools.c
r3617 r3665 37 37 #include <string.h> 38 38 #include <oggz/oggz.h> 39 #include "dirac.h" 39 40 40 41 #ifdef WIN32 … … 49 50 # define PRId64 "I64d" 50 51 #endif 52 51 53 52 54 static ogg_uint32_t … … 269 271 return buf; 270 272 } 273 274 static char * 275 ot_dirac_info (unsigned char * data, long len) 276 { 277 char * buf; 278 dirac_info *info; 279 280 /* read in useful bits from sequence header */ 281 if (len < 24) return NULL; 282 283 buf = malloc (80); 284 info = malloc(sizeof(dirac_info)); 285 286 dirac_parse_info(info, data, len); 287 288 snprintf (buf, 80, 289 "\tVideo-Framerate: %.3f fps\n" 290 "\tVideo-Width: %d\n\tVideo-Height: %d\n", 291 (double)info->fps_numerator/ (double)info->fps_denominator, 292 info->width, info->height); 293 294 free(info); 295 296 return buf; 297 } 298 271 299 272 300 static char * … … 316 344 ot_celt_info, /* CELT */ 317 345 ot_kate_info, /* KATE */ 346 ot_dirac_info, /* DIRAC */ 318 347 NULL /* UNKOWN */ 319 348 };