From patchwork Wed Mar 6 15:00:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oliver Collyer X-Patchwork-Id: 12220 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 44D55446C6A for ; Wed, 6 Mar 2019 17:00:48 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2054A68A60D; Wed, 6 Mar 2019 17:00:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from st43p00im-ztfb10073301.me.com (st43p00im-ztfb10073301.me.com [17.58.63.186]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 49B8B6806D5 for ; Wed, 6 Mar 2019 17:00:41 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mac.com; s=04042017; t=1551884438; bh=S4JqGMVo7XEMe9G9wu9o+TZ80AE4DvMFi7/LtYCtz4s=; h=From:Content-Type:Mime-Version:Subject:Message-Id:Date:To; b=Ri31ROlX/Sgh/00EiQ5IWAhk+aDZ534XCcUjE1naM41k8dzuj3FN+VX89HH9lIuNt sstT9WPKQ79ngZt7Mw0phPqd2MTKKCzN3ZJHuirRvujYeTlH/t3K1U9eR4TLlyMBwM 9p42rTI834OWxEK9QoVCuHopd1YU0p29q3QtW4bOpsvmjyQChoxuz33KFYUjOSP40w Fb0y6SXoPg3s9eVYVSxxvtqFp9XyKO1ueoUvIxlJCwcNGY+5KipiX4EMCuloa0iKJ3 wCQYwSVmTC+F/hRR8LhHp9L7eUGjLdD0zv8EYPf684KLHU3KyljCqHPcYA3oAVq21W U+Zr03MH7GjVg== Received: from [192.168.0.116] (unknown [82.163.117.68]) by st43p00im-ztfb10073301.me.com (Postfix) with ESMTPSA id 527359400DC for ; Wed, 6 Mar 2019 15:00:38 +0000 (UTC) From: Oliver Collyer Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\)) Message-Id: <5F93D188-F455-4DA5-8110-0358B4CD398A@mac.com> Date: Wed, 6 Mar 2019 15:00:35 +0000 To: FFmpeg development discussions and patches X-Mailer: Apple Mail (2.3445.102.3) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-03-06_10:, , signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=1 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=1 clxscore=1015 mlxscore=1 mlxlogscore=222 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1812120000 definitions=main-1903060104 Subject: [FFmpeg-devel] [PATCH] avformat/mpegtsenc: X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Hi I needed to be able to use the write_data_type callback when reading data from the mpegts muxer, to make my application aware of key frames in the data so I added support. I used the matroska implementation as a reference. If this is accepted, I will format this as a proper patch after feedback. Regards Oliver diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index fc0ea225c6..e5d1a64b4c 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -1815,6 +1815,12 @@ static int mpegts_write_packet(AVFormatContext *s, AVPacket *pkt) mpegts_write_flush(s); return 1; } else { + if (s->pb && s->pb->write_data_type) { + AVStream *st = s->streams[pkt->stream_index]; + avio_write_marker(s->pb, + av_rescale_q(pkt->dts, st->time_base, AV_TIME_BASE_Q), + (pkt->flags & AV_PKT_FLAG_KEY) && st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO ? AVIO_DATA_MARKER_SYNC_POINT : AVIO_DATA_MARKER_BOUNDARY_POINT); + } return mpegts_write_packet_internal(s, pkt); } }