>On Sat, 2004-07-10 at 10:00 +0200, Fons van der Beek wrote:
>> Would it be possible to do the blackframe detection DURING time
>> shifting?
>
>I've thought a bit about that, and yes, it should be workable.
>
>> This means that timeshift.py a SECOND mplayer proces should be started
>> after the first one.  But may never read beyond the buffer, it should
>> be paused if it reaches the buffer
>
>Yes, that's also how I would do it, however ...
>
>> The "player" instance should reread the EDL file when it is altered,
>> thus knowing if there are new markes.
>
>... I would approach it a different way.  I don't think the player
>instance should use EDL, because then you'd lose the more precise
>seeking that the timeshift code provides.  I think the best way to do
>this is:
>
     >1. The timeshift process spawns two MPlayers: one for playback, and
        >one for blackframe detection (let's call it BFD for
>        convenience), as you said.
     >2. The BFD process is controlled by timeshift always to read at the
        >end of the buffer.  It should never need to be paused, because
>        live tv is, well, live. :)  BFD should output to stdout parsable
        >messages like "BLACK_FRAME=3410" which timeshift process can
>        parse and remember.
     >3. When the player reaches a black frame, the controlling
        >(timeshift) process can tell it to seek to the appropriate place
>        (either to the next black frame, or end of buffer, whichever is
        >first), and since timeshift also knows what timestamps are where
>        in the buffer, seeking will be a lot closer to the mark, since
        >MPlayer's mpeg seeking is hopeless.

could this be depending on how the mpeg is made?: the options given to mp1e? or 
initialisation of ivtv driver in case of a wintv
250/350

     >4. Since the timeshift process knows where the commercials are, it
        >can display this in some way on the interface.

Within the blackframe detection logic is applied to how a blackframe gets interpreted:
max commercial lenght, ad_max_lenght.


>I haven't played with the commercial detection stuff, and in fact I've
>never used EDL at all, so the above makes some assumptions as to how it
>works.  One issue I can think of right away is that there may be some
>delay when reacting to a black frame this way.  I suppose a new
>RINGBUFFER_SET type could be defined to tell MPlayer "pause for further
>instructions when you reach frame XXXX."
>
>If you can send me your latest black frame detection patch, I'll see
>about working this up.
>
>Cheers,
>Jason.


The patch

I applied the patch according to the folowing procedure:

patch -p 0 < MPlayer-1.0pre4-leffakone.patch


> patching file MPlayer-1.0pre4/libmpcodecs/Makefile
> Hunk #1 FAILED at 14.
> 1 out of 1 hunk FAILED -- saving rejects to file
> MPlayer-1.0pre4/libmpcodecs/Makefile.rej

Edit MPlayer-1.0pre4/libmpcodecs/Makefile, find a line starting with
VFILTER_SRCS and add "vf_bfdetect.c" somewhere inside this line, without
breaking the line (i.e.  dont let your text editor insert a linebreak).

> patching file MPlayer-1.0pre4/libmpcodecs/dec_video.c
> Hunk #2 succeeded at 327 (offset 5 lines).
> patching file MPlayer-1.0pre4/libmpcodecs/vf.c
> Hunk #1 succeeded at 45 with fuzz 1 (offset 2 lines).
> Hunk #2 succeeded at 123 (offset 9 lines).
> patching file MPlayer-1.0pre4/libmpcodecs/vf_bfdetect.c
> patching file MPlayer-1.0pre4/libvo/sub.c
> patching file MPlayer-1.0pre4/mencoder.c
> patching file MPlayer-1.0pre4/mplayer.c
> Hunk #1 FAILED at 83.
> 1 out of 1 hunk FAILED -- saving rejects to file
> MPlayer-1.0pre4/mplayer.c.rej

Edit MPlayer-1.0pre4/mplayer.c, find the place where there is

 int verbose=0;
 int identify=0;
 static int quiet=0;

and add "int frameno = 0;" on the line after the "static int quiet=0;"

I also noticed that this patch changes the position of the time counter
in mplayer's OSD, so that it fits inside my TV, sorry for putting this
feature into the patch :( You can revert this by replacing
MPlayer-1.0pre4/libvo/sub.c with MPlayer-1.0pre4/libvo/sub.c.orig.



Attachment: MPlayer-1.0pre4-leffakone.patch
Description: Binary data

Reply via email to