summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/xine.h.in22
-rw-r--r--src/libmpeg2/decode.c7
-rw-r--r--src/xine-engine/xine_interface.c3
3 files changed, 30 insertions, 2 deletions
diff --git a/include/xine.h.in b/include/xine.h.in
index 691971f23..7e197f981 100644
--- a/include/xine.h.in
+++ b/include/xine.h.in
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: xine.h.in,v 1.141 2005/05/29 12:29:42 hadess Exp $
+ * $Id: xine.h.in,v 1.142 2005/06/17 22:33:01 dsalt Exp $
*
* public xine-lib (libxine) interface and documentation
*
@@ -895,6 +895,26 @@ const char *xine_get_meta_info (xine_stream_t *stream, int info);
#define XINE_STREAM_INFO_AUDIO_MODE 26
#define XINE_STREAM_INFO_SKIPPED_FRAMES 27 /* for 1000 frames delivered */
#define XINE_STREAM_INFO_DISCARDED_FRAMES 28 /* for 1000 frames delivered */
+#define XINE_STREAM_INFO_VIDEO_AFD 29
+
+/* possible values for XINE_STREAM_INFO_VIDEO_AFD */
+#define XINE_VIDEO_AFD_NOT_PRESENT -1
+#define XINE_VIDEO_AFD_RESERVED_0 0
+#define XINE_VIDEO_AFD_RESERVED_1 1
+#define XINE_VIDEO_AFD_BOX_16_9_TOP 2
+#define XINE_VIDEO_AFD_BOX_14_9_TOP 3
+#define XINE_VIDEO_AFD_BOX_GT_16_9_CENTRE 4
+#define XINE_VIDEO_AFD_RESERVED_5 5
+#define XINE_VIDEO_AFD_RESERVED_6 6
+#define XINE_VIDEO_AFD_RESERVED_7 7
+#define XINE_VIDEO_AFD_SAME_AS_FRAME 8
+#define XINE_VIDEO_AFD_4_3_CENTRE 9
+#define XINE_VIDEO_AFD_16_9_CENTRE 10
+#define XINE_VIDEO_AFD_14_9_CENTRE 11
+#define XINE_VIDEO_AFD_RESERVED_12 12
+#define XINE_VIDEO_AFD_4_3_PROTECT_14_9 13
+#define XINE_VIDEO_AFD_16_9_PROTECT_14_9 14
+#define XINE_VIDEO_AFD_16_9_PROTECT_4_3 15
/* xine_get_meta_info */
#define XINE_META_INFO_TITLE 0
diff --git a/src/libmpeg2/decode.c b/src/libmpeg2/decode.c
index c4b980f79..f8dcbea41 100644
--- a/src/libmpeg2/decode.c
+++ b/src/libmpeg2/decode.c
@@ -927,4 +927,11 @@ static void process_userdata(mpeg2dec_t *mpeg2dec, uint8_t *buffer)
mpeg2dec->cc_dec->decode_data(mpeg2dec->cc_dec, &buf);
}
}
+ /* check Active Format Description ETSI TS 101 154 V1.5.1 */
+ else if (buffer[0] == 0x44 && buffer[1] == 0x54 && buffer[2] == 0x47 && buffer[3] == 0x31)
+ {
+ int afd = (buffer[4] & 0x40) ? (buffer[5] & 0x0f) : -1;
+ _x_stream_info_set(mpeg2dec->stream, XINE_STREAM_INFO_VIDEO_AFD, afd);
+
+ }
}
diff --git a/src/xine-engine/xine_interface.c b/src/xine-engine/xine_interface.c
index 3fb09df76..743dbd3ee 100644
--- a/src/xine-engine/xine_interface.c
+++ b/src/xine-engine/xine_interface.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: xine_interface.c,v 1.88 2005/04/20 11:19:35 holstsn Exp $
+ * $Id: xine_interface.c,v 1.89 2005/06/17 22:33:02 dsalt Exp $
*
* convenience/abstraction layer, functions to implement
* libxine's public interface
@@ -671,6 +671,7 @@ uint32_t xine_get_stream_info (xine_stream_t *stream, int info) {
case XINE_STREAM_INFO_IGNORE_AUDIO:
case XINE_STREAM_INFO_IGNORE_SPU:
case XINE_STREAM_INFO_VIDEO_HAS_STILL:
+ case XINE_STREAM_INFO_VIDEO_AFD:
return _x_stream_info_get_public(stream, info);
case XINE_STREAM_INFO_MAX_AUDIO_CHANNEL: