From patchwork Tue May 3 16:13:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Traian Coza X-Patchwork-Id: 35570 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a885:b0:7f:4be2:bd17 with SMTP id ca5csp496562pzb; Tue, 3 May 2022 09:14:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzzeoFklye4fv5cXJUY5Q+eUTKLbUr/+EPjq9idXwDe/TVYvv4LfS6+ZqIaa6eO8qPRvnuF X-Received: by 2002:a17:906:301a:b0:6f3:fdd3:4d1c with SMTP id 26-20020a170906301a00b006f3fdd34d1cmr16054716ejz.235.1651594485549; Tue, 03 May 2022 09:14:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651594485; cv=none; d=google.com; s=arc-20160816; b=bw6gvRkl3PuNIDMxxxYnGjADKqU2Igvn2ktOZGMbC8o0jMTPEE7zIN5x/UiSPzQ6Lh 8nE4MvPYUcwVSnd0Hn2si9GhtTo+gAYsCd3Gms897NfnUO+2hulguZDVzJoLhFX/i5TO 4djikRNte++Zsh5hO7BWi4T1ueSa7t0Fm+HSPrSqpSc+ec3cmeFG7hqQBVF2ee9xi9ox tpW0tVXuseu1Qn8ri09LbvFC8pyKvgLqdtSR3hkBo6bdYwQjxX9nEG4lhM2n5j9krO6j 8vMEHyZEIvRd55j1XlY09Va69Y4RZJlF+ocvtqmWIUtNcsoXsHeAyd98FodCsNxvpuxT Ia3A== 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=mY/Bo120L4P36lSn1r58lGhvEwadiuqe5go4S0gN7Lc=; b=hKT0Cb+iwauq9hviCUhDD1h7uGCowOb1c2JW5b/VGWBmuSzUgvheZ/ur4eY8+t/G2B DpFT5q8QSaabXxwUn9bxONpETakPG6kW9n7UE8/Qf9MdmMgMuqtnGot6fMlAmlKIdLKS RSvMFuBKff193wAiY/Rz3f+fG8H7ykDpBcNCcc8li3H8ZvsuH1hj5DNWXwpQuFsbcAge jTfieRltIPOsNB0DZKDb8c48StT5+NmGEoWZv/AfUU8XDmbh++2oaJgyB64/ZF+19f4d hJ2UKF6b7nQ8aaWhz+x11V7tJDHCZFBqOFxtpx/KjzIYNZLjIrwsie/UfFnE/hP5mkx7 ftAA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=K34gBIFk; 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 f11-20020a05640214cb00b00425d3d8afe2si13962536edx.106.2022.05.03.09.14.45; Tue, 03 May 2022 09:14:45 -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=20210112 header.b=K34gBIFk; 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 4D94368B3B2; Tue, 3 May 2022 19:14:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 635E568B3A1 for ; Tue, 3 May 2022 19:13:59 +0300 (EEST) Received: by mail-qt1-f173.google.com with SMTP id p4so13310905qtq.12 for ; Tue, 03 May 2022 09:13:59 -0700 (PDT) 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=EJy4EkCHTPKT+Md14Uwd3jqv/38w377N1wHEbw0EbuA=; b=K34gBIFkfsSAz2sJxvumoM6rh22agNfdtBypxoFiIcpYWqgbKl0fQzL7GwOJnqneo0 HQX/qpIHxV7GhSTU4yVLnkF67h4ehpZr/LDlPGdkDpPfeGfRvw4bBQBkpRN7IHY9ej73 KR2nXsAdW4o5zdKc1sGnKYUH7BUIL9IG3fYtnwNUG5Rcsq5AiBQnBRk0oggM9C2efBvS Au0F7ARW0HcLe+lwTXUaLms4WQMPBz7BKTTG7sAEwR0MeYAlaD5FruO+8R/kv6KkrIEX ef6krSfxEUdImONYsRNFKlimlD0Wd6b72zgCSxOblq8dso8SUrjbM5OrNFrIRhhXMwdl qsuQ== 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=EJy4EkCHTPKT+Md14Uwd3jqv/38w377N1wHEbw0EbuA=; b=jlYpgfYy6Xon7ui/nLPLsSZtwoJ2/AIxfTir2qLuLlMIFJ1e9iUKQ3OtL3nFSSPXgf kuItOUBVZMhliv6Z4gqeO8g/zGNm2blm9za5jcLaIIrQJ3JRUxcj9XURnagyTrVTiR+o 8ATVKbSs6hIIlNo/kPiD3RGp26EjdkK1zxQb/hW8cuOIJetPRevNXQQBgTPE/nPjljOx ggLwc8NJpnxqn39Vdaye13q3nXooFQOZ3vk17sb5Z4g9BpIFp2ibmJr0kAyia8WWPsQC 4HUg/1Ofi3GOFNcNcpx03+gMY5N0ayHEZymPRmDv8yzapW6wzWHKk2TXYY47S0fo3xrx XJZg== X-Gm-Message-State: AOAM530osAU0CAAwtySZ4DOEHlQzvqYZn0cjL7Hvzql7kNoB+wvBd2Fm 7ZbNG+0E7GaIIr0qUws76fUuo2Gx/7v+ X-Received: by 2002:a05:622a:14a:b0:2f3:9c08:7971 with SMTP id v10-20020a05622a014a00b002f39c087971mr14170242qtw.117.1651594438096; Tue, 03 May 2022 09:13:58 -0700 (PDT) Received: from thinkpad.. ([66.220.203.136]) by smtp.gmail.com with ESMTPSA id fp35-20020a05622a50a300b002f39b99f67asm5812731qtb.20.2022.05.03.09.13.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 May 2022 09:13:57 -0700 (PDT) From: Traian Coza To: ffmpeg-devel@ffmpeg.org Date: Tue, 3 May 2022 12:13:26 -0400 Message-Id: <20220503161328.842587-11-traian.coza@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220503161328.842587-1-traian.coza@gmail.com> References: <20220503161328.842587-1-traian.coza@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 10/12] Rearranged files, all tests are passing! 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: Traian Coza Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: sfvnsNXgmGyR --- fftools/Makefile | 2 ++ fftools/ffmpeg.c | 6 ++++-- fftools/text_to_bitmap.c | 14 +++----------- fftools/text_to_bitmap.h | 14 ++++---------- libavcodec/Makefile | 1 - libavcodec/avcodec.c | 9 --------- 6 files changed, 13 insertions(+), 33 deletions(-) diff --git a/fftools/Makefile b/fftools/Makefile index 81ad6c4f4f..f9334a5622 100644 --- a/fftools/Makefile +++ b/fftools/Makefile @@ -15,6 +15,8 @@ OBJS-ffmpeg += \ fftools/ffmpeg_mux.o \ fftools/ffmpeg_opt.o \ +OBJS-ffmpeg-$(CONFIG_LIBASS) += fftools/text_to_bitmap.o + define DOFFTOOL OBJS-$(1) += fftools/cmdutils.o fftools/opt_common.o fftools/$(1).o $(OBJS-$(1)-yes) $(1)$(PROGSSUF)_g$(EXESUF): $$(OBJS-$(1)) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index ae622492ee..251a3ce427 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -72,7 +72,7 @@ # include "libavfilter/buffersink.h" #if CONFIG_LIBASS -#include "libavcodec/text_to_bitmap.h" +#include "fftools/text_to_bitmap.h" #endif #if HAVE_SYS_RESOURCE_H @@ -3239,7 +3239,7 @@ static int init_output_stream(OutputStream *ost, AVFrame *frame, return AVERROR_INVALIDDATA; } if (input_props == AV_CODEC_PROP_TEXT_SUB && output_props == AV_CODEC_PROP_BITMAP_SUB) - init_ass_context(input_streams, output_streams, nb_input_streams, nb_output_streams, ost->source_index, ost->index); + init_ass_context(ist, ost); #else if (input_props && output_props && input_props != output_props) { snprintf(error, error_len, @@ -4514,6 +4514,8 @@ static int transcode(void) ist = input_streams[i]; if (ist->decoding_needed) { avcodec_close(ist->dec_ctx); + if (ist->dec_ctx->ass_context != NULL) // This really has to be done here, sorry + free_ass_context(ist->dec_ctx->ass_context); if (ist->hwaccel_uninit) ist->hwaccel_uninit(ist->dec_ctx); } diff --git a/fftools/text_to_bitmap.c b/fftools/text_to_bitmap.c index 52d161d7b1..b4a0157174 100644 --- a/fftools/text_to_bitmap.c +++ b/fftools/text_to_bitmap.c @@ -27,8 +27,8 @@ #include "text_to_bitmap.h" #include "fftools/ffmpeg.h" -#include "avcodec.h" -#include "ass_split.h" +#include "../libavcodec/avcodec.h" +#include "../libavcodec/ass_split.h" /** * Holds the objects used by the rendering function so they don't have to be reinitialized every time @@ -51,16 +51,8 @@ struct ASS_Context { * @param ist_i index of input stream for transcoding * @param ost_i index of output stream for transcoding */ -void init_ass_context( - InputStream **input_streams, - OutputStream **output_streams, - int nb_input_streams, - int nb_output_streams, - int ist_i, - int ost_i) +void init_ass_context(InputStream *ist, OutputStream *ost) { - InputStream *ist = input_streams[ist_i]; - OutputStream *ost = output_streams[ost_i]; if (ist->dec_ctx->ass_context) return; ASS_Context *context = (ASS_Context *)malloc(sizeof(ASS_Context)); diff --git a/fftools/text_to_bitmap.h b/fftools/text_to_bitmap.h index 29037150c2..a9b48c6cf3 100644 --- a/fftools/text_to_bitmap.h +++ b/fftools/text_to_bitmap.h @@ -21,8 +21,8 @@ * text_to_bitmap header file */ -#ifndef AVCODEC_TEXT_TO_BITMAP_H -#define AVCODEC_TEXT_TO_BITMAP_H +#ifndef FFTOOLS_TEXT_TO_BITMAP_H +#define FFTOOLS_TEXT_TO_BITMAP_H #include #include "fftools/ffmpeg.h" @@ -30,14 +30,8 @@ struct ASS_Context; typedef struct ASS_Context ASS_Context; -void init_ass_context( - InputStream **input_streams, - OutputStream **output_streams, - int nb_input_streams, - int nb_output_streams, - int ist_i, - int ost_i); +void init_ass_context(InputStream *ist, OutputStream *ost); void render_avsub_ass(ASS_Context *, AVSubtitle *); void free_ass_context(ASS_Context *context); -#endif //AVCODEC_TEXT_TO_BITMAP_H +#endif //FFTOOLS_TEXT_TO_BITMAP_H diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 6d28513129..cfaa6f196a 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -151,7 +151,6 @@ OBJS-$(CONFIG_RV34DSP) += rv34dsp.o OBJS-$(CONFIG_SINEWIN) += sinewin.o OBJS-$(CONFIG_SNAPPY) += snappy.o OBJS-$(CONFIG_STARTCODE) += startcode.o -OBJS-$(CONFIG_LIBASS) += text_to_bitmap.o OBJS-$(CONFIG_TEXTUREDSP) += texturedsp.o OBJS-$(CONFIG_TEXTUREDSPENC) += texturedspenc.o OBJS-$(CONFIG_TPELDSP) += tpeldsp.o diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index 1e308f39c2..d11f035481 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -42,10 +42,6 @@ #include "thread.h" #include "version.h" -#if CONFIG_LIBASS -#include "libavcodec/text_to_bitmap.h" -#endif - #include "libavutil/ffversion.h" const char av_codec_ffversion[] = "FFmpeg version " FFMPEG_VERSION; @@ -538,11 +534,6 @@ av_cold int avcodec_close(AVCodecContext *avctx) } else if (av_codec_is_decoder(avctx->codec)) av_freep(&avctx->subtitle_header); -#if CONFIG_LIBASS - if (av_codec_is_decoder(avctx->codec) && avctx->ass_context != NULL) - free_ass_context(avctx->ass_context); -#endif - avctx->codec = NULL; avctx->active_thread_type = 0;