diff options
-rw-r--r-- | include/xine.h.in | 22 | ||||
-rw-r--r-- | src/libmpeg2/decode.c | 7 | ||||
-rw-r--r-- | src/xine-engine/xine_interface.c | 3 |
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: |