List Info

Thread: Re:




Re:
country flaguser name
United States
2008-02-06 09:51:04
On Wed, Feb 06, 2008 at 04:24:06PM +0100, Michael
Niedermayer wrote:
> On Tue, Feb 05, 2008 at 11:55:37PM -0500, Rich Felker
wrote:
> > On Tue, Feb 05, 2008 at 09:31:14PM +0100, Michael
Niedermayer wrote:
> > > Hi
> > > 
> > > Attached patch should make broadcast of
single program nuts possible.
> > 
> > It's already possible. The claim that any of these
things are needed
> > is a fallacy.
> [...]
> > > +transmit_ts (t)
> > > +    The timestamp at which the first bit of
the syncpoint is transmitted.
> > > +    MUST be less than or equal to all
following dts.
> > > +    See broadcast buffering model.
> > 
> > Waste of space and does not do anything useful.
> > 
> > > +
> > > +Broadcast buffering model:
> > > +--------------------------
> > > +Nut files can be broadcast. Such specific
nut files must be encoded and
> > 
> > There are not different types of NUT files. NUT is
device-independent
> > and the muxing MUST NOT DIFFER depending on the
intended use. This is
> > fundamental.
> 
> And they dont, now please return to technical
discussion! Nothing will be
> added to nut if you can proof that its unneeded. But
you should listen to
> what others say as well. And i do think nut as it is
has a serious problem
> with being broadcasted.
> 
> And the only broadcast specific thing are the
transmit_ts, and the spec
> explicitly says that a demuxer in non broadcast mode
must ignore them. So
> your claim of device dependance for an existing use
case is not correct.

You misunderstood the word device-dependent. I do not mean
that the
files are unplayable by agnostic devices which do not care
about the
added nonsense. Rather, I meant that the file is polluted
with
device-specific information, information which in the case
of
transmit_ts also happens to be totally irrelevant!

> > Unnecessary. Any timestamp works equally well for
synchronizing the
> > clock as long as the receiver has an approximately
accurate local
> > clock source and measures corrections over long
periods.
> 
> No, again not even slightly correct, and even with
infinite buffers.
> 
> Let me try to give some examples to show the problems.
> First we have a single file with a single (video)
stream. This stream is
> variable bitrate.
> The very first constraint here is that the bits from
the start until
> time t of the movie must never exceed the channel
bandwidth*( t + preload ).
> Preload here is decided by the demuxer currently. This
is true no matter how
> large the decoder buffers are. As the decoder cannot
decode what it hasnt
> received yet.

This all has nothing to do with redundant timestamps.

> Thats the first unavoidable device dependance

Not unavoidable and not permissible.

> Lets for example assume a decoder has a buffer of size
X (that can be 50gb if
> you want). And let us further assume the
muxer/transmiter by using magic
> knows that size and stays within the limit. that is the
buffer might be
> 0-0.1% full for an hour or 99.9-100% full for an hour.
No problem but
> the decoder CANNOT with that detect clock drift.
because the dts/pts it
> receives as well as all other timestamps in nut
currently, will differ from
> its clock by the buffer fullness. transmit_ts can
easily be used as it is
> the true transmit time.

Mark the buffer with actual receive times, according to the
local
clock, and correlate them with the timestamps in the NUT
stream,
smoothing out any timing adjustments over a long interval
that's still
an order of magnitude away from the length needed for drift
to become
a problem. This approach does not require polluting the NUT
stream
with device- (and transmission-) dependent data which is
irrelevant to
the actual media contained.

I think this issue gets to the core of
device-[in]dependence: a
device-oriented format contains information irrelevant to
the media
itself but needed to control primitive devices. A
device-independent
format contains only the 'primary' information and requires
a device
with specific needs to interpret that. Obviously the latter
is more
efficient and less strongly tied to the technical
requirements of a
particular era's gadgets...

> Now i belive you will agree that without clock
synchronization its just a
> matter of time until the buffer will end up empty and
the video/audio
> freezing. Again the buffer might be infinitly large, it
doesnt help.
> You would need atomic clocks or some other means of
keeping time accurate.

With ordinary cheap clocks you're fine for at least 5
minutes or so
which is plenty time to sample and correct drift.

Rich
_______________________________________________
NUT-devel mailing list
NUT-develmplayerhq.hu
https://lists.mplayerhq.hu/mailman/listinfo/nut-devel

