[vdr] vdr-xine - 4:3 zoom problem with h264 SD channels
Reinhard Nissl
rnissl at gmx.de
Mon Sep 28 22:08:27 CEST 2009
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 at gmx.de
More information about the vdr
mailing list