forked from FFmpeg/FFmpeg
* misc. fixes and hacks to improve timing detection in raw DV
Originally committed as revision 3478 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
0bf4e2b8a3
commit
c4e554701e
1 changed files with 12 additions and 3 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue