List Info

Thread:




Re:
country flaguser name
Austria
2008-02-11 18:42:40
On Mon, Feb 11, 2008 at 11:04:17PM +0000, Måns Rullgård
wrote:
> Michael Niedermayer <michaelnigmx.at> writes:
> 
> > On Mon, Feb 11, 2008 at 12:14:20PM -0000, Måns
Rullgård wrote:
> >> 
> >> Michael Niedermayer wrote:
> >> > On Thu, Feb 07, 2008 at 01:58:32PM -0000,
Måns Rullgård wrote:
> >> >>
> >> >> Michael Niedermayer wrote:
> >> > [...]
> >> >> > That way the buffer_fullness
stored in the syncpoint will always match
> >> >> > exactly the amount the decoder
has in its buffer when reading the
> >> >> > syncpoint. If it has more in its
buffer it just would change its clock
> >> >> > to one running at 100.1% and
when it has less in its buffer it would
> >> >> > choose a 99.9% clock as
reference. (Or any approximetaly equivalent
> >> >> > process)
> >> >>
> >> >> That the buffer fullness is off by N
bits doesn't tell you how much too
> >> >> fast or too slow your clock is, only
the sign of the error.
> >> >
> >> > yes
> >> >
> >> >
> >> >> Knowing
> >> >> also the magnitude of the error
allows much more rapid convergence.
> >> >
> >> > I am not so sure about this. I mean i
dont dispute that more
> >> > information should improve it, but i
think its good enough with
> >> > the too much/too little.
> >> >
> >> > A simple example, lets assume we have a
decoder with a clock that drifts
> >> > by up to D between syncpoints.
> >> > That is, in the most ideal case we would
have to accept that we are
> >> > D off when we reach a syncpoint, assuming
we synced to the previous
> >> > perfectly.
> >> >
> >> > Now lets assume that we are within -2D ..
+2D at syncpoint x, and
> >> > we apply a +D correction if we are <0
and -D if we are >0. This
> >> > correction could be applied slowly until
the next syncpoint. What
> >> > matters is that after the correction we
are within -D .. +D and
> >> > with the drift thats again -2D .. +2D at
syncpoint x+1.
> >> > Thus above is a proof by induction that
just knowing the sign and
> >> > the worst case clock drift is sufficient
to be within a factor of
> >> > 2 of the best achiveable clock sync.
(comparing worst cases, not
> >> > average)
> >> 
> >> This is not how clock sync is usually done.  A
typical implementation
> >> involves a PLL-type construct to make the
local clock accurately track
> >> the sender clock.  Once locked, there is very
little drift.  To correctly
> >> compensate for what little drift inevitably
remains, the size of the
> >> error must be known.
> >
> > Could you elaborate on how PLL based clock sync
with transmit ts works?
> > I am no PLL expert, what i know is more of the
sort that a PLL takes a
> > reference signal like a sine wave as input, not
occasional scalars which
> > represent time since some point 0.
> > Iam also fine with a RTFM + an url.
> 
> I recommend ISO 13818-1/ITU-T 222.0 Annex D.  It can be
downloaded for
> free from http
://www.itu.int/rec/T-REC-H.222.0-200605-I/en

thanks


> 
> >> The time difference can of course be computed
from the difference in buffer
> >> fullness and the received bitrate, it merely
takes a little more work on
> >> the receiver side.
> >
> > instead of transmit_ts one can use
> > internal_clock_ts + (buffer_fullness <
real_fullness ? D : -D)
> > That should provide a pretty good reference for
the PLL IMHO
> 
> This could easily end up oscillating around the correct
rate, where
> using the precise error value would give a near-perfect
match.

I assumed a normal clock which would be reasonably accurate,
that is 1min/day
drift. In that case the oscilations would by <1ms per
second with 1 
transmit_ts per second.
Though if one assumes a vastly inaccurate clock only
stabilized by an input
voltage like described above the simple +-D method would
work less well.
A simple improvment would be to double D if the error had
the same sign as
last time and half it if it had opposit signs. This method
should converge
within O(log N) time and stay pretty darn accurate once
converged.



> 
> >> >> Providing the timestamp in the stream
makes this trivial and independent
> >> >> of the buffering mechanism actually
used.  Only specifying expected
> >> >> buffer fullness (according to a
reference model) requires that the
> >> >> receiver at the very least simulate
the reference model,
> >> >
> >> > I think most receivers will use something
quite similar to the reference
> >> > model thus making this unneeded. Though
yes a receiver using a different
> >> > buffer model might need to simulate the
reference one.
> >> 
> >> I think it very unlikely that any real
implementation will use whatever
> >> precise buffer model we choose.  Just about
any implementation is
> >> likely to immediately extract the elementary
streams of interest, and
> >> discard everything else, such as container
headers and unwanted elementary
> >> streams.
> >
> > Well we can discard the container headers as well
in the reference model.
> 
> We could, but I don't quite like the idea.  The
difference in
> implementation effort is fairly small, and I prefer to
keep the spec
> as simple as possible.

