# HG changeset patch # User Naoya OYAMA # Date 1343571390 -32400 # Node ID e72dd5e8d53fd01e7721a43691e533bf94fb336d # Parent d65c15276b5e6d81f901c8f71a36f9762f2f5be9 Number of samples per ADTS packet instead of 1000 and 1024. diff -r d65c15276b5e -r e72dd5e8d53f src/tssplitter_lite.c --- a/src/tssplitter_lite.c Sun Jul 29 22:56:53 2012 +0900 +++ b/src/tssplitter_lite.c Sun Jul 29 23:16:30 2012 +0900 @@ -3,7 +3,7 @@ /* tssplitter_lite.c -- split TS stream. Copyright 2009 querulous - Copyright 2010 Naoya OYAMA + Copyright 2010-2012 Naoya OYAMA This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1600,8 +1600,8 @@ * オーディオをファイル出力し始める条件(1. 2. を満たすこと) * 1. 動画の蓄積は開始されている * 2. 動画のGOPの1番目のIピクチャのPTSとオーディオのPTSを比較して以下のどちらかを満たすこと - * 2.1. 差分が11msec以内(1000*90k/AACのサンプリング周波数) - * 1000 : ADTSデータの1フレームのサンプル数 + * 2.1. 差分が11msec以内(1024*90k/AACのサンプリング周波数) + * 1024 : ADTSデータの1フレームのサンプル数 * 90k : PTSの周波数 * 2.2. 過ぎている(過ぎている場合はオーディオESの蓄積の継続と次のGOP狙いにする?) * #動画よりオーディオ側の方が先にESバッファの蓄積を始めるハズなので気にすること無いかなぁ… @@ -1621,7 +1621,7 @@ audio_lipsync_offset = 0; audio_pts = esbuf->pts; adts_freq = AnalyzeAdifHeader(esbuf); - adts_frame_time = (int64_t)((float)1000*90000/adts_freq); /* PTSは90KHz */ + adts_frame_time = (int64_t)((float)1024*90000/adts_freq); /* PTSは90KHz */ /* オーディオをフレーム単位で捨ててPTSを進める */ while ( (esbuf->Program->video_pts > audio_pts +adts_frame_time/2) ) { /* オーディオデータを捨てると audio_pts は1フレーム分大きくなる */