Mercurial > mplayer.hg
comparison libmpdemux/demux_ts.c @ 36379:847bc950322a
Support HEVC in native mpeg-ts demuxer.
author | cehoyos |
---|---|
date | Thu, 17 Oct 2013 09:55:57 +0000 |
parents | 3828cde710a2 |
children | 323fb622da7e |
comparison
equal
deleted
inserted
replaced
36378:939ec5ba0c58 | 36379:847bc950322a |
---|---|
71 VIDEO_MPEG2 = 0x10000002, | 71 VIDEO_MPEG2 = 0x10000002, |
72 VIDEO_MPEG4 = 0x10000004, | 72 VIDEO_MPEG4 = 0x10000004, |
73 VIDEO_H264 = 0x10000005, | 73 VIDEO_H264 = 0x10000005, |
74 VIDEO_AVC = mmioFOURCC('a', 'v', 'c', '1'), | 74 VIDEO_AVC = mmioFOURCC('a', 'v', 'c', '1'), |
75 VIDEO_DIRAC = mmioFOURCC('d', 'r', 'a', 'c'), | 75 VIDEO_DIRAC = mmioFOURCC('d', 'r', 'a', 'c'), |
76 VIDEO_HEVC = mmioFOURCC('H', 'E', 'V', 'C'), | |
76 VIDEO_VC1 = mmioFOURCC('W', 'V', 'C', '1'), | 77 VIDEO_VC1 = mmioFOURCC('W', 'V', 'C', '1'), |
77 AUDIO_MP2 = 0x50, | 78 AUDIO_MP2 = 0x50, |
78 AUDIO_A52 = 0x2000, | 79 AUDIO_A52 = 0x2000, |
79 AUDIO_DTS = 0x2001, | 80 AUDIO_DTS = 0x2001, |
80 AUDIO_LPCM_BE = 0x10001, | 81 AUDIO_LPCM_BE = 0x10001, |
277 case VIDEO_MPEG2: | 278 case VIDEO_MPEG2: |
278 case VIDEO_MPEG4: | 279 case VIDEO_MPEG4: |
279 case VIDEO_H264: | 280 case VIDEO_H264: |
280 case VIDEO_AVC: | 281 case VIDEO_AVC: |
281 case VIDEO_DIRAC: | 282 case VIDEO_DIRAC: |
283 case VIDEO_HEVC: | |
282 case VIDEO_VC1: | 284 case VIDEO_VC1: |
283 return 1; | 285 return 1; |
284 } | 286 } |
285 return 0; | 287 return 0; |
286 } | 288 } |
875 mp_msg(MSGT_DEMUXER, MSGL_INFO, "VIDEO H264(pid=%d) ", param->vpid); | 877 mp_msg(MSGT_DEMUXER, MSGL_INFO, "VIDEO H264(pid=%d) ", param->vpid); |
876 else if(param->vtype == VIDEO_VC1) | 878 else if(param->vtype == VIDEO_VC1) |
877 mp_msg(MSGT_DEMUXER, MSGL_INFO, "VIDEO VC1(pid=%d) ", param->vpid); | 879 mp_msg(MSGT_DEMUXER, MSGL_INFO, "VIDEO VC1(pid=%d) ", param->vpid); |
878 else if(param->vtype == VIDEO_AVC) | 880 else if(param->vtype == VIDEO_AVC) |
879 mp_msg(MSGT_DEMUXER, MSGL_INFO, "VIDEO AVC(NAL-H264, pid=%d) ", param->vpid); | 881 mp_msg(MSGT_DEMUXER, MSGL_INFO, "VIDEO AVC(NAL-H264, pid=%d) ", param->vpid); |
882 else if(param->vtype == VIDEO_HEVC) | |
883 mp_msg(MSGT_DEMUXER, MSGL_INFO, "VIDEO HEVC(pid=%d) ", param->vpid); | |
880 } | 884 } |
881 else | 885 else |
882 { | 886 { |
883 param->vtype = UNKNOWN; | 887 param->vtype = UNKNOWN; |
884 //WE DIDN'T MATCH ANY VIDEO STREAM | 888 //WE DIDN'T MATCH ANY VIDEO STREAM |
2364 es->type = VIDEO_DIRAC; | 2368 es->type = VIDEO_DIRAC; |
2365 } | 2369 } |
2366 else if(d[0] == 'B' && d[1] == 'S' && d[2] == 'S' && d[3] == 'D') | 2370 else if(d[0] == 'B' && d[1] == 'S' && d[2] == 'S' && d[3] == 'D') |
2367 { | 2371 { |
2368 es->type = AUDIO_S302M; | 2372 es->type = AUDIO_S302M; |
2373 } | |
2374 else if(d[0] == 'H' && d[1] == 'E' && d[2] == 'V' && d[3] == 'C') | |
2375 { | |
2376 es->type = VIDEO_HEVC; | |
2369 } | 2377 } |
2370 else | 2378 else |
2371 es->type = UNKNOWN; | 2379 es->type = UNKNOWN; |
2372 mp_msg(MSGT_DEMUX, MSGL_DBG2, "FORMAT %s\n", es->format_descriptor); | 2380 mp_msg(MSGT_DEMUX, MSGL_DBG2, "FORMAT %s\n", es->format_descriptor); |
2373 } | 2381 } |
3326 } | 3334 } |
3327 else if((sh_video->format == VIDEO_MPEG4) && (i==0x1B6)) | 3335 else if((sh_video->format == VIDEO_MPEG4) && (i==0x1B6)) |
3328 break; | 3336 break; |
3329 else if(sh_video->format == VIDEO_VC1 && (i==0x10E || i==0x10F)) | 3337 else if(sh_video->format == VIDEO_VC1 && (i==0x10E || i==0x10F)) |
3330 break; | 3338 break; |
3339 else if(sh_video->format == VIDEO_HEVC) | |
3340 break; | |
3331 else //H264 | 3341 else //H264 |
3332 { | 3342 { |
3333 if((i & ~0x60) == 0x105 || (i & ~0x60) == 0x107) break; | 3343 if((i & ~0x60) == 0x105 || (i & ~0x60) == 0x107) break; |
3334 } | 3344 } |
3335 | 3345 |