From patchwork Tue May 1 09:47:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 8710 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:155:0:0:0:0:0 with SMTP id c82-v6csp4381260jad; Tue, 1 May 2018 02:48:03 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrMmio6kPM4Naqc5iBz0CJD9z21olaf5msTyXK7aAG6wPQ4xITPShzeum0QhhANPy4uKb0F X-Received: by 2002:adf:9615:: with SMTP id b21-v6mr11249881wra.253.1525168083747; Tue, 01 May 2018 02:48:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525168083; cv=none; d=google.com; s=arc-20160816; b=CRaa0SmV283I2lPNl6YlvnO93Wm0RLR9fhc43RSzPyyh8A9k9tku71E17L5QhjBBcd B577Oz7DwWg6NBDcShwb9QxUqZMHFcJ1H7xptj3F78IuUX30UWFMy6dNhqJHTaoFO0B8 O+1zjpNeOSQGrv9I02xMV0hSI40E1ZSFL8FpR5G0wVqbd6av6Vw9GYYc4uvGNjoh1bVK 8CViQR5/WPok6rltwygGloP5kShCSaOrWQ/dsWJ/pjsnpIldC56kklxlwd0hZmoxwNAL jA3M1Jx+fq/cP6YyP0EX5IMnLnLQVUbHLoz362pe/eWFTWvkaVIyVXR4y1GG6DYDrIA2 D68w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=yGkOWsGlROlFj+q/TsBK+gYCTD/q5YvalFyy0gQlNGs=; b=VHZJOCI9deJqw8ttYhQnA3fdp1JLLZ6uzsalJoOY5KzDfykQ965kFW4MvEbIUekqZz r3eL9xHAGb/FZR4D71vgK14qezy+G6y4cRtDkORY25mrLoR5B64WA8A4aZOj9BR3Kp3y QwV/9UzNoBus7/1jHtg3zJbaSaTRSNd2ydnTt2LDYzhCW8Z/iMgva/34NWshJtlE4DOl UAylg1c4k4H/lFoyp9oxC42LmiTpSUY0XCT1O452T5wkF06epvmyHGggKqweJlAnCKkG ePyq2ZNgRQbaE0I2vFf+rKrZfEuZZoAjs3wHtuPleEjYj3APx1p00pAOYuqXo8uoVXWJ 2uVQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=fYQdEGMb; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id w6-v6si7568726wrk.170.2018.05.01.02.48.02; Tue, 01 May 2018 02:48:03 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=fYQdEGMb; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 43A2D68A3A8; Tue, 1 May 2018 12:47:28 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr0-f194.google.com (mail-wr0-f194.google.com [209.85.128.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 42D9D689B4F for ; Tue, 1 May 2018 12:47:21 +0300 (EEST) Received: by mail-wr0-f194.google.com with SMTP id v15-v6so10358366wrm.10 for ; Tue, 01 May 2018 02:47:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=bebL/P0/u7DIx7MkZ1MeSppkcj/AyCbLbm/ZVCepiHc=; b=fYQdEGMbj334pW8VCVv6gEfiBVWEzmkLSTRKiwdnMqvWgnR9GWe4TShnLPcLYMT+qq WRKnAj+CyrCBgN2IbibJtih7nep3nm1U4zyTsS4youYL6yAp6jQtxEOcN5fuKVGnFU+x bIUah+ObuwD8KHOUWNeq//SmLtJgLlx4F62DOIIOev7aqALlAJS5hGJvdVldt8lNqFIZ QudJP/776RSkKJz2I99AoP1M4klllMy3PClhvLIY3DIlRwvyNwNySFn+CN7MEreRG9a1 22neoffTlkMBaIMXqImENWqrz2X1V4thpcwzhGhgzxzHWErP5O6OrmqXqw0qzQL5/KqH q32A== 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; bh=bebL/P0/u7DIx7MkZ1MeSppkcj/AyCbLbm/ZVCepiHc=; b=etpvOlixmkSKHz08K3rFdvLl6bfhi8sWpRhPSJEEeLT64N4oHkh6gMXihz1rGz5TPm UrIvSKG8hcvTD7BjeiNTZ8bfYngeWHDsIwIwlNXgilwv1Qmr6m6xyatyyYiAeEPL6a9t l+v4xg0wSRpbI3qNASFbUU01rvRcsJAm2PASSfPhJV+ukKBL1egioWEdjX0qZhfSdVTc oHW1S+yxbf7D4QFgPoLj1kX4fZKacdeG1p4zOa/QEUjv6XALK2WsHj1Onci9KVG1jFq9 xoqNGQ4/rujrPOZbTW9BqAuBOg5YGiMErIZXh/T4pHIMsXEBcfnBztK4RRdAMzx2wW1o ywjA== X-Gm-Message-State: ALQs6tBV4NWrh2cWGz8MBkzmWrJzUnZMIDh89Ale6eZddDunisedM5/i aIMigixik2aMkxtmReDP4CD2vg== X-Received: by 2002:adf:8827:: with SMTP id d36-v6mr10827574wrd.41.1525168072965; Tue, 01 May 2018 02:47:52 -0700 (PDT) Received: from localhost.localdomain ([94.250.174.60]) by smtp.gmail.com with ESMTPSA id 123sm9001972wmt.19.2018.05.01.02.47.51 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 01 May 2018 02:47:52 -0700 (PDT) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Tue, 1 May 2018 11:47:04 +0200 Message-Id: <20180501094704.14408-1-onemda@gmail.com> X-Mailer: git-send-email 2.11.0 Subject: [FFmpeg-devel] [PATCH] avformat/yuv4mpegdec: use generic code for seeking 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/yuv4mpegdec.c | 23 ++++---------------- tests/ref/seek/lavf-yuv4mpeg | 52 ++++++++++++++++++++------------------------ 2 files changed, 28 insertions(+), 47 deletions(-) diff --git a/libavformat/yuv4mpegdec.c b/libavformat/yuv4mpegdec.c index 8662a42a4c..cf6da2a2ef 100644 --- a/libavformat/yuv4mpegdec.c +++ b/libavformat/yuv4mpegdec.c @@ -306,28 +306,13 @@ static int yuv4_read_packet(AVFormatContext *s, AVPacket *pkt) return s->pb->eof_reached ? AVERROR_EOF : AVERROR(EIO); } pkt->stream_index = 0; - pkt->pts = (off - s->internal->data_offset) / s->packet_size; + pkt->pos = off; + pkt->dts = pkt->pts = (off - s->internal->data_offset) / s->packet_size; + pkt->flags |= AV_PKT_FLAG_KEY; pkt->duration = 1; return 0; } -static int yuv4_read_seek(AVFormatContext *s, int stream_index, - int64_t pts, int flags) -{ - AVStream *st = s->streams[0]; - int64_t pos; - - pos = av_rescale_rnd(pts * s->packet_size, - st->time_base.num, - st->time_base.den * s->packet_size, - (flags & AVSEEK_FLAG_BACKWARD) ? AV_ROUND_DOWN : AV_ROUND_UP); - pos *= s->packet_size; - - if (avio_seek(s->pb, pos + s->internal->data_offset, SEEK_SET) < 0) - return -1; - return 0; -} - static int yuv4_probe(AVProbeData *pd) { /* check file header */ @@ -343,6 +328,6 @@ AVInputFormat ff_yuv4mpegpipe_demuxer = { .read_probe = yuv4_probe, .read_header = yuv4_read_header, .read_packet = yuv4_read_packet, - .read_seek = yuv4_read_seek, .extensions = "y4m", + .flags = AVFMT_GENERIC_INDEX, }; diff --git a/tests/ref/seek/lavf-yuv4mpeg b/tests/ref/seek/lavf-yuv4mpeg index 15d4d8c8c1..0f85ea5a46 100644 --- a/tests/ref/seek/lavf-yuv4mpeg +++ b/tests/ref/seek/lavf-yuv4mpeg @@ -1,48 +1,44 @@ -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 64 size:152064 -ret:-1 st:-1 flags:0 ts:-1.000000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 58 size:152064 +ret: 0 st:-1 flags:0 ts:-1.000000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 58 size:152064 ret: 0 st:-1 flags:1 ts: 1.894167 -ret: 0 st: 0 flags:1 dts: 0.040000 pts: 0.040000 pos: 152134 size:152064 +ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:3649738 size:152064 ret: 0 st: 0 flags:0 ts: 0.800000 -ret: 0 st: 0 flags:1 dts: 0.040000 pts: 0.040000 pos: 152134 size:152064 +ret: 0 st: 0 flags:1 dts: 0.800000 pts: 0.800000 pos:3041458 size:152064 ret:-1 st: 0 flags:1 ts:-0.320000 -ret: 0 st:-1 flags:0 ts: 2.576668 -ret: 0 st: 0 flags:1 dts: 0.120000 pts: 0.120000 pos: 456274 size:152064 +ret:-1 st:-1 flags:0 ts: 2.576668 ret: 0 st:-1 flags:1 ts: 1.470835 -ret: 0 st: 0 flags:1 dts: 0.040000 pts: 0.040000 pos: 152134 size:152064 +ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:3649738 size:152064 ret: 0 st: 0 flags:0 ts: 0.360000 -ret: 0 st: 0 flags:1 dts: 0.040000 pts: 0.040000 pos: 152134 size:152064 +ret: 0 st: 0 flags:1 dts: 0.360000 pts: 0.360000 pos:1368688 size:152064 ret:-1 st: 0 flags:1 ts:-0.760000 -ret: 0 st:-1 flags:0 ts: 2.153336 -ret: 0 st: 0 flags:1 dts: 0.120000 pts: 0.120000 pos: 456274 size:152064 +ret:-1 st:-1 flags:0 ts: 2.153336 ret: 0 st:-1 flags:1 ts: 1.047503 -ret: 0 st: 0 flags:1 dts: 0.040000 pts: 0.040000 pos: 152134 size:152064 +ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:3649738 size:152064 ret: 0 st: 0 flags:0 ts:-0.040000 -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 64 size:152064 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 58 size:152064 ret: 0 st: 0 flags:1 ts: 2.840000 -ret: 0 st: 0 flags:1 dts: 0.080000 pts: 0.080000 pos: 304204 size:152064 -ret: 0 st:-1 flags:0 ts: 1.730004 -ret: 0 st: 0 flags:1 dts: 0.080000 pts: 0.080000 pos: 304204 size:152064 +ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:3649738 size:152064 +ret:-1 st:-1 flags:0 ts: 1.730004 ret: 0 st:-1 flags:1 ts: 0.624171 -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 64 size:152064 +ret: 0 st: 0 flags:1 dts: 0.640000 pts: 0.640000 pos:2433178 size:152064 ret: 0 st: 0 flags:0 ts:-0.480000 -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 64 size:152064 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 58 size:152064 ret: 0 st: 0 flags:1 ts: 2.400000 -ret: 0 st: 0 flags:1 dts: 0.080000 pts: 0.080000 pos: 304204 size:152064 -ret: 0 st:-1 flags:0 ts: 1.306672 -ret: 0 st: 0 flags:1 dts: 0.080000 pts: 0.080000 pos: 304204 size:152064 +ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:3649738 size:152064 +ret:-1 st:-1 flags:0 ts: 1.306672 ret: 0 st:-1 flags:1 ts: 0.200839 -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 64 size:152064 +ret: 0 st: 0 flags:1 dts: 0.200000 pts: 0.200000 pos: 760408 size:152064 ret: 0 st: 0 flags:0 ts:-0.920000 -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 64 size:152064 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 58 size:152064 ret: 0 st: 0 flags:1 ts: 2.000000 -ret: 0 st: 0 flags:1 dts: 0.080000 pts: 0.080000 pos: 304204 size:152064 +ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:3649738 size:152064 ret: 0 st:-1 flags:0 ts: 0.883340 -ret: 0 st: 0 flags:1 dts: 0.040000 pts: 0.040000 pos: 152134 size:152064 +ret: 0 st: 0 flags:1 dts: 0.880000 pts: 0.880000 pos:3345598 size:152064 ret:-1 st:-1 flags:1 ts:-0.222493 -ret: 0 st: 0 flags:0 ts: 2.680000 -ret: 0 st: 0 flags:1 dts: 0.120000 pts: 0.120000 pos: 456274 size:152064 +ret:-1 st: 0 flags:0 ts: 2.680000 ret: 0 st: 0 flags:1 ts: 1.560000 -ret: 0 st: 0 flags:1 dts: 0.040000 pts: 0.040000 pos: 152134 size:152064 +ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:3649738 size:152064 ret: 0 st:-1 flags:0 ts: 0.460008 -ret: 0 st: 0 flags:1 dts: 0.040000 pts: 0.040000 pos: 152134 size:152064 +ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos:1824898 size:152064 ret:-1 st:-1 flags:1 ts:-0.645825