va: mpeg2dec: refactor forward and backward references handling
va: mpeg2dec: refactor the picture reference filling Add the helper function _get_surface_id() which extracts the VASurfaceID from the passed picture. This function gets the surface of the next and previous reference picture. Instead of if-statements, this refactor uses a switch-statement with a fall-through, for P-type pictures, making the code a bit more readable. Also it adds quirks for gallium driver, which cannot handle invalid surfaces as forwarding nor backwarding references, so the function fails. Also iHD cannot handle them, but to avoid failing, the current picture is used as self-reference.
va: mpeg2dec: set first field either frame or has a first field Add a helper function _is_frame_start() which check if picture has a frame structure or if it has not an interlaced first field yet. This function is used with filling is_first_field parameter.
codecs: mpeg2decoder: decode only if B and not closed gop Mark as decode only if picture type is B, without previous picture in DBP and closed_gop is 0 as might be understood in "6.3.8 Group of pictures header".
codecs: mpeg2decoder: rename variables Since prev_picture and next_picture are plain pointers, not pointer to pointers, it's misleading to name them with _ptr suffix.
This MR goes above !1938 (merged)