Re:
country flaguser name
Austria
2008-02-06 10:44:16
On Wed, Feb 06, 2008 at 10:51:04AM -0500, Rich Felker
wrote:
> On Wed, Feb 06, 2008 at 04:24:06PM +0100, Michael
Niedermayer wrote:
> > On Tue, Feb 05, 2008 at 11:55:37PM -0500, Rich
Felker wrote:
> > > On Tue, Feb 05, 2008 at 09:31:14PM +0100,
Michael Niedermayer wrote:
> > > > Hi
> > > > 
> > > > Attached patch should make broadcast of
single program nuts possible.
> > > 
> > > It's already possible. The claim that any of
these things are needed
> > > is a fallacy.
> > [...]
> > > > +transmit_ts (t)
> > > > +    The timestamp at which the first
bit of the syncpoint is transmitted.
> > > > +    MUST be less than or equal to all
following dts.
> > > > +    See broadcast buffering model.
> > > 
> > > Waste of space and does not do anything
useful.
> > > 
> > > > +
> > > > +Broadcast buffering model:
> > > > +--------------------------
> > > > +Nut files can be broadcast. Such
specific nut files must be encoded and
> > > 
> > > There are not different types of NUT files.
NUT is device-independent
> > > and the muxing MUST NOT DIFFER depending on
the intended use. This is
> > > fundamental.
> > 
> > And they dont, now please return to technical
discussion! Nothing will be
> > added to nut if you can proof that its unneeded.
But you should listen to
> > what others say as well. And i do think nut as it
is has a serious problem
> > with being broadcasted.
> > 
> > And the only broadcast specific thing are the
transmit_ts, and the spec
> > explicitly says that a demuxer in non broadcast
mode must ignore them. So
> > your claim of device dependance for an existing
use case is not correct.
> 
> You misunderstood the word device-dependent. I do not
mean that the
> files are unplayable by agnostic devices which do not
care about the
> added nonsense. Rather, I meant that the file is
polluted with
> device-specific information, information which in the
case of
> transmit_ts also happens to be totally irrelevant!

Please try to keep the discussion technical.


> 
> > > Unnecessary. Any timestamp works equally well
for synchronizing the
> > > clock as long as the receiver has an
approximately accurate local
> > > clock source and measures corrections over
long periods.
> > 
> > No, again not even slightly correct, and even with
infinite buffers.
> > 
> > Let me try to give some examples to show the
problems.
> > First we have a single file with a single (video)
stream. This stream is
> > variable bitrate.
> > The very first constraint here is that the bits
from the start until
> > time t of the movie must never exceed the channel
bandwidth*( t + preload ).
> > Preload here is decided by the demuxer currently.
This is true no matter how
> > large the decoder buffers are. As the decoder
cannot decode what it hasnt
> > received yet.
> 
> This all has nothing to do with redundant timestamps.

I tried to explain the problems in small steps as you seem
to not understand
them at all.


> 
> > Thats the first unavoidable device dependance
> 
> Not unavoidable and not permissible.

What is not unavoidable? My claim was "the decoder
cannot decode what it hasnt
received yet.".
I fear that is not avoidable.


> 
> > Lets for example assume a decoder has a buffer of
size X (that can be 50gb if
> > you want). And let us further assume the
muxer/transmiter by using magic
> > knows that size and stays within the limit. that
is the buffer might be
> > 0-0.1% full for an hour or 99.9-100% full for an
hour. No problem but
> > the decoder CANNOT with that detect clock drift.
because the dts/pts it
> > receives as well as all other timestamps in nut
currently, will differ from
> > its clock by the buffer fullness. transmit_ts can
easily be used as it is
> > the true transmit time.
> 
> Mark the buffer with actual receive times, according to
the local
> clock, and correlate them with the timestamps in the
NUT stream,
> smoothing out any timing adjustments over a long
interval that's still
> an order of magnitude away from the length needed for
drift to become
> a problem. 

Ill try again with an even simpler example to make it harder
to miss the
problem. Eventually you will have a problem to ignore it and
pretent
some disconnected solution might work

lets assume 1 frame/sec video, and 100byte/sec channel rate
Frame 0   dts   0 99byte received at 0
Frame 1   dts   1 99byte received at 0.99
Frame 2   dts   2 99byte received at 1.98
...
Frame 1000 dts 1000 99bytereceived at 990

vs.

99byte/sec channel rate
Frame 0   dts   0 99byte received at 1
Frame 1   dts   1 99byte received at 2
Frame 2   dts   2 99byte received at 3
...
Frame 1000 dts 1000 99byte received at 1000

The above 2 are with atomic clock based transmitters and
receivers. 
Now assume the clocks drift how are you going to detect let
alone compensate
for this? Either of the 2 outputs could have come from the
other stream if the
clock drifts in the right direction.

[...]

-- 
Michael     GnuPG fingerprint:
9FF2128B147EF6730BADF133611EC787040B0FAB

The greatest way to live with honor in this world is to be
what we pretend
to be. -- Socrates

