Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Nov 2016 10:48:17 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r425603 - in head/multimedia/py-ffmpeg: . files
Message-ID:  <201611071048.uA7AmHGw083006@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Mon Nov  7 10:48:17 2016
New Revision: 425603
URL: https://svnweb.freebsd.org/changeset/ports/425603

Log:
  multimedia/py-ffmpeg: adjust pts after r425471
  
  AVFrame.pkt_pts didn't exist in ffmpeg-4f7d2fe-2010-12-16 snapshot when
  global_video_pkt_pts was added to py-ffmpeg. The code worked it around by
  saving PTS in AVFrame.opaque just before avcodec_decode_video2() call. This
  broke when r425471 removed our_get_buffer(). So, just use AVFrame.pkt_pts
  directly now.
  
  PR:		214247
  Approved by:	dbn (maintainer)

Modified:
  head/multimedia/py-ffmpeg/Makefile   (contents, props changed)
  head/multimedia/py-ffmpeg/files/patch-ffmpeg___ffmpeg.pxi   (contents, props changed)
  head/multimedia/py-ffmpeg/files/patch-ffmpeg___ffmpeg.pyx   (contents, props changed)

Modified: head/multimedia/py-ffmpeg/Makefile
==============================================================================
--- head/multimedia/py-ffmpeg/Makefile	Mon Nov  7 10:40:57 2016	(r425602)
+++ head/multimedia/py-ffmpeg/Makefile	Mon Nov  7 10:48:17 2016	(r425603)
@@ -3,7 +3,7 @@
 
 PORTNAME=	ffmpeg
 PORTVERSION=	1.2.4
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	multimedia python
 MASTER_SITES=	GH LOCAL/dbn/${PORTNAME}
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}

Modified: head/multimedia/py-ffmpeg/files/patch-ffmpeg___ffmpeg.pxi
==============================================================================
--- head/multimedia/py-ffmpeg/files/patch-ffmpeg___ffmpeg.pxi	Mon Nov  7 10:40:57 2016	(r425602)
+++ head/multimedia/py-ffmpeg/files/patch-ffmpeg___ffmpeg.pxi	Mon Nov  7 10:48:17 2016	(r425603)
@@ -1,6 +1,14 @@
 --- ffmpeg/_ffmpeg.pxi.orig	2013-10-28 16:04:02 UTC
 +++ ffmpeg/_ffmpeg.pxi
-@@ -53,8 +53,6 @@ cdef extern from "libavcodec/avcodec.h" 
+@@ -35,6 +35,7 @@ cdef extern from "libavcodec/avcodec.h" 
+         unsigned char **data
+         int *linesize
+         int64_t pts
++        int64_t pkt_pts;
+         int repeat_pict
+         int nb_samples
+         int format
+@@ -53,8 +54,6 @@ cdef extern from "libavcodec/avcodec.h" 
          int channels
          AVCodec *codec
          AVMediaType codec_type
@@ -9,7 +17,7 @@
          AVRational time_base
          AVSampleFormat sample_fmt
      struct AVPicture:
-@@ -83,7 +81,7 @@ cdef extern from "libavcodec/avcodec.h" 
+@@ -83,7 +82,7 @@ cdef extern from "libavcodec/avcodec.h" 
      ctypedef int (*lockmgr_t)(void **mutex, AVLockOp op)
      int av_lockmgr_register(lockmgr_t cb)
  
@@ -18,7 +26,7 @@
      int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
                           int *got_picture_ptr, AVPacket *avpkt)
      int avcodec_decode_audio4(AVCodecContext *avctx, AVFrame *frame, int
-@@ -100,7 +98,7 @@ cdef extern from "libavcodec/avcodec.h" 
+@@ -100,7 +99,7 @@ cdef extern from "libavcodec/avcodec.h" 
      int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic)
      void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic)
  

