Date: Fri, 4 Nov 2016 14:29:14 +0000 (UTC) From: Jan Beich <jbeich@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org Subject: svn commit: r425325 - in branches/2016Q4/x11-toolkits/nucleo: . files Message-ID: <201611041429.uA4ETEgg069206@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jbeich Date: Fri Nov 4 14:29:14 2016 New Revision: 425325 URL: https://svnweb.freebsd.org/changeset/ports/425325 Log: x11-toolkits/nucleo: back out r425306 avcodec_encode_video -> avcodec_encode_video2 is a bit risky. And my conversion had a bug (see r425324). Let it bake on /head like usual. PR: 207547 Pointyhat to: jbeich Approved by: ports-secteam blanket Deleted: branches/2016Q4/x11-toolkits/nucleo/files/patch-nucleo_plugins_ffmpeg_ffmpegImageSink.H Modified: branches/2016Q4/x11-toolkits/nucleo/Makefile branches/2016Q4/x11-toolkits/nucleo/files/patch-nucleo__plugins__ffmpeg__ffmpegImageSink.cxx branches/2016Q4/x11-toolkits/nucleo/files/patch-nucleo__plugins__ffmpeg__ffmpegImageSource.cxx Directory Properties: branches/2016Q4/ (props changed) Modified: branches/2016Q4/x11-toolkits/nucleo/Makefile ============================================================================== --- branches/2016Q4/x11-toolkits/nucleo/Makefile Fri Nov 4 14:24:06 2016 (r425324) +++ branches/2016Q4/x11-toolkits/nucleo/Makefile Fri Nov 4 14:29:14 2016 (r425325) @@ -3,7 +3,7 @@ PORTNAME= nucleo PORTVERSION= 0.7.6 -PORTREVISION= 15 +PORTREVISION= 16 CATEGORIES= x11-toolkits MASTER_SITES= http://insitu.lri.fr/metisse/download/nucleo/ Modified: branches/2016Q4/x11-toolkits/nucleo/files/patch-nucleo__plugins__ffmpeg__ffmpegImageSink.cxx ============================================================================== --- branches/2016Q4/x11-toolkits/nucleo/files/patch-nucleo__plugins__ffmpeg__ffmpegImageSink.cxx Fri Nov 4 14:24:06 2016 (r425324) +++ branches/2016Q4/x11-toolkits/nucleo/files/patch-nucleo__plugins__ffmpeg__ffmpegImageSink.cxx Fri Nov 4 14:29:14 2016 (r425325) @@ -1,6 +1,6 @@ ---- nucleo/plugins/ffmpeg/ffmpegImageSink.cxx.orig 2009-05-25 12:53:15 UTC -+++ nucleo/plugins/ffmpeg/ffmpegImageSink.cxx -@@ -118,17 +118,17 @@ namespace nucleo { +--- nucleo/plugins/ffmpeg/ffmpegImageSink.cxx.orig 2009-05-25 14:53:15.000000000 +0200 ++++ nucleo/plugins/ffmpeg/ffmpegImageSink.cxx 2015-07-03 23:24:23.255152399 +0200 +@@ -118,11 +118,11 @@ namespace nucleo { output_format = 0 ; if (uri.scheme=="mpegts-udp") { @@ -15,13 +15,6 @@ } std::string message ; - if (!output_format) - message = "Unable to find the requested format" ; -- else if (output_format->video_codec == CODEC_ID_NONE) { -+ else if (output_format->video_codec == AV_CODEC_ID_NONE) { - output_format = 0 ; - message = "Not a video format" ; - } else if (output_format->flags & AVFMT_NOFILE) { @@ -156,12 +156,13 @@ namespace nucleo { snprintf(format_context->filename, sizeof(format_context->filename), "%s", filename.c_str()) ; @@ -37,17 +30,15 @@ // ---------------- -@@ -190,8 +191,8 @@ namespace nucleo { +@@ -190,7 +191,7 @@ namespace nucleo { AVCodecContext *codec_context = vstream->codec ; codec_context->codec_id = output_format->video_codec ; - codec_context->codec_type = CODEC_TYPE_VIDEO ; -- codec_context->pix_fmt = PIX_FMT_YUV420P ; + codec_context->codec_type = AVMEDIA_TYPE_VIDEO ; -+ codec_context->pix_fmt = AV_PIX_FMT_YUV420P ; + codec_context->pix_fmt = PIX_FMT_YUV420P ; codec_context->width = img->getWidth() ; // must be a multiple of two codec_context->height = img->getHeight() ; // must be a multiple of two - codec_context->me_method = ME_EPZS ; // ME_ZERO @@ -210,12 +211,7 @@ namespace nucleo { || !strcmp(format_context->oformat->name, "3gp")) codec_context->flags |= CODEC_FLAG_GLOBAL_HEADER ; @@ -80,7 +71,7 @@ std::cerr << "ffmpegImageSink: could not open " << filename << std::endl ; return false ; } -@@ -245,37 +241,37 @@ namespace nucleo { +@@ -245,17 +241,17 @@ namespace nucleo { int port = uri.port ; if (!port) port = 1234 ; sender = new UdpSender(uri.host.c_str(), port) ; @@ -101,70 +92,8 @@ video_outbuf_size = 256*1024 ; // FIXME ? video_outbuf = new uint8_t [video_outbuf_size] ; - - switch (img->getEncoding()) { - case Image::ARGB: -- // PIX_FMT_RGBA32 is endian-sensitive... -- // srcEncoding = ByteOrder::isLittleEndian() ? PIX_FMT_RGB24 : PIX_FMT_RGBA32 ; -- srcEncoding = PIX_FMT_RGB24 ; -+ // AV_PIX_FMT_RGBA32 is endian-sensitive... -+ // srcEncoding = ByteOrder::isLittleEndian() ? AV_PIX_FMT_RGB24 : AV_PIX_FMT_RGBA32 ; -+ srcEncoding = AV_PIX_FMT_RGB24 ; - break ; -- case Image::L: srcEncoding = PIX_FMT_GRAY8 ; break ; -- case Image::YpCbCr420: srcEncoding = PIX_FMT_YUV420P ; break ; -- default: srcEncoding = PIX_FMT_RGB24 ; break ; -+ case Image::L: srcEncoding = AV_PIX_FMT_GRAY8 ; break ; -+ case Image::YpCbCr420: srcEncoding = AV_PIX_FMT_YUV420P ; break ; -+ default: srcEncoding = AV_PIX_FMT_RGB24 ; break ; - } - -- avcodec_get_frame_defaults(&srcPic) ; -+ av_frame_unref(&srcPic) ; - if (codec_context->pix_fmt==srcEncoding) - picture = &srcPic ; - else { -- avcodec_get_frame_defaults(&convPic) ; -+ av_frame_unref(&convPic) ; - int size = avpicture_get_size(codec_context->pix_fmt, codec_context->width, codec_context->height) ; - avpicture_fill((AVPicture *)&convPic, - new uint8_t [size], -@@ -304,7 +300,7 @@ namespace nucleo { - // std::cerr << "base: " << vstream->time_base.num << " / " << vstream->time_base.den << std::endl ; - - AVCodecContext *cctx = vstream->codec ; -- if (srcEncoding==PIX_FMT_RGB24) convertImage(img, Image::RGB) ; -+ if (srcEncoding==AV_PIX_FMT_RGB24) convertImage(img, Image::RGB) ; - resizeImage(img, cctx->width, cctx->height) ; - avpicture_fill((AVPicture *)&srcPic, img->getData(), srcEncoding, - cctx->width, cctx->height) ; -@@ -330,23 +326,23 @@ namespace nucleo { - picture->pts = pts ; - // std::cerr << "pts: " << pts << std::endl ; - -- int out_size = avcodec_encode_video(cctx, video_outbuf, video_outbuf_size, picture) ; -- if (!out_size) { -- std::cerr << "ffmpegImageSink: avcodec_encode_video returned 0" << std::endl ; -+ AVPacket pkt ; -+ av_init_packet(&pkt) ; -+ pkt.data = video_outbuf ; -+ pkt.size = video_outbuf_size ; -+ -+ int got_packet = 0 ; -+ int ret = avcodec_encode_video2(cctx, &pkt, picture, &got_packet) ; -+ if (ret) { -+ std::cerr << "ffmpegImageSink: avcodec_encode_video2 failed" << std::endl ; - stop() ; - return false ; - } - -- // std::cerr << "out_size = " << out_size << std::endl ; -- -- AVPacket pkt ; -- av_init_packet(&pkt) ; - pkt.stream_index = vstream->index ; -- pkt.data = video_outbuf ; -- pkt.size = out_size ; +@@ -346,7 +342,7 @@ namespace nucleo { + pkt.size = out_size ; if (cctx->coded_frame) { pkt.pts = pkt.dts = pts ; - if (cctx->coded_frame->key_frame) pkt.flags |= PKT_FLAG_KEY ; Modified: branches/2016Q4/x11-toolkits/nucleo/files/patch-nucleo__plugins__ffmpeg__ffmpegImageSource.cxx ============================================================================== --- branches/2016Q4/x11-toolkits/nucleo/files/patch-nucleo__plugins__ffmpeg__ffmpegImageSource.cxx Fri Nov 4 14:24:06 2016 (r425324) +++ branches/2016Q4/x11-toolkits/nucleo/files/patch-nucleo__plugins__ffmpeg__ffmpegImageSource.cxx Fri Nov 4 14:29:14 2016 (r425325) @@ -1,6 +1,6 @@ ---- nucleo/plugins/ffmpeg/ffmpegImageSource.cxx.orig 2009-05-25 12:53:15 UTC +--- nucleo/plugins/ffmpeg/ffmpegImageSource.cxx.orig +++ nucleo/plugins/ffmpeg/ffmpegImageSource.cxx -@@ -47,23 +47,23 @@ namespace nucleo { +@@ -47,23 +47,23 @@ bool ffmpegImageSource::start(void) { @@ -28,7 +28,7 @@ video_stream = i ; found_video_stream = true ; } else -@@ -86,7 +86,7 @@ namespace nucleo { +@@ -86,7 +86,7 @@ return false ; } @@ -37,7 +37,7 @@ if (ret<0) { std::cerr << "ffmpegImageSource: unable to open codec" << std::endl ; return false ; -@@ -123,39 +123,39 @@ namespace nucleo { +@@ -123,7 +123,7 @@ #endif int got_picture = 0 ; @@ -46,42 +46,3 @@ av_free_packet(&packet) ; if (!got_picture) continue ; - lastImage.setTimeStamp() ; - switch (cctx->pix_fmt) { -- case PIX_FMT_GRAY8: -+ case AV_PIX_FMT_GRAY8: - lastImage.setDims(cctx->width, cctx->height) ; - lastImage.setEncoding(Image::L) ; - lastImage.setData(frame.data[0], cctx->width*cctx->height, Image::NONE) ; - break ; -- case PIX_FMT_RGB24: -+ case AV_PIX_FMT_RGB24: - lastImage.setDims(cctx->width, cctx->height) ; - lastImage.setEncoding(Image::RGB) ; - lastImage.setData(frame.data[0], (cctx->width*cctx->height)*3, Image::NONE) ; - break ; - default: // Convert everything else to RGB24 -- // PIX_FMT_YUV420P has three separate plans and ffmpeg converts -+ // AV_PIX_FMT_YUV420P has three separate plans and ffmpeg converts - // them to RGB faster than nucleo does... -- // PIX_FMT_RGBA32 and PIX_FMT_RGB565 are stored in cpu endianness -+ // AV_PIX_FMT_RGBA32 and AV_PIX_FMT_RGB565 are stored in cpu endianness - // On OS X (powerpc), they correspond to Image::ARGB and Image::RGB565 - lastImage.prepareFor(cctx->width, cctx->height, Image::RGB) ; - AVFrame tmpframe ; -- avpicture_fill((AVPicture*)&tmpframe, lastImage.getData(), PIX_FMT_RGB24, -+ avpicture_fill((AVPicture*)&tmpframe, lastImage.getData(), AV_PIX_FMT_RGB24, - cctx->width, cctx->height) ; - #if NO_SOFTWARE_SCALER -- img_convert((AVPicture*)&tmpframe, PIX_FMT_RGB24, -+ img_convert((AVPicture*)&tmpframe, AV_PIX_FMT_RGB24, - (AVPicture*)&frame, cctx->pix_fmt, cctx->width, cctx->height) ; - #else - SwsContext *swsc = 0 ; - swsc = sws_getCachedContext(swsc, - cctx->width, cctx->height, cctx->pix_fmt, -- cctx->width, cctx->height, PIX_FMT_RGB24, -+ cctx->width, cctx->height, AV_PIX_FMT_RGB24, - SWS_BICUBIC, NULL, NULL, NULL) ; - if (!swsc) { - std::cerr << "ffmpegImageSource: sws_getCachedContext failed" << std::endl ;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201611041429.uA4ETEgg069206>