[MPlayer-dev-eng] [PATCH] Dvdnav part2 - still frame and simple osd box
Ötvös Attila
oattila at chello.hu
Wed Nov 1 21:12:37 CET 2006
2006. október 30. 23.36 dátummal Nico Sabbi ezt írta:
> there's no need to add vd_videostill.c: if you modify
> libavcodec's decoder to release still frames immediately
> when it meets a sequence_end code (0x1b7) you will get
> the job done cleanly.
> Currently you can obtain something similar with:
> Index: libmpcodecs/vd_ffmpeg.c
> ===================================================================
> --- libmpcodecs/vd_ffmpeg.c (revisione 19838)
> +++ libmpcodecs/vd_ffmpeg.c (copia locale)
> @@ -204,6 +204,7 @@
> ctx->avctx = avcodec_alloc_context();
> avctx = ctx->avctx;
>
> +avctx->flags|= CODEC_FLAG_LOW_DELAY;
> #ifdef HAVE_XVMC
>
> #ifdef CODEC_CAP_HWACCEL
>
>
> but it's not even remotely the right solution
I guess it needs decode_video_still() because it draws the film frame
then if it isn't video stream data because of dvdnav_still_frame.
> >What do you think if the default video codec family can be set to
> >ffmpeg in dvdnav stream?
> not needed: just add -vc ffmpeg12, to your command line/config file
I seem that the ffmpeg is better than libmpeg2 in decode of the still
frames. So I thought the default videdo codec family is set to ffmpeg in
dvdnav stream.
> >Do you have any proposals for the next problem?
> >If the initializiling of the video codec is with still frame (eg. the
> > mplayer comes back from film's playing to dvd menu that is a still frame)
> > then still frame was read to init and the mplayer should read again the
> > still frame to show but there is only frame and the seek function can't
> > be used here.
>
> I don't understand what you mean; please explain
>
It seems that's something else problem so my question has already been
solved.
> Overall this last patch is many order of magnitude better than the
> previous ones you posted, but there are still things I don't like:
>
>
> 1)
> + case STREAM_CTRL_IS_EOF:
> + {
> + *((unsigned int *)arg) = dvdnav_priv->eofstream;
> + return 1;
> + }
>
> not needed: use stream->eof
>
dvdnav_priv->eofstream decides that the eof is really or there isn't
stream data because of dvdnav_still_frame event.
>
> STILLS properties don't belong to the stream layer and code like that is
> nonsense
>
> again, STILLS properties don't belong to the stream layer, so you can't use
> STREAM_CTRL_* for this task.
> Use explicit functions instead
>
OK
mplayer-dvdnav-patch-v1.tar.gz with STREAM_CTRL_IS_EOF
mplayer-dvdnav-patch-v2.tar.gz without STREAM_CTRL_IS_EOF
Best regards!
Attila
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mplayer-dvdnav-patch-v1.tar.gz
Type: application/x-tgz
Size: 4932 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/attachments/20061101/11e376b2/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mplayer-dvdnav-patch-v2.tar.gz
Type: application/x-tgz
Size: 4671 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/attachments/20061101/11e376b2/attachment-0001.bin>
More information about the MPlayer-dev-eng
mailing list