[vlc-devel] [PATCH] Support for rotated MP4 Movies (bug #2882)
Matthias Keiser
matthias at tristan-inc.com
Thu Feb 6 23:19:34 CET 2014
From 9e4ee31b951fe425a2de217ab9d84c106ceb22d4 Mon Sep 17 00:00:00 2001
From: Matthias Keiser <matthias at tristan-inc.com>
Date: Thu, 6 Feb 2014 16:17:02 +0100
Subject: [PATCH 07/13] Add function which applies the rotation to a
video_format_t.
---
include/vlc_es.h | 6 ++++++
src/misc/es_format.c | 20 ++++++++++++++++++++
2 files changed, 26 insertions(+)
diff --git a/include/vlc_es.h b/include/vlc_es.h
index 3040c38..950f2f3 100644
--- a/include/vlc_es.h
+++ b/include/vlc_es.h
@@ -263,6 +263,12 @@ VLC_API void video_format_CopyCrop( video_format_t *, const video_format_t * );
VLC_API void video_format_ScaleCropAr( video_format_t *, const video_format_t * );
/**
+ * If the formats orientation indicates a rotation, this function switches the a/r according to the orientation, producing a format whose orientation is ORIENT_NORMAL. It makes a shallow copy (pallette is not alloc'ed).
+ */
+
+void video_format_ApplyRotation(const video_format_t *in, video_format_t *out);
+
+/**
* This function will check if the first video format is similar
* to the second one.
*/
diff --git a/src/misc/es_format.c b/src/misc/es_format.c
index 87b6ada..566203f 100644
--- a/src/misc/es_format.c
+++ b/src/misc/es_format.c
@@ -243,6 +243,26 @@ void video_format_ScaleCropAr( video_format_t *p_dst, const video_format_t *p_sr
p_dst->i_sar_num, p_dst->i_sar_den, 65536);
}
+void video_format_ApplyRotation(const video_format_t *in, video_format_t *out) {
+
+ *out = *in;
+
+ if(in->orientation == ORIENT_ROTATED_90 || in->orientation == ORIENT_ROTATED_270) {
+
+ out->i_visible_width = in->i_visible_height;
+ out->i_visible_height = in->i_visible_width;
+ out->i_height = in->i_width;
+ out->i_width = in->i_height;
+ out->i_sar_num = in->i_sar_den;
+ out->i_sar_den = in->i_sar_num;
+ out->orientation = ORIENT_NORMAL;
+ }
+ if(in->orientation == ORIENT_ROTATED_180) {
+ out->orientation = ORIENT_NORMAL;
+ }
+}
+
+
bool video_format_IsSimilar( const video_format_t *p_fmt1, const video_format_t *p_fmt2 )
{
video_format_t v1 = *p_fmt1;
--
1.8.3.4 (Apple Git-47)
More information about the vlc-devel
mailing list