Modified: head/multimedia/py-ffmpeg/files/patch-ffmpeg___ffmpeg.pyx
==============================================================================
--- head/multimedia/py-ffmpeg/files/patch-ffmpeg___ffmpeg.pyx	Mon Nov  7 10:40:57 2016	(r425602)
+++ head/multimedia/py-ffmpeg/files/patch-ffmpeg___ffmpeg.pyx	Mon Nov  7 10:48:17 2016	(r425603)
@@ -1,6 +1,15 @@
 --- ffmpeg/_ffmpeg.pyx.orig	2013-10-28 16:04:02 UTC
 +++ ffmpeg/_ffmpeg.pyx
-@@ -518,11 +518,11 @@ cdef int audio_decode_frame(VideoState *
+@@ -81,8 +81,6 @@ DEF FF_REFRESH_EVENT                = 2
+ DEF FF_QUIT_EVENT                   = 3
+ DEF FF_SCHEDULE_EVENT               = 4
+ 
+-cdef uint64_t global_video_pkt_pts = AV_NOPTS_VALUE
+-
+ ctypedef void (*event_callback_t)(void *)
+ 
+ cdef struct Event:
+@@ -518,11 +516,11 @@ cdef int audio_decode_frame(VideoState *
              got_frame = 0
  
              if frame == NULL:
@@ -14,7 +23,7 @@
  
              len1 = avcodec_decode_audio4(vs.audio_st.codec,
                      frame, &got_frame, pkt)
-@@ -784,7 +784,7 @@ cdef void alloc_picture(void *userdata) 
+@@ -784,7 +782,7 @@ cdef void alloc_picture(void *userdata) 
  
      vp.ff_data_size = avpicture_get_size(PF_RGB24, vp.width, vp.height)
      vp.ff_data = <unsigned char *>av_malloc(vp.ff_data_size * sizeof(unsigned char))
@@ -23,7 +32,7 @@
      avpicture_fill(<AVPicture *>vp.bmp, vp.ff_data, PF_RGB24,
              vp.width, vp.height)
  
-@@ -886,19 +886,6 @@ cdef double synchronize_video(VideoState
+@@ -886,19 +884,6 @@ cdef double synchronize_video(VideoState
      return pts
  
  
@@ -43,7 +52,7 @@
  cdef int video_thread(void *arg) nogil:
      cdef VideoState *vs = <VideoState *>arg
      cdef AVPacket pkt1, *packet = &pkt1
-@@ -906,7 +893,7 @@ cdef int video_thread(void *arg) nogil:
+@@ -906,7 +891,7 @@ cdef int video_thread(void *arg) nogil:
      cdef AVFrame *pFrame
      cdef double pts, ptst = 0
  
@@ -52,7 +61,27 @@
  
      while True:
          if packet_queue_get(&vs.videoq, packet, 1) < 0:
-@@ -1038,8 +1025,6 @@ cdef int stream_component_open(VideoStat
+@@ -919,16 +904,13 @@ cdef int video_thread(void *arg) nogil:
+ 
+         pts = 0
+ 
+-        # Save global pts to be stored in pFrame
+-        global_video_pkt_pts = packet.pts
+         # Decode video frame
+         with gil:
+             len1 = avcodec_decode_video2(
+                     vs.video_st.codec, pFrame, &frameFinished, packet)
+-        if packet.dts == AV_NOPTS_VALUE and pFrame.opaque:
+-            memcpy(&ptst, pFrame.opaque, sizeof(uint64_t))
+-            if ptst != AV_NOPTS_VALUE:
+-                pts = ptst
++        if packet.dts == AV_NOPTS_VALUE:
++            if pFrame.pkt_pts != AV_NOPTS_VALUE:
++                pts = pFrame.pkt_pts
+         elif packet.dts != AV_NOPTS_VALUE:
+             pts = packet.dts
+         else:
+@@ -1038,8 +1020,6 @@ cdef int stream_component_open(VideoStat
  
          packet_queue_init(&vs.videoq)
          vs.video_tid = SDL_CreateThread(video_thread, vs)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201611071048.uA7AmHGw083006>