Displaying 15 results from an estimated 15 matches for "vorbis_synthesis_pcmout".
2000 Apr 19
3
integer pcm decode patch
Hi!
I've spent the last few nights digging into the Vorbis source and working
to implement a vorbis_synthesis_pcmout_int() function that kicks out
interleaved int16_t pcm data.
I think its important to have this function available to make the
job for people using the codec a little easier. This function abstracts
out the conversion to int16_t and removes the extra overhead of
moving the pcm data over the process...
2009 May 12
2
compile error of libtheora example
...player_example.c:(.text+0x142d): undefined reference to `vorbis_block_init'
player_example.c:(.text+0x146e): undefined reference to `vorbis_info_clear'
player_example.c:(.text+0x147a): undefined reference to
`vorbis_comment_clear'
player_example.c:(.text+0x14cf): undefined reference to
`vorbis_synthesis_pcmout'
player_example.c:(.text+0x157d): undefined reference to `rint'
player_example.c:(.text+0x1646): undefined reference to
`vorbis_synthesis_read'
player_example.c:(.text+0x1700): undefined reference to
`ogg_stream_packetout'
player_example.c:(.text+0x171e): undefined reference to `vor...
2023 Aug 27
0
Looping issues in ogg vorbis in Godot 4 engine
...otengine/godot/pull/80452/files
I think it also lists the most vital files in regards to decoding,
seeking, mixing of ogg vorbis files (excluding the minimp3 folder).
Some notes to orient yourself more quickly:
* In audio_stream_ogg_vorbis.cpp, we delay the looping/seeking until all
frames from `vorbis_synthesis_pcmout` are consumed using the last
if-clause in `AudioStreamPlaybackOggVorbis::_mix_frames_vorbis`. Only
then is `if (!have_packets_left && !have_samples_left)` true.
* So the problem is most likely in `AudioStreamPlaybackOggVorbis::seek`
(audio_stream_ogg_vorbis.cpp)
Side note:
The PR author...
2006 Aug 31
0
OpenAl and Vorbis
...audiobuf, int fragsize){
// single audio fragment audio buffering
bool audiobufReady = false;
int size=0;
int audiobufFill = 0;
while(!audiobufReady){
//1)try to decode some data
while(!audiobufReady){
float **pcm;
//if there's pending, decoded audio, grab it
if((size=vorbis_synthesis_pcmout(&vorbisDspState,&pcm))>0){
int count=audiobufFill/2;
int maxsamples=(fragsize-audiobufFill)/vorbisInfo.channels/2;// /2
int i;
for(i=0; i<size && i<maxsamples; i++){
for(int j=0;j<vorbisInfo.channels;j++){
int val=(int) (pcm[j][i]*32767.f);...
2001 May 11
1
question about vorbis_synthesis_blockin
I'm looking at the vorbis_synthesis_blockin and pcmout functions, and I'm
confused about the positioning and determination of centerW wrt adding in
the next set of data. Specifically, it seems legal (in
vorbis_synthesis_pcmout) to return to the user any data up to the centerW
position; however, in vorbis_synthesis_blockin, if you have a long block
following a short block, it is legal to overlap the long block back to a
position before centerW, thus modifying data that the user may already have
requested. Have I interpre...
2006 Jan 19
0
want to know, how much data will be extracted from every single packet
...ow when program starts, i must run through all pages, getting all packets, extracting all of them and getting result datasize using such code:
....
if (vorbis_synthesis(&vorb_block,&m_packets[cur_packet_num]) == 0)
vorbis_synthesis_blockin(&vorb_dsp_state,&vorb_block);
int bout = vorbis_synthesis_pcmout(&vorb_dsp_state,NULL);
packet_result_data_size[cur_packet_num] =
bout * sizeof(int16) * vorb_info.channels;
....
of coz it's very slow, but i can't help to solve that problem so far. what can u say, folks?
i dont know why, but vorb_dsp_state.granulepos == -1. i can get granulepos o...
1999 Oct 11
2
XMMS plugin patch
...i.rate, od.vi.channels);
while(i < 2) {
while(i < 2 && ogg_sync_pageout(&od.oy, &od.og) == 1) {
@@ -219,9 +219,11 @@
vorbis_synthesis(&od.vb, &od.op);
vorbis_synthesis_blockin(&od.vd, &od.vb);
if((samples = vorbis_synthesis_pcmout(&od.vd, &pcm)) > 0) {
+ gint16 *outptr = pcmout;
+
for(s = 0; s < samples; s++)
for(c = 0; c < od.vi.channels; c++)
- pcmout[(s * od.vi.channels + c) * sizeof(gshort)] = pcm[c][s] * 32767;
+ *(outptr++) = pcm[c][s] * 32767;...
2006 Jan 19
0
re: want to know, how much data will be extracted from every single packet; solved but some issues
...ket X - 1 befor.
I honestly tried do this, but in fact works properly only this code:
for (uint32 i = m_packets_number - 6; i < m_packets_number; i++)
{
?if (vorbis_synthesis(&vorb_block,&m_packets[i])==0)
? vorbis_synthesis_blockin(&vorb_dsp_state,&vorb_block);
?int bout = vorbis_synthesis_pcmout(&vorb_dsp_state,NULL);
?if (i == m_packets_number - 1)
?{
? m_packets_real_lengths[i] ?= 2 * m_vorb_info.channels * bout;
? m_data_size += m_packets_real_lengths[i];
?}
?vorbis_synthesis_read(&vorb_dsp_state,bout);
}
exactly m_packets_number - 6 and no more :) i 'm lost in conj...
2007 Feb 15
1
Using decoding vorebis from a Vorbis / Theora Video
I am trying to write a media player in c# which will be able to play .ogg
video files which contain Theora video and Vorbis audio streams.
Currently I am using LibOgg and LibTheora (via a SWIG generated wrapper).
This currently is able to decode the video and output it to the screen. I
would like to use LibVorbis to decode the audio stream. Looking at the
documentation it looks like I have to use
2001 Apr 05
1
decoder_example -- event driven?
.../*
**pcm is a multichannel float vector. In stereo, for
example, pcm[0] is left, and pcm[1] is right. samples is
the size of each channel. Convert the float values
(-1.<=range<=1.) to whatever PCM format and write it out */
while((samples=vorbis_synthesis_pcmout(&vd,&pcm))>0) {
int i,j;
int clipflag=0;
int bout=(samples<convsize?samples:convsize);
fprintf (stderr,
"\nhoebag, i made it the while loop");
/* convert floats to 16 bit signed ints (host order) and...
2002 Jan 22
2
Peak value
Hi,
While testing ReplayGain (so it could be related to a bug), I noticed the following gain comments for a file:
RG_PEAK=1.71580
RG_RADIO=-7.91 dB
RG_AUDIOPHILE=-6.72 dB
I've never seen such a large peak. Not that I've looked much, nor have I analyzed the file further. I just thought I should mention it. :)
The file is the track Board Burner by Mixmaster Mike, available at:
2002 Jan 03
3
Suggestion for libvorbisfile: scaling
I've been experimenting with the ideas of Replay Gain[1] and find that
ogg123 doesn't have a way of specifying the scaling applied to
replayed samples (like -f in mpg123).
Looking at libvorbisfile, I see no function exactly matching this
possibly desirable behaviour.
ov_read() scales by either 128 (byte output) or 32768 (word output),
but there's nothing in between.
ov_read_float()
1999 Oct 04
3
Detailed decoder pseudocode (was: Re: ETA?)
...data at this page position */
/* no reason to complain; already complained above */
}else{
/* we have a packet. Decode it */
char **pcm;
int samples;
vorbis_synthesis(&vb,&op);
vorbis_synthesis_blockin(&vd,&vb);
samples=vorbis_synthesis_pcmout(&vd,&pcm);
if(samples>0){
/* **pcm is a multichannel float vector. In stereo, for
example, pcm[0][...] is left, and pcm[1][...] is right.
samples is the size of each channel. Convert the float
values (-1.<=range<=1.) to...
2002 Aug 06
0
Getting a GUI to work with Vorbis code
...channel float vector. In stereo, for
example, pcm[0] is left, and pcm[1] is right. samples is
the size of each channel. Convert the float values
(-1.<=range<=1.) to whatever PCM format and write it out */
while((samples=vorbis_synthesis_pcmout(&vd,&pcm))>0){
int j;
int clipflag=0;
int bout=(samples<convsize?samples:convsize);
/* convert floats to 16 bit signed ints (host order) and
interleave */
for(i=0;i<v...
2006 Oct 09
1
Vorbis primitive API examples (LONG)
...v0 = vorbis_synthesis_blockin(vd, vb);
if (v_rv0 == 0) {
/* Synthesis was successful. Pull out the data */
int pcmSamples = 1;
ogg_int32_t **pcm;
int numChannels = 2; /* FIXME: Should really pull this from info */
int ii, jj;
while(pcmSamples > 0) {
pcmSamples = vorbis_synthesis_pcmout(vd, &pcm);
/* Interleaver for output PCM */
for(ii=0; ii<pcmSamples; ++ii) {
for(jj=0; jj<numChannels; ++jj) {
ogg_int32_t *srcChannelArray = pcm[jj];
ogg_int32_t srcValue = srcChannelArray[ii];
short dstValue = CLIP_TO_15(srcValue>>9);
long bytesWr...