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....