video-sink: get PAR from caps and set to render lib. [1/2]

PD#SWPL-149833

Problem:
No pixel_aspect_ratio be set to render lib

Solution:
get PAR from caps and set to render lib

Verify:
AH212

Change-Id: I1382dde0b95e8068dc057e97f382b97878023622
Signed-off-by: sheng.liu <sheng.liu@amlogic.com>
diff --git a/src/gstamlvideosink.c b/src/gstamlvideosink.c
index fdf3680..da232d8 100644
--- a/src/gstamlvideosink.c
+++ b/src/gstamlvideosink.c
@@ -420,6 +420,8 @@
     sink->frame_rate_denom = 0;
     sink->frame_rate_changed = FALSE;
     sink->frame_rate = 0.0;
+    sink->pixel_aspect_ratio_changed = FALSE;
+    sink->pixel_aspect_ratio = 1.0;
     g_mutex_init(&sink->eos_lock);
     g_cond_init(&sink->eos_cond);
 
@@ -1075,6 +1077,12 @@
         render_set_value(sink_priv->render_device_handle, KEY_VIDEO_FRAME_RATE, &sink->default_sync);
     }
 
+    if (sink->pixel_aspect_ratio_changed)
+    {
+        sink->pixel_aspect_ratio_changed = FALSE;
+        render_set_value(sink_priv->render_device_handle, KEY_PIXEL_ASPECT_RATIO, &sink->pixel_aspect_ratio);
+    }
+
     if (!gst_aml_video_sink_check_buf(sink, buffer))
     {
         GST_ERROR_OBJECT(sink, "buf out of segment return");
@@ -1249,6 +1257,16 @@
                     sink->frame_rate_denom = denom;
                     sink->frame_rate_changed = TRUE;
                 }
+
+                if ( gst_structure_get_fraction( structure, "pixel-aspect-ratio", &num, &denom ) )
+                {
+                    if ( (num <= 0) || (denom <= 0))
+                    {
+                        num = denom = 1;
+                    }
+                    sink->pixel_aspect_ratio = (double)num/(double)denom;
+                    sink->pixel_aspect_ratio_changed = TRUE;
+                }
             }
         }
     } break;
diff --git a/src/gstamlvideosink.h b/src/gstamlvideosink.h
index 2b7e30e..804f780 100644
--- a/src/gstamlvideosink.h
+++ b/src/gstamlvideosink.h
@@ -71,6 +71,8 @@
   gboolean video_playing;
 
   gboolean secure_mode;
+  gboolean pixel_aspect_ratio_changed;
+  double pixel_aspect_ratio;
 
   GstAmlVideoSinkPrivate *priv;
 };