From patchwork Thu Feb 3 20:09:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Scott Theisen X-Patchwork-Id: 34112 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2c4e:0:0:0:0 with SMTP id x14csp2798593iov; Thu, 3 Feb 2022 12:10:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJzfU3WSK/oG9jXjuCiQA5XUv0MLEjkZ/2b4yui9rZLXoeUGIdATXixPrRtE6dJUGy2Lt9Jh X-Received: by 2002:a17:906:fcd8:: with SMTP id qx24mr30376694ejb.391.1643919058297; Thu, 03 Feb 2022 12:10:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643919058; cv=none; d=google.com; s=arc-20160816; b=UOWmmZeYXDlAvCWAZ5A+WoJVHn4QBvsfafKCMpdXvVVZyzfGZvBFYexQbIN3LnJvcB 9gImep6NM/8rZHo7ZtRuB8dOVOGRwn7vZObJjaaxBo1O0SWaj7ORNR/3rkIZK3hhNUE4 S3Ekesv9fmQxOC62uyPlyD1Ozk/QH+bD1EbXmHVPjZkcprnIAT12N4zCTiTWSiE5WmKS HwZamUZtXT0s2KyIrKE1TacEQRrf5v8/jvVVVa8dYhlYrKU+vTYXD2aggxntdAFptCX8 6u1INz/SYh7Iupc/rH3bmUIJ5A2DQPn6qDzP1um9MQnipOMlrTNq0igQ5OSN9F59B6PV iSmw== 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:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=F8xseoLVZImRZ2xn8PEfYCqDeDnmtDb916rpz6svTHE=; b=X9RIbT8fcOAjxL1Pr3c6TkD5JPi+J7Qaiat2VJaXdV0PM2HqN+SmVbR6ss79RmW1nR asAy9OYQWuHpw0BgmsWSXCM0hi6+Yw8UVR/q84YqNKkzPRHuYM32i5cLQHQ1+2NnV9rD 8GFaCobUHbYx9sxeTEiD9+qacopMCwsJiSjCVJTap0kWvUdHIbJZdVXAs2Nt0iGDfpDr EViD1DrsTrYNEHjibkZB+7oYUiz3LrRTNVJkrq0rlwng+28jhVO5uaO8Q0hatkljoo8M etGv6kXc8V29jAeXld2XJe+bDaLpaNBc/VgFCV6DuYJwjOBgE08W747q+p6oWuwTj/2T m7Uw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=IvXSJWiq; 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 d8si5399716edt.642.2022.02.03.12.10.57; Thu, 03 Feb 2022 12:10:58 -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=IvXSJWiq; 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 03C5F68B187; Thu, 3 Feb 2022 22:10:47 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6E31568AF5A for ; Thu, 3 Feb 2022 22:10:38 +0200 (EET) Received: by mail-qv1-f44.google.com with SMTP id k4so3568684qvt.6 for ; Thu, 03 Feb 2022 12:10:38 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=VHf/zsPBhIwtalbx9QeR1vPOt4seY3grtOPlWQOWnk0=; b=IvXSJWiqfymUjrkJ0Ujgaew0sWgYcfQggQedrTe/azXlPUNN/yumDzFVFAZXH7sgLj TYIIW1a7Jq+kxHGaq2nLwiCcD8+cZkDyvi6WXRwRqmt+qsVUOBaYK1kpFRK5Y/avvwQT wEqHv+zjBI3lAaok8jMWxONyasDwu0GcSncGVyrNa3EQOP4XFQ6iezjwJU7tzFYPd3Sp koedLxS/oBj1ShE6zQNS8WRO2bD6jYNvbQBn1x6bfpanXLcxqV2pNZLGebDAJOiahD4V /OUgtUf7+sbLDNiJdEOlwaiFYCstzoOzklcUKxt0xSa0fIGTDjXj+4lJPcgBYt5mGUl+ UfcA== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=VHf/zsPBhIwtalbx9QeR1vPOt4seY3grtOPlWQOWnk0=; b=hW5AQ5dnHElUZgJIpEvlsnGPUpLOAH//ldLrh5X6dSIbn5TMqm7PTj3AkO7CVExDhw ZCFp99BaMBbWYNkk2+D37M/92qbcZoI8Ks8ZWeW1ZqHpJpVNXCr+1SsfhCtgvDpdlyiO H2uaZtrtcucX+oYiRDY9KcqU9wD29OUK1dyr05QX0llKEJkNpj5SdOEuaoVgGQ3GWR7A Nuaa9Lgv5ZXXEzIjozykT5x40y5nF7o4Hidd6wAPC/NUuD0kO2h+XkR0F7Ht/IRK/lTW m/fOQQIVHXc1ZPAvU1WqZb2HWjmskOISSL4gAHQsUOQwn9ZKoXcWPrh19/Ja+UHMdMBA EeQw== X-Gm-Message-State: AOAM533SUl093xDDP9QZrw1w2old0VTGejF6uNmLC9G+PgSwrqzOdWPs cI3Gs0hBXmJvQCoD3XFzipXAbpVebe6iag== X-Received: by 2002:a05:6214:d4c:: with SMTP id 12mr32526409qvr.101.1643919036940; Thu, 03 Feb 2022 12:10:36 -0800 (PST) Received: from localhost.localdomain ([151.200.235.219]) by smtp.gmail.com with ESMTPSA id bp37sm14731321qkb.135.2022.02.03.12.10.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Feb 2022 12:10:36 -0800 (PST) From: Scott Theisen To: ffmpeg-devel@ffmpeg.org Date: Thu, 3 Feb 2022 15:09:29 -0500 Message-Id: <20220203200930.30744-2-scott.the.elm@gmail.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220203200930.30744-1-scott.the.elm@gmail.com> References: <20220201223058.31090-1-scott.the.elm@gmail.com> <20220203200930.30744-1-scott.the.elm@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] libavutil: create av_media_type_get_string() 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: Scott Theisen Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: uiRkWyVUFGlM This deprecates av_get_media_type_string() which does return NULL. printf %s with a null pointer is undefined behavior This also matches behavior with avcodec_get_name() which never returns NULL, instead it returns "unknown_codec". --- doc/APIchanges | 3 +++ libavutil/avutil.h | 7 +++++++ libavutil/utils.c | 13 +++++++++++++ 3 files changed, 23 insertions(+) diff --git a/doc/APIchanges b/doc/APIchanges index 315a04c952..5b2ef724be 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -14,6 +14,9 @@ libavutil: 2021-04-27 API changes, most recent first: +2022-02-03 - xxxxxxxxxxx - lavu 57.19.100 - avutil.h + Add av_media_type_get_string() which deprecates av_get_media_type_string(). + 2022-01-26 - af94ab7c7c0 - lavu 57.19.100 - tx.h Add AV_TX_FLOAT_RDFT, AV_TX_DOUBLE_RDFT and AV_TX_INT32_RDFT. diff --git a/libavutil/avutil.h b/libavutil/avutil.h index 4d633156d1..6cabeb405a 100644 --- a/libavutil/avutil.h +++ b/libavutil/avutil.h @@ -209,9 +209,16 @@ enum AVMediaType { /** * Return a string describing the media_type enum, NULL if media_type * is unknown. + * + * @deprecated Use av_media_type_get_string() instead. */ const char *av_get_media_type_string(enum AVMediaType media_type); +/** + * Return a string describing the media_type enum, never NULL. + */ +const char *av_media_type_get_string(enum AVMediaType media_type); + /** * @defgroup lavu_const Constants * @{ diff --git a/libavutil/utils.c b/libavutil/utils.c index ea9b5097b8..92d242f678 100644 --- a/libavutil/utils.c +++ b/libavutil/utils.c @@ -80,6 +80,19 @@ const char *av_get_media_type_string(enum AVMediaType media_type) } } +const char *av_media_type_get_string(enum AVMediaType media_type) +{ + switch (media_type) { + case AVMEDIA_TYPE_UNKNOWN: return "unknown"; + case AVMEDIA_TYPE_VIDEO: return "video"; + case AVMEDIA_TYPE_AUDIO: return "audio"; + case AVMEDIA_TYPE_DATA: return "data"; + case AVMEDIA_TYPE_SUBTITLE: return "subtitle"; + case AVMEDIA_TYPE_ATTACHMENT: return "attachment"; + default: return "invalid_media_type"; + } +} + char av_get_picture_type_char(enum AVPictureType pict_type) { switch (pict_type) { From patchwork Thu Feb 3 20:09:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Scott Theisen X-Patchwork-Id: 34113 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2c4e:0:0:0:0 with SMTP id x14csp2798759iov; Thu, 3 Feb 2022 12:11:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJz7cmAe7KdTvqQl54CnugCSWQIe7xN8F2y+Nh0L+93+pFojGaGqdYUIAYjOjQ9GHVno/T+M X-Received: by 2002:a17:907:9493:: with SMTP id dm19mr30522023ejc.51.1643919068284; Thu, 03 Feb 2022 12:11:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643919068; cv=none; d=google.com; s=arc-20160816; b=ix7giQOfpl780zRKKjMniLHkKyFkJbMOeSPx3qTjug7c9236ByPkK8kUXe5W+/QCJJ EPmB7lu6hv5GB7uFD//Sqm9lUYiim3iBCXkDvaK1dXjQWFfzP4saa43l6FFwJwEm4IhY n64aM+w/r091DzFUl9P6nHLGD7eWVvkBQbTwULvT1jScz8zbLH07CFKrWBcVu16HsXDB sG2aSe7DAlRfvxjUTbafCw20qq75lXP0OC7OrVYxAwUuoIjFI9rWGSuG+6kTo9PCAjDA 6TIA/ptcNQ/qgcPo57v9ZaX2UX/6eDVfiYSioGNbz1GT9PyqSz6tHEj28OFCBRMFf6Gt lgiQ== 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:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=w/wY5LBZK70tWnZEsL1BmKghKZnR8WzutNQf7QjIYOE=; b=xbcUCTxpGiMDz2H2Kzp4UYEhcw9KaXJE3/khaBRa2l5w84LjgcJbFNnvow+N2VNEBp YoMcrBDOlirocSB1FfgiSdesDRfSdZ+Ngsp5mcnxw3/jzKUHKpyjU+bJwXJzpjtXlhj3 FfD/qSa6UfhtZOOWO4RrZP2jgpTl0LmIiyNncLa1KJ2GWlsyeHKLo4PqDuexcy7mkSja /GRkkUMjJNxYZOcpnFUlQZEH9WTIFkrXn4ZxlNfGdwQWjaYV8ZNInivdkGiEtLkdRZK/ u1BXjdCHu//An+3cvNlU176QF0e34P1IiUqBzp6Y+qNp8CO+r4fTE2v+SJHNMt3AHjrz LKvw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=eguLgD+L; 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 n3si14057068edd.566.2022.02.03.12.11.07; Thu, 03 Feb 2022 12:11:08 -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=eguLgD+L; 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 0E14468B1CD; Thu, 3 Feb 2022 22:10:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E2F5168AB7C for ; Thu, 3 Feb 2022 22:10:39 +0200 (EET) Received: by mail-qk1-f173.google.com with SMTP id o12so3007632qke.5 for ; Thu, 03 Feb 2022 12:10:39 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=XJzJuOgH+EVPJ+J9M5qoLzyHTSd+4Lf90/qwwFpqcnU=; b=eguLgD+LjVREF796WOyCRC7HsuX+Sqv3I8lrqjPxANBBmQUP4UpbjlNGVscgpircCw yCL71dHCUeVKgBYLzv0mb91DhAoyYcj/02xxJuJOEYVEiwl+h+8BiUFMggYaLtvYpvzw Fb5MTmDP9oE1zhQHxhzOxn6i8V14WOynyVTiZjezrYHcE/CelTxHQfPkZXvA9jzkO40F TZI+EzvGV6FP2f7yHklurxmxVbFWjWEUqFv7TrUd3UMr7oUEU7Xw1ozHe9TWogdXb5m9 5z5m4P/ZiqiuDUXBbXKA4Wgut6ekSwMShYUGxRjthJ9RXJdqBnCUPne+YgvIE73eGRSm vCnQ== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=XJzJuOgH+EVPJ+J9M5qoLzyHTSd+4Lf90/qwwFpqcnU=; b=WglZUrORTaU9j6Fqx9IhMjj75+JQQt3h2BzDUUawRAWNZXFpUJWbsfpIRvRMkHriVE keM+zx5mnE7Qx+hIljWEMzAGAhKjmJUQoil7/vhR1PP6Q9x0LJYqVrEhbfJJEg/+1oko 9pYapkV1ejvgtdTrGnqx8YUvvEJF7GARp4snOVCVlEmeAVYWxDyFVmbSGADWM7E/hfmn FArKPkfL2JnItWKtjO02nEMQLqXRfkFMSIp4Nnf2ynf37f87ElomNV1GRqwehXkL0+EQ 81Qb2BQUVnsTgJPNv1vE93yrYDZS0Ep/iql58459NFOtK8beo90wYWvqJOATCbq68sLb zSog== X-Gm-Message-State: AOAM533ze0rNe5h/Kz2RMePfnfdyCvALnrY0c1xuE3RmOAA+trMvB1lB g3v/ksuOXI0onO573l2B0uqZhVmVrk1++g== X-Received: by 2002:a05:620a:4614:: with SMTP id br20mr14350911qkb.172.1643919037803; Thu, 03 Feb 2022 12:10:37 -0800 (PST) Received: from localhost.localdomain ([151.200.235.219]) by smtp.gmail.com with ESMTPSA id bp37sm14731321qkb.135.2022.02.03.12.10.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Feb 2022 12:10:37 -0800 (PST) From: Scott Theisen To: ffmpeg-devel@ffmpeg.org Date: Thu, 3 Feb 2022 15:09:30 -0500 Message-Id: <20220203200930.30744-3-scott.the.elm@gmail.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220203200930.30744-1-scott.the.elm@gmail.com> References: <20220201223058.31090-1-scott.the.elm@gmail.com> <20220203200930.30744-1-scott.the.elm@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] replace av_get_media_type_string() with av_media_type_get_string() 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: Scott Theisen Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: N8NiXSYGNysF printf %s with a null pointer is undefined behavior. --- doc/examples/demuxing_decoding.c | 10 +++++----- doc/examples/extract_mvs.c | 4 ++-- fftools/cmdutils.c | 7 +++---- fftools/cmdutils.h | 2 -- fftools/ffmpeg.c | 14 +++++++------- fftools/ffmpeg_opt.c | 2 +- fftools/ffplay.c | 4 ++-- fftools/ffprobe.c | 13 +++---------- libavcodec/avcodec.c | 2 +- libavcodec/tests/avcodec.c | 10 ++-------- libavdevice/dshow.c | 4 ++-- libavfilter/avfilter.c | 4 ++-- libavfilter/avfiltergraph.c | 4 ++-- libavfilter/src_movie.c | 6 +++--- libavformat/avienc.c | 2 +- libavformat/flvenc.c | 2 +- libavformat/framehash.c | 2 +- libavformat/mov.c | 2 +- libavformat/mpegenc.c | 2 +- libavformat/mpegts.c | 2 +- libavformat/mxfdec.c | 2 +- libavformat/segment.c | 2 +- libavformat/tee.c | 2 +- libavformat/uncodedframecrcenc.c | 4 +--- 24 files changed, 45 insertions(+), 63 deletions(-) diff --git a/doc/examples/demuxing_decoding.c b/doc/examples/demuxing_decoding.c index 8520d5b660..670f08779d 100644 --- a/doc/examples/demuxing_decoding.c +++ b/doc/examples/demuxing_decoding.c @@ -155,7 +155,7 @@ static int open_codec_context(int *stream_idx, ret = av_find_best_stream(fmt_ctx, type, -1, -1, NULL, 0); if (ret < 0) { fprintf(stderr, "Could not find %s stream in input file '%s'\n", - av_get_media_type_string(type), src_filename); + av_media_type_get_string(type), src_filename); return ret; } else { stream_index = ret; @@ -165,7 +165,7 @@ static int open_codec_context(int *stream_idx, dec = avcodec_find_decoder(st->codecpar->codec_id); if (!dec) { fprintf(stderr, "Failed to find %s codec\n", - av_get_media_type_string(type)); + av_media_type_get_string(type)); return AVERROR(EINVAL); } @@ -173,21 +173,21 @@ static int open_codec_context(int *stream_idx, *dec_ctx = avcodec_alloc_context3(dec); if (!*dec_ctx) { fprintf(stderr, "Failed to allocate the %s codec context\n", - av_get_media_type_string(type)); + av_media_type_get_string(type)); return AVERROR(ENOMEM); } /* Copy codec parameters from input stream to output codec context */ if ((ret = avcodec_parameters_to_context(*dec_ctx, st->codecpar)) < 0) { fprintf(stderr, "Failed to copy %s codec parameters to decoder context\n", - av_get_media_type_string(type)); + av_media_type_get_string(type)); return ret; } /* Init the decoders */ if ((ret = avcodec_open2(*dec_ctx, dec, NULL)) < 0) { fprintf(stderr, "Failed to open %s codec\n", - av_get_media_type_string(type)); + av_media_type_get_string(type)); return ret; } *stream_idx = stream_index; diff --git a/doc/examples/extract_mvs.c b/doc/examples/extract_mvs.c index cc1311da91..2fb5517708 100644 --- a/doc/examples/extract_mvs.c +++ b/doc/examples/extract_mvs.c @@ -85,7 +85,7 @@ static int open_codec_context(AVFormatContext *fmt_ctx, enum AVMediaType type) ret = av_find_best_stream(fmt_ctx, type, -1, -1, &dec, 0); if (ret < 0) { fprintf(stderr, "Could not find %s stream in input file '%s'\n", - av_get_media_type_string(type), src_filename); + av_media_type_get_string(type), src_filename); return ret; } else { int stream_idx = ret; @@ -109,7 +109,7 @@ static int open_codec_context(AVFormatContext *fmt_ctx, enum AVMediaType type) av_dict_free(&opts); if (ret < 0) { fprintf(stderr, "Failed to open %s codec\n", - av_get_media_type_string(type)); + av_media_type_get_string(type)); return ret; } diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c index 4b50e15eef..4504d2711c 100644 --- a/fftools/cmdutils.c +++ b/fftools/cmdutils.c @@ -1961,7 +1961,7 @@ static void show_help_filter(const char *name) count = avfilter_filter_pad_count(f, 0); for (i = 0; i < count; i++) { printf(" #%d: %s (%s)\n", i, avfilter_pad_get_name(f->inputs, i), - media_type_string(avfilter_pad_get_type(f->inputs, i))); + av_media_type_get_string(avfilter_pad_get_type(f->inputs, i))); } if (f->flags & AVFILTER_FLAG_DYNAMIC_INPUTS) printf(" dynamic (depending on the options)\n"); @@ -1972,7 +1972,7 @@ static void show_help_filter(const char *name) count = avfilter_filter_pad_count(f, 1); for (i = 0; i < count; i++) { printf(" #%d: %s (%s)\n", i, avfilter_pad_get_name(f->outputs, i), - media_type_string(avfilter_pad_get_type(f->outputs, i))); + av_media_type_get_string(avfilter_pad_get_type(f->outputs, i))); } if (f->flags & AVFILTER_FLAG_DYNAMIC_OUTPUTS) printf(" dynamic (depending on the options)\n"); @@ -2253,10 +2253,9 @@ static void print_device_list(const AVDeviceInfoList *device_list) device->device_name, device->device_description); if (device->nb_media_types > 0) { for (int j = 0; j < device->nb_media_types; ++j) { - const char* media_type = av_get_media_type_string(device->media_types[j]); if (j > 0) printf(", "); - printf("%s", media_type ? media_type : "unknown"); + printf("%s", av_media_type_get_string(device->media_types[j])); } } else { printf("none"); diff --git a/fftools/cmdutils.h b/fftools/cmdutils.h index 50eed9b13a..a3e06b7b29 100644 --- a/fftools/cmdutils.h +++ b/fftools/cmdutils.h @@ -642,8 +642,6 @@ void *grow_array(void *array, int elem_size, int *size, int new_size); */ void *allocate_array_elem(void *array, size_t elem_size, int *nb_elems); -#define media_type_string av_get_media_type_string - #define GROW_ARRAY(array, nb_elems)\ array = grow_array(array, sizeof(*array), &nb_elems, nb_elems + 1) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 5d134b025f..149a28d685 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -853,7 +853,7 @@ static void write_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost, int u if (debug_ts) { av_log(NULL, AV_LOG_INFO, "muxer <- type:%s " "pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s size:%d\n", - av_get_media_type_string(ost->enc_ctx->codec_type), + av_media_type_get_string(ost->enc_ctx->codec_type), av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, &ost->st->time_base), av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, &ost->st->time_base), pkt->size @@ -1611,7 +1611,7 @@ static void print_final_stats(int64_t total_size) total_packets += ist->nb_packets; av_log(NULL, AV_LOG_VERBOSE, " Input stream #%d:%d (%s): ", - i, j, media_type_string(type)); + i, j, av_media_type_get_string(type)); av_log(NULL, AV_LOG_VERBOSE, "%"PRIu64" packets read (%"PRIu64" bytes); ", ist->nb_packets, ist->data_size); @@ -1645,7 +1645,7 @@ static void print_final_stats(int64_t total_size) total_packets += ost->packets_written; av_log(NULL, AV_LOG_VERBOSE, " Output stream #%d:%d (%s): ", - i, j, media_type_string(type)); + i, j, av_media_type_get_string(type)); if (ost->encoding_needed) { av_log(NULL, AV_LOG_VERBOSE, "%"PRIu64" frames encoded", ost->frames_encoded); @@ -3581,7 +3581,7 @@ static void report_new_stream(int input_index, AVPacket *pkt) return; av_log(file->ctx, AV_LOG_WARNING, "New %s stream %d:%d at pos:%"PRId64" and DTS:%ss\n", - av_get_media_type_string(st->codecpar->codec_type), + av_media_type_get_string(st->codecpar->codec_type), input_index, pkt->stream_index, pkt->pos, av_ts2timestr(pkt->dts, &st->time_base)); file->nb_streams_warn = pkt->stream_index + 1; @@ -4314,7 +4314,7 @@ static int process_input(int file_index) if (debug_ts) { av_log(NULL, AV_LOG_INFO, "demuxer -> ist_index:%d type:%s " "next_dts:%s next_dts_time:%s next_pts:%s next_pts_time:%s pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s off:%s off_time:%s\n", - ifile->ist_index + pkt->stream_index, av_get_media_type_string(ist->dec_ctx->codec_type), + ifile->ist_index + pkt->stream_index, av_media_type_get_string(ist->dec_ctx->codec_type), av_ts2str(ist->next_dts), av_ts2timestr(ist->next_dts, &AV_TIME_BASE_Q), av_ts2str(ist->next_pts), av_ts2timestr(ist->next_pts, &AV_TIME_BASE_Q), av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, &ist->st->time_base), @@ -4441,7 +4441,7 @@ static int process_input(int file_index) "timestamp discontinuity for stream #%d:%d " "(id=%d, type=%s): %"PRId64", new offset= %"PRId64"\n", ist->file_index, ist->st->index, ist->st->id, - av_get_media_type_string(ist->dec_ctx->codec_type), + av_media_type_get_string(ist->dec_ctx->codec_type), delta, ifile->ts_offset); pkt->dts -= av_rescale_q(delta, AV_TIME_BASE_Q, ist->st->time_base); if (pkt->pts != AV_NOPTS_VALUE) @@ -4470,7 +4470,7 @@ static int process_input(int file_index) if (debug_ts) { av_log(NULL, AV_LOG_INFO, "demuxer+ffmpeg -> ist_index:%d type:%s pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s off:%s off_time:%s\n", - ifile->ist_index + pkt->stream_index, av_get_media_type_string(ist->dec_ctx->codec_type), + ifile->ist_index + pkt->stream_index, av_media_type_get_string(ist->dec_ctx->codec_type), av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, &ist->st->time_base), av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, &ist->st->time_base), av_ts2str(input_files[ist->file_index]->ts_offset), diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c index 9c820ab73f..78e332f61e 100644 --- a/fftools/ffmpeg_opt.c +++ b/fftools/ffmpeg_opt.c @@ -1696,7 +1696,7 @@ static void check_streamcopy_filters(OptionsContext *o, AVFormatContext *oc, "Filtering and streamcopy cannot be used together.\n", ost->filters ? "Filtergraph" : "Filtergraph script", ost->filters ? ost->filters : ost->filters_script, - av_get_media_type_string(type), ost->file_index, ost->index); + av_media_type_get_string(type), ost->file_index, ost->index); exit_program(1); } } diff --git a/fftools/ffplay.c b/fftools/ffplay.c index e7b20be76b..d6c660dae4 100644 --- a/fftools/ffplay.c +++ b/fftools/ffplay.c @@ -2872,7 +2872,7 @@ static int read_thread(void *arg) } for (i = 0; i < AVMEDIA_TYPE_NB; i++) { if (wanted_stream_spec[i] && st_index[i] == -1) { - av_log(NULL, AV_LOG_ERROR, "Stream specifier %s does not match any %s stream\n", wanted_stream_spec[i], av_get_media_type_string(i)); + av_log(NULL, AV_LOG_ERROR, "Stream specifier %s does not match any %s stream\n", wanted_stream_spec[i], av_media_type_get_string(i)); st_index[i] = INT_MAX; } } @@ -3203,7 +3203,7 @@ static void stream_cycle_channel(VideoState *is, int codec_type) if (p && stream_index != -1) stream_index = p->stream_index[stream_index]; av_log(NULL, AV_LOG_INFO, "Switch %s stream from #%d to #%d\n", - av_get_media_type_string(codec_type), + av_media_type_get_string(codec_type), old_index, stream_index); diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index 20582ca7ac..69cde7a92d 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -2327,15 +2327,12 @@ static void show_packet(WriterContext *w, InputFile *ifile, AVPacket *pkt, int p char val_str[128]; AVStream *st = ifile->streams[pkt->stream_index].st; AVBPrint pbuf; - const char *s; av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED); writer_print_section_header(w, SECTION_ID_PACKET); - s = av_get_media_type_string(st->codecpar->codec_type); - if (s) print_str ("codec_type", s); - else print_str_opt("codec_type", "unknown"); + print_str("codec_type", av_media_type_get_string(st->codecpar->codec_type)); print_int("stream_index", pkt->stream_index); print_ts ("pts", pkt->pts); print_time("pts_time", pkt->pts, &st->time_base); @@ -2410,9 +2407,7 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream, writer_print_section_header(w, SECTION_ID_FRAME); - s = av_get_media_type_string(stream->codecpar->codec_type); - if (s) print_str ("media_type", s); - else print_str_opt("media_type", "unknown"); + print_str("media_type", av_media_type_get_string(stream->codecpar->codec_type)); print_int("stream_index", stream->index); print_int("key_frame", frame->key_frame); print_ts ("pts", frame->pts); @@ -2809,9 +2804,7 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id print_str_opt("profile", "unknown"); } - s = av_get_media_type_string(par->codec_type); - if (s) print_str ("codec_type", s); - else print_str_opt("codec_type", "unknown"); + print_str("codec_type", av_media_type_get_string(par->codec_type)); /* print AVI/FourCC tag */ print_str("codec_tag_string", av_fourcc2str(par->codec_tag)); diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index c00a9b2af8..04a9e588e3 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -531,7 +531,7 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) if (!buf || buf_size <= 0) return; av_bprint_init_for_buffer(&bprint, buf, buf_size); - codec_type = av_get_media_type_string(enc->codec_type); + codec_type = av_media_type_get_string(enc->codec_type); codec_name = avcodec_get_name(enc->codec_id); profile = avcodec_profile_name(enc->codec_id, enc->profile); diff --git a/libavcodec/tests/avcodec.c b/libavcodec/tests/avcodec.c index 5d0ff9432c..34ab01bc2a 100644 --- a/libavcodec/tests/avcodec.c +++ b/libavcodec/tests/avcodec.c @@ -21,12 +21,6 @@ #include "libavcodec/codec_desc.h" #include "libavcodec/internal.h" -static const char *get_type_string(enum AVMediaType type) -{ - const char *ret = av_get_media_type_string(type); - return ret ? ret : "unknown"; -} - #define AV_LOG(...) av_log(NULL, AV_LOG_FATAL, __VA_ARGS__) #define ERR_INTERNAL(msg, ...) \ do { \ @@ -74,7 +68,7 @@ int main(void){ codec->type != AVMEDIA_TYPE_AUDIO && codec->type != AVMEDIA_TYPE_SUBTITLE) ERR_EXT("Codec %s has unsupported type %s\n", - get_type_string(codec->type)); + av_media_type_get_string(codec->type)); if (codec->type != AVMEDIA_TYPE_AUDIO) { if (codec->channel_layouts || codec->sample_fmts || codec->supported_samplerates) @@ -158,7 +152,7 @@ int main(void){ } else if (desc->type != codec->type) ERR_EXT("The type of AVCodec %s and its AVCodecDescriptor differ: " "%s vs %s\n", - get_type_string(codec->type), get_type_string(desc->type)); + av_media_type_get_string(codec->type), av_media_type_get_string(desc->type)); } return ret; } diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c index 3a16f3720f..6ecb9c848b 100644 --- a/libavdevice/dshow.c +++ b/libavdevice/dshow.c @@ -577,10 +577,10 @@ dshow_cycle_devices(AVFormatContext *avctx, ICreateDevEnum *devenum, else { av_log(avctx, AV_LOG_INFO, "\"%s\"", friendly_name); if (nb_media_types > 0) { - const char* media_type = av_get_media_type_string(media_types[0]); + const char* media_type = av_media_type_get_string(media_types[0]); av_log(avctx, AV_LOG_INFO, " (%s", media_type ? media_type : "unknown"); for (int i = 1; i < nb_media_types; ++i) { - media_type = av_get_media_type_string(media_types[i]); + media_type = av_media_type_get_string(media_types[i]); av_log(avctx, AV_LOG_INFO, ", %s", media_type ? media_type : "unknown"); } av_log(avctx, AV_LOG_INFO, ")"); diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 7362bcdab5..a991a6272e 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -174,8 +174,8 @@ int avfilter_link(AVFilterContext *src, unsigned srcpad, if (src->output_pads[srcpad].type != dst->input_pads[dstpad].type) { av_log(src, AV_LOG_ERROR, "Media type mismatch between the '%s' filter output pad %d (%s) and the '%s' filter input pad %d (%s)\n", - src->name, srcpad, (char *)av_x_if_null(av_get_media_type_string(src->output_pads[srcpad].type), "?"), - dst->name, dstpad, (char *)av_x_if_null(av_get_media_type_string(dst-> input_pads[dstpad].type), "?")); + src->name, srcpad, av_media_type_get_string(src->output_pads[srcpad].type), + dst->name, dstpad, av_media_type_get_string(dst-> input_pads[dstpad].type)); return AVERROR(EINVAL); } diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index b8b432e98b..fa971734d1 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -220,7 +220,7 @@ static int graph_check_validity(AVFilterGraph *graph, void *log_ctx) pad = &filt->input_pads[j]; av_log(log_ctx, AV_LOG_ERROR, "Input pad \"%s\" with type %s of the filter instance \"%s\" of %s not connected to any source\n", - pad->name, av_get_media_type_string(pad->type), filt->name, filt->filter->name); + pad->name, av_media_type_get_string(pad->type), filt->name, filt->filter->name); return AVERROR(EINVAL); } } @@ -230,7 +230,7 @@ static int graph_check_validity(AVFilterGraph *graph, void *log_ctx) pad = &filt->output_pads[j]; av_log(log_ctx, AV_LOG_ERROR, "Output pad \"%s\" with type %s of the filter instance \"%s\" of %s not connected to any destination\n", - pad->name, av_get_media_type_string(pad->type), filt->name, filt->filter->name); + pad->name, av_media_type_get_string(pad->type), filt->name, filt->filter->name); return AVERROR(EINVAL); } } diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c index b89a680883..b09f5698fb 100644 --- a/libavfilter/src_movie.c +++ b/libavfilter/src_movie.c @@ -113,7 +113,7 @@ static AVStream *find_stream(void *log, AVFormatContext *avf, const char *spec) ret = av_find_best_stream(avf, type, stream_id, -1, NULL, 0); if (ret < 0) { av_log(log, AV_LOG_ERROR, "No %s stream with index '%d' found\n", - av_get_media_type_string(type), stream_id); + av_media_type_get_string(type), stream_id); return NULL; } return avf->streams[ret]; @@ -148,7 +148,7 @@ static AVStream *find_stream(void *log, AVFormatContext *avf, const char *spec) found->codecpar->codec_type != AVMEDIA_TYPE_AUDIO) { av_log(log, AV_LOG_ERROR, "Stream specifier \"%s\" matched a %s stream," "currently unsupported by libavfilter\n", spec, - av_get_media_type_string(found->codecpar->codec_type)); + av_media_type_get_string(found->codecpar->codec_type)); return NULL; } return found; @@ -426,7 +426,7 @@ static char *describe_frame_to_str(char *dst, size_t dst_size, frame->nb_samples); break; default: - snprintf(dst, dst_size, "%s BUG", av_get_media_type_string(frame_type)); + snprintf(dst, dst_size, "%s BUG", av_media_type_get_string(frame_type)); break; } return dst; diff --git a/libavformat/avienc.c b/libavformat/avienc.c index be2493ce55..ec72a74eec 100644 --- a/libavformat/avienc.c +++ b/libavformat/avienc.c @@ -473,7 +473,7 @@ static int avi_write_header(AVFormatContext *s) default: av_log(s, AV_LOG_ERROR, "Invalid or not supported codec type '%s' found in the input\n", - (char *)av_x_if_null(av_get_media_type_string(par->codec_type), "?")); + av_media_type_get_string(par->codec_type)); return AVERROR(EINVAL); } ff_end_tag(pb, strf); diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c index 66c530a2ff..1267ed00a8 100644 --- a/libavformat/flvenc.c +++ b/libavformat/flvenc.c @@ -670,7 +670,7 @@ static int flv_init(struct AVFormatContext *s) break; default: av_log(s, AV_LOG_ERROR, "Codec type '%s' for stream %d is not compatible with FLV\n", - av_get_media_type_string(par->codec_type), i); + av_media_type_get_string(par->codec_type), i); return AVERROR(EINVAL); } avpriv_set_pts_info(s->streams[i], 32, 1, 1000); /* 32 bit pts in ms */ diff --git a/libavformat/framehash.c b/libavformat/framehash.c index 04c40825b9..b9f765f097 100644 --- a/libavformat/framehash.c +++ b/libavformat/framehash.c @@ -32,7 +32,7 @@ int ff_framehash_write_header(AVFormatContext *s) AVCodecParameters *avctx = st->codecpar; char buf[256] = { 0 }; avio_printf(s->pb, "#tb %d: %d/%d\n", i, st->time_base.num, st->time_base.den); - avio_printf(s->pb, "#media_type %d: %s\n", i, av_get_media_type_string(avctx->codec_type)); + avio_printf(s->pb, "#media_type %d: %s\n", i, av_media_type_get_string(avctx->codec_type)); avio_printf(s->pb, "#codec_id %d: %s\n", i, avcodec_get_name(avctx->codec_id)); switch (avctx->codec_type) { case AVMEDIA_TYPE_AUDIO: diff --git a/libavformat/mov.c b/libavformat/mov.c index a80fcc1606..b2041ec160 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -7141,7 +7141,7 @@ static int mov_read_kind(MOVContext *c, AVIOContext *pb, MOVAtom atom) av_log(ctx, AV_LOG_TRACE, "%s stream %d KindBox(scheme: %s, value: %s)\n", - av_get_media_type_string(st->codecpar->codec_type), + av_media_type_get_string(st->codecpar->codec_type), st->index, scheme_buf.str, value_buf.str); diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c index b1d8bf9c38..74e22988f0 100644 --- a/libavformat/mpegenc.c +++ b/libavformat/mpegenc.c @@ -456,7 +456,7 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx) break; default: av_log(ctx, AV_LOG_ERROR, "Invalid media type %s for output stream #%d\n", - av_get_media_type_string(st->codecpar->codec_type), i); + av_media_type_get_string(st->codecpar->codec_type), i); return AVERROR(EINVAL); } stream->fifo = av_fifo_alloc(16); diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index da15223b8a..2e2fec83f7 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -2253,7 +2253,7 @@ static AVStream *find_matching_stream(MpegTSContext *ts, int pid, unsigned int p if (found) { av_log(ts->stream, AV_LOG_VERBOSE, "re-using existing %s stream %d (pid=0x%x) for new pid=0x%x\n", - av_get_media_type_string(found->codecpar->codec_type), + av_media_type_get_string(found->codecpar->codec_type), found->index, found->id, pid); } diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c index b85c10bf19..5763c5db8b 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -2404,7 +2404,7 @@ static int mxf_add_metadata_stream(MXFContext *mxf, MXFTrack *track) av_dict_set(&st->metadata, "track_name", track->name, 0); codec_ul = mxf_get_codec_ul(ff_mxf_data_definition_uls, &track->sequence->data_definition_ul); - av_dict_set(&st->metadata, "data_type", av_get_media_type_string(codec_ul->id), 0); + av_dict_set(&st->metadata, "data_type", av_media_type_get_string(codec_ul->id), 0); return 0; } diff --git a/libavformat/segment.c b/libavformat/segment.c index e9b0aa4fa8..2fac2647a1 100644 --- a/libavformat/segment.c +++ b/libavformat/segment.c @@ -737,7 +737,7 @@ static int seg_init(AVFormatContext *s) return ret; av_log(s, AV_LOG_VERBOSE, "Selected stream id:%d type:%s\n", seg->reference_stream_index, - av_get_media_type_string(s->streams[seg->reference_stream_index]->codecpar->codec_type)); + av_media_type_get_string(s->streams[seg->reference_stream_index]->codecpar->codec_type)); seg->oformat = av_guess_format(seg->format, s->url, NULL); diff --git a/libavformat/tee.c b/libavformat/tee.c index b3bcd70b9f..97db7c789b 100644 --- a/libavformat/tee.c +++ b/libavformat/tee.c @@ -419,7 +419,7 @@ static void log_slave(TeeSlave *slave, void *log_ctx, int log_level) av_log(log_ctx, log_level, " stream:%d codec:%s type:%s", i, avcodec_get_name(st->codecpar->codec_id), - av_get_media_type_string(st->codecpar->codec_type)); + av_media_type_get_string(st->codecpar->codec_type)); bsf_name = bsf->filter->priv_class ? bsf->filter->priv_class->item_name(bsf) : bsf->filter->name; diff --git a/libavformat/uncodedframecrcenc.c b/libavformat/uncodedframecrcenc.c index e30fe4ddb9..04e8818711 100644 --- a/libavformat/uncodedframecrcenc.c +++ b/libavformat/uncodedframecrcenc.c @@ -130,7 +130,6 @@ static int write_frame(struct AVFormatContext *s, int stream_index, AVBPrint bp; int ret = 0; enum AVMediaType type; - const char *type_name; if ((flags & AV_WRITE_UNCODED_FRAME_QUERY)) return 0; @@ -139,8 +138,7 @@ static int write_frame(struct AVFormatContext *s, int stream_index, av_bprintf(&bp, "%d, %10"PRId64"", stream_index, (*frame)->pts); type = s->streams[stream_index]->codecpar->codec_type; - type_name = av_get_media_type_string(type); - av_bprintf(&bp, ", %s", type_name ? type_name : "unknown"); + av_bprintf(&bp, ", %s", av_media_type_get_string(type)); switch (type) { case AVMEDIA_TYPE_VIDEO: video_frame_cksum(&bp, *frame);