-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
e.net!feeder.erje.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!
peer.ams1.xlned.com!news.xlned.com!peer03.ams4!peer.am4.highwinds-media.com!new
s.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-sp
o-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
From: "J.F" <j...@p...onet.pl>
Subject: Re: lwIP - odbieranie danych przez TCP
Newsgroups: pl.misc.elektronika
User-Agent: 40tude_Dialog/2.0.15.1
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
References: <632f2939$0$455$65785112@news.neostrada.pl>
<1sjefj0s46cyi.l9ylckob73a0$.dlg@40tude.net>
<6333f830$0$447$65785112@news.neostrada.pl>
<e3owijdfib1a$.1bbj90doev5kq.dlg@40tude.net>
<6334d82a$0$463$65785112@news.neostrada.pl>
Date: Fri, 30 Sep 2022 09:49:03 +0200
Message-ID: <n...@4...net>
Lines: 111
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.4.174.119
X-Trace: 1664524144 unt-rea-a-02.news.neostrada.pl 464 83.4.174.119:60657
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 6375
Xref: news-archive.icm.edu.pl pl.misc.elektronika:774599
[ ukryj nagłówki ]On Thu, 29 Sep 2022 01:26:34 +0200, Atlantis wrote:
> On 28.09.2022 18:39, J.F wrote:
>> Owszem, jest opoznienie spore ... ale to serwer czy po stronie klienta
>> buforowanie jest ?
>
> Co prawda trochę tutaj spekuluję, jednak wydaje mi się, że w przypadku
> normalnego serwera HTTP i tak nie bardzo w grę wchodzi zapewnienie
> prędkości idealnie dopasowanej do bitrate'u.
IMO - samo sie dopasuje.
> Serwer dysponuje pewna pulą
> na bieżąco uzupełnianych danych, a klient o nie prosi. Może się zdarzyć,
> że do klienta dane będą docierały przez pewien czas z prędkością poniżej
> bitrate'u (bo np. pojawi się konieczność kilkukrotnej retransmisji
> któregoś pakietu) więc czemu nie miałaby mieć miejsca odwrotna sytuacja
> - kiedy klient prosi o udostępnienie danych z pewnym wyprzedzeniem?
No to serwer poczeka, az mu sie uzupelni pula..
Czy raczej - jak sie uzbiera kolejna porcja danych audio, to
program na serwerze ja wysle, a TCP albo wysle od razu, albo poczeka
chwile - na potwierdzenie od odbiorcy.
Tak czy inaczej - buforowanie po stronie serwera wydaje sie nie miec
sensu. odbiorca niech sobie zbuforuje, zeby nie miec przerw w
transmisji.
Tak swoja droga - dla masowych nadawcow typu radio czy TV krajowa ...
jakos inaczej powinno byc to zorganizowane, przynajmniej tak mi sie
wydaje. IP Multicast przeciez jakis byl przewidziany.
>> Serwer do kompresji cos musi buforowac, ale dla radia to chyba
>> niewiele - gorzej z video mpeg. No ale telewizja cyfrowa tez
>> kompresuje ..
>
> Kiedyś podstawiłem obok siebie moje radio internetowe odbierające
> radiową Jedynkę oraz stare radio AM, nastawione na 225 kHz. Różnica
> mogła wynosić dobre 10 sekund. Oczywiście nie znaczy to, że całe
> opóźnienie pochodzi od bufora w serwerze, bo jeszcze częściowo może być
> wprowadzane na różnych łączach pomiędzy studiem a serwerem. Pomiędzy
> Jedynką na FM i AM też jest widoczne opóźnienie, chociaż może nie tak
> znaczne.
Na RMF roznica jest wieksza ... ale - to to twoje radio, gdzie program
piszesz? wstepne wypelnienie bufora robisz, czy pchasz od razu w
glosnik?
>> Z drugiej strony - to i serwer powinien narzucac predkosc,
>> bo co ma przyslac, jesli za szybko potwierdzisz ?
>
> Ale to chyba właśnie tak działa w TCP. Po odebraniu pakietu klient
> informuje serwer, że teraz dysponuje większym oknem odbiorczym i może
> przyjmować dane. Serwer decyduje ile wyśle - równie dobrze może wysłać
> mniej niż jest miejsca w oknie.
I to swietnie dziala z FTP czy inna transmisja plikow, gdzie dane do
wyslania czekają. Radio, TV, czy chocby terminal - nie ma wiecej
danych do wyslania. Chwilowo nie ma - za moment bedą.
>> No ale to bardziej z ciekawosci, bo jak najbardziej trzeba potwierdac
>> w miare ubywania danych.
>
> Ok, trochę pozmieniałem w kodzie i mam kilka nowych obserwacji. Możliwe
> też, że niektóre z moich wcześniejszych wniosków mogły być błedne...
> Po pierwsze dodałem odpowiednie zabezpieczenia, chroniące przed
> nadpisywaniem bufora cyklicznego. Teraz przed każdym zapisem sprawdzana
> jest ilość wolnego miejsca. Jeśli miejsca jest na tyle, zapis do bufora
> odbywa się w callbacku odbiorczym. Jeśli miejsca jest za mało, to
> jedynie zapisywany jest wskaźnik do otrzymywanych danych i pętli program
> sprawdza czy dane się zwolniło - jeśli tak, dane trafiają do bufora i
> wywoływana jest funkcja tcp_recved(), zgłaszająca gotowość przyjęcia
> kolejnych danych.
nie znam tej biblioteki, ale brzmi, jakbys potrzebowal bufora kolowego
na ... te wskazniki :-)
> Dodałem także zabezpieczenie przed opóźnieniem bufora - jeśli danych
> zaczyna być za mało przestają one być pobierane do bufora audio (a więc
> przestaje on grać) i zamiast tego jedynie przyjmujemy dane z serwera.
> Odtwarzanie jest wznawiane dopiero po zapełnieniu bufora do pewnej wartości.
IMO niepotrzebne. Skoro i tak masz przerwe, to odegraj dane do konca.
Po czym zatrzymaj odgrywanie, az sie bufor zapelni odpowiednio - 50%
czy 90% ...
> Teraz jednak zauważyłem, że dane do bufora przychodzą bardzo wolno.
> Ilość danych odpowiadająca ułamkowi sekundy odtwarzania nieraz ładuje
> się przez ładnych kilka sekund, a więc odtwarzanie jest poszatkowane, z
> wyraźnymi przerwami. Jednak nie zawsze tak jest - parę razy udało mi się
> trafić na idealny moment, kiedy odtwarzanie było płynne, a ilość danych
> w buforze oscylowała wokół jednej wartości.
A jakie radio?
Bo wiekszosc na innych programach raczej nie ma problemow.
Internet i serwery mamy dosc szybkie.
>> Karta SD mogla mies jakis szybszy tryb pracy niz SPI,
>
> Karta jest właśnie podłączona do standardowego SPI - STM32F107 nie ma
> nawet SDIO. ;) Początkowo myślałem, że może to być wina niekoniecznie
> optymalnych funkcji transmisyjnych z biblioteki HAL, ale potem
> przypomniałem sobie, że dokładnie tak samo była zrealizowana obsługa
> komunikacji z kartą SD. ;)
Czyli co - ten SPI RAM jakis wolny? Jaka to dokladnie kosc?
A moze ... na odczyty starczalo, na zapisy i odczyty juz nie starcza
przepustowosci.
Bo skoro RAM, to spodziewam sie, ze zapis jest szybki ...
J.
Następne wpisy z tego wątku
- 30.09.22 11:04 Cezar
- 30.09.22 12:12 JDX
- 30.09.22 12:13 J.F
- 30.09.22 12:21 J.F
- 30.09.22 12:23 J.F
- 02.10.22 07:48 Marek
- 02.10.22 09:39 Atlantis
- 02.10.22 15:05 Marek
- 02.10.22 15:11 Marek
- 02.10.22 21:06 Atlantis
- 02.10.22 21:41 Mateusz Viste
- 04.10.22 09:04 Atlantis
- 05.10.22 17:23 Atlantis
- 05.10.22 18:37 a...@m...uni.wroc.pl
- 06.10.22 09:47 Atlantis
Najnowsze wątki z tej grupy
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
- reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- Problem z odczytem karty CF
- 74F vs 74HCT
- Newag ciąg dalszy
- Digikey, SN74CBT3253CD, FST3253, ktoś ma?
- Szukam: czujnik ruchu z możliwością zaączenia na stałe
- kabelek - kynar ?
- Podnieść masę o 0.6V
- Moduł BT BLE 5.0
- Pomiar amplitudy w zegarku mechanicznym
- ale zawziętość i cierpliwość
- Chiński elektrolizer tester wody
Najnowsze wątki
- 2025-01-06 Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- 2025-01-06 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-01-06 Do IO i innych elektrooszolomow, tu macie prawdziwe smrody
- 2025-01-06 Białystok => Full Stack .Net Engineer <=
- 2025-01-06 Kraków => Business Development Manager - Network and Network Security
- 2025-01-06 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-06 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-06 Lublin => Programista Delphi <=
- 2025-01-06 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-06 śnieg
- 2025-01-05 Żarówka do lampy z czujnikiem ruchu
- 2025-01-05 Rozkręcają się
- 2025-01-04 pozew za naprawę sprzętu na youtube
- 2025-01-04 gasik
- 2025-01-04 13. Raport Totaliztyczny: Powszechna Deklaracja Praw Człowieka Nie Chroni Przed Wyzyskiem Ani Przed Eksploatacją