From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 2498943309 for ; Wed, 1 Jun 2022 09:10:09 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 282DA68B698; Wed, 1 Jun 2022 12:10:07 +0300 (EEST) Received: from st43p00im-ztfb10073301.me.com (st43p00im-ztfb10073301.me.com [17.58.63.186]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1751468B698 for ; Wed, 1 Jun 2022 12:10:01 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=me.com; s=1a1hai; t=1654074600; bh=HF/Fpiucr5/fwgM5s87Djz/f4LSxPeD8HLoM33qClLs=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=Aq7H1pRNNqhCAoeDHYtEogGrCepReISTMiLwgeKvMyI9bXFz1/HhjUP2q9TFgCJ/7 BQLivt1wkUV/TLgDLO4UzumS1DTc/7UiH2Hhu1n79Ot22Omp7j6zxXIA+5/uQlZFg2 ipWgDAr2VtwtZqlV/szS97hWJYo9rFN9vp3uc8EINVvAooN2cGFUwuxiXzg8sOhKkZ czudGy3Rgc/e235GdO8s9PJyQEYni3oQCRsXf3I4XqoGxC7SVXZGpu4/nqzFteloMw L8TRtd6NwB16kSwk2WcRkIt1mHzWXPSn9O3KPb7t6r8Kjvu86o2DS5jM+ru4NZwM5N /QCyTnsrlw0CQ== Received: from localhost.localdomain (st43p00im-dlb-asmtp-mailmevip.me.com [17.42.251.41]) by st43p00im-ztfb10073301.me.com (Postfix) with ESMTPSA id 834AB80035F; Wed, 1 Jun 2022 09:09:59 +0000 (UTC) From: Matt Jacobson To: ffmpeg-devel@ffmpeg.org Date: Wed, 1 Jun 2022 05:06:16 -0400 Message-Id: <20220601090615.52719-1-mhjacobson@me.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.517, 18.0.874 definitions=2022-06-01_03:2022-05-30, 2022-06-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 mlxscore=0 mlxlogscore=857 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-2009150000 definitions=main-2206010041 Subject: [FFmpeg-devel] [PATCH] oss: account for sample size when computing timestamp X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Matt Jacobson Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: This is my first patch to ffmpeg; please let me know if I've made any process errors. Thanks! --- Don't assume each sample is one byte in size. Doing so results in wrong and occasionally non-monotonically-increasing timestamps. Fix nearby cosmetic typo. Signed-off-by: Matt Jacobson --- libavdevice/oss.c | 4 +++- libavdevice/oss.h | 1 + libavdevice/oss_dec.c | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libavdevice/oss.c b/libavdevice/oss.c index eddc2ddf1a..b042f58875 100644 --- a/libavdevice/oss.c +++ b/libavdevice/oss.c @@ -102,9 +102,11 @@ int ff_oss_audio_open(AVFormatContext *s1, int is_output, switch(tmp) { case AFMT_S16_LE: s->codec_id = AV_CODEC_ID_PCM_S16LE; + s->sample_size = 2; break; case AFMT_S16_BE: s->codec_id = AV_CODEC_ID_PCM_S16BE; + s->sample_size = 2; break; default: av_log(s1, AV_LOG_ERROR, "Soundcard does not support 16 bit sample format\n"); @@ -112,7 +114,7 @@ int ff_oss_audio_open(AVFormatContext *s1, int is_output, return AVERROR(EIO); } err=ioctl(audio_fd, SNDCTL_DSP_SETFMT, &tmp); - CHECK_IOCTL_ERROR(SNDCTL_DSP_SETFMTS) + CHECK_IOCTL_ERROR(SNDCTL_DSP_SETFMT) tmp = (s->channels == 2); err = ioctl(audio_fd, SNDCTL_DSP_STEREO, &tmp); diff --git a/libavdevice/oss.h b/libavdevice/oss.h index 66d1a34cf6..f1da2b1bec 100644 --- a/libavdevice/oss.h +++ b/libavdevice/oss.h @@ -30,6 +30,7 @@ typedef struct OSSAudioData { AVClass *class; int fd; int sample_rate; + int sample_size; /* in bytes ! */ int channels; int frame_size; /* in bytes ! */ enum AVCodecID codec_id; diff --git a/libavdevice/oss_dec.c b/libavdevice/oss_dec.c index d3dbe77cf9..2cdc4324e8 100644 --- a/libavdevice/oss_dec.c +++ b/libavdevice/oss_dec.c @@ -91,7 +91,7 @@ static int audio_read_packet(AVFormatContext *s1, AVPacket *pkt) bdelay += abufi.bytes; } /* subtract time represented by the number of bytes in the audio fifo */ - cur_time -= (bdelay * 1000000LL) / (s->sample_rate * s->channels); + cur_time -= (bdelay * 1000000LL) / (s->sample_rate * s->sample_size * s->channels); /* convert to wanted units */ pkt->pts = cur_time; -- 2.24.3 (Apple Git-128) _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".