Iam fine with either ...


> 
> >> > But i have difficulty imageing a
sufficiently different buffer model.
> >> > I mean a receiver with split buffers
could just be taking the sum of
> >> > their buffer_fullness.
> >> > A reciver which removes packets later or
not instantaneously would just
> >> > traverse the last few packets to find out
how much the refernce buffer
> >> > would contain.
> >> 
> >> I'm not saying it would very difficult to
simulate the reference buffer,
> >> but something is always more than nothing.
> >
> > yes but OTOH transmit_ts would not scale nicely
with increased bandwidth.
> > Do you have some suggestions here to avoid this
disadvantage?
> 
> Could you elaborate on this issue?

The issue i saw is impossible, i must have been tired or
something 

[...]
-- 
Michael     GnuPG fingerprint:
9FF2128B147EF6730BADF133611EC787040B0FAB

Freedom in capitalist society always remains about the same
as it was in
ancient Greek republics: Freedom for slave owners. --
Vladimir Lenin

_______________________________________________
NUT-devel mailing list
NUT-develmplayerhq.hu
https://lists.mplayerhq.hu/mailman/listinfo/nut-devel
Re:
country flaguser name
Austria
2008-02-16 20:47:27
On Mon, Feb 11, 2008 at 03:11:45AM +0100, Michael
Niedermayer wrote:
> On Sun, Feb 10, 2008 at 08:53:17PM -0500, Rich Felker
wrote:
> > On Mon, Feb 11, 2008 at 12:54:56AM +0100, Michael
Niedermayer wrote:
> > > On Thu, Feb 07, 2008 at 03:55:46AM +0100,
Michael Niedermayer wrote:
> > > > Hi
> > > > 
> > > > Heres a third try, the 
> > > > first was transmit_ts with unspecified
buffers
> > > > second was transmit_ts with a single
specified buffer
> > > > 
> > > > Here now comes the buffer state per
syncpoint.
> > > > It trivially allows the demuxer to find
the needed preload, and allows
> > > > trivial clock synchronization.
> > > > 
> > > > Iam not sure how much more or less
device dependant this is. It surely
> > > > looks better if one considers
broadcasting at a higher bitrate than the
> > > > intended one. (lower will fail as with
all other proposals)
> > > > 
> > > > Also this is the smallest solution so
far, and likely also has less
> > > > overhead than the transmit_ts.
> > > 
> > > Iam planing to commit this in 24h, if someone
has objections / wants me
> > > to wait say so.
> > 
> > Can you wait a little bit for some more
discussion? I'm not rejecting
> > it but I'd like to think it through more.
> 
> ok

ping, i waited a week ...
Ill add a transmit_ts in 48h (without buffer model) unless
there is some
sort of discussion happening before.

[...]
-- 
Michael     GnuPG fingerprint:
9FF2128B147EF6730BADF133611EC787040B0FAB

Republics decline into democracies and democracies
degenerate into
despotisms. -- Aristotle

_______________________________________________
NUT-devel mailing list
NUT-develmplayerhq.hu
https://lists.mplayerhq.hu/mailman/listinfo/nut-devel
Re:
user name
2008-02-19 14:19:39
Michael Niedermayer <michaelnigmx.at> writes:

> +transmit_ts (t)
> +    The timestamp at which the first bit of the
syncpoint is transmitted.

In MPEG-TS, the PCR value is the time of arrival of the last
bit
(actually the byte containing the last bit).  This could be
seen as
more logical, as then no timestamp will refer to a time in
the past.
I doubt the distinction is relevant in practice, but I
wanted to point
it out nonetheless.

> +    MUST be less than or equal to all following dts.

I'm not happy with this.  It allows the clock to reach the
DTS of a
frame before the frame has arrived.  Placing restrictions on
the
transmit_ts value is not sufficient to avoid this condition.
 Instead,
it must be a rule that a frame must be completely received
before the
reference clock reaches its DTS value.

> +    Demuxers in non broadcast mode MUST ignore the
value of this field.

Why does it matter what demuxers do with it?

> +    Muxers in broadcast mode MUST NOT ommit this
field.

"omit"

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

