[FFmpeg-devel] [PATCH] matroskadec: Improve TTA duration calculation

James Almer jamrial at gmail.com
Sat Aug 17 20:45:16 CEST 2013


On 17/08/13 3:30 PM, Paul B Mahol wrote:
> On 8/17/13, James Almer <jamrial at gmail.com> wrote:
>> On 17/08/13 6:48 AM, Paul B Mahol wrote:
>>> On 8/16/13, James Almer <jamrial at gmail.com> wrote:
>>>> On 16/08/13 5:21 PM, Paul B Mahol wrote:
>>>>> On 8/16/13, James Almer <jamrial at gmail.com> wrote:
>>>>>> On 16/08/13 7:24 AM, Paul B Mahol wrote:
>>>>>>> On 8/15/13, James Almer <jamrial at gmail.com> wrote:
>>>>>>>> -            avio_wl32(&b, matroska->ctx->duration *
>>>>>>>> track->audio.out_samplerate);
>>>>>>>> +            avio_wl32(&b, av_rescale(matroska->ctx->duration,
>>>>>>>> track->audio.out_samplerate, AV_TIME_BASE));
>>>>>>>
>>>>>>> Isn't time base variable thing that can be changed by muxer?
>>>>>>>
>>>>>>> Perhaps this could be used when muxing tta files to make sure
>>>>>>> last packet can always decode.
>>>>>>
>>>>>> Our muxer already uses 1000000 (aka AV_TIME_BASE) as timescale for
>>>>>> every
>>>>>> file.
>>>>>
>>>>> But this patch does not use time base as used in file, but hardcode it,
>>>>
>>>> It's using matroska->ctx->duration, which is calculated using the
>>>> duration
>>>> and the timescale of the stream as stored in the file (line 1546).
>>>
>>> But could it use track duration which is set in track time base units?
>>
>> So you mean doing "av_rescale((matroska->duration * matroska->time_scale),
>> track->audio.out_samplerate, AV_TIME_BASE * 1000)"?
>> I guess that might be a tad more accurate depending on the file.
> 
> I do not mean anything. But isn't time scale & duration different for
> each track?

I guess so, but what difference does that make?


More information about the ffmpeg-devel mailing list