[streaming] Lua scripts break the playlist - but why?

Gergely Kiss <[email protected]> Mon, 28 Dec 2009 16:52:29 +0100
Newsgroups gmane.comp.video.videolan.vls.general
Message-ID <[email protected]>
--001485f0ac64919b94047bcbe425
Content-Type: text/plain; charset=ISO-8859-1

Dear List,

I'm facing a quite strange problem now. Finally, I could manage to
stream any kind of media through MMSH/ASF, the problem was around
audio formats: according to the sout chain, the audio track should
have been stereo, but some of the source files were encoded as mono
and WMP refused to play anything, as it detected only one channel.
Setting "channels=1" in the sout chain solved the problem. It would be
nice, though, if VLC could automatically duplicate the channel of a
mono input to stream it as stereo, but that's not very important right
now (could this be a feature request?).

What I'm facing now is a bit harder nut for me. If I try to create a
playlist through the HTTP interface, I end up having a totally
randomized list - playlist elements appear in the correct order, but
they are getting played back in an unpredictable order: sometimes an
element gets repeated 2-3 times, sometimes an element is skipped
without even trying to play it (according to the debug messages). I
tried to look around a bit and found that this issue may be related to
lua scripts and the XML playlist, which is used by the HTTP interface.
If I created a playlist with some mixed elements (MP3 music from a
network share, a couple of YouTube videos), I experience the
followings:

1. The first item in the list is played twice.
2. The next item should be
"http://www.youtube.com/watch?v=sadHKrdaHZo", but it is the last item
(/home/kissg/mp3/Ambient/Jean-Michel Jarre - Waiting for Cousteau
.mp3).
3. VLC continues to play with
"http://www.youtube.com/watch?v=sadHKrdaHZo", which should have been
the previous item.
4. After this, the youtube videos on the list are played sequentially.

As long as the playlist is in an unmodified state, each item shows up
as a leaf of the playlist node. After the lua scripts are run, leaves
of the youtube videos will be converted to nodes, and the URL of the
video will be the leaf. Probably that's what causes the problem, VLC
tries to play the leaves first and the extra nodes will be played only
at the end of the playlist... Okay, this is just my hypothesis, I'm
not a developer of VLC.

Please check the XML file attached to see the layout of the playlist.

Could this be a bug of VLC? It not, how should I tell VLC to play the
items in the correct order?

Disabling the playlist tree (--no-playlist-tree) didn't help...

--001485f0ac64919b94047bcbe425
Content-Type: text/xml; charset=US-ASCII; name="playlist.xml"
Content-Disposition: attachment; filename="playlist.xml"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g3rf90w10

PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pgo8
bm9kZSBpZD0iMSIgbmFtZT0iVW5kZWZpbmVkIiBybz0icnciPgogICAgCiAgICAgIAogICAgCiAg
ICAKICAgICAgCiAgICAKICAKICAKCiAgCiAgCiAgICA8bm9kZSBpZD0iMyIgbmFtZT0iUGxheWxp
c3QiIHJvPSJybyI+CiAgICAKICAgIAogICAgICAKICAgIAogIAogIAoKICAKICAKICAgIAogICAg
PGxlYWYgaWQ9IjYiIHVyaT0iL2hvbWUva2lzc2cvbXAzL0FtYmllbnQvW05lc2NhZmVdIE9wZW51
cC5tcDMiIG5hbWU9Ii9ob21lL2tpc3NnL21wMy9BbWJpZW50L1tOZXNjYWZlXSBPcGVudXAubXAz
IiBybz0icnciIGR1cmF0aW9uPSIxNTEyOTA4MjMiPgoJCTx0aXRsZT48IVtDREFUQVtdXT48L3Rp
dGxlPgoJCTxhcnRpc3Q+PCFbQ0RBVEFbXV0+PC9hcnRpc3Q+CgkJPGdlbnJlPjwhW0NEQVRBW11d
PjwvZ2VucmU+CgkJPGNvcHlyaWdodD48IVtDREFUQVtdXT48L2NvcHlyaWdodD4KCQk8YWxidW0+
PCFbQ0RBVEFbXV0+PC9hbGJ1bT4KCQk8dHJhY2s+PCFbQ0RBVEFbXV0+PC90cmFjaz4KCQk8ZGVz
Y3JpcHRpb24+PCFbQ0RBVEFbXV0+PC9kZXNjcmlwdGlvbj4KCQk8cmF0aW5nPjwhW0NEQVRBW11d
PjwvcmF0aW5nPgoJCTxkYXRlPjwhW0NEQVRBW11dPjwvZGF0ZT4KCQk8dXJsPjwhW0NEQVRBW11d
PjwvdXJsPgoJCTxsYW5ndWFnZT48IVtDREFUQVtdXT48L2xhbmd1YWdlPgoJCTxub3dfcGxheWlu
Zz48IVtDREFUQVtdXT48L25vd19wbGF5aW5nPgoJCTxwdWJsaXNoZXI+PCFbQ0RBVEFbXV0+PC9w
dWJsaXNoZXI+CgkJPGVuY29kZWRfYnk+PCFbQ0RBVEFbXV0+PC9lbmNvZGVkX2J5PgoJCTxhcnRf
dXJsPjwhW0NEQVRBW11dPjwvYXJ0X3VybD4KCQk8dHJhY2tfaWQ+PCFbQ0RBVEFbXV0+PC90cmFj
a19pZD4KCTwvbGVhZj4KICAKICAKCiAgCiAgCiAgICA8bm9kZSBpZD0iOCIgbmFtZT0iaHR0cDov
L3d3dy55b3V0dWJlLmNvbS93YXRjaD92PXNhZEhLcmRhSFpvIiBybz0icnciPgogICAgCiAgICAK
ICAgICAgCiAgICAKICAKICAKCiAgCiAgCiAgICAKICAgIDxsZWFmIGlkPSIxNSIgY3VycmVudD0i
Y3VycmVudCIgdXJpPSJodHRwOi8veW91dHViZS5jb20vZ2V0X3ZpZGVvP3ZpZGVvX2lkPXNhZEhL
cmRhSFpvJmFtcDt0PXZqVlFhMVBwY0ZQbjRrV3FzUXVyN3cxZjNyOFJYX1Z6aTFpbTBodmh1enMl
M0QiIG5hbWU9Ik9saXZlciBLb2xldHpraSBmZWF0LiBKdWxpIEhvbHogLSBadWNrZXJ3YXR0ZSAo
RGF2aWQgQXVndXN0IFJlbWl4KSIgcm89InJ3IiBkdXJhdGlvbj0iNDA4NTYwMDAwIj4KCQk8dGl0
bGU+PCFbQ0RBVEFbXV0+PC90aXRsZT4KCQk8YXJ0aXN0PjwhW0NEQVRBW11dPjwvYXJ0aXN0PgoJ
CTxnZW5yZT48IVtDREFUQVtdXT48L2dlbnJlPgoJCTxjb3B5cmlnaHQ+PCFbQ0RBVEFbXV0+PC9j
b3B5cmlnaHQ+CgkJPGFsYnVtPjwhW0NEQVRBW11dPjwvYWxidW0+CgkJPHRyYWNrPjwhW0NEQVRB
W11dPjwvdHJhY2s+CgkJPGRlc2NyaXB0aW9uPjwhW0NEQVRBW09saXZlciBLb2xldHpraSAgWnVj
a2Vyd2F0dGUgZXAgR2VucmU6IFRlY2hob3VzZSAsICBMYWJlbDogU3RpbCBWb3IgVGFsZW50ICwg
WWVhcjogMjAwOV1dPjwvZGVzY3JpcHRpb24+CgkJPHJhdGluZz48IVtDREFUQVtdXT48L3JhdGlu
Zz4KCQk8ZGF0ZT48IVtDREFUQVtdXT48L2RhdGU+CgkJPHVybD48IVtDREFUQVtdXT48L3VybD4K
CQk8bGFuZ3VhZ2U+PCFbQ0RBVEFbXV0+PC9sYW5ndWFnZT4KCQk8bm93X3BsYXlpbmc+PCFbQ0RB
VEFbXV0+PC9ub3dfcGxheWluZz4KCQk8cHVibGlzaGVyPjwhW0NEQVRBW11dPjwvcHVibGlzaGVy
PgoJCTxlbmNvZGVkX2J5PjwhW0NEQVRBW11dPjwvZW5jb2RlZF9ieT4KCQk8YXJ0X3VybD48IVtD
REFUQVtodHRwOi8vaW1nLnlvdXR1YmUuY29tL3ZpL3NhZEhLcmRhSFpvL2RlZmF1bHQuanBnXV0+
PC9hcnRfdXJsPgoJCTx0cmFja19pZD48IVtDREFUQVtdXT48L3RyYWNrX2lkPgoJPC9sZWFmPgog
IAogIAoKICAKICAgIAogICAgCiAgICAgIDwvbm9kZT4KICAgIAogIAogIAogICAgPG5vZGUgaWQ9
IjEwIiBuYW1lPSJodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9eDNkNDZqTUlSSkUiIHJv
PSJydyI+CiAgICAKICAgIAogICAgICAKICAgIAogIAogIAoKICAKICAKICAgIAogICAgPGxlYWYg
aWQ9IjE3IiB1cmk9Imh0dHA6Ly95b3V0dWJlLmNvbS9nZXRfdmlkZW8/dmlkZW9faWQ9eDNkNDZq
TUlSSkUmYW1wO3Q9dmpWUWExUHBjRk9McHFTYnk0RnBrUDNhTUM0QW5mUkJMdjNYQVFmeG5TdyUz
RCIgbmFtZT0iYm9uIGpvdmkgeW91IGdpdmUgbG92ZSBhIGJhZCBuYW1lIiBybz0icnciIGR1cmF0
aW9uPSIyMjUxMjAwMDAiPgoJCTx0aXRsZT48IVtDREFUQVtdXT48L3RpdGxlPgoJCTxhcnRpc3Q+
PCFbQ0RBVEFbXV0+PC9hcnRpc3Q+CgkJPGdlbnJlPjwhW0NEQVRBW11dPjwvZ2VucmU+CgkJPGNv
cHlyaWdodD48IVtDREFUQVtdXT48L2NvcHlyaWdodD4KCQk8YWxidW0+PCFbQ0RBVEFbXV0+PC9h
bGJ1bT4KCQk8dHJhY2s+PCFbQ0RBVEFbXV0+PC90cmFjaz4KCQk8ZGVzY3JpcHRpb24+PCFbQ0RB
VEFbc29uZyBwbGVzIGNvbW1lbnR0IHR5bnggZW5qb3l5eXkgaXR0dHR0dHQgaXR0dHQgcm9ja2tr
c3Nzc2tza3Nra3NramRqbXNuZGZma21nZm0sZ2ZrZmtnZmtqbG5kZmdram5dXT48L2Rlc2NyaXB0
aW9uPgoJCTxyYXRpbmc+PCFbQ0RBVEFbXV0+PC9yYXRpbmc+CgkJPGRhdGU+PCFbQ0RBVEFbXV0+
PC9kYXRlPgoJCTx1cmw+PCFbQ0RBVEFbXV0+PC91cmw+CgkJPGxhbmd1YWdlPjwhW0NEQVRBW11d
PjwvbGFuZ3VhZ2U+CgkJPG5vd19wbGF5aW5nPjwhW0NEQVRBW11dPjwvbm93X3BsYXlpbmc+CgkJ
PHB1Ymxpc2hlcj48IVtDREFUQVtdXT48L3B1Ymxpc2hlcj4KCQk8ZW5jb2RlZF9ieT48IVtDREFU
QVtdXT48L2VuY29kZWRfYnk+CgkJPGFydF91cmw+PCFbQ0RBVEFbaHR0cDovL2ltZy55b3V0dWJl
LmNvbS92aS94M2Q0NmpNSVJKRS9kZWZhdWx0LmpwZ11dPjwvYXJ0X3VybD4KCQk8dHJhY2tfaWQ+
PCFbQ0RBVEFbXV0+PC90cmFja19pZD4KCTwvbGVhZj4KICAKICAKCiAgCiAgICAKICAgIAogICAg
ICA8L25vZGU+CiAgICAKICAKICAKICAgIDxub2RlIGlkPSIxMiIgbmFtZT0iaHR0cDovL3d3dy55
b3V0dWJlLmNvbS93YXRjaD92PWZQUEE5V3VtNTg0IiBybz0icnciPgogICAgCiAgICAKICAgICAg
CiAgICAKICAKICAKCiAgCiAgCiAgICAKICAgIDxsZWFmIGlkPSIxOSIgdXJpPSJodHRwOi8veW91
dHViZS5jb20vZ2V0X3ZpZGVvP3ZpZGVvX2lkPWZQUEE5V3VtNTg0JmFtcDt0PXZqVlFhMVBwY0ZO
empSdWhsalF5NXpBZHd5SGxpVGs5aW1wOWpDd0xnX0ElM0QiIG5hbWU9IlBpbmsgLSBKdXN0IExp
a2UgQSBQaWxsIFtPRkZJQ0lBTCBNVVNJQyBWSURFT10iIHJvPSJydyIgZHVyYXRpb249IjIzNzI4
MDAwMCI+CgkJPHRpdGxlPjwhW0NEQVRBW11dPjwvdGl0bGU+CgkJPGFydGlzdD48IVtDREFUQVtd
XT48L2FydGlzdD4KCQk8Z2VucmU+PCFbQ0RBVEFbXV0+PC9nZW5yZT4KCQk8Y29weXJpZ2h0Pjwh
W0NEQVRBW11dPjwvY29weXJpZ2h0PgoJCTxhbGJ1bT48IVtDREFUQVtdXT48L2FsYnVtPgoJCTx0
cmFjaz48IVtDREFUQVtdXT48L3RyYWNrPgoJCTxkZXNjcmlwdGlvbj48IVtDREFUQVtwaW5rXV0+
PC9kZXNjcmlwdGlvbj4KCQk8cmF0aW5nPjwhW0NEQVRBW11dPjwvcmF0aW5nPgoJCTxkYXRlPjwh
W0NEQVRBW11dPjwvZGF0ZT4KCQk8dXJsPjwhW0NEQVRBW11dPjwvdXJsPgoJCTxsYW5ndWFnZT48
IVtDREFUQVtdXT48L2xhbmd1YWdlPgoJCTxub3dfcGxheWluZz48IVtDREFUQVtdXT48L25vd19w
bGF5aW5nPgoJCTxwdWJsaXNoZXI+PCFbQ0RBVEFbXV0+PC9wdWJsaXNoZXI+CgkJPGVuY29kZWRf
Ynk+PCFbQ0RBVEFbXV0+PC9lbmNvZGVkX2J5PgoJCTxhcnRfdXJsPjwhW0NEQVRBW2h0dHA6Ly9p
bWcueW91dHViZS5jb20vdmkvZlBQQTlXdW01ODQvZGVmYXVsdC5qcGddXT48L2FydF91cmw+CgkJ
PHRyYWNrX2lkPjwhW0NEQVRBW11dPjwvdHJhY2tfaWQ+Cgk8L2xlYWY+CiAgCiAgCgogIAogICAg
CiAgICAKICAgICAgPC9ub2RlPgogICAgCiAgCiAgCiAgICAKICAgIDxsZWFmIGlkPSIxNCIgdXJp
PSIvaG9tZS9raXNzZy9tcDMvQW1iaWVudC9KZWFuLU1pY2hlbCBKYXJyZSAtIFdhaXRpbmcgZm9y
IENvdXN0ZWF1IC5tcDMiIG5hbWU9Ii9ob21lL2tpc3NnL21wMy9BbWJpZW50L0plYW4tTWljaGVs
IEphcnJlIC0gV2FpdGluZyBmb3IgQ291c3RlYXUgLm1wMyIgcm89InJ3IiBkdXJhdGlvbj0iMjgx
NDYyOTAzOCI+CgkJPHRpdGxlPjwhW0NEQVRBW11dPjwvdGl0bGU+CgkJPGFydGlzdD48IVtDREFU
QVtdXT48L2FydGlzdD4KCQk8Z2VucmU+PCFbQ0RBVEFbSG91c2VdXT48L2dlbnJlPgoJCTxjb3B5
cmlnaHQ+PCFbQ0RBVEFbXV0+PC9jb3B5cmlnaHQ+CgkJPGFsYnVtPjwhW0NEQVRBW11dPjwvYWxi
dW0+CgkJPHRyYWNrPjwhW0NEQVRBW11dPjwvdHJhY2s+CgkJPGRlc2NyaXB0aW9uPjwhW0NEQVRB
W0FnZW50MzAzICAgICAgICAgICAgICAgICAgICAgIF1dPjwvZGVzY3JpcHRpb24+CgkJPHJhdGlu
Zz48IVtDREFUQVtdXT48L3JhdGluZz4KCQk8ZGF0ZT48IVtDREFUQVtdXT48L2RhdGU+CgkJPHVy
bD48IVtDREFUQVtdXT48L3VybD4KCQk8bGFuZ3VhZ2U+PCFbQ0RBVEFbXV0+PC9sYW5ndWFnZT4K
CQk8bm93X3BsYXlpbmc+PCFbQ0RBVEFbXV0+PC9ub3dfcGxheWluZz4KCQk8cHVibGlzaGVyPjwh
W0NEQVRBW11dPjwvcHVibGlzaGVyPgoJCTxlbmNvZGVkX2J5PjwhW0NEQVRBW11dPjwvZW5jb2Rl
ZF9ieT4KCQk8YXJ0X3VybD48IVtDREFUQVtdXT48L2FydF91cmw+CgkJPHRyYWNrX2lkPjwhW0NE
QVRBW11dPjwvdHJhY2tfaWQ+Cgk8L2xlYWY+CiAgCiAgCgoKCiAgPC9ub2RlPgoKICA8L25vZGU+
--001485f0ac64919b94047bcbe425
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
streaming mailing list
To unsubscribe or modify your subscription options:
http://mailman.videolan.org/listinfo/streaming

--001485f0ac64919b94047bcbe425--