_______________________________________________
NUT-devel mailing list
NUT-develmplayerhq.hu
https://lists.mplayerhq.hu/mailman/listinfo/nut-devel
Re:
country flaguser name
United States
2008-02-06 19:55:06
On Wed, Feb 06, 2008 at 08:41:22PM +0100, Michael
Niedermayer wrote:
> On Wed, Feb 06, 2008 at 02:26:01PM -0500, Rich Felker
wrote:
> > On Wed, Feb 06, 2008 at 08:02:10PM +0100, Michael
Niedermayer wrote:
> > > The point is that this does NOT apply to the
"mpeg design" with transmit_ts
> > > as the 11 extra seconds are transmitted
during the 1000 low bitrate frames
> > > before.
> > 
> > This means that:
> > 
> > A. During these 1000 low bitrate frames, each
frame was actually
> >    transmitted well-before its decode/presentation
time, so you have a
> >    lot of latency.
> 
> No the transmitter has access to the whole transmission
unless its a
> realtime transmission.

If we're talking about transmission latency, obviously the
topic is
live streams.

> It really is a 0 vs. 11 second difference for
> the receier after you switch it on/or tune to the
channel at the start.

You'll have to clarify perhaps with an example because
you're not
making sense to me.

> > Anyway, transmit_ts is not necessary to do what
you've described. It
> > works perfectly well in my design, modulo the
above points which apply
> > either way. However due to the above, especially
C, I consider this
> > very bad broadcast system design.
> [...]
> > > B. requires 11 seconds instead of 0 seconds
initial preload in the example
> > >    (and iam still not sure if clocks could
really be synchronized in all
> > >    cases)
> > 
> > Claiming 0 is simply false. See above.
> 
> No its not false, the receiver has a 0 second INITIAL
preload requirement.
> At frame 1000 it has a 11 second preload requirementt.
And the average
> should be around 5.5 seconds. Thats half of your
suggestion.
> You can change all the numbers by a scalar of your
choice, it remains your
> design needs 2x the latency on average.

Perhaps you could clarify what "my design" is,
because I have no idea
what design of mine you're talking about that requires
unnecessary
preload. Do you just mean the practice of always using the
maximum
that could be needed for any part of the stream? Or
something else?

> The main/stream headers are just needed once, if i
switch channels around,
> i already have them after a few minutes for all
channels. And wont want to
> wait for them ...

After a few minutes? Normally I want to see the video within
0.5 sec
of selecting a channel, not a few minutes later... If a
viewer can
turn on the receiving device/program and begin watching at
any moment,
infrequent header repetition simply does not work.

Rich
_______________________________________________
NUT-devel mailing list
NUT-develmplayerhq.hu
https://lists.mplayerhq.hu/mailman/listinfo/nut-devel

Re:
country flaguser name
United States
2008-02-06 19:57:27
On Wed, Feb 06, 2008 at 09:47:03PM +0100, Michael
Niedermayer wrote:
> On Wed, Feb 06, 2008 at 02:27:16PM -0500, Rich Felker
wrote:
> > On Wed, Feb 06, 2008 at 08:06:54PM +0100, Michael
Niedermayer wrote:
> > > > > There is no correlation between the
carrier and the data.  The carrier
> > > > > has nothing whatsoever to do with
sender/receiver synchronisation.
> > > > 
> > > > Not in existing devices, but there's no
fundamental reason it can't be
> > > > used for this purpose. That was my only
point in mentioning this
> > > > otherwise OT tidbit.
> > > 
> > > <pic showing rich floating in space with a
screwdriver, screeming
> > > "I must fix the satelites, so they
synchronize their transmitters with
> > > the data transmitted" >
> > 
> > hahahahah please draw and scan and post to list =)
> 
> Attached, though its photographed not scanned, my
scanner ist here.

LMAO at both yours and Måns' pics. At least something
positive has
come out of this whole flamewar...

Rich

_______________________________________________
NUT-devel mailing list
NUT-develmplayerhq.hu
https://lists.mplayerhq.hu/mailman/listinfo/nut-devel
Re:
user name
2008-02-07 04:39:02
Rich Felker wrote:
> On Wed, Feb 06, 2008 at 08:41:22PM +0100, Michael
Niedermayer wrote:
>> The main/stream headers are just needed once, if i
switch channels around,
>> i already have them after a few minutes for all
channels. And wont want to
>> wait for them ...
>
> After a few minutes? Normally I want to see the video
within 0.5 sec
> of selecting a channel, not a few minutes later... If a
viewer can
> turn on the receiving device/program and begin watching
at any moment,
> infrequent header repetition simply does not work.

The satellite receivers I work with require a few minutes at
power-on
to collect some information about the channels.  Once that
is done,
channel switching is fast.  Under normal operation the
receiver is
never powered down, only the outputs are switched off, so
this setup
delay is rarely experienced by the user.

-- 
Måns Rullgård
mansmansr.com
_______________________________________________
NUT-devel mailing list
NUT-develmplayerhq.hu
https://lists.mplayerhq.hu/mailman/listinfo/nut-devel
[1-5]

about | contact  Other archives ( Real Estate discussion Medical topics )