[Ffmpeg-cvslog] Re: r5468 - trunk/libavformat/mov.c

Baptiste Coudurier baptiste.coudurier
Mon Jun 12 19:55:47 CEST 2006


Hey

Michael Niedermayer wrote:
>> [...]
>> You would be more in favor of presenting those CODEC_TYPE_MOV_OTHER
>> streams ? 
> 
> i think yes ...

Oh, good news.

>> Atm streams are not presented to libavformat but stays in the
>> demuxer private layer.
> 
> yes, and iam not happy about the resulting mess of having to remap stream ids

Me neither.

>> I see no point presenting a stream the demuxer cannot demux.
> 
> hmm, the demuxer should be able to demux it, we just have no codec or 
> muxer which can make sense of it or is there aother problem iam unaware of ?

Well, Im thinking about "tmcd" tracks which have a duration of the whole
video track for example, and value is a counter which must be
incremented for each frame, but those tracks could be blind copied easily.

>> Now, situation is:
>> - either remove streams like I did.
>> - present them to libavformat, assigning CODEC_ID_DATA or CODEC_ID_NONE.
>>
>> Do you prefer the latter ?
> 
> yes

All right then. What would be the best way ? Adding CODEC_ID_DATA, or
using CODEC_ID_NONE ? Somewhat I feel using CODEC_ID_NONE will cause
problems.

> it would also be nice if we could remux (-*codec copy) these streams

I totally agree and will do that. Im thinking about adding -newdata to
ffmpeg commandline options, though I feel like stream mappings between
formats will be a big mess. Allowing only stream copy for now, and
between same/compatible formats, maybe it's time for FORMAT_ID_MOV ?

> [...]

While we are at it, I also have 2 problems concerning demuxing/muxing
mov/mp4:

- to properly seek into a non-interleaved mov/mp4 I need to know the
exact timestamp in AV_TIME_BASE unit and not stream time unit, since I
need to seek by time and not by chunk offset. I can still rescale to get
the correct timestamps but It is not really accurate/correct.

- to stream copy audio tracks I need to know codec->frame_size to set
'stts' correctly. I can either assign it in the demuxer, from the
original 'stts' atom, but it sometimes contains more than one value, or
assume it according to codec used, AAC uses 1024, AMR 160, PCM 1.
What do you think ?

-- 
Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
SMARTJOG S.A.                                    http://www.smartjog.com
Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
Phone: +33 1 49966312




More information about the ffmpeg-cvslog mailing list