[MPlayer-dev-eng] [PATCH] Add size based support for -endpos in MPlayer
Clément Bœsch
ubitux at gmail.com
Mon Jan 10 20:23:23 CET 2011
On Sat, Jan 08, 2011 at 05:37:39PM +0100, Reimar Döffinger wrote:
> On 8 Jan 2011, at 10:20, Clément Bœsch <ubitux at gmail.com> wrote:
> > On Wed, Jan 05, 2011 at 04:22:12PM +0100, Reimar Döffinger wrote:
> >>> @@ -3711,7 +3706,8 @@ if(!mpctx->sh_video) {
> >>> if(!quiet)
> >>> print_status(a_pos, 0, 0);
> >>>
> >>> - if(end_at.type == END_AT_TIME && end_at.pos < a_pos)
> >>> + if(end_at.type == END_AT_TIME && end_at.pos < a_pos ||
> >>> + end_at.type == END_AT_SIZE && end_at.pos < stream_tell(mpctx->stream))
> >>> mpctx->eof = PT_NEXT_ENTRY;
> >>> update_subtitles(NULL, a_pos, mpctx->d_sub, 0);
> >>> update_osd_msg();
> >>> @@ -3819,10 +3815,9 @@ if(auto_quality>0){
> >>> if (play_n_frames <= 0) mpctx->eof = PT_NEXT_ENTRY;
> >>> }
> >>>
> >>> -
> >>> -// FIXME: add size based support for -endpos
> >>> - if (end_at.type == END_AT_TIME &&
> >>> - !frame_time_remaining && end_at.pos <= mpctx->sh_video->pts)
> >>> + if (!frame_time_remaining &&
> >>> + ((end_at.type == END_AT_TIME && mpctx->sh_video->pts >= end_at.pos) ||
> >>> + (end_at.type == END_AT_SIZE && stream_tell(mpctx->stream) >= end_at.pos)))
> >>
> >> In principle fine, but maybe it's time to factor out this duplicated
> >> code?
> >> E.g. (not valid C, too lazy to look up the types)
> >> static int is_at_end(&end_at, mpctx) {
> >> switch (end_at->type)
> >> {
> >> case END_AT_TIME:
> >> return mpctx->sh_video->pts >= end_at->pos;
> >> ...
> >> }
> >> return 0;
> >> }
> >>
> >
> > Sure. Since I don't want to do that in the first patch, here is a second
> > one. But there is a few things I think may be improved: doesn't end_at and
> > frame_time_remaining belong to the MPContext? Putting end_at in it will
> > likely clarify the code, while for the other one it could avoid an
> > unnecessary check before calling is_at_end (it could get it from the
> > mpctx, just like it would take end_at).
>
> Doesn't seem like much of an improvement but I don't mind.
> However for this second patch I'd prefer if you applied merging the two
> if(!quiet) separately, also because the patch you have attached ends up
> with the comment at a wrong and confusing place.
>
Ok, I'll send a new patch. Btw, what is the "handle this better" refering
to?
> > By the way, I will apply the first patch (not the one attached) adding the
> > mplayer -endpos bytes support in the next days.
>
> No need to wait from my side.
Applied.
--
Clément B.
More information about the MPlayer-dev-eng
mailing list