Re:
user name
2008-02-19 00:37:56
On Mon, Feb 18, 2008 at 07:56:32PM +0100, Michael
Niedermayer wrote:
> On Mon, Feb 18, 2008 at 02:40:07AM -0500, Rich Felker
wrote:
> > transmit_ts or your other proposal? I think I like
transmit_ts better
> 
> transmit_ts
> 
> 
> > but I'd like to know the motivations behind how
the decision is made
> 
> Motivation, it seems transmit_ts or someting equivalent
is needed for
> efficient broadcast. Your suggestion of keeping the
buffer at an average
> is less efficient. And buffer_fullness is sensitive to
packet loss.
> 
> 
> > rather than a decision being made by default when
no one discusses it.
> > Even though this is not a feature I'm particularly
interested in.
> 
> Well what else should we do? Theres a problem, we know
a solution, noone
> else suggested an equally efficient alternative. I dont
have a proof that
> there is no better alternative. If we wait indefinitly
the problem just
> wont be solved. And waiting while there are zero
discussions wont lead
> to a new alternative being proposed ...

Could you present the exact patch again? I'd like to
remember the exact 
syntax you intended. Did we decide on an
"is_broadcast" flag?

Besides the syntax which I would like to see before
approving, I have no 
objections.

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

Re:
user name
2008-02-18 14:51:56
Rich Felker <daliasaerifal.cx> writes:

> On Mon, Feb 18, 2008 at 08:35:06PM +0000, Måns Rullgård
wrote:
>> Rich Felker <daliasaerifal.cx> writes:
>> 
>> > On Mon, Feb 18, 2008 at 07:56:32PM +0100,
Michael Niedermayer wrote:
>> >> > rather than a decision being made by
default when no one
>> >> > discusses it.  Even though this is
not a feature I'm
>> >> > particularly interested in.
>> >> 
>> >> Well what else should we do? Theres a
problem, we know a
>> >> solution, noone else suggested an equally
efficient
>> >> alternative. I dont have a proof that
there is no better
>> >> alternative. If we wait indefinitly the
problem just wont be
>> >> solved. And waiting while there are zero
discussions wont lead
>> >> to a new alternative being proposed ...
>> >
>> > Alright, I agree let's not delay a long time.
Could the broadcast
>> > ppl (Måns and Nico? anyone else?) please speak
up and say whether
>> > you approve of this solution?
>>
>> It's just like MPEG-TS, so it's go to be good 
>
> Not quite. We don't have l33t 3-letter codes like
SCR...

SCR is in MPEG-PS.  In TS it's PCR.

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

Re:
user name
2008-02-18 14:35:06
Rich Felker <daliasaerifal.cx> writes:

> On Mon, Feb 18, 2008 at 07:56:32PM +0100, Michael
Niedermayer wrote:
>> > rather than a decision being made by default
when no one discusses it.
>> > Even though this is not a feature I'm
particularly interested in.
>> 
>> Well what else should we do? Theres a problem, we
know a solution, noone
>> else suggested an equally efficient alternative. I
dont have a proof that
>> there is no better alternative. If we wait
indefinitly the problem just
>> wont be solved. And waiting while there are zero
discussions wont lead
>> to a new alternative being proposed ...
>
> Alright, I agree let's not delay a long time. Could the
broadcast ppl
> (Måns and Nico? anyone else?) please speak up and say
whether you
> approve of this solution?

It's just like MPEG-TS, so it's go to be good 

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

Re:
country flaguser name
Italy
2008-02-18 16:21:21
Il Monday 18 February 2008 21:35:06 Måns Rullgård ha
scritto:
> Rich Felker <daliasaerifal.cx> writes:
> 
> > On Mon, Feb 18, 2008 at 07:56:32PM +0100, Michael
Niedermayer wrote:
> >> > rather than a decision being made by
default when no one discusses it.
> >> > Even though this is not a feature I'm
particularly interested in.
> >> 
> >> Well what else should we do? Theres a problem,
we know a solution, noone
> >> else suggested an equally efficient
alternative. I dont have a proof that
> >> there is no better alternative. If we wait
indefinitly the problem just
> >> wont be solved. And waiting while there are
zero discussions wont lead
> >> to a new alternative being proposed ...
> >
> > Alright, I agree let's not delay a long time.
Could the broadcast ppl
> > (Måns and Nico? anyone else?) please speak up and
say whether you
> > approve of this solution?
> 
> It's just like MPEG-TS, so it's go to be good 
> 

it's the most efficient and less error-prone solution I can
think of,
let alone that it's trivial to implement at least in the
receiver/demuxer
_______________________________________________
NUT-devel mailing list
NUT-develmplayerhq.hu
https://lists.mplayerhq.hu/mailman/listinfo/nut-devel

