From patchwork Thu Sep 10 20:39:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 22264 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 25A7C449EF3 for ; Thu, 10 Sep 2020 23:39:23 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0940468B9DE; Thu, 10 Sep 2020 23:39:23 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f67.google.com (mail-ej1-f67.google.com [209.85.218.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3404E68B9DB for ; Thu, 10 Sep 2020 23:39:16 +0300 (EEST) Received: by mail-ej1-f67.google.com with SMTP id i22so10702222eja.5 for ; Thu, 10 Sep 2020 13:39:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=ened3gs1fkobUoGNXR2Ie9WvYKDrVmO9jWW8vj+/prc=; b=AjYJRTIFXFW3NNA3ZZiIWa9iGIlz7XlrLNPlcLFlBUMcPCsIQJFitneHjcQWUhUYjm rZh7ldYsxIf0Ra2FtpSeV6wDs5CNgnGRc3DEiHff9im+aNc8gBa3ABodLwKgysU/zOER jhd1+N3hJHldOTuGwQVw1jqCjGkryFVpXN5lopkqqd09w7KKjMm2T5bnmnb48gP2tDeA LWxsIoLqe/fb/xHl0amWbik98wbeqcr59gs4TAvIf2oOszmojp4RxivR/rCYrI69T15i 4pgnL7Y7lXxwLIJfEZBDsUdNxHtZCTQigTeGz1yiRH/T8Tpzfbr+7t1KkjkC1N261iam JJ8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=ened3gs1fkobUoGNXR2Ie9WvYKDrVmO9jWW8vj+/prc=; b=FEFOwtiPzg5XrDop/ydipXYwldWl4YlCJ1K9gdbXT9T3IY3NXxIFWUeoJQ4y0KTZ7R IBMtz6A651DEz+PshniD6X2PY3TabMNwjOJ+LBrc2TlylziyfZWgtFm4Xfoe845nBKal 7VO47SvFeKgWPUfpXshbxgEMuLdwDHaUgZI779elTxkTLmqYERlhBNKKSoXgZWVNU+7k zotrWxOEywDW1ydyJ64HgNA6SBl/AOz/OmgKduPM/zi1Q5SZWd8DPJs3V1W6kOTRbBXJ R4NBmUxLefHmRWMkWaNKyFZgT/yRl/cSUBqKW1RbPtvV5ncFQmE2Ij7ta4OuqZ8aPjrW FFjg== X-Gm-Message-State: AOAM533YE0NhUX6adIxF78+ZUqYPtVE98cbKbQWkSmIrKszGmcMAYgJ4 WYcKk8nkLEuMLi4aDE6XPHalwCV+vlvF4Q== X-Google-Smtp-Source: ABdhPJymHG/UWfnQdq18R+7FjcaQ+2eNW8ONEGv16edoGJIEgdQC9G+fJHG+kD+OevZFqi7MOZiGDA== X-Received: by 2002:a17:906:bc98:: with SMTP id lv24mr11180590ejb.411.1599770355070; Thu, 10 Sep 2020 13:39:15 -0700 (PDT) Received: from localhost.localdomain ([94.250.162.52]) by smtp.gmail.com with ESMTPSA id b6sm13234edm.97.2020.09.10.13.39.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Sep 2020 13:39:14 -0700 (PDT) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Thu, 10 Sep 2020 22:39:04 +0200 Message-Id: <20200910203904.17757-2-onemda@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200910203904.17757-1-onemda@gmail.com> References: <20200910203904.17757-1-onemda@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/2] avformat/moflex: make seeking more useful 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Paul B Mahol --- libavformat/moflex.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/libavformat/moflex.c b/libavformat/moflex.c index 747e32f079..2111157408 100644 --- a/libavformat/moflex.c +++ b/libavformat/moflex.c @@ -327,7 +327,13 @@ static int moflex_read_packet(AVFormatContext *s, AVPacket *pkt) av_packet_move_ref(pkt, packet); pkt->pos = m->pos; pkt->stream_index = stream_index; - pkt->flags |= AV_PKT_FLAG_KEY; + if (s->streams[stream_index]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { + pkt->duration = 1; + if (pkt->data[0] & 0x80) + pkt->flags |= AV_PKT_FLAG_KEY; + } else { + pkt->flags |= AV_PKT_FLAG_KEY; + } return ret; } } @@ -341,6 +347,16 @@ static int moflex_read_packet(AVFormatContext *s, AVPacket *pkt) return AVERROR_EOF; } +static int moflex_read_seek(AVFormatContext *s, int stream_index, + int64_t pts, int flags) +{ + MOFLEXDemuxContext *m = s->priv_data; + + m->in_block = 0; + + return -1; +} + static int moflex_read_close(AVFormatContext *s) { for (int i = 0; i < s->nb_streams; i++) { @@ -360,6 +376,7 @@ AVInputFormat ff_moflex_demuxer = { .read_probe = moflex_probe, .read_header = moflex_read_header, .read_packet = moflex_read_packet, + .read_seek = moflex_read_seek, .read_close = moflex_read_close, .extensions = "moflex", .flags = AVFMT_GENERIC_INDEX,