search for: vorbis_analysis

Displaying 20 results from an estimated 34 matches for "vorbis_analysis".

2003 Feb 13
2
Are vorbis_blocks really independent?
...lock is a single block of data to be processed as part of the analysis/synthesis stream; it belongs to a specific logical bitstream, but is independant from other vorbis_blocks belonging to that logical bitstream. *************************************************/ My question. Does this imply that vorbis_analysis (oggenc/encode.c), which takes as argument a vorbis_block and an ogg packet, is also independent of from other calls to vorbis_analysis? Ronald Bos <p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, s...
2001 Mar 11
1
vorbis_analysis() dependencies?
Per Monty's suggestions from a while ago, I have [finally] gotten around to playing with different schemes for parallel oggenc. Monty's main suggestion was to have a single thread loop over reading samples and calling vorbis_analysis_blockout(), and then queueing up the resulting blocks to be processed through vorbis_analysis() in other threads (in parallel). To verify that this works, I modified vanilla oggenc (current CVS head on everything, of course) to do something similar, but in a single-threaded way. However, the outp...
2011 Nov 17
1
multithreaded vorbis encoding
Hello, I have some code that encodes PCM data into a vorbis stream, using the workflow shown in http://www.xiph.org/vorbis/doc/libvorbis/overview.html. By analyzing that process with valgrind/cachegrind I found out that 95% of the time used for encoding is spent in the function "vorbis_analysis(&vb, 0)". My question now is: would it be technically possible to parallelize this? I think about using multiple worker threads for the vorbis_analysis calls, especiall on multi core systems this would be a big benefit. => Are the blocks passed as "vb" independent from each...
2002 Mar 27
1
What exactly is threadsafe
Hey I am playing with a LOT of threads right now, and I want to know if the threads all need their own little vorbis encoders running in them or what exactly is threadsafe in vorbis? So here are the functions that would be called from many threads of with buffer = vorbis_analysis_buffer( &m_vorbisDsp, 4*DATA_CHUNK_SIZE ); vorbis_analysis_wrote( &m_vorbisDsp, dataLength/dataSize ); while( vorbis_analysis_blockout( &m_vorbisDsp, &m_vorbisBlock ) == 1 ) { /* analysis, assume we want to use bitrate management */ vorbis_analysis( &m_vorbisBlock, NUL...
2002 Jul 08
1
Divide by zero in accumulate_fit
...running correctly. In a few debugging sessions, I've found that I'm getting a divide by zero exception. The exception happens in accumulate_fit (floor1.c), line 455: int weight=nb*info->twofitweight/na; Here is the call stack: accumulate_fit floot1_fit mapping0_forward vorbis_analysis oe_encode main The error happens very early: the first call to vorbis_analysis (third iter. through the main encode loop) in oe_encode. Reproducable with every wav I feed it. Can anyone help? <p> -- -:-:- David K. Gasaway -:-:- XNS : =David K Gasaway -:-:- Email: dave@gasaway.org...
2003 Feb 07
1
Status of thread-safeness of libvorbis?
...my work experience period I have to implement a parallel (threaded) ogg encoder (If this is possible, of course.) If it can be done, the code will be given back to the community. I have already done some profiling on oggenc and found out that >98% of the cpu time is spent in the call tree under vorbis_analysis (in encode.c). This point was also mentioned at that time. Now my question is: how is the current state of thread-safeness of vorbis_analysis? Has anyone else had succes or failures in creating a threaded ogg encoder? Greetings, Ronald Bos ---------------------------------------------- Philips...
2009 May 26
5
errors in valgrind
...at 0x4155734: _vp_offset_and_mix (in /usr/local/lib/libvorbis.so.0.4.1) ==13108== by 0x415F598: mapping0_forward (in /usr/local/lib/libvorbis.so.0.4.1) ==13108== by 0x4151C8B: vorbis_analysis (in /usr/local/lib/libvorbis.so.0.4.1) ==13108== by 0x804F3E5: oe_encode (in /usr/local/bin/oggenc) ==13108== by 0x804B9FB: main (in /usr/local/bin/oggenc)...
2004 May 20
3
Encoding questions
...the SDK. It all works very well indeed (encoding from a PCM file, then playback), except that no matter the length of the source PCM file, the last (approx) 4 seconds of audio is always missing from the Ogg file. I am trying to find some documentation that details some of the functions used (e.g. vorbis_analysis(), vorbis_bitrate_addblock(), vorbis_bitrate_flushpacket(), ogg_stream_packetin() etc.) as I am sure its just some sort of flushing problem, but I'm not having much luck. So does anyone know the cause of my problem, or where I can find some documentation. <p>Thnx, Dave <p>The inf...
2000 Dec 08
1
voribs_analysis() question
A variation on questions that I've asked before... In working on the parallel version of oggenc (both threaded and MPI), a profiling run shows that the function vorbis_analysis() takes up the majority of the run time. This seems to be an obvious choice for parallelization -- send each vorbis_block to a different processor, and let them call vorbis_analsis() in parallel with each other. However, as has been briefly alluded on this list before, there is global state that...
2000 Aug 29
1
double -> float conversion
...ween double and float performance. So, I replaced all occurances of double in vorbis with float (as was suggested should work). I ended up hanging at: #0 0x0002695c in cacm283 () #1 0x00026dd0 in vorbis_lpc_to_lsp () #2 0x0001b3cc in forward () #3 0x0001cac8 in forward () #4 0x0000b844 in vorbis_analysis () #5 0x000030b4 in oe_encode () #6 0x00002230 in main () #7 0x00001a04 in _start () #8 0x000018a8 in start () (gdb) q Is the rewritten LPC/LSP (whatever that is :) that works with floats on the head of the repository? -tim (of course, maybe I missed something - I only did lib, include a...
2000 Dec 24
0
State of Vorbis: Monty's current offline development
Nothing on a branch yet; I'll be building a temp branch for my changes soon. First, I'm eliminating ordering dependancies in vorbis_block structures. They'll be totally sepreate and vorbis_analysis won't have a global state in vorbis_dsp_state that requires them being done in order. That way, a parallel-threaded encoder can run multiple vorbis_blocks through multiple simultaneous calls to vorbis_analysis. Second, psy.c is almost entirely new code. That from Segher's patches I could...
2001 Jan 09
1
Question re: vorbis_block_clear()
...ched during vorbis_block_init(), and conditionally does some cleanup based on the values of those fields. Does this fact effectively mean that you can't have multiple vorbis_block instances outstanding? i.e., can you only reliably vorbis_block_clear() the *last* vorbis_block that went through vorbis_analysis()? I ask because I separate the analysis from the output/cleanup in poggenc. Hence, I can have a list of vorbis_block/ogg_packet pairs queued up for later output and cleanup. Invoking vorbis_block_clear() on these blocks seems to result in verious forms of Badness (read from unallocated and the l...
2002 Aug 09
1
oggenc core dump
...backtrace: #0 0xdfa8e36b in apsort () from /usr/local/lib/libvorbis.so.0 #1 0xdf8eb94d in qsort () from /usr/lib/libc.so.1 #2 0xdfa8d90a in _vp_noise_normalize_sort () from /usr/local/lib/libvorbis.so.0 #3 0xdfa94ac4 in mapping0_forward () from /usr/local/lib/libvorbis.so.0 #4 0xdfa8b025 in vorbis_analysis () from /usr/local/lib/libvorbis.so.0 #5 0x0804d099 in strrchr () #6 0x0804a160 in strrchr () #7 0x080497db in strrchr () The core dump happens at 13.8%. If I change the bitrate to 192 it does not core dump. I can provide the core file and the wav file if it helps. - -Dave dnewman@maraudingp...
2003 Sep 22
1
Division by zero.
Hi there. I'm getting this exception, Floating point division by zero, when encoding at, for example, 22050 hz. This doesn't happens in a specific song or audio, it mostly happens after several calls to vorbis_analysis. This also doensn't happens, at least so far, at 11025, 8820 or 44100. Also, it doesn't seem to happen at low qualities (0, -0.1). The exception is generated in the line 675 of psy.c Debugging, I found that several times before the exception is produced (or at least that's what I can...
2009 Dec 12
1
Skipping of sample in ogg writing
...ething critical step. Here is the code for writing the ogg file. //============================================================================== bool write (const int** samplesToWrite, int numSamples) { if (numSamples > 0) { float** const vorbisBuffer = vorbis_analysis_buffer (&vd, numSamples); for (int i = numChannels; --i >= 0;) { float* const dst = vorbisBuffer[i]; const int* const src = samplesToWrite [i]; if (src != 0 && dst != 0) {...
2009 Dec 12
1
Skipping of sample in ogg writing
...ething critical step. Here is the code for writing the ogg file. //============================================================================== bool write (const int** samplesToWrite, int numSamples) { if (numSamples > 0) { float** const vorbisBuffer = vorbis_analysis_buffer (&vd, numSamples); for (int i = numChannels; --i >= 0;) { float* const dst = vorbisBuffer[i]; const int* const src = samplesToWrite [i]; if (src != 0 && dst != 0) {...
2005 Sep 26
2
encoder_example.c Questions
...[i*4+3]<<8)| (0x00ff&(int)readbuffer[i*4+2]))/32768.f; } This is the second. /* vorbis does some data preanalysis, then divvies up blocks for more involved (potentially parallel) processing. Get a single block for encoding now */ while(vorbis_analysis_blockout(&vd,&vb)==1){ /* analysis, assume we want to use bitrate management */ vorbis_analysis(&vb,NULL); vorbis_bitrate_addblock(&vb); while(vorbis_bitrate_flushpacket(&vd,&op)){ /* weld the packet into the bitstream */ ogg_stream...
2001 Jan 26
1
Thread issues: clarification
Monty -- I'm still running into problems with my threaded encoded, and I think I just figured out why. I have N threads running in parallel calling vorbis_analysis_blockout() and vorbis_analysis() to do the number crunching on the input samples. They all share a single vorbis_dsp_state -- my understanding was that this was ok; they only *read* from the vorbis_dsp_state, therefore not creating any race conditions. However, I think I must have misunderstood, b...
2004 Aug 06
0
No subject
vorbis_analysis(&vblock, &ogg_pkt). Then, your ogg_pkt contains one ogg packet - that's just the raw vorbis data. ogg_pkt.packet, of length ogg_pkt.bytes. You'll need to recreate some of the framing information in ogg - but not all of it. See the vorbis-over-RTP drafts for one way to do this....
2004 Aug 06
0
No subject
vorbis_analysis(&vblock, &ogg_pkt). Then, your ogg_pkt contains one ogg packet - that's just the raw vorbis data. ogg_pkt.packet, of length ogg_pkt.bytes. You'll need to recreate some of the framing information in ogg - but not all of it. See the vorbis-over-RTP drafts for one way to do this....