Re:
country flaguser name
United States
2008-02-18 13:12:17
On Mon, Feb 18, 2008 at 07:56:32PM +0100, Michael
Niedermayer wrote:
> > rather than a decision being made by default when
no one discusses it.
> > Even though this is not a feature I'm particularly
interested in.
> 
> Well what else should we do? Theres a problem, we know
a solution, noone
> else suggested an equally efficient alternative. I dont
have a proof that
> there is no better alternative. If we wait indefinitly
the problem just
> wont be solved. And waiting while there are zero
discussions wont lead
> to a new alternative being proposed ...

Alright, I agree let's not delay a long time. Could the
broadcast ppl
(MÃ¥ns and Nico? anyone else?) please speak up and say
whether you
approve of this solution?

Rich
_______________________________________________
NUT-devel mailing list
NUT-develmplayerhq.hu
https://lists.mplayerhq.hu/mailman/listinfo/nut-devel
Re:
country flaguser name
Austria
2008-02-19 15:25:00
On Tue, Feb 19, 2008 at 08:19:39PM +0000, Måns Rullgård
wrote:
> Michael Niedermayer <michaelnigmx.at> writes:
> 
> > +transmit_ts (t)
> > +    The timestamp at which the first bit of the
syncpoint is transmitted.
> 
> In MPEG-TS, the PCR value is the time of arrival of the
last bit
> (actually the byte containing the last bit).  This
could be seen as
> more logical, as then no timestamp will refer to a time
in the past.
> I doubt the distinction is relevant in practice, but I
wanted to point
> it out nonetheless.

Last bit of what? The transmit_ts or the syncpoint?
A well written demuxer/receiver will check the crc of the
syncpoint before
using transmit_ts thus it would still be in the past if its
the last bit
of transmit_ts.
Also either way transmit_ts is variable length and that
would slightly
complicate setting it exactly to the time of the last bit.


> 
> > +    MUST be less than or equal to all following
dts.
> 
> I'm not happy with this.  It allows the clock to reach
the DTS of a
> frame before the frame has arrived.  Placing
restrictions on the
> transmit_ts value is not sufficient to avoid this
condition.  Instead,
> it must be a rule that a frame must be completely
received before the
> reference clock reaches its DTS value.

What about:

transmit_ts (t)
    The value of the reference clock at the moment when the
first bit of
    transmit_ts is transmitted/received.
    The reference clock MUST always be less than or equal to
the DTS of
    every not yet completely received frame.

?


> 
> > +    Demuxers in non broadcast mode MUST ignore
the value of this field.
> 
> Why does it matter what demuxers do with it?

Rich?


> 
> > +    Muxers in broadcast mode MUST NOT ommit this
field.
> 
> "omit"

Fixed

[...]
-- 
Michael     GnuPG fingerprint:
9FF2128B147EF6730BADF133611EC787040B0FAB

No human being will ever know the Truth, for even if they
happen to say it
by chance, they would not even known they had done so. --
Xenophanes

_______________________________________________
NUT-devel mailing list
NUT-develmplayerhq.hu
https://lists.mplayerhq.hu/mailman/listinfo/nut-devel
Re:
country flaguser name
Austria
2008-02-19 14:34:00
On Tue, Feb 19, 2008 at 12:58:25PM -0500, Rich Felker
wrote:
> On Tue, Feb 19, 2008 at 06:45:05PM +0100, Michael
Niedermayer wrote:
> > +main_flags (v)
> > +    Bit Name            Description
> > +    0   BROADCAST_MODE  Set if broadcast mode is
in use.

First we have existing flags which use the same form of
description.

> 
> Doesn't nut.txt say bit numbering goes from highest to
lowest? Of
> course this makes no sense for vlc bitfields... But it
should probably
> be clarified. Or else explicit numeric values rather
than but numbers
> should be used.

There were explicit numbers until:
---
r463 | ivo | 2006-11-24 17:35:22 +0100 (Fri, 24 Nov 2006) |
3 lines

specify the bitnumber for frame_flags, instead of a decimal
bitmask
---

Iam all for changing things back to r462 flag bit wise.

[...]
-- 
Michael     GnuPG fingerprint:
9FF2128B147EF6730BADF133611EC787040B0FAB

I know you won't believe me, but the highest form of Human
Excellence is
to question oneself and others. -- Socrates

_______________________________________________
NUT-devel mailing list
NUT-develmplayerhq.hu
https://lists.mplayerhq.hu/mailman/listinfo/nut-devel
[1-10] [11-20] [21-30] [31-40] [41-46]

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