summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvan <[email protected]>2008-11-09 01:49:59 +0000
committervan <[email protected]>2008-11-09 01:49:59 +0000
commit72d3f8a6375970cbd4330e8b1cb37132c82c744d (patch)
tree01f886347a669e31cc1a90045ff7e80f6fe8a9e0
parent19de50b9c802cbbdd8df6f20ff770b308f5347b2 (diff)
Hack to make VC1 work: If we get a ts or m2ts with VC1 video, don't say we have a valid stream. This will cause HB to try to open it with ffmpeg which often can read VC1 TS streams.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1908 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rwxr-xr-xlibhb/stream.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/libhb/stream.c b/libhb/stream.c
index ee5c5f634..a12c4babb 100755
--- a/libhb/stream.c
+++ b/libhb/stream.c
@@ -370,6 +370,10 @@ static int hb_stream_get_type(hb_stream_t *stream)
stream->packetsize = psize;
stream->hb_stream_type = transport;
hb_ts_stream_init(stream);
+ if ( !stream->ts_number_video_pids || !stream->ts_number_audio_pids )
+ {
+ return 0;
+ }
return 1;
}
if ( hb_stream_check_for_dvd_ps(buf) != 0 )
@@ -1509,6 +1513,10 @@ int decode_program_map(hb_stream_t* stream)
}
+ if ( index_of_pid( elementary_PID, stream ) < 0 )
+ {
+ // already have this pid - do nothing
+ }
if (stream->ts_number_video_pids == 0 && st2codec[stream_type].kind == V )
{
stream->ts_video_pids[0] = elementary_PID;
@@ -1771,6 +1779,14 @@ static void hb_ts_stream_find_pids(hb_stream_t *stream)
if ((stream->ts_number_video_pids > 0) && (stream->ts_number_audio_pids > 0))
break;
}
+ // XXX - until we figure out how to handle VC1 just bail when we find it so
+ // that ffmpeg will claim the input stream.
+ if ( stream->ts_stream_type[0] == 0xea )
+ {
+ stream->ts_number_video_pids = 0;
+ stream->ts_number_audio_pids = 0;
+ return;
+ }
hb_log("hb_ts_stream_find_pids - found the following PIDS");
hb_log(" Video PIDS : ");