avutil: seek after probe
This commit is contained in:
parent
d5c3f87b5c
commit
c4855b68ed
@ -184,8 +184,17 @@ func (self *Handlers) Open(uri string) (demuxer av.DemuxCloser, err error) {
|
|||||||
|
|
||||||
for _, handler := range self.handlers {
|
for _, handler := range self.handlers {
|
||||||
if handler.Probe != nil && handler.Probe(probebuf[:]) && handler.ReaderDemuxer != nil {
|
if handler.Probe != nil && handler.Probe(probebuf[:]) && handler.ReaderDemuxer != nil {
|
||||||
|
var _r io.Reader
|
||||||
|
if rs, ok := r.(io.ReadSeeker); ok {
|
||||||
|
if _, err = rs.Seek(0, 0); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_r = rs
|
||||||
|
} else {
|
||||||
|
_r = io.MultiReader(bytes.NewReader(probebuf[:]), r)
|
||||||
|
}
|
||||||
demuxer = &HandlerDemuxer{
|
demuxer = &HandlerDemuxer{
|
||||||
Demuxer: handler.ReaderDemuxer(io.MultiReader(bytes.NewReader(probebuf[:]), r)),
|
Demuxer: handler.ReaderDemuxer(_r),
|
||||||
r: r,
|
r: r,
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user