I'll top-post this one because it wasn't sent to the mailinglist but to
me. Please reply to list next time.
I assume you mean the main.c files in the encode and decode directory
under examples. I can't really determine the root cause of your problem
with this information, but I think you're trying to feed the decoder
blocks that are incomplete. The LOST SYNC error is usually seen with
corrupted blocks, so I think the blocks are incomplete or, less likely,
corrupt.
There are a few ways to counter this. The easy way is to add a little
latency to be sure at least one complete block is in the receiving
buffer. So, only call FLAC__stream_decoder_process_single() if the
buffer is filled with enough data. If you want the lowest latency
possible you could force a small block size or let the encoding PC
signal the decoding PC when a block is finished, so the decoding process
can be sure there is a full block in the buffer.
Oh, and you might take a look at the reading callback, maybe that one is
overreading the buffer?
I hope that helps.
On 01-07-13 17:51, Burak Orçun Özkablan wrote:
Martijn,
I encode a one second captured audio data in my PC and send it to
other PC as encoded. This is OK.
I want to decode data in other PC and play it but when I am decoding
data with decoder stream function, exception throws.
2013/7/1 Burak Orçun Özkablan <borcunozkab...@gmail.com
<mailto:borcunozkab...@gmail.com>>
Yes, I mean sample codes in FLAC directory. These samples
(encode.c and decode.c) are about encode/decode with file (using
FLAC__stream_encoder_init_file and FLAC__stream_decoder_init_file
functions).
Streaming which I used is audio data transfer over UDP or TCP
sockets of boost library.
I send 1 packet which contains 1 second "raw" audio data and
header information as unsigned char array. In the other PC, I play
it. I must do it continuously, so I said 'streaming' for this.
I can stream without FLAC library but I have to do with any codec
library because our network bandwidth is low so I dont want
overhead problem and latency.
For streaming, FLAC suggests streaming functions such as
FLAC__stream_encoder_init_stream,
FLAC__stream_decoder_init_stream. The decoder stream function
takes 3 callback functions, write, read and error.
What I understand from LOST SYNC exception is write and read
callback must runs sync. I can not success it, code runs only
reading callbacks and throws LOST_SYNC exception.
2013/7/1 Martijn van Beurden <mva...@gmail.com
<mailto:mva...@gmail.com>>
On 01-07-13 16:48, Burak Orçun Özkablan wrote:
> [...]
>
> I run your sample codes, encode.c and decode.c, about file
encode /
> decode. Then, I run
> streaming encode / decode with two different source codes
but when I
> use streaming encode / decode over network in real-time,
code throws
> LOST_SYNC exception and only reading callback runs not writing
> callback after exception.
I'm not sure I understand what you mean. You are talking about
file
encode and decode ans streaming encode and decode, do you mean
the files
in the FLAC source directory example? If so, what is the
difference,
because I only see file encoding examples?
Furthermore, I wonder what you mean by stream. Are you serving
a file
that is being encoded over HTTP, S(a)MB(a), NFS or something
specially
designed for streaming, like MMS? So, how are you streaming
the FLAC file?
> How can I solve sync problem over network? Is it possible
over network
> or does FLAC stream with file?
FLAC is capable of streaming, so it should be possible to fix
this I guess.
_______________________________________________
flac-dev mailing list
flac-dev@xiph.org <mailto:flac-dev@xiph.org>
http://lists.xiph.org/mailman/listinfo/flac-dev
--
Burak Orçun ÖZKABLAN
Computer Science Engineer
Mobile : 0 541 302 18 78 <tel:0%20541%20302%2018%2078>
--
Burak Orçun ÖZKABLAN
Computer Science Engineer
Mobile : 0 541 302 18 78
_______________________________________________
flac-dev mailing list
flac-dev@xiph.org
http://lists.xiph.org/mailman/listinfo/flac-dev