Originally committed as revision 13031 to svn://svn.ffmpeg.org/ffmpeg/trunk
Luca Barbato authored on 2008/05/02 23:52:39... | ... |
@@ -844,6 +844,7 @@ audio_beos_muxer_deps="audio_beos" |
844 | 844 |
audio_beos_muxer_extralibs="-lmedia -lbe" |
845 | 845 |
avisynth_demuxer_deps="avisynth" |
846 | 846 |
bktr_demuxer_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h" |
847 |
+dirac_demuxer_deps="dirac_parser" |
|
847 | 848 |
dv1394_demuxer_deps="dv1394 dv_demuxer" |
848 | 849 |
libdc1394_demuxer_deps="libdc1394" |
849 | 850 |
libnut_demuxer_deps="libnut" |
... | ... |
@@ -69,6 +69,7 @@ void av_register_all(void) |
69 | 69 |
REGISTER_DEMUXER (C93, c93); |
70 | 70 |
REGISTER_MUXER (CRC, crc); |
71 | 71 |
REGISTER_DEMUXER (DAUD, daud); |
72 |
+ REGISTER_MUXDEMUX (DIRAC, dirac); |
|
72 | 73 |
REGISTER_DEMUXER (DSICIN, dsicin); |
73 | 74 |
REGISTER_MUXDEMUX (DTS, dts); |
74 | 75 |
REGISTER_MUXDEMUX (DV, dv); |
... | ... |
@@ -254,6 +254,7 @@ static int video_read_header(AVFormatContext *s, |
254 | 254 |
av_set_pts_info(st, 64, ap->time_base.num, ap->time_base.den); |
255 | 255 |
} else if ( st->codec->codec_id == CODEC_ID_MJPEG || |
256 | 256 |
st->codec->codec_id == CODEC_ID_MPEG4 || |
257 |
+ st->codec->codec_id == CODEC_ID_DIRAC || |
|
257 | 258 |
st->codec->codec_id == CODEC_ID_H264) { |
258 | 259 |
av_set_pts_info(st, 64, 1, 25); |
259 | 260 |
} |
... | ... |
@@ -346,6 +347,14 @@ static int h261_probe(AVProbeData *p) |
346 | 346 |
return 0; |
347 | 347 |
} |
348 | 348 |
|
349 |
+static int dirac_probe(AVProbeData *p) |
|
350 |
+{ |
|
351 |
+ if (AV_RL32(p->buf) == MKTAG('B', 'B', 'C', 'D')) |
|
352 |
+ return AVPROBE_SCORE_MAX; |
|
353 |
+ else |
|
354 |
+ return 0; |
|
355 |
+} |
|
356 |
+ |
|
349 | 357 |
static int ac3_probe(AVProbeData *p) |
350 | 358 |
{ |
351 | 359 |
int max_frames, first_frames = 0, frames; |
... | ... |
@@ -470,6 +479,33 @@ AVOutputFormat dts_muxer = { |
470 | 470 |
|
471 | 471 |
#endif //CONFIG_MUXERS |
472 | 472 |
|
473 |
+AVInputFormat dirac_demuxer = { |
|
474 |
+ "dirac", |
|
475 |
+ "raw dirac", |
|
476 |
+ 0, |
|
477 |
+ dirac_probe, |
|
478 |
+ video_read_header, |
|
479 |
+ raw_read_partial_packet, |
|
480 |
+ raw_read_close, |
|
481 |
+ .flags= AVFMT_GENERIC_INDEX, |
|
482 |
+ .value = CODEC_ID_DIRAC, |
|
483 |
+}; |
|
484 |
+ |
|
485 |
+#ifdef CONFIG_MUXERS |
|
486 |
+AVOutputFormat dirac_muxer = { |
|
487 |
+ "dirac", |
|
488 |
+ "raw dirac", |
|
489 |
+ NULL, |
|
490 |
+ "drc", |
|
491 |
+ 0, |
|
492 |
+ 0, |
|
493 |
+ CODEC_ID_DIRAC, |
|
494 |
+ NULL, |
|
495 |
+ raw_write_packet, |
|
496 |
+ .flags= AVFMT_NOTIMESTAMPS, |
|
497 |
+}; |
|
498 |
+#endif |
|
499 |
+ |
|
473 | 500 |
AVInputFormat dts_demuxer = { |
474 | 501 |
"dts", |
475 | 502 |
"raw dts", |