I don't have time to look into this, at the moment. Hopefully, someone else on 
the list can lend a hand.

It's been about ten years since I wrote any new code using libFLAC, so it would 
take me a while to help find any problems with your code. Perhaps the holidays 
will afford some time.

Brian


On Dec 13, 2017, at 8:12 AM, Chris Barrett <cbarrett.c...@gmail.com> wrote:
> Thanks Brian.  I converted everything to libFLAC and got the same results.
> 
> [snip]
> 
> I can send out some of the code fragments if needed.
> 
> Thanks,
> Chris
> 
> On Tue, Dec 12, 2017 at 4:44 PM, Brian Willoughby <bri...@audiobanshee.com> 
> wrote:
>> Hi Chris,
>> 
>> Have you tried the Standard C libflac option? Not that I have anything 
>> against the C++ flavor, but I've only ever worked with the C API, to keep 
>> things simple. Sorry for the brief response, but I wanted to reply quickly.
>> 
>> Brian
>> 
>> On Dec 12, 2017, at 1:51 PM, Chris Barrett <cbarrett.c...@gmail.com> wrote:
>> > I'm trying to use libflac++ on a live internet audio stream.  I don't see 
>> > anything mentioned in the documentation that suggests this should not be 
>> > possible, so I hope I'm not chasing down the wrong path (two weeks in).
>> >
>> > The encoder seems to be working fine and creates data for the 
>> > write_callback, which I have coded to packetize that data and send it 
>> > across the network.
>> >
>> > The question is how the decoder at the receiver should operate.  Ideally, 
>> > when a packet arrives, it can be fed to the decoder.  When the decoder has 
>> > enough data for a new uncompressed frame, it returns one.
>> >
>> > But the decoder API does not seem setup for this type of synchronous 
>> > operation.  When a packet arrives, I'm trying to call process_single_frame 
>> > and then supply the packet data in the read_callback.  It takes the data 
>> > but always calls the read_callback again for more data.  It does call 
>> > error_callback (status == 0) once, but never write_callback.  So, I'm 
>> > guessing that the packet does not have enough data for a frame.
>> >
>> > So, I tried queueing write_callbacks at the encoder before packetizing it 
>> > and sending it.  It seems like encoder init causes three write_callbacks 
>> > that make up the metadata, and then each call to process causes one 
>> > write_callback that is presumably the frame data.  The documentation 
>> > states that one cannot rely on this, but I can't see any other choice.  
>> > Just to be safe, I let the metadata and the first four frames queue up 
>> > before sending it.  Still the decoder asks for more data when I call 
>> > process_single_frame with this data and never calls write_callback.  I 
>> > don't have the decoder meta callback installed, but could try that to test 
>> > if it is at least decoding the metadata.
>> >
>> > Any help is greatly appreciated.
>> >
>> > Thanks,
>> > Chris
>> >
>> 
_______________________________________________
flac-dev mailing list
flac-dev@xiph.org
http://lists.xiph.org/mailman/listinfo/flac-dev

Reply via email to