summaryrefslogtreecommitdiffstats
path: root/libmpdemux/video.c
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-06-09 00:24:49 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-06-09 00:24:49 +0000
commit080311d08f70042db8db88a6696a8a6c61c337df (patch)
tree82e106e42caafb41b5cfa63492b010be810e3b91 /libmpdemux/video.c
parent14328b41fedf57134a759b5cd4e3d8af330e7e0f (diff)
downloadmpv-080311d08f70042db8db88a6696a8a6c61c337df.tar.bz2
mpv-080311d08f70042db8db88a6696a8a6c61c337df.tar.xz
TiVo demuxer and sub-cc/osd decoder
patch by usenet@wingert.org (http://tivo-mplayer.sourceforge.net/releases/MPlayer-20030501-tivo-patch.gz) changes by me: - spit demux_ty to demux_ty and demux_ty_osd (later handles mpeg user-data decoding, ie sub-cc and osd) - removed some cosmetics changes - some compile fixes (gcc3 specific variable decl etc) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10264 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/video.c')
-rw-r--r--libmpdemux/video.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/libmpdemux/video.c b/libmpdemux/video.c
index 295cb352f4..e0c9c048f1 100644
--- a/libmpdemux/video.c
+++ b/libmpdemux/video.c
@@ -176,6 +176,7 @@ switch(d_video->demuxer->file_format){
case DEMUXER_TYPE_PVA:
case DEMUXER_TYPE_MPEG_TS:
case DEMUXER_TYPE_MPEG_ES:
+ case DEMUXER_TYPE_MPEG_TY:
case DEMUXER_TYPE_MPEG_PS: {
//mpeg_header_parser:
// Find sequence_header first:
@@ -282,6 +283,8 @@ switch(d_video->demuxer->file_format){
return 1;
}
+void ty_processuserdata( unsigned char* buf, int len );
+
static void process_userdata(unsigned char* buf,int len){
int i;
/* if the user data starts with "CC", assume it is a CC info packet */
@@ -289,6 +292,11 @@ static void process_userdata(unsigned char* buf,int len){
// mp_msg(MSGT_DECVIDEO,MSGL_DBG2,"video.c: process_userdata() detected Closed Captions!\n");
if(subcc_enabled) subcc_process_data(buf+2,len-2);
}
+ if( len > 2 && buf[ 0 ] == 'T' && buf[ 1 ] == 'Y' )
+ {
+ ty_processuserdata( buf + 2, len - 2 );
+ return;
+ }
if(verbose<2) return;
printf( "user_data: len=%3d %02X %02X %02X %02X '",
len, buf[0], buf[1], buf[2], buf[3]);
@@ -312,6 +320,7 @@ int video_read_frame(sh_video_t* sh_video,float* frame_time_ptr,unsigned char**
if(demuxer->file_format==DEMUXER_TYPE_MPEG_ES || demuxer->file_format==DEMUXER_TYPE_MPEG_PS
|| demuxer->file_format==DEMUXER_TYPE_PVA || demuxer->file_format==DEMUXER_TYPE_MPEG_TS
+ || demuxer->file_format==DEMUXER_TYPE_MPEG_TY
#ifdef STREAMING_LIVE_DOT_COM
|| (demuxer->file_format==DEMUXER_TYPE_RTP && demux_is_mpeg_rtp_stream(demuxer))
#endif
@@ -473,7 +482,8 @@ int video_read_frame(sh_video_t* sh_video,float* frame_time_ptr,unsigned char**
if(demuxer->file_format==DEMUXER_TYPE_MPEG_PS ||
demuxer->file_format==DEMUXER_TYPE_MPEG_TS ||
- demuxer->file_format==DEMUXER_TYPE_MPEG_ES){
+ demuxer->file_format==DEMUXER_TYPE_MPEG_ES ||
+ demuxer->file_format==DEMUXER_TYPE_MPEG_TY){
// if(pts>0.0001) printf("\r!!! pts: %5.3f [%d] (%5.3f) \n",pts,picture_coding_type,i_pts);