2004-04-27, 16:13
hello, i'm also looking forward a support of proper interlaced content in xbmc.
there are a few things i dont get clearly here so i try to make things more clear for me and hopefuly for those interested in this problem as well...
unfortunately i have to do with my weak knowledge so i apologise in advance for any mystake or erroneous thinking i might have in the next lines;-)
i read a few things here:
"the other thing, i understand you want interlaced output:
as far as i know this is not possible with mplayer"
1. mplayer deinterlaces the video stream
2. mplayer outputs full fields(non-interlaced) to gfx card
2. the nvidia card itself converts it to interlaced video again using its video output chip"
"mplayer works with deinterlaced video internally"
"however since we recieve a progressive stream from mplayer it's not possible to actually do that"
well what i dont get is that when i play one of these interlaced pal sequences in my mplayer build in windows :nothing is deinterlaced: both fields are perfectly weaved. (so not very pretty on a computer screen of course)
so "for me" it is not exactly true to say that mplayer "deinterlaces video streams" or "mplayer works with deinterlaced video internally" because with my very normal build i have on screen what i expect: a video with 2 weaved fields creating an interlaced frame.
now what i understand from progressive/interlaced stuff is that whatever the video you are watching the tv encoder is being sent a 720*576/480 frame every 1/25th s.
and every 1/50th s it sends a field (even or odd) of that frame to the tv,
once both fields have been sent the video buffer is updated with a new frame etc.(every 1/25 s)
so if your signal is interlaced then wonderful:
every 1/25th s, the tv encoder receives a (720*576\480) frame made of 2 weaved fields (720*288\240), it sends the even field to the tv then 1/50th s later it sends the odd field and on tv you ve got the original smooth movement of the original video. no processing has been done as the tv encoder does the job.
now if your video is progressive then well it works all the same way except that the tv encoder creates two fields where there were none in the progressive frame. but nevermind there are much less differences between these two created fields than in two real fields from an interlaced video so that playing them at 50 hz on a tv it will look like a 25fps film. adding some flicker reduce function might help getting the picture more stable as well in case we deal with gui gfx etc...
so what do you mean "however since we recieve a progressive stream from mplayer it's not possible to actually do that"
what do you mean by a progressive stream? a 25fps 720*579/480 stream?
that's what a tv encoder has to receive in order to work no? but that 720*576/480 signal can contain either a progressive 720*576 frames video or an interlaced field based video at 50hz.
now as for interlaced video display, xbmc/mplayer has to output one original line of video for one line on the tv other wise we have those combing effect, so we cant use the user-input screen boundaries, instead we have to output one line for one line with no resize (or as sneals said a field based resize has to be applied but i too think it's not necessary unless we deal with 16/9 video to 4/3 tv)
well i dont know how wrong i am now but i hope someone can understand me and/or correct me if i,m all wrong
thx for this great player anyway!
there are a few things i dont get clearly here so i try to make things more clear for me and hopefuly for those interested in this problem as well...
unfortunately i have to do with my weak knowledge so i apologise in advance for any mystake or erroneous thinking i might have in the next lines;-)
i read a few things here:
"the other thing, i understand you want interlaced output:
as far as i know this is not possible with mplayer"
1. mplayer deinterlaces the video stream
2. mplayer outputs full fields(non-interlaced) to gfx card
2. the nvidia card itself converts it to interlaced video again using its video output chip"
"mplayer works with deinterlaced video internally"
"however since we recieve a progressive stream from mplayer it's not possible to actually do that"
well what i dont get is that when i play one of these interlaced pal sequences in my mplayer build in windows :nothing is deinterlaced: both fields are perfectly weaved. (so not very pretty on a computer screen of course)
so "for me" it is not exactly true to say that mplayer "deinterlaces video streams" or "mplayer works with deinterlaced video internally" because with my very normal build i have on screen what i expect: a video with 2 weaved fields creating an interlaced frame.
now what i understand from progressive/interlaced stuff is that whatever the video you are watching the tv encoder is being sent a 720*576/480 frame every 1/25th s.
and every 1/50th s it sends a field (even or odd) of that frame to the tv,
once both fields have been sent the video buffer is updated with a new frame etc.(every 1/25 s)
so if your signal is interlaced then wonderful:
every 1/25th s, the tv encoder receives a (720*576\480) frame made of 2 weaved fields (720*288\240), it sends the even field to the tv then 1/50th s later it sends the odd field and on tv you ve got the original smooth movement of the original video. no processing has been done as the tv encoder does the job.
now if your video is progressive then well it works all the same way except that the tv encoder creates two fields where there were none in the progressive frame. but nevermind there are much less differences between these two created fields than in two real fields from an interlaced video so that playing them at 50 hz on a tv it will look like a 25fps film. adding some flicker reduce function might help getting the picture more stable as well in case we deal with gui gfx etc...
so what do you mean "however since we recieve a progressive stream from mplayer it's not possible to actually do that"
what do you mean by a progressive stream? a 25fps 720*579/480 stream?
that's what a tv encoder has to receive in order to work no? but that 720*576/480 signal can contain either a progressive 720*576 frames video or an interlaced field based video at 50hz.
now as for interlaced video display, xbmc/mplayer has to output one original line of video for one line on the tv other wise we have those combing effect, so we cant use the user-input screen boundaries, instead we have to output one line for one line with no resize (or as sneals said a field based resize has to be applied but i too think it's not necessary unless we deal with 16/9 video to 4/3 tv)
well i dont know how wrong i am now but i hope someone can understand me and/or correct me if i,m all wrong
thx for this great player anyway!