I guess I'm missing something since the following minimized test case is failing:>>>#include "ogg/ogg.h" main() { ogg_sync_state the_ogg_sync_state; ogg_sync_init(&the_ogg_sync_state); ogg_sync_destroy( &the_ogg_sync_state ); }>>>$ gcc -g -logg test.c $ ./a.out *** glibc detected *** ./a.out: munmap_chunk(): invalid pointer: 0x00007fffe0562330 *** ======= Backtrace: ========/lib/libc.so.6(cfree+0x1ac)[0x2ba7ca7d735c] /usr/lib/libogg.so.0(ogg_sync_destroy+0x16)[0x2ba7ca582d96] ./a.out[0x400692] /lib/libc.so.6(__libc_start_main+0xf4)[0x2ba7ca77fb74] ./a.out[0x4005e9] ======= Memory map: =======00400000-00401000 r-xp 00000000 03:06 638492 /home/neil/theora/a.out 00600000-00601000 r--p 00000000 03:06 638492 /home/neil/theora/a.out 00601000-00602000 rw-p 00001000 03:06 638492 /home/neil/theora/a.out 00602000-00623000 rw-p 00602000 00:00 0 [heap] 2ba7ca544000-2ba7ca561000 r-xp 00000000 08:02 3052083 /lib64/ld-2.6.1.so 2ba7ca561000-2ba7ca563000 rw-p 2ba7ca561000 00:00 0 2ba7ca581000-2ba7ca586000 r-xp 00000000 08:02 2737951 /usr/lib64/libogg.so.0.5.3 2ba7ca586000-2ba7ca685000 ---p 00005000 08:02 2737951 /usr/lib64/libogg.so.0.5.3 2ba7ca685000-2ba7ca686000 rw-p 00004000 08:02 2737951 /usr/lib64/libogg.so.0.5.3 2ba7ca760000-2ba7ca761000 r--p 0001c000 08:02 3052083 /lib64/ld-2.6.1.so 2ba7ca761000-2ba7ca762000 rw-p 0001d000 08:02 3052083 /lib64/ld-2.6.1.so 2ba7ca762000-2ba7ca8ae000 r-xp 00000000 08:02 3052127 /lib64/libc-2.6.1.so 2ba7ca8ae000-2ba7caaae000 ---p 0014c000 08:02 3052127 /lib64/libc-2.6.1.so 2ba7caaae000-2ba7caab2000 r--p 0014c000 08:02 3052127 /lib64/libc-2.6.1.so 2ba7caab2000-2ba7caab3000 rw-p 00150000 08:02 3052127 /lib64/libc-2.6.1.so 2ba7caab3000-2ba7caaba000 rw-p 2ba7caab3000 00:00 0 2ba7caaba000-2ba7caac7000 r-xp 00000000 08:02 2638192 /lib64/libgcc_s.so.1 2ba7caac7000-2ba7cacc6000 ---p 0000d000 08:02 2638192 /lib64/libgcc_s.so.1 2ba7cacc6000-2ba7cacc7000 r--p 0000c000 08:02 2638192 /lib64/libgcc_s.so.1 2ba7cacc7000-2ba7cacc8000 rw-p 0000d000 08:02 2638192 /lib64/libgcc_s.so.1 7fffe0550000-7fffe0565000 rw-p 7ffffffea000 00:00 0 [stack] 7fffe05fe000-7fffe0600000 r-xp 7fffe05fe000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] Aborted How should I be doing the initialization? (My eventual goal is that I want to pick apart a Theora video and try some thoughts on decoding it. The test case files are encapsulated in ogg of course. Also, libogg has the bit function for pulling grabbing the various fields.) Neil Leathers
On 27-Apr-08, at 4:42 PM, Neil Leathers wrote:> #include "ogg/ogg.h" > > main() { > ogg_sync_state the_ogg_sync_state; > > ogg_sync_init(&the_ogg_sync_state); > ogg_sync_destroy( &the_ogg_sync_state ); > } > [...] > *** glibc detected *** ./a.out: munmap_chunk(): invalid pointerThis looks like a bug. Your other code is skipped the ogg_stream_pagein/ogg_stream_packetout loop. Most decoders want packets, not pages. -r