[SCM] libav/experimental: * misc. fixes and hacks to improve timing detection in raw DV
siretart at users.alioth.debian.org
siretart at users.alioth.debian.org
Sun Jun 30 15:41:31 UTC 2013
The following commit has been merged in the experimental branch:
commit c4e554701ec27b31b1b6396130b8bb2aaa0d4ad0
Author: Roman Shaposhnik <roman at shaposhnik.org>
Date: Sun Sep 19 02:05:22 2004 +0000
* misc. fixes and hacks to improve timing detection in raw DV
Originally committed as revision 3478 to svn://svn.ffmpeg.org/ffmpeg/trunk
diff --git a/libavformat/dv.c b/libavformat/dv.c
index 31b3522..f7e4d6f 100644
--- a/libavformat/dv.c
+++ b/libavformat/dv.c
@@ -741,11 +741,11 @@ DVDemuxContext* dv_init_demux(AVFormatContext *s)
c->vst->codec.codec_type = CODEC_TYPE_VIDEO;
c->vst->codec.codec_id = CODEC_ID_DVVIDEO;
c->vst->codec.bit_rate = 25000000;
+ c->vst->start_time = 0;
c->ast[0]->codec.codec_type = CODEC_TYPE_AUDIO;
c->ast[0]->codec.codec_id = CODEC_ID_PCM_S16LE;
-
- s->ctx_flags |= AVFMTCTX_NOHEADER;
+ c->ast[0]->start_time = 0;
return c;
@@ -849,9 +849,18 @@ static int dv_read_header(AVFormatContext *s,
AVFormatParameters *ap)
{
RawDVContext *c = s->priv_data;
+ const DVprofile* sys;
c->dv_demux = dv_init_demux(s);
+ if (!c->dv_demux)
+ return -1;
- return c->dv_demux ? 0 : -1;
+ if (get_buffer(&s->pb, c->buf, 4) <= 0 || url_fseek(&s->pb, -4, SEEK_CUR) < 0)
+ return AVERROR_IO;
+
+ sys = dv_frame_profile(c->buf);
+ s->bit_rate = av_rescale(sys->frame_size * 8, sys->frame_rate, sys->frame_rate_base);
+
+ return 0;
}
--
Libav/FFmpeg packaging
More information about the pkg-multimedia-commits
mailing list