From patchwork Tue Dec 21 13:53:25 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Diederick C. Niehorster" X-Patchwork-Id: 32790 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp5443864iog; Tue, 21 Dec 2021 05:54:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJyRJBVLSvVA62qcZ2VrfgtTiXXfQrEPfQ3RkTD/iBQVm2EVOr/a8CZXE1iA/2L5Gb5urLjX X-Received: by 2002:a17:906:4fcd:: with SMTP id i13mr2732607ejw.6.1640094842698; Tue, 21 Dec 2021 05:54:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640094842; cv=none; d=google.com; s=arc-20160816; b=OEnKDpRl+C217TM+tKWThUgOlEDCFQbPF/eCe6hWfVJpCbXc9GeiKUT93n3RVqazkC I/bLzZuip08qq8B29Q1wzu92CtegBp9IIVDO85vArshBeoTbmz6zSswno0Fuod7G0iHw MaB6aJA34yO9wda6hyD7qs0Y+up1rJmzBy63wp6tgktm7s5QyNU+6QsL9yzf/KjzxAAC 6SIFs90wi3afS9Flx0tzwbZNmzsnTu5ihaQSoEq/tYwsHHH/vGRyR3+uDV8co3S2VQzf rbW5bz9MkxE3XoJWx0SI7yj8u8TgFtH51qT6SVTOimzu5hLLSAqTYaKG3V/P0A6RSJoN RfQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=75f9WO7vtfZj1YM4YKbsBrlzfIcPj3PILIylk1D8hqk=; b=duyjdyGm541Ka9Sgkx/o8lPSNrDiRGyBWgIvHAgWkJ4KALJLEsTMDZmGjoyrzlQ8PN O/TiuS2jawNbw6UrsPr2Lufbx7/XegJDhDaa5FMDWR09WJvay1P2fzgrGnvU1SIhFvMv KULEwgzX9ASfAv7yrwWxh0X2u1RMcvju3g5AlA8FriVA0LgcOjUqobPG83O+Rr/rg4ZQ 0EUFpm1dhxp+Iyelrqld8U3Za/wjjn0lWFlL7QnlxA2p07RQTlQi1o4N7VHZoTj0wPV2 RT16rDKHDl3wlXhUORHh5dsF6DmgVFZ7U6k5xTOmL6RwAXLBtI1l8CDPuNjpQmCAaXiI 7ezg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=qVluZcz+; 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 dn10si6014172ejc.496.2021.12.21.05.54.02; Tue, 21 Dec 2021 05:54:02 -0800 (PST) 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=20210112 header.b=qVluZcz+; 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 4BD8068AF4C; Tue, 21 Dec 2021 15:54:00 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 546F868A921 for ; Tue, 21 Dec 2021 15:53:53 +0200 (EET) Received: by mail-lj1-f180.google.com with SMTP id 207so21495507ljf.10 for ; Tue, 21 Dec 2021 05:53:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=2iJbRAZn13xO5l+Ye4V7P10P6oL0vqBAB2irGeK7gv0=; b=qVluZcz+6NVJLp2BThCtVhJjpwxudh8zkGTv+l1MD9Sj5ogGy16rMS0zHT32kC5th+ pPVCTEuehcdvbmdXUTpfIbKEnPMhYU9VJZqQKPmec3p1skJCFvHY3etuG5eRmww9ghmi tpQJihyECW8dBsyjl2Kuj4bO2VGL1q81YNoCSJObSWuD1GzYrVrywE/n7KU42lRuwsC4 d4D0XOR1tqxjphuYHqab9teUsQnVK7Xk/rezIWgdgs8xnt7oaLP3nHdGYg+JKO4Qn7/H 3Ec1nO15W2dkUr874VNg4PuJjKAiny1vPvrrDO9SZUT+UjS5HS4wUmQ5Tr0e4kaygXa3 cYWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=2iJbRAZn13xO5l+Ye4V7P10P6oL0vqBAB2irGeK7gv0=; b=iyHSw+cmzH/vYS79UfYChlnnM9kMMGALcVxToIegqQMRHDVyHymCKObCNOsgmEiwWK ngI+OoshAI4Cosr24YAD8WNkuMqQhh4BpZGFuvKAo3cvTms5nbQ2b/grZ77lK/Uw2Ff9 eUQkV8DvLyGguDqpEeW40zj9IRR/EomlsarXNYnVKlnog0nziziFW5iJZES3cN2UuKwV M8/1+fLzXF/gVbAPFwHTvc+lJ5r+zB7WWLf23sYXzmTplCTJf0BNYQQl/fAdc4wQPT9W 70Sv4u9MUeI5qBJqhRlfifCJIEcbGJJ0dUUxx3OwyRgjbYDquc4SsAET0Mo2GmXsFIzA 0s+g== X-Gm-Message-State: AOAM533G3LQE26V4m8Nyrc5zCHqpAih6DWTnbjoSRomUmH66oQsZYZbG IwYwPh8mwNMB0PRN+G1VZaYC2xZxloGpKw== X-Received: by 2002:a2e:9b07:: with SMTP id u7mr2700720lji.200.1640094832313; Tue, 21 Dec 2021 05:53:52 -0800 (PST) Received: from localhost.localdomain ([196.244.192.13]) by smtp.gmail.com with ESMTPSA id m18sm883788lfg.147.2021.12.21.05.53.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Dec 2021 05:53:51 -0800 (PST) From: Diederick Niehorster To: ffmpeg-devel@ffmpeg.org Date: Tue, 21 Dec 2021 14:53:25 +0100 Message-Id: <20211221135337.1348-1-dcnieho@gmail.com> X-Mailer: git-send-email 2.28.0.windows.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v7 00/12] dshow enhancements 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: Diederick Niehorster Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: srI0bFBwn8fu This series solves some outstanding bugs in the dshow device, implements get_device_list so that `ffmpeg -sources dshow` works and adds logic to select a video format with extended color information (color range, space, etc) if exposed by the device. v7 adresses review comments from Hendrik on patch 11/12. This is a new version of part of the patch series in https://ffmpeg.org/pipermail/ffmpeg-devel/2021-July/282073.html, addressing review comments i got there. They have been previously OK'ed offlist by the dshow maintainer Roger Pack. Specifically, these patches are the enhancements that should be uncontroversial as they do not touch the avformat API. Once pushed, i'll re-send the other more controversial patches on top of these. Diederick Niehorster (12): avdevice/dshow: prevent NULL access avdevice/dshow: implement option to use device video timestamps avdevice/dshow: query graph and sample time only once avdevice/dshow: handle unknown sample time avdevice/dshow: set no-seek flags avdevice/dshow: implement get_device_list avdevice/dshow: list_devices: show media type(s) per device avdevice: add info about media types(s) to AVDeviceInfo avdevice/dshow: add media type info to get_device_list fftools: provide media type info for devices avdevice/dshow: discover source color range/space/etc avdevice/dshow: select format with extended color info doc/indevs.texi | 6 + fftools/cmdutils.c | 34 +- libavdevice/avdevice.c | 1 + libavdevice/avdevice.h | 2 + libavdevice/dshow.c | 822 +++++++++++++++++++++++++++++++----- libavdevice/dshow_capture.h | 1 + libavdevice/dshow_pin.c | 52 ++- libavdevice/version.h | 4 +- 8 files changed, 778 insertions(+), 144 deletions(-)