[pvrusb2] initialization of video_gop_size
Mike Isely
isely at isely.net
Sun Jun 22 21:40:28 CDT 2008
On Sun, 22 Jun 2008, Hans Verkuil wrote:
>
> The ivtv and cx18 drivers set it during driver initialization (after
> cx2341x_fill_defaults() is called):
>
> itv->params.video_gop_size = itv->is_60hz ? 15 : 12;
>
> But I notice that none of the other drivers using cx2341x do so. I've
> CCed the cx88-blackbird and cx23885-417 maintainers as well so that
> they can update their drivers, or at the very least are aware of this.
>
> The use of a GOP size of 12 is (as I understand it) legal but
> non-standard. A GOP size of 15 gives you two I-frames per second,
> similar to the GOP size of 12 for 25 fps formats.
>
> An additional problem I discovered is that the gop_size isn't updated
> after you change from e.g. PAL to NTSC or vice versa. I'm thinking that
> it might be better to have it set to a default of 0, meaning 'use the
> current TV standard to decide on the appropriate GOP size'. But this
> requires a minor API change.
Without having looked at the cx2341x module code (I have been far too
buried in another project right now), could a driver force it to update
on video standard change by forcing a complete reinitialization of the
encoder? Changing the video standard is not something one is going to
routinely do and when it happens I have to assume that it is going to be
disruptive regardless - since presumably one of the choices (pre- or
post-) probably wasn't correct to begin with. So just reinitializing
everything in this case should not be out of bounds.
>
> I'll look at this tomorrow and if I haven't come up with a better idea
> I'll propose such a change.
>
> Small fixes to bring cx88, cx23885 and pvrusb2 in line with ivtv/cx18
> should most likely be OK to get into 2.6.26, but an API change is
> definitely 2.6.27.
Agree.
-Mike
--
Mike Isely
isely @ pobox (dot) com
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8
More information about the pvrusb2
mailing list