From patchwork Wed Nov 28 21:48:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carl Eugen Hoyos X-Patchwork-Id: 11213 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 D003144DBDF for ; Wed, 28 Nov 2018 23:48:20 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 76D0868A879; Wed, 28 Nov 2018 23:48:21 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-it1-f195.google.com (mail-it1-f195.google.com [209.85.166.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A26F268A876 for ; Wed, 28 Nov 2018 23:48:14 +0200 (EET) Received: by mail-it1-f195.google.com with SMTP id m8so5738500itk.0 for ; Wed, 28 Nov 2018 13:48:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=G6HuB+03APgaINwy5BNMSdUNK0ULIycDyfQGzlXqZFE=; b=EDTYBTTyCxXRDiQyiatza+ZdyWvE9uCXDPmvogMd30UGsI+1ZazaSQhJPmslxBw8g3 R5CqqRKf0ecoetM3oPvhntd6bKHPdvYv4CElBikWSzSOeCa8H3keNmutMceTbHAzFq2X QBdJ1nz7U2JadqGpVbJB8aSiMpPWFKEM6a+AWGUKjViCT2xMzhA6A9SHd1pV9LAA1kCk IJHodFV402m0bagfhMCA1htaxfM0cPUY1O8itebk1QlkS3LR1BHP8yHQ2pWy0g0gVIVQ etAsS2vysbQeJ/9jDnCOnKp+BYLpc+C7CXeMCTE1mj6h/b3Q+5V19tEOoXEBCGjAJNqs vp/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=G6HuB+03APgaINwy5BNMSdUNK0ULIycDyfQGzlXqZFE=; b=Z9OwGFV+9AYb8v3yonJcJ9jvSleNIDdWWsSxiBou1nnwIJAJ8tTwgzefzz3cVXCIwX i6JAZ4ryJ99NYgDEVbz5eR422bFkX3d6kg9SKkMe9fecrObJ2TGLVZWnQVP994jV+lEl MH0Go3CYkoUG7a4aAI6E+1SOUouXg404ZfR6ev1T+CkX67MMST7+UtfL78HGymH8UV39 BjkMSdy1z6NJwKpxWnKvUUu4+GV4lTJDsBUyJ4ehhRJZXRDBfStauvxVNuDYgO6vMOFD jqA40fbcI28x2WAICTeCxzunQpmbsbleVC78WpZ9E3I97DH7ERwPbO28GzeBhEQ2RXdI UGaw== X-Gm-Message-State: AA+aEWa9hccWM0O9vxQaO40Tk1rIUC57WXF8QR8cQTRGAIZVhP+tD75R Oy/HTm+AlmaX4FQl7s4YuQ69dm/hmsfQc3AUm0t7Fw== X-Google-Smtp-Source: AFSGD/XOBl8WlSSks4Oi6/LW5HKFwz+DEI4cRhCDvRnDkKky1Pc7inWdEiYK2Mw9vyLaHv9+7A75IRElFJdddxwlLL4= X-Received: by 2002:a02:8a1c:: with SMTP id j28mr34724062jak.49.1543441698148; Wed, 28 Nov 2018 13:48:18 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a02:5f11:0:0:0:0:0 with HTTP; Wed, 28 Nov 2018 13:48:17 -0800 (PST) From: Carl Eugen Hoyos Date: Wed, 28 Nov 2018 22:48:17 +0100 Message-ID: To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH]lavc/mpeg12dec: Read Closed Captions from second field 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Hi! Attached patch fixes reading Closed Captions from a field-encoded mpeg2video sample from the libav-user mailing list. Please review, Carl Eugen From 045a485ffedb3344560070a58a2def659be81700 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Wed, 28 Nov 2018 22:45:00 +0100 Subject: [PATCH] lavc/mpeg12dec: Read Closed Captions from second field. --- libavcodec/mpeg12dec.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 83e5378..c0a54a8 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -1664,6 +1664,17 @@ static int mpeg_field_start(MpegEncContext *s, const uint8_t *buf, int buf_size) return AVERROR_INVALIDDATA; } + if (s1->a53_caption) { + AVFrameSideData *sd; + av_frame_remove_side_data(s->current_picture_ptr->f, AV_FRAME_DATA_A53_CC); + sd = av_frame_new_side_data( + s->current_picture_ptr->f, AV_FRAME_DATA_A53_CC, + s1->a53_caption_size); + if (sd) + memcpy(sd->data, s1->a53_caption, s1->a53_caption_size); + av_freep(&s1->a53_caption); + } + if (s->avctx->hwaccel && (s->avctx->slice_flags & SLICE_FLAG_ALLOW_FIELD)) { if ((ret = s->avctx->hwaccel->end_frame(s->avctx)) < 0) { -- 1.7.10.4