Re: vdr-xine - 4:3 zoom problem with h264 SD channels

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Goga777 schrieb:

> on Astra 19,2E ther's several h264 SD 576i channels with aspect ratio above 4:3 (or 15:11).

[snip]

> TV Polonia;TVP:10861:hC56M5O35S1:S19.2E:22000:516=27:0;690=pol,691=pol:695:0:7104:1:1059:0

[snip]

> on  vdr-xine 093  the "4:3 image zoom" doesn't work at all with such channels
> 
> only "16:9 image zoom" works with them, but it's not correctly
>
> 
> could someone to test it please

I had a look at the above channel. xine reports a ratio of 13636.

But the current zoom code in input_vdr.c doesn't consider this to
be 4:3. Please replace the function adjust_zoom() by the
following code:

static void adjust_zoom(vdr_input_plugin_t *this)
{
  pthread_mutex_lock(&this->adjust_zoom_lock);

  if (this->image4_3_zoom_x && this->image4_3_zoom_y
    && this->image16_9_zoom_x && this->image16_9_zoom_y)
  {
    int ratio = (int)(10000 * this->frame_size.r + 0.5);
    int matches4_3 = abs(ratio - 13333);
    int matches16_9 = abs(ratio - 17778);

    /* fprintf(stderr, "ratio: %d\n", ratio); */
    if (matches4_3 < matches16_9)
    {
      xine_set_param(this->stream, XINE_PARAM_VO_ZOOM_X,
this->image4_3_zoom_x);
      xine_set_param(this->stream, XINE_PARAM_VO_ZOOM_Y,
this->image4_3_zoom_y);
    }
    else
    {
      xine_set_param(this->stream, XINE_PARAM_VO_ZOOM_X,
this->image16_9_zoom_x);
      xine_set_param(this->stream, XINE_PARAM_VO_ZOOM_Y,
this->image16_9_zoom_y);
    }
  }

  pthread_mutex_unlock(&this->adjust_zoom_lock);
}

Bye.
-- 
Dipl.-Inform. (FH) Reinhard Nissl
mailto:rnissl@xxxxxx

_______________________________________________
vdr mailing list
vdr@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux