Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 412911
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 12, 20262026-05-12T18:07:55+00:00 2026-05-12T18:07:55+00:00

We are designing a p2p applications using c++ which transmits voice to other peer

  • 0

We are designing a p2p applications using c++ which transmits voice to other peer using UDP.

We are capturing a mic signal in a buffer in the thread which captures voice for one second in the while loop. For every second voice captured in buffer it splits it into packets and sends to the other peer. Now I need a proper data structure at the destination which is copes real time transmission. Same data structure I am going to use for screen capturing. Here are two approaches using queue I thought of

  • Implementing a queue using a linked list which maintains a queue of OneSecVoice objects or Image object in case of image.

  • Implementing a queue using static array of OneSecVoice or Image objects

OneSecVoice/Image objects will contain a total number of packets, packets buffer for that particular Image/OneSecVoice.

As its a real time one thread will continuously scan for queue and take out latest complete Image/OneSecVoice by popping the Image/OneSecVoice from queue.

So which to chose Implementing a queue using a linked list or Implementing a queue using static array.

Me and my friend are having fight over this so we decided to post here.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-12T18:07:55+00:00Added an answer on May 12, 2026 at 6:07 pm

    I would use boost::circular_buffer. You will get the cache benefits having a fixed memory area and no unexpected memory allocations.

    In order to achieve maximum
    efficiency, the circular_buffer stores
    its elements in a contiguous region of
    memory, which then enables:

    1. Use of fixed memory and no implicit or
      unexpected memory allocation.
    2. Fast constant-time insertion and removal of
      elements from the front and back.
    3. Fast constant-time random access of
      elements.
    4. Suitability for real-time and performance critical applications.

    Possible applications of the
    circular_buffer include:

    • Storage of the most recently received
      samples, overwriting the oldest as new samples arrive.
    • As an underlying
      container for a bounded buffer (see
      the Bounded Buffer Example).
    • A kind of cache storing a specified number of
      last inserted elements.
    • Efficient fixed capacity FIFO (First In, First
      Out) or LIFO (Last In, First Out)
      queue which removes the oldest
      (inserted as first) elements when full.
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 239k
  • Answers 239k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer So I asked the wrong question. It turns out the… May 13, 2026 at 6:56 am
  • Editorial Team
    Editorial Team added an answer This can be done using a 1 bit field like… May 13, 2026 at 6:56 am
  • Editorial Team
    Editorial Team added an answer I solved that months ago and if any one need… May 13, 2026 at 6:56 am

Related Questions

We are designing a Payroll Generation System for a client. The organization we are
We are designing a survey application with the following features The users will be
We are designing a new database and I would like some input in where
We are designing a web site and have run into some UI challenges that

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.