add h264 lossless, ru po upd, add ydiff, ffmpeg cmdl/xfer fixes, build upgrades,...
authorGood Guy <good1.2guy@gmail.com>
Fri, 30 Dec 2016 20:01:13 +0000 (13:01 -0700)
committerGood Guy <good1.2guy@gmail.com>
Fri, 30 Dec 2016 20:01:13 +0000 (13:01 -0700)
15 files changed:
cinelerra-5.1/bld_scripts/bld_prepare.sh
cinelerra-5.1/cinelerra/Makefile
cinelerra-5.1/cinelerra/batchrender.C
cinelerra-5.1/cinelerra/bdwrite.C
cinelerra-5.1/cinelerra/ffmpeg.C
cinelerra-5.1/cinelerra/ffmpeg.h
cinelerra-5.1/cinelerra/ydiff.C [new file with mode: 0644]
cinelerra-5.1/configure.ac
cinelerra-5.1/ffmpeg/video/ks.pro [new file with mode: 0644]
cinelerra-5.1/ffmpeg/video/lossless.m2ts [new file with mode: 0644]
cinelerra-5.1/guicast/bccmdl.py
cinelerra-5.1/guicast/bccmodels.C
cinelerra-5.1/guicast/bccmodels.h
cinelerra-5.1/po/ru.po
cinelerra-5.1/thirdparty/src/x264.patch1 [new file with mode: 0644]

index 5d751adc14fcbfc6567943e96d15baf98d1d30da..767b039f94651310b85e19bb7963c6f86d2771e6 100755 (executable)
@@ -44,8 +44,8 @@ case "$dir" in
     festival-devel libdc1394-devel libiec61883-devel esound-devel \
     flac-devel libsndfile-devel libtheora-devel linux-firmware \
     ivtv-firmware libvorbis-devel texinfo xz-devel lzma-devel cmake git \
-    autoconf automake rpm-build
-#   ctags patch gcc-c++ perl::XML_Parser libtiff-devel python dvdauthor
+    ctags patch gcc-c++ perl-XML-XPath libtiff-devel python dvdauthor \
+    autoconf automake rpm-build ccache
   ;;
 "suse" | "leap")
   zypper -n install nasm gcc gcc-c++ zlib-devel texinfo libpng16-devel \
index c4706b3d707c5308e484e30a4d274397d7100e9a..4ce1cb8f102930070f5a8959487bdb4a690d4864 100644 (file)
@@ -422,6 +422,10 @@ $(BDWRITE):        $(BDWOBJS) $(LIBRARIES)
        $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(BDWRITE) $(BDWRITE).debuginfo)
        $(if $(findstring -ggdb,$(CFLAGS)),,strip $(BDWRITE))
 
+ydiff: ydiff.C $(LIBRARIES)
+       @echo g++ -o $@ ydiff.C
+       @g++ `pkg-config --cflags --libs gtk+-2.0` $(CFLAGS) ydiff.C -o $@ $(LIBS)
+
 clean:
        rm -rf $(OBJDIR)
 
index 19f370e558cf2e8824485b8fd4e25c398d26cfd6..bbd66d47fa955d1756cdd70a35f147bc587812a3 100644 (file)
@@ -821,7 +821,7 @@ void BatchRenderGUI::create_objects()
 
        add_subwindow(list_title = new BC_Title(x, y, _("Batches to render:")));
        x1 = x + list_title->get_w() + mwindow->theme->widget_border;;
-       add_subwindow(batch_path = new BC_Title(x1, y, thread->batch_path, MEDIUMFONT, YELLOW));
+       add_subwindow(batch_path = new BC_Title(x1, y, thread->batch_path, MEDIUMFONT));
        y += list_title->get_h() + mwindow->theme->widget_border;
        y1 = get_h();
        y1 -= 15 + BC_GenericButton::calculate_h() + mwindow->theme->widget_border;
index e2bab71dc9a628107098cd7941dac124c5c4af60..e70aa69a1503549c5bc1bb03b988e43942a48264 100644 (file)
@@ -2647,7 +2647,18 @@ int media_info::scan(AVFormatContext *fmt_ctx)
   int ret = 0;
   AVPacket ipkt;
   av_init_packet(&ipkt);
-
+#if 0
+// zero pts at pos zero
+  for( int i=0; i<programs.size(); ++i ) {
+    program *p = programs[i];
+    for( int j=0; j<p->strm_idx.size(); ++j ) {
+      stream *sp = streams[p->strm_idx[j]];
+      sp->last_pts = 0;
+      AVStream *st = fmt_ctx->streams[sp->av_idx];
+      p->add_label(0, 0, 0, st->id);
+    }
+  }
+#endif
   for( int64_t count=0; ret>=0; ++count ) {
     av_packet_unref(&ipkt);
     ipkt.data = 0; ipkt.size = 0;
index 172252f694416953d027ac4921987a65b33ca0ef..474d7c135da3f26cb3dbef4f8eee8c18803e7921 100644 (file)
@@ -848,6 +848,7 @@ AVPixelFormat FFVideoConvert::color_model_to_pix_fmt(int color_model)
        case BC_RGB565:         return AV_PIX_FMT_RGB565;
        case BC_RGB161616:      return AV_PIX_FMT_RGB48LE;
        case BC_RGBA16161616:   return AV_PIX_FMT_RGBA64LE;
+       case BC_AYUV16161616:   return AV_PIX_FMT_AYUV64LE;
        default: break;
        }
 
@@ -872,6 +873,7 @@ int FFVideoConvert::pix_fmt_to_color_model(AVPixelFormat pix_fmt)
        case AV_PIX_FMT_RGB565:         return BC_RGB565;
        case AV_PIX_FMT_RGB48LE:        return BC_RGB161616;
        case AV_PIX_FMT_RGBA64LE:       return BC_RGBA16161616;
+       case AV_PIX_FMT_AYUV64LE:       return BC_AYUV16161616;
        default: break;
        }
 
@@ -918,7 +920,7 @@ int FFVideoConvert::convert_picture_vframe(VFrame *frame, AVFrame *ip, AVFrame *
 
        AVPixelFormat pix_fmt = (AVPixelFormat)ip->format;
        convert_ctx = sws_getCachedContext(convert_ctx, ip->width, ip->height, pix_fmt,
-               frame->get_w(), frame->get_h(), ofmt, SWS_BICUBIC, NULL, NULL, NULL);
+               frame->get_w(), frame->get_h(), ofmt, SWS_POINT, NULL, NULL, NULL);
        if( !convert_ctx ) {
                fprintf(stderr, "FFVideoConvert::convert_picture_frame:"
                                " sws_getCachedContext() failed\n");
@@ -938,20 +940,25 @@ int FFVideoConvert::convert_cmodel(VFrame *frame, AVFrame *ip)
        // try direct transfer
        if( !convert_picture_vframe(frame, ip) ) return 1;
        // use indirect transfer
-       AVPixelFormat pix_fmt = (AVPixelFormat)ip->format;
-       const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
+       AVPixelFormat ifmt = (AVPixelFormat)ip->format;
+       const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(ifmt);
        int max_bits = 0;
        for( int i = 0; i <desc->nb_components; ++i ) {
                int bits = desc->comp[i].depth;
                if( bits > max_bits ) max_bits = bits;
        }
-// from libavcodec/pixdesc.c
-#define pixdesc_has_alpha(pixdesc) ((pixdesc)->nb_components == 2 || \
- (pixdesc)->nb_components == 4 || (pixdesc)->flags & AV_PIX_FMT_FLAG_PAL)
-       int icolor_model = pixdesc_has_alpha(desc) ?
-               (max_bits > 8 ? BC_RGBA16161616 : BC_RGBA8888) :
-               (max_bits > 8 ? BC_RGB161616 : BC_RGB888) ;
-       VFrame vframe(ip->width, ip->height, icolor_model);
+       int imodel = pix_fmt_to_color_model(ifmt);
+       if( imodel < 0 )  {
+               int cmodel = frame->get_color_model();
+               BC_CModels::is_yuv(cmodel) ?
+                   (BC_CModels::has_alpha(cmodel) ?
+                       BC_AYUV16161616 :
+                       (max_bits > 8 ? BC_AYUV16161616 : BC_YUV444P)) :
+                   (BC_CModels::has_alpha(cmodel) ?
+                       (max_bits > 8 ? BC_RGBA16161616 : BC_RGBA8888) :
+                       (max_bits > 8 ? BC_RGB161616 : BC_RGB888)) ;
+       }
+       VFrame vframe(ip->width, ip->height, imodel);
        if( convert_picture_vframe(&vframe, ip) ) return -1;
        frame->transfer_from(&vframe);
        return 1;
@@ -1011,7 +1018,7 @@ int FFVideoConvert::convert_vframe_picture(VFrame *frame, AVFrame *op, AVFrame *
 
        AVPixelFormat ofmt = (AVPixelFormat)op->format;
        convert_ctx = sws_getCachedContext(convert_ctx, frame->get_w(), frame->get_h(),
-               ifmt, op->width, op->height, ofmt, SWS_BICUBIC, NULL, NULL, NULL);
+               ifmt, op->width, op->height, ofmt, SWS_POINT, NULL, NULL, NULL);
        if( !convert_ctx ) {
                fprintf(stderr, "FFVideoConvert::convert_frame_picture:"
                                " sws_getCachedContext() failed\n");
@@ -1031,13 +1038,22 @@ int FFVideoConvert::convert_pixfmt(VFrame *frame, AVFrame *op)
        // try direct transfer
        if( !convert_vframe_picture(frame, op) ) return 1;
        // use indirect transfer
-       int colormodel = frame->get_color_model();
-       int bits = BC_CModels::calculate_pixelsize(colormodel) * 8;
-       bits /= BC_CModels::components(colormodel);
-       int icolor_model =  BC_CModels::has_alpha(colormodel) ?
-               (bits > 8 ? BC_RGBA16161616 : BC_RGBA8888) :
-               (bits > 8 ? BC_RGB161616: BC_RGB888) ;
-       VFrame vframe(frame->get_w(), frame->get_h(), icolor_model);
+       int cmodel = frame->get_color_model();
+       int bits = BC_CModels::calculate_pixelsize(cmodel) * 8;
+       bits /= BC_CModels::components(cmodel);
+       AVPixelFormat ofmt = (AVPixelFormat)op->format;
+       int imodel = pix_fmt_to_color_model(ofmt);
+       if( imodel < 0 ) {
+               imodel =
+                   BC_CModels::is_yuv(cmodel) ?
+                       (BC_CModels::has_alpha(cmodel) ?
+                       BC_AYUV16161616 :
+                       (bits > 8 ? BC_AYUV16161616 : BC_YUV444P)) :
+                   (BC_CModels::has_alpha(cmodel) ?
+                       (bits > 8 ? BC_RGBA16161616 : BC_RGBA8888) :
+                       (bits > 8 ? BC_RGB161616 : BC_RGB888)) ;
+       }
+       VFrame vframe(frame->get_w(), frame->get_h(), imodel);
        vframe.transfer_from(frame);
        if( !convert_vframe_picture(&vframe, op) ) return 1;
        return -1;
index a0eaf61726c49cf36919b0bca3327973b3233571..91ad65a6488f9ceb15435be04e63197c3e226247 100644 (file)
@@ -211,12 +211,12 @@ public:
 
        int convert_picture_vframe(VFrame *frame, AVFrame *ip);
        int convert_picture_vframe(VFrame *frame, AVFrame *ip, AVFrame *ipic);
-       int convert_cmodel(VFrame *frame_out, AVFrame *ip);
-       int transfer_cmodel(VFrame *frame_in, AVFrame *ifp);
+       int convert_cmodel(VFrame *frame, AVFrame *ip);
+       int transfer_cmodel(VFrame *frame, AVFrame *ifp);
        int convert_vframe_picture(VFrame *frame, AVFrame *op);
        int convert_vframe_picture(VFrame *frame, AVFrame *op, AVFrame *opic);
        int convert_pixfmt(VFrame *frame, AVFrame *op);
-       int transfer_pixfmt(VFrame *frame_in, AVFrame *ofp);
+       int transfer_pixfmt(VFrame *frame, AVFrame *ofp);
 };
 
 class FFVideoStream : public FFStream, public FFVideoConvert {
diff --git a/cinelerra-5.1/cinelerra/ydiff.C b/cinelerra-5.1/cinelerra/ydiff.C
new file mode 100644 (file)
index 0000000..a4b4769
--- /dev/null
@@ -0,0 +1,393 @@
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <math.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+
+extern "C" {
+#include "libavfilter/buffersrc.h"
+#include "libavfilter/buffersink.h"
+#include "libavformat/avformat.h"
+#include "libavformat/avio.h"
+#include "libavcodec/avcodec.h"
+#include "libavfilter/avfilter.h"
+#include "libavutil/avutil.h"
+#include "libavutil/imgutils.h"
+#include "libavutil/opt.h"
+#include "libavutil/pixdesc.h"
+#include "libswresample/swresample.h"
+#include "libswscale/swscale.h"
+}
+
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+
+int done = 0;
+
+void sigint(int n)
+{
+  done = 1;
+}
+
+
+void dst_exit(GtkWidget *widget, gpointer data)
+{
+   exit(0);
+}
+
+class gtk_window {
+public:
+  gtk_window(int width, int height);
+  ~gtk_window();
+
+  GdkVisual *visual;
+  GtkWidget *window;
+  GtkWidget *image;
+  GtkWidget *panel_hbox;
+  GdkImage  *img0, *img1;
+  GdkPixbuf *pbuf0, *pbuf1;
+  unsigned char *bfr, *bfrs, *bfr0, *bfr1;
+  unsigned char **rows, **row0, **row1;
+  uint64_t flip_bfrs, flip_rows;
+  int width, height, linesize;
+  int done;
+
+  pthread_t tid;
+  static void *entry(void *t);
+  void start();
+  void *run();
+  uint8_t *next_bfr();
+  void post();
+
+  pthread_mutex_t draw;
+  void draw_lock() { pthread_mutex_lock(&draw); }
+  void draw_unlock() { pthread_mutex_unlock(&draw); }
+};
+
+gtk_window::gtk_window(int width, int height)
+{
+  this->width = width;
+  this->height = height;
+  this->linesize = width*3;
+  visual = gdk_visual_get_system();
+  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+  gtk_signal_connect(GTK_OBJECT(window),"destroy",
+     GTK_SIGNAL_FUNC(dst_exit),NULL);
+  gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_NONE);
+  /* try for shared image bfr, only seems to work with gtk_rgb */
+  img0 = gdk_image_new(GDK_IMAGE_SHARED, visual, width, height);
+  pbuf0 = gdk_pixbuf_new_from_data((const guchar *)img0->mem,
+     GDK_COLORSPACE_RGB,FALSE,8,width,height,linesize,NULL,NULL);
+  bfr0 = gdk_pixbuf_get_pixels(pbuf0);
+  memset(bfr0,0,height*linesize);
+  image = gtk_image_new_from_pixbuf(pbuf0);
+  /* double buffered */
+  img1 = gdk_image_new(GDK_IMAGE_SHARED, visual, width, height);
+  pbuf1 = gdk_pixbuf_new_from_data((const guchar *)img1->mem,
+     GDK_COLORSPACE_RGB,FALSE,8,width,height,linesize,NULL,NULL);
+  bfr1 = gdk_pixbuf_get_pixels(pbuf1);
+  memset(bfr1,0,height*linesize);
+
+  row0 = new unsigned char *[height];
+  row1 = new unsigned char *[height];
+
+  for( int i=0; i<height; ++i ) {
+    row0[i] = bfr0 + i*linesize;
+    row1[i] = bfr1 + i*linesize;
+  }
+  bfrs = bfr0;
+  rows = row0;
+
+  flip_bfrs = ((uint64_t)bfr0 ^ (uint64_t)bfr1);
+  flip_rows = ((uint64_t)row0 ^ (uint64_t)row1);
+  pthread_mutex_init(&draw, 0);
+  post();
+  
+  panel_hbox = gtk_hbox_new(FALSE,0);
+  gtk_container_add(GTK_CONTAINER(window), panel_hbox);
+  /* pack image into panel */
+  gtk_box_pack_start(GTK_BOX(panel_hbox), image, TRUE, TRUE, 0);
+  gtk_widget_show_all(window);
+}
+
+gtk_window::~gtk_window()
+{
+  delete [] row0;
+  delete [] row1;
+  pthread_mutex_destroy(&draw);
+}
+
+void *gtk_window::entry(void *t)
+{
+  return ((gtk_window*)t)->run();
+}
+
+void gtk_window::start()
+{
+  pthread_attr_t attr;
+  pthread_attr_init(&attr);
+  pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED);
+  done = 0;
+  pthread_create(&tid, &attr, &entry, this);
+  pthread_attr_destroy(&attr);
+}
+
+void *gtk_window::run()
+{
+  while( !done ) {
+    if( !gtk_events_pending() ) {
+      if( !bfr ) { usleep(10000);  continue; }
+      GdkGC *blk = image->style->black_gc;
+      gdk_draw_rgb_image(image->window,blk, 0,0,width,height,
+         GDK_RGB_DITHER_NONE,bfr,linesize);
+      gdk_flush();
+      uint64_t *fbfrs = (uint64_t *)&bfrs;  *fbfrs ^= flip_bfrs;
+      uint64_t *frows = (uint64_t *)&rows;  *frows ^= flip_rows;
+      bfr = 0;
+      draw_unlock();
+    }
+    else
+      gtk_main_iteration();
+  }
+
+  return (void*)0;
+}
+
+uint8_t *gtk_window::next_bfr()
+{
+  return bfrs;
+}
+
+void gtk_window::post()
+{
+  draw_lock();
+  bfr = bfrs;
+}
+
+
+class ffcmpr {
+public:
+  ffcmpr();
+  ~ffcmpr();
+  AVPacket ipkt;
+  AVFormatContext *fmt_ctx;
+  AVFrame *ipic;
+  AVStream *st;
+  AVCodecContext *ctx;
+  AVPixelFormat pix_fmt;
+  double frame_rate;
+  int width, height;
+  int open_decoder(const char *filename, int vid_no);
+  void close_decoder();
+  AVFrame *read_frame();
+};
+
+ffcmpr::ffcmpr()
+{
+  av_init_packet(&this->ipkt);
+  this->fmt_ctx = 0;
+  this->ipic = 0;
+  this->st = 0;
+  this->ctx = 0 ;
+  this->frame_rate = 0;
+  this->pix_fmt = AV_PIX_FMT_NONE;
+  width = height = 0;
+}
+
+void ffcmpr::close_decoder()
+{
+  av_packet_unref(&ipkt);
+  if( !fmt_ctx ) return;
+  avformat_close_input(&fmt_ctx);
+  av_frame_free(&ipic);
+}
+
+ffcmpr::~ffcmpr()
+{
+  close_decoder();
+}
+
+int ffcmpr::open_decoder(const char *filename, int vid_no)
+{
+  struct stat fst;
+  if( stat(filename, &fst) ) return 1;
+
+  av_log_set_level(AV_LOG_VERBOSE);
+  fmt_ctx = 0;
+  AVDictionary *fopts = 0;
+  av_register_all();
+  av_dict_set(&fopts, "formatprobesize", "5000000", 0);
+  av_dict_set(&fopts, "scan_all_pmts", "1", 0);
+  av_dict_set(&fopts, "threads", "auto", 0);
+  int ret = avformat_open_input(&fmt_ctx, filename, NULL, &fopts);
+  av_dict_free(&fopts);
+  if( ret < 0 ) {
+    fprintf(stderr,"file open failed: %s\n", filename);
+    return ret;
+  }
+  ret = avformat_find_stream_info(fmt_ctx, NULL);
+  if( ret < 0 ) {
+    fprintf(stderr,"file probe failed: %s\n", filename);
+    return ret;
+  }
+
+  this->st = 0;
+  for( int i=0; !this->st && ret>=0 && i<(int)fmt_ctx->nb_streams; ++i ) {
+    AVStream *fst = fmt_ctx->streams[i];
+    AVMediaType type = fst->codec->codec_type;
+    if( type != AVMEDIA_TYPE_VIDEO ) continue;
+    if( --vid_no < 0 ) this->st = fst;
+  }
+
+  AVCodecID codec_id = st->codec->codec_id;
+  AVDictionary *copts = 0;
+  //av_dict_copy(&copts, opts, 0);
+  AVCodec *decoder = avcodec_find_decoder(codec_id);
+  if( avcodec_open2(st->codec, decoder, &copts) < 0 ) {
+    fprintf(stderr,"codec open failed: %s\n", filename);
+    return -1;
+  }
+  av_dict_free(&copts);
+  ipic = av_frame_alloc();
+
+  AVRational framerate = av_guess_frame_rate(fmt_ctx, st, 0);
+  this->frame_rate = !framerate.den ? 0 : (double)framerate.num / framerate.den;
+  this->ctx = st->codec;
+  this->pix_fmt = ctx->pix_fmt;
+  this->width  = ctx->width;
+  this->height = ctx->height;
+  return 0;
+}
+
+AVFrame *ffcmpr::read_frame()
+{
+  av_frame_unref(ipic);
+
+  for( int retrys=1000; --retrys>=0; ) {
+    av_packet_unref(&ipkt);
+    int ret = av_read_frame(fmt_ctx, &ipkt);
+    if( ret == AVERROR_EOF ) break;
+    if( ret != 0 ) continue;
+    if( !ipkt.data ) continue;
+    if( ipkt.stream_index != st->index ) continue;
+    while( ipkt.size > 0 ) {
+      int got_frame = 0;
+      ret = avcodec_decode_video2(st->codec, ipic, &got_frame, &ipkt);
+      if( ret <= 0 ) break;
+      if( got_frame )
+        return ipic;
+      ipkt.data += ret;
+      ipkt.size -= ret;
+    }
+  }
+  return 0;
+}
+
+static int diff_frame(AVFrame *afrm, AVFrame *bfrm, uint8_t *fp, int w, int h)
+{
+  int n = 0, m = 0;
+  uint8_t *arow = afrm->data[0];
+  uint8_t *brow = bfrm->data[0];
+  int asz = afrm->linesize[0], bsz = afrm->linesize[0];
+  int rsz = w * 3;
+  for( int y=h; --y>=0; arow+=asz, brow+=bsz ) {
+    uint8_t *ap = arow, *bp = brow;
+    for( int x=rsz; --x>=0; ++ap,++bp ) {
+      int d = *ap - *bp, v = d + 128;
+      if( v > 255 ) v = 255;
+      else if( v < 0 ) v = 0;
+      *fp++ = v;
+      m += d;
+      if( d < 0 ) d = -d;
+      n += d;
+    }
+  }
+  int sz = h*rsz;
+  printf("%d %d %d %f", sz, m, n, (double)n/sz);
+  return n;
+}
+
+int main(int ac, char **av)
+{
+  int ret;
+  setbuf(stdout,NULL);
+
+  gtk_set_locale();
+  gtk_init(&ac, &av);
+
+  ffcmpr a, b;
+  if( a.open_decoder(av[1],0) ) return 1;
+  if( b.open_decoder(av[2],0) ) return 1;
+
+  printf("file a:%s\n", av[1]);
+  printf("  id 0x%06x:", a.ctx->codec_id);
+  const AVCodecDescriptor *adesc = avcodec_descriptor_get(a.ctx->codec_id);
+  printf("  video %s\n", adesc ? adesc->name : " (unkn)");
+  printf(" %dx%d %5.2f", a.width, a.height, a.frame_rate);
+  const char *apix = av_get_pix_fmt_name(a.pix_fmt);
+  printf(" pix %s\n", apix ? apix : "(unkn)");
+
+  printf("file b:%s\n", av[2]);
+  printf("  id 0x%06x:", b.ctx->codec_id);
+  const AVCodecDescriptor *bdesc = avcodec_descriptor_get(b.ctx->codec_id);
+  printf("  video %s\n", bdesc ? bdesc->name : " (unkn)");
+  printf(" %dx%d %5.2f", b.width, b.height, b.frame_rate);
+  const char *bpix = av_get_pix_fmt_name(b.pix_fmt);
+  printf(" pix %s\n", bpix ? bpix : "(unkn)");
+
+//  if( a.ctx->codec_id != b.ctx->codec_id ) { printf("codec mismatch\n"); return 1;}
+  if( a.width != b.width ) { printf("width mismatch\n"); return 1;}
+  if( a.height != b.height ) { printf("height mismatch\n"); return 1;}
+  if( a.frame_rate != b.frame_rate ) { printf("framerate mismatch\n"); return 1;}
+//  if( a.pix_fmt != b.pix_fmt ) { printf("format mismatch\n"); return 1;}
+
+  signal(SIGINT,sigint);
+
+  struct SwsContext *a_cvt = sws_getCachedContext(0, a.width, a.height, a.pix_fmt,
+                a.width, a.height, AV_PIX_FMT_RGB24, SWS_POINT, 0, 0, 0);
+  struct SwsContext *b_cvt = sws_getCachedContext(0, b.width, b.height, b.pix_fmt,
+                b.width, b.height, AV_PIX_FMT_RGB24, SWS_POINT, 0, 0, 0);
+  if( !a_cvt || !b_cvt ) {
+    printf("sws_getCachedContext() failed\n");
+    return 1;
+  }
+
+  AVFrame *afrm = av_frame_alloc();
+  av_image_alloc(afrm->data, afrm->linesize,
+     a.width, a.height, AV_PIX_FMT_RGB24, 1);
+
+  AVFrame *bfrm = av_frame_alloc();
+  av_image_alloc(bfrm->data, bfrm->linesize,
+     b.width, b.height, AV_PIX_FMT_RGB24, 1);
+
+  gtk_window gw(a.width, a.height);
+  gw.start();
+
+  int64_t err = 0;
+  int frm_no = 0;
+
+  while( !done ) {
+    AVFrame *ap = a.read_frame();
+    if( !ap ) break;
+    AVFrame *bp = b.read_frame();
+    if( !bp ) break;
+    sws_scale(a_cvt, ap->data, ap->linesize, 0, ap->height,
+       afrm->data, afrm->linesize);
+    sws_scale(b_cvt, bp->data, bp->linesize, 0, bp->height,
+       bfrm->data, bfrm->linesize);
+    uint8_t *fbfr = gw.next_bfr();
+    ret = diff_frame(afrm, bfrm, fbfr, ap->width, ap->height);
+    err += ret;  ++frm_no;
+    printf("  %d\n",frm_no);
+    gw.post();
+  }
+
+  av_frame_free(&afrm);
+  av_frame_free(&bfrm);
+  
+  b.close_decoder();
+  a.close_decoder();
+  return 0;
+}
+
index a665849d79e317f25a8a6a9770233bb91e679c74..9c69fa0126d64bfae984ce9b99a7e847d7c05651 100644 (file)
@@ -228,7 +228,7 @@ PKG_3RD([libjpeg],[auto],
     simd/.libs/libsimd.a ],
   [ . ])
 
-PKG_3RD([openjpeg],[yes],
+PKG_3RD([openjpeg],[auto],
   [openjpeg-2.1.0-20160221],
   [ bin/libopenjp2.a ],
   [ src/lib/openjp2 ])
@@ -423,7 +423,7 @@ CHECK_LIB([libjpeg], [jpeg], [jpeg_start_decompress])
 CHECK_HEADERS([libjpeg], [jpeg headers], [stdio.h jpeglib.h])
 CHECK_LIB([libogg], [ogg], [ogg_stream_init])
 CHECK_HEADERS([libogg], [ogg headers], [ogg/ogg.h])
-CHECK_LIB([openjpeg], [openjpeg], [opj_version])
+CHECK_LIB([openjpeg], [openjp2], [opj_version])
 CHECK_HEADERS([openjpeg], [openjpeg headers], [openjpeg.h])
 CHECK_LIB([libsndfile], [sndfile], [sf_open])
 CHECK_HEADERS([libsndfile], [sndfile headers], [sndfile.h])
diff --git a/cinelerra-5.1/ffmpeg/video/ks.pro b/cinelerra-5.1/ffmpeg/video/ks.pro
new file mode 100644 (file)
index 0000000..7170a15
--- /dev/null
@@ -0,0 +1,2 @@
+mov prores_ks
+profile=4444
diff --git a/cinelerra-5.1/ffmpeg/video/lossless.m2ts b/cinelerra-5.1/ffmpeg/video/lossless.m2ts
new file mode 100644 (file)
index 0000000..8ba8756
--- /dev/null
@@ -0,0 +1,2 @@
+mpegts libx264
+qp=0
index 069cbe704c6fc60f80fcc0bfed56370e5352fd1a..d4634e07e75613d63f4fd9f22d49245c80b80255 100755 (executable)
@@ -439,6 +439,7 @@ add_cmodel(13, "bc_yuv888", "i8", "yuv888")
 add_cmodel(14, "bc_yuva8888", "i8", "yuv888", "a8")
 add_cmodel(15, "bc_yuv161616", "i16", "yuv161616")
 add_cmodel(16, "bc_yuva16161616", "i16", "yuv161616", "a16")
+add_cmodel(35, "bc_ayuv16161616", "i16", "a16", "yuv161616")
 
 add_cmodel(18, "bc_uvy422", "i8", "uyvy8888")
 add_cmodel(19, "bc_yuv422", "i8", "yuyv8888")
@@ -476,7 +477,7 @@ adata = {
 
 def has_alpha(nm):
   return nm in ["bc_rgba8888", "bc_argb8888", "bc_abgr8888", \
-    "bc_rgba16161616", "bc_yuva8888", "bc_yuva16161616", \
+    "bc_rgba16161616", "bc_yuva8888", "bc_yuva16161616", "bc_ayuv16161616", \
     "bc_uyva8888", "bc_rgba_float", "bc_rgba_floatp",]
 
 def has_bgcolor(fr_cmdl,to_cmdl):
@@ -497,7 +498,7 @@ def is_rgb(nm):
 
 def is_yuv(nm):
   return nm in [ "bc_yuv888", "bc_yuva8888", "bc_yuv161616", \
-    "bc_yuva16161616", "bc_yuv422", "bc_uvy422", "bc_yuv101010", \
+    "bc_yuva16161616", "bc_ayuv16161616", "bc_yuv422", "bc_uvy422", "bc_yuv101010", \
     "bc_vyu888", "bc_uyva8888", "bc_yuv420p", "bc_yuv420pi", "bc_yuv422p", \
     "bc_yuv444p", "bc_yuv411p", "bc_yuv410p", ]
 
index 7afaab7ad780fc935e74b132f69e56070f757207..6fe12cbbe5b1bdc66e1bfb70823ef5b9d49da80d 100644 (file)
@@ -51,6 +51,7 @@ int BC_CModels::components(int colormodel)
        case BC_YUVA8888:     return 4;
        case BC_YUV161616:    return 3;
        case BC_YUVA16161616: return 4;
+       case BC_AYUV16161616: return 4;
        case BC_YUV101010:    return 3;
        case BC_RGB_FLOAT:    return 3;
        case BC_RGBA_FLOAT:   return 4;
@@ -84,6 +85,7 @@ int BC_CModels::calculate_pixelsize(int colormodel)
        case BC_YUVA8888:     return 4;
        case BC_YUV161616:    return 6;
        case BC_YUVA16161616: return 8;
+       case BC_AYUV16161616: return 8;
        case BC_YUV101010:    return 4;
        case BC_VYU888:       return 3;
        case BC_UYVA8888:     return 4;
@@ -119,6 +121,7 @@ int BC_CModels::calculate_max(int colormodel)
        case BC_YUVA8888:     return 0xff;
        case BC_YUV161616:    return 0xffff;
        case BC_YUVA16161616: return 0xffff;
+       case BC_AYUV16161616: return 0xffff;
        case BC_RGB_FLOAT:    return 1;
        case BC_RGBA_FLOAT:   return 1;
        case BC_RGB_FLOATP:   return 1;
@@ -165,6 +168,7 @@ void BC_CModels::to_text(char *string, int cmodel)
        case BC_YUVA8888:     strcpy(string, "YUVA-8 Bit");  break;
        case BC_YUV161616:    strcpy(string, "YUV-16 Bit");  break;
        case BC_YUVA16161616: strcpy(string, "YUVA-16 Bit"); break;
+       case BC_AYUV16161616: strcpy(string, "AYUV-16 Bit"); break;
        case BC_RGB_FLOAT:    strcpy(string, "RGB-FLOAT");   break;
        case BC_RGBA_FLOAT:   strcpy(string, "RGBA-FLOAT");  break;
        case BC_RGB_FLOATP:   strcpy(string, "RGB-FLOATP");  break;
@@ -187,6 +191,7 @@ int BC_CModels::from_text(const char *text)
        if(!strcasecmp(text, "YUVA-8 Bit"))  return BC_YUVA8888;
        if(!strcasecmp(text, "YUV-16 Bit"))  return BC_YUV161616;
        if(!strcasecmp(text, "YUVA-16 Bit")) return BC_YUVA16161616;
+       if(!strcasecmp(text, "AYUV-16 Bit")) return BC_AYUV16161616;
        return BC_RGB888;
 }
 
@@ -228,6 +233,7 @@ int BC_CModels::is_yuv(int colormodel)
        case BC_YUVA8888:
        case BC_YUV161616:
        case BC_YUVA16161616:
+       case BC_AYUV16161616:
        case BC_YUV422:
        case BC_UVY422:
        case BC_YUV101010:
index 302e56b135b851da15b35601a164aec53e3b0898..d079b290fe81e7da1182bbfb2121010544ec541b 100644 (file)
 // Must match colormodels.h in quicktime
 #ifndef BC_TRANSPARENCY
 
-
-#define BC_TRANSPARENCY 0
-#define BC_COMPRESSED   1
-#define BC_RGB8         2
-#define BC_RGB565       3
-#define BC_BGR565       4
-#define BC_BGR888       5
-#define BC_BGR8888      6
+enum BC_CModel {
+       BC_TRANSPARENCY = 0,
+       BC_COMPRESSED   = 1,
+       BC_RGB8         = 2,
+       BC_RGB565       = 3,
+       BC_BGR565       = 4,
+       BC_BGR888       = 5,
+       BC_BGR8888      = 6,
 // Working bitmaps are packed to simplify processing
-#define BC_RGB888       9
-#define BC_RGBA8888     10
-#define BC_ARGB8888     20
-#define BC_ABGR8888     21
-#define BC_RGB161616    11
-#define BC_RGBA16161616 12
-#define BC_YUV888       13
-#define BC_YUVA8888     14
-#define BC_YUV161616    15
-#define BC_YUVA16161616 16
-#define BC_UVY422       18
-#define BC_YUV422       19
-#define BC_A8           22
-#define BC_A16          23
-#define BC_A_FLOAT      31
-#define BC_YUV101010    24
-#define BC_VYU888       25
-#define BC_UYVA8888     26
-#define BC_RGB_FLOAT    29
-#define BC_RGBA_FLOAT   30
+       BC_RGB888       = 9,
+       BC_RGBA8888     = 10,
+       BC_ARGB8888     = 20,
+       BC_ABGR8888     = 21,
+       BC_RGB161616    = 11,
+       BC_RGBA16161616 = 12,
+       BC_YUV888       = 13,
+       BC_YUVA8888     = 14,
+       BC_YUV161616    = 15,
+       BC_YUVA16161616 = 16,
+       BC_UVY422       = 18,
+       BC_YUV422       = 19,
+       BC_A8           = 22,
+       BC_A16          = 23,
+       BC_A_FLOAT      = 31,
+       BC_YUV101010    = 24,
+       BC_VYU888       = 25,
+       BC_UYVA8888     = 26,
+       BC_RGB_FLOAT    = 29,
+       BC_RGBA_FLOAT   = 30,
 // Planar
-#define BC_YUV420P      7
-#define BC_YUV422P      8
-#define BC_YUV444P      27
-#define BC_YUV411P      17
-#define BC_YUV410P      28
-#define BC_RGB_FLOATP   32
-#define BC_RGBA_FLOATP  33
-#define BC_YUV420PI     34
+       BC_YUV420P      = 7,
+       BC_YUV422P      = 8,
+       BC_YUV444P      = 27,
+       BC_YUV411P      = 17,
+       BC_YUV410P      = 28,
+       BC_RGB_FLOATP   = 32,
+       BC_RGBA_FLOATP  = 33,
+       BC_YUV420PI     = 34,
+// only used in intermediate ffmpeg xfers
+       BC_AYUV16161616 = 35,
+};
 
 // Colormodels purely used by Quicktime are done in Quicktime.
 
index 9f50cb4d6195e2e512ec3eb662354ec71ca0d084..18499d22e17a7f285343b80efdfeca3b0c0a32e6 100644 (file)
@@ -7,8 +7,8 @@
 msgid ""
 msgstr "Project-Id-Version: Cinelerra 5.1\n"
 "Report-Msgid-Bugs-To: cinelerra@lists.cinelerra-cv.org\n"
-"POT-Creation-Date: 2016-10-18 20:15+0300\n"
-"PO-Revision-Date: 2016-10-18 23:15+0300\n"
+"POT-Creation-Date: 2016-12-26 20:15+0300\n"
+"PO-Revision-Date: 2016-12-26 22:15+0300\n"
 "Last-Translator: Igor Vladimirsky aka igor_ubuntu <sitelve@gmail.com>\n"
 "Language-Team: <sitelve@gmail.com>\n"
 "Language: ru_RU\n"
@@ -17,14 +17,14 @@ msgstr "Project-Id-Version: Cinelerra 5.1\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #: guicast//bcbutton.C:268 guicast//bcbutton.C:276 guicast//bcbutton.C:492
-#: cinelerra//preferencesthread.C:623
+#: cinelerra//preferencesthread.C:630
 msgid "OK"
 msgstr "ОК"
 
 #: guicast//bcbutton.C:324 guicast//bcbutton.C:332 guicast//bcbutton.C:340
 #: guicast//bcbutton.C:519 guicast//bcbutton.C:521 guicast//bcbutton.C:528
 #: cinelerra//confirmquit.C:107 cinelerra//confirmquit.C:109
-#: cinelerra//preferencesthread.C:651 cinelerra//preferencesthread.C:653
+#: cinelerra//preferencesthread.C:658 cinelerra//preferencesthread.C:660
 msgid "Cancel"
 msgstr "Прервать"
 
@@ -34,7 +34,7 @@ msgid "cannot connect to X server.\n"
 msgstr "cannot connect to X server.\n"
 
 #: guicast//bccapture.C:67 guicast//bcdisplay.C:60
-#: guicast//bcdisplayinfo.C:242 guicast//bcwindowbase.C:667
+#: guicast//bcdisplayinfo.C:242 guicast//bcwindowbase.C:668
 #, c-format
 msgid "'DISPLAY' environment variable not set.\n"
 msgstr "DISPLAY' environment variable not set.\n"
@@ -103,15 +103,15 @@ msgstr "Удалить файлы"
 msgid "Refresh"
 msgstr "Обновить"
 
-#: guicast//bcfilebox.C:1301 cinelerra//newfolder.C:37
+#: guicast//bcfilebox.C:1299 cinelerra//newfolder.C:37
 msgid ": New folder"
 msgstr ": Новая папка"
 
-#: guicast//bcfilebox.C:1316
+#: guicast//bcfilebox.C:1314
 msgid ": Rename"
 msgstr ": Переименование"
 
-#: guicast//bcfilebox.C:1331
+#: guicast//bcfilebox.C:1329
 msgid ": Delete"
 msgstr ": Удаление"
 
@@ -143,7 +143,7 @@ msgstr "Безымянный"
 
 #: guicast//bcpopup.C:36 guicast//bcpopup.C:54 cinelerra//canvas.C:1195
 msgid "Fullscreen"
-msgstr "Ð\9fолнÑ\8bй экран"
+msgstr "Ð\9dа Ð²ÐµÑ\81Ñ\8c экран"
 
 #: guicast//bcpopup.C:88
 msgid "Popup"
@@ -151,7 +151,7 @@ msgstr ""
 
 #: guicast//bcprogressbox.C:118
 msgid "Progress"
-msgstr ""
+msgstr "Ход выполнения"
 
 #: guicast//bcrecentlist.C:40 guicast//bcrecentlist.C:52
 msgid "Choose from recently used"
@@ -228,7 +228,7 @@ msgstr "Футы+кадры"
 msgid "Hours:Minutes:Seconds"
 msgstr "Часы:Мин:Сек."
 
-#: guicast//units.h:71 cinelerra//interfaceprefs.C:229
+#: guicast//units.h:71 cinelerra//interfaceprefs.C:231
 #: cinelerra//patchbay.C:93
 msgid "Seconds"
 msgstr "Секунды"
@@ -294,7 +294,7 @@ msgid "Server:"
 msgstr "Сервер:"
 
 #: cinelerra//adeviceprefs.C:442 cinelerra//adeviceprefs.C:493
-#: cinelerra//interfaceprefs.C:204 cinelerra//performanceprefs.C:202
+#: cinelerra//interfaceprefs.C:206 cinelerra//performanceprefs.C:209
 #: cinelerra//vdeviceprefs.C:268
 msgid "Port:"
 msgstr "Порт:"
@@ -323,7 +323,7 @@ msgstr "dev:"
 
 #: cinelerra//adeviceprefs.C:578 cinelerra//adeviceprefs.C:597
 msgid "Follow audio config"
-msgstr ""
+msgstr "Автообновление конфигурации аудио"
 
 #: cinelerra//amodule.C:499
 #, c-format
@@ -624,7 +624,7 @@ msgstr "Пауза"
 
 #: cinelerra//avc1394transport.C:337
 msgid "Fast Forward ( Enter )"
-msgstr "Перемотка вперед ( Enter )"
+msgstr "Перемотка вперёд ( Enter )"
 
 #: cinelerra//avc1394transport.C:365 cinelerra//playtransport.C:524
 msgid "Jump to end ( End )"
@@ -660,7 +660,7 @@ msgstr "Медиаданные"
 
 #: cinelerra//awindowgui.C:78
 msgid "User"
-msgstr ""
+msgstr "Пользователь"
 
 #: cinelerra//awindowgui.C:422
 msgid ": Resources"
@@ -822,13 +822,13 @@ msgstr "Невременной"
 msgid "Timed"
 msgstr "Временной"
 
-#: cinelerra//batch.C:141 cinelerra//batchrender.C:939
-#: cinelerra//ffmpeg.C:2167 cinelerra//ffmpeg.C:2277 cinelerra//file.C:1359
-#: cinelerra//file.C:1387 cinelerra//interfaceprefs.C:871
+#: cinelerra//batch.C:141 cinelerra//batchrender.C:958
+#: cinelerra//ffmpeg.C:2181 cinelerra//ffmpeg.C:2291 cinelerra//file.C:1349
+#: cinelerra//file.C:1377 cinelerra//interfaceprefs.C:886
 #: cinelerra//interlacemodes.h:34 cinelerra//loadmode.C:93
-#: cinelerra//new.C:857 cinelerra//record.C:721 cinelerra//vdeviceprefs.C:638
-#: plugins/motion2point/motionwindow.C:801
-#: plugins/motion2point/motionwindow.C:872 plugins/timefront/timefront.C:419
+#: cinelerra//new.C:857 cinelerra//record.C:723 cinelerra//vdeviceprefs.C:638
+#: plugins/motion2point/motionwindow.C:796
+#: plugins/motion2point/motionwindow.C:867 plugins/timefront/timefront.C:419
 msgid "Unknown"
 msgstr "Неизвестно"
 
@@ -858,18 +858,18 @@ msgstr "Пакетный рендеринг..."
 msgid "Shift-B"
 msgstr "Shift-B"
 
-#: cinelerra//batchrender.C:439 cinelerra//bdcreate.C:229
-#: cinelerra//dvdcreate.C:285
+#: cinelerra//batchrender.C:436 cinelerra//bdcreate.C:231
+#: cinelerra//dvdcreate.C:282
 #, c-format
 msgid "Unable to save: %s"
 msgstr "Невозможно сохранить: %s"
 
-#: cinelerra//batchrender.C:509
+#: cinelerra//batchrender.C:506
 #, c-format
 msgid "EDL %s not found.\n"
 msgstr "EDL %s не найден.\n"
 
-#: cinelerra//batchrender.C:511 cinelerra//file.C:275
+#: cinelerra//batchrender.C:508 cinelerra//file.C:275
 #: cinelerra//formatcheck.C:51 cinelerra//formatcheck.C:62
 #: cinelerra//formatcheck.C:71 cinelerra//menueffects.C:148
 #: cinelerra//menueffects.C:159 cinelerra//menueffects.C:259
@@ -883,237 +883,244 @@ msgstr "EDL %s не найден.\n"
 msgid ": Error"
 msgstr ": Ошибка"
 
-#: cinelerra//batchrender.C:524 cinelerra//batchrender.C:526
+#: cinelerra//batchrender.C:521 cinelerra//batchrender.C:523
 #, c-format
 msgid "%d job EDLs do not match session edl\n"
 msgstr ""
 
-#: cinelerra//batchrender.C:527
+#: cinelerra//batchrender.C:524
 #, c-format
 msgid "press cancel to abandon batch render"
 msgstr ""
 
-#: cinelerra//batchrender.C:739
+#: cinelerra//batchrender.C:754
 msgid ": Batch Render"
 msgstr ": Пакетный рендеринг"
 
-#: cinelerra//batchrender.C:766
+#: cinelerra//batchrender.C:781
 msgid "Output path:"
 msgstr "Путь выведения в файл:"
 
-#: cinelerra//batchrender.C:775
+#: cinelerra//batchrender.C:790
 msgid "EDL Path:"
 msgstr "Путь к EDL:"
 
-#: cinelerra//batchrender.C:784
+#: cinelerra//batchrender.C:799
 msgid "Input EDL"
 msgstr "Импорт EDL"
 
-#: cinelerra//batchrender.C:784
+#: cinelerra//batchrender.C:799
 msgid "Select an EDL to load:"
 msgstr "Выберите EDL для загрузки:"
 
-#: cinelerra//batchrender.C:806
+#: cinelerra//batchrender.C:822
 msgid "Batches to render:"
 msgstr "Пакеты для рендеринга:"
 
-#: cinelerra//batchrender.C:815 cinelerra//batchrender.C:1400
+#: cinelerra//batchrender.C:833 cinelerra//batchrender.C:1404
 #: cinelerra//recordbatches.C:538
 msgid "Stop"
 msgstr "Стоп"
 
-#: cinelerra//batchrender.C:817 cinelerra//batchrender.C:1432
-#: cinelerra//tipwindow.C:279
+#: cinelerra//batchrender.C:835 cinelerra//batchrender.C:1436
+#: cinelerra//tipwindow.C:276
 msgid "Close"
 msgstr "Закрыть"
 
-#: cinelerra//batchrender.C:1051 cinelerra//new.C:57 cinelerra//new.C:139
-#: cinelerra//recordbatches.C:489
+#: cinelerra//batchrender.C:1070 cinelerra//recordbatches.C:489
 msgid "New"
 msgstr "Новый"
 
-#: cinelerra//batchrender.C:1065 cinelerra//channeledit.C:587
+#: cinelerra//batchrender.C:1084 cinelerra//channeledit.C:587
 #: cinelerra//cwindowtool.C:1604 cinelerra//dbwindow.C:240
 #: cinelerra//recordbatches.C:507 plugins/piano/piano.C:841
 #: plugins/synthesizer/synthesizer.C:1377
 msgid "Delete"
 msgstr "Удалить"
 
-#: cinelerra//batchrender.C:1081
-msgid "Save List"
-msgstr "Сохранить список"
+#: cinelerra//batchrender.C:1100
+msgid "Save Jobs"
+msgstr ""
 
-#: cinelerra//batchrender.C:1084
+#: cinelerra//batchrender.C:1103
 msgid "Save a Batch Render List"
 msgstr "Сохранить список пакетного рендеринга"
 
-#: cinelerra//batchrender.C:1129
+#: cinelerra//batchrender.C:1146
 msgid "Save Batch Render List"
 msgstr "Сохранение списка пакетного рендеринга"
 
-#: cinelerra//batchrender.C:1130
+#: cinelerra//batchrender.C:1147
 msgid "Enter a Batch Render filename to save as:"
 msgstr "Введите имя файла для сохранения списка пак. рендеринга:"
 
-#: cinelerra//batchrender.C:1167
-msgid "Load List"
-msgstr "Загрузить список"
+#: cinelerra//batchrender.C:1180
+msgid "Load Jobs"
+msgstr ""
 
-#: cinelerra//batchrender.C:1171
+#: cinelerra//batchrender.C:1184
 msgid "Load a previously saved Batch Render List"
 msgstr "Загрузить ранее сохранённый\n"
 "список пакетного рендеринга"
 
-#: cinelerra//batchrender.C:1216
+#: cinelerra//batchrender.C:1224
 msgid "Load Batch Render List"
 msgstr "Загрузка списка пакетного рендеринга"
 
-#: cinelerra//batchrender.C:1217
+#: cinelerra//batchrender.C:1225
 msgid "Enter a Batch Render filename to load from:"
 msgstr "Введите имя загружаемого файла списка пакет. рендеринга:"
 
-#: cinelerra//batchrender.C:1252
+#: cinelerra//batchrender.C:1256
 msgid "Use Current EDL"
 msgstr "Использ-ть текущий EDL"
 
-#: cinelerra//batchrender.C:1266
+#: cinelerra//batchrender.C:1270
 msgid "Save to EDL Path"
 msgstr ""
 
-#: cinelerra//batchrender.C:1384 cinelerra//recordbatches.C:523
+#: cinelerra//batchrender.C:1388 cinelerra//recordbatches.C:523
 msgid "Start"
 msgstr "Старт"
 
-#: cinelerra//batchrender.C:1415
+#: cinelerra//batchrender.C:1419
 msgid "warn if jobs/session mismatched"
 msgstr ""
 
-#: cinelerra//bdcreate.C:76
+#: cinelerra//bdcreate.C:81
 msgid "BD Render..."
 msgstr "BD-рендеринг..."
 
-#: cinelerra//bdcreate.C:76
+#: cinelerra//bdcreate.C:81
 msgid "Ctrl-d"
 msgstr "Ctrl-d"
 
-#: cinelerra//bdcreate.C:125 cinelerra//dvdcreate.C:134
+#: cinelerra//bdcreate.C:129 cinelerra//dvdcreate.C:134
 #, c-format
 msgid "No EDL/Session"
 msgstr ""
 
-#: cinelerra//bdcreate.C:134 cinelerra//dvdcreate.C:143
+#: cinelerra//bdcreate.C:138 cinelerra//dvdcreate.C:143
 #, c-format
 msgid "No content: %s"
 msgstr ""
 
-#: cinelerra//bdcreate.C:145 cinelerra//dvdcreate.C:154
+#: cinelerra//bdcreate.C:146 cinelerra//dvdcreate.C:151
 #, c-format
 msgid ""
 "Unable to create directory: %s\n"
 "-- %s"
 msgstr ""
 
-#: cinelerra//bdcreate.C:171 cinelerra//dvdcreate.C:180
+#: cinelerra//bdcreate.C:173 cinelerra//dvdcreate.C:177
 #, c-format
 msgid ""
 "Unable to save: %s\n"
 "-- %s"
 msgstr ""
 
-#: cinelerra//bdcreate.C:317 cinelerra//bdcreate.C:838
-#: cinelerra//dvdcreate.C:408 cinelerra//dvdcreate.C:962
+#: cinelerra//bdcreate.C:333 cinelerra//bdcreate.C:877
+#: cinelerra//dvdcreate.C:406 cinelerra//dvdcreate.C:971
 #: plugins/scaleratio/scaleratio.C:96
 msgid "Scale Ratio"
 msgstr ""
 
-#: cinelerra//bdcreate.C:350
+#: cinelerra//bdcreate.C:369
 msgid "create bd"
+msgstr "создание BD"
+
+#: cinelerra//bdcreate.C:434
+msgid "Must be root to mount UDFS images\n"
 msgstr ""
 
-#: cinelerra//bdcreate.C:417 cinelerra//dvdcreate.C:524
+#: cinelerra//bdcreate.C:444 cinelerra//dvdcreate.C:525
 msgid "end setup, start batch render"
 msgstr ""
 
-#: cinelerra//bdcreate.C:494 cinelerra//dvdcreate.C:602
+#: cinelerra//bdcreate.C:521 cinelerra//dvdcreate.C:603
 msgid "disk space: "
 msgstr "Диск. простр-во:"
 
-#: cinelerra//bdcreate.C:529 cinelerra//bdcreate.C:835
-#: cinelerra//dvdcreate.C:637 cinelerra//dvdcreate.C:959
+#: cinelerra//bdcreate.C:563 cinelerra//bdcreate.C:874
+#: cinelerra//dvdcreate.C:646 cinelerra//dvdcreate.C:968
 #: plugins/deinterlace/deinterlace.C:95
 #: plugins/denoisemjpeg/denoisemjpeg.C:248
 msgid "Deinterlace"
 msgstr "Деинтерлейс"
 
-#: cinelerra//bdcreate.C:549 cinelerra//dvdcreate.C:657 plugins/ivtc/ivtc.C:76
+#: cinelerra//bdcreate.C:583 cinelerra//dvdcreate.C:666 plugins/ivtc/ivtc.C:76
 msgid "Inverse Telecine"
 msgstr "Обратный телесин"
 
-#: cinelerra//bdcreate.C:569 cinelerra//dvdcreate.C:677
+#: cinelerra//bdcreate.C:603 cinelerra//dvdcreate.C:686
 msgid "Resize Tracks"
 msgstr ""
 
-#: cinelerra//bdcreate.C:580 cinelerra//dvdcreate.C:688
+#: cinelerra//bdcreate.C:614 cinelerra//dvdcreate.C:697
 #: cinelerra//scopewindow.C:1331 plugins/colorbalance/colorbalance.C:493
 #: plugins/gamma/gamma.C:438 plugins/histogram/histogram.C:99
 #: plugins/interpolate/interpolate.C:256
 msgid "Histogram"
 msgstr "Гистограмма"
 
-#: cinelerra//bdcreate.C:590 cinelerra//dvdcreate.C:698
+#: cinelerra//bdcreate.C:624 cinelerra//dvdcreate.C:707
 msgid "Chapters at Labels"
 msgstr ""
 
-#: cinelerra//bdcreate.C:600 cinelerra//dvdcreate.C:708
+#: cinelerra//bdcreate.C:634 cinelerra//dvdcreate.C:717
 msgid "Audio 5.1"
 msgstr "Аудио 5.1"
 
-#: cinelerra//bdcreate.C:611
+#: cinelerra//bdcreate.C:645
 msgid ": Create BD"
-msgstr ""
+msgstr ": Создание BD (Blu-ray Disc)"
 
-#: cinelerra//bdcreate.C:643 cinelerra//channeledit.C:1032
-#: cinelerra//clipedit.C:188 cinelerra//dvdcreate.C:763
+#: cinelerra//bdcreate.C:678 cinelerra//channeledit.C:1032
+#: cinelerra//clipedit.C:188 cinelerra//dvdcreate.C:772
 msgid "Title:"
 msgstr "Имя:"
 
-#: cinelerra//bdcreate.C:649 cinelerra//dvdcreate.C:769
+#: cinelerra//bdcreate.C:684 cinelerra//dvdcreate.C:778
 msgid "Work path:"
 msgstr "Путь к раб. каталогу:"
 
-#: cinelerra//bdcreate.C:656 cinelerra//dvdcreate.C:776
+#: cinelerra//bdcreate.C:691 cinelerra//dvdcreate.C:785
 msgid "Work path"
 msgstr "Путь к рабочему каталогу"
 
-#: cinelerra//bdcreate.C:656 cinelerra//dvdcreate.C:776
+#: cinelerra//bdcreate.C:691 cinelerra//dvdcreate.C:785
 msgid "Select a Work directory:"
 msgstr "Выберите рабочий каталог:"
 
-#: cinelerra//bdcreate.C:662 cinelerra//dvdcreate.C:782
+#: cinelerra//bdcreate.C:697 cinelerra//dvdcreate.C:791
 msgid "Media:"
 msgstr "Медиа:"
 
-#: cinelerra//bdcreate.C:673 cinelerra//dvdcreate.C:793
+#: cinelerra//bdcreate.C:708 cinelerra//dvdcreate.C:802
 #: cinelerra//recordgui.C:223
 msgid "Format:"
 msgstr "Формат:"
 
-#: cinelerra//bdcreate.C:679 cinelerra//dvdcreate.C:799
+#: cinelerra//bdcreate.C:715 cinelerra//dvdcreate.C:808
 #: cinelerra//resizetrackthread.C:128 plugins/pitch/pitch.C:418
 #: plugins/scale/scalewin.C:50
 msgid "Scale:"
 msgstr "Масштаб:"
 
-#: cinelerra//bdcreate.C:837 cinelerra//dvdcreate.C:961
+#: cinelerra//bdcreate.C:876 cinelerra//dvdcreate.C:970
 #: plugins/photoscale/photoscale.C:291
 msgid "Auto Scale"
 msgstr ""
 
-#: cinelerra//bdcreate.C:839 cinelerra//dvdcreate.C:963
+#: cinelerra//bdcreate.C:878 cinelerra//dvdcreate.C:972
 #: plugins/scale/scale.C:90
 msgid "Scale"
 msgstr "Масштаб"
 
+#: cinelerra//bdcreate.C:938
+msgid "* non-standard format"
+msgstr ""
+
 #: cinelerra//brender.C:153
 msgid "BRender::fork_background: can't open /proc/self/cmdline.\n"
 msgstr "BRender::fork_background: can't open /proc/self/cmdline.\n"
@@ -1138,7 +1145,7 @@ msgstr "В окне"
 
 #: cinelerra//canvas.C:1069
 msgid "Zoom 25%"
-msgstr "Масштаб 25%"
+msgstr "Zoom 25%"
 #msgstr "Масштаб 25%"
 
 #: cinelerra//canvas.C:1070
@@ -1156,7 +1163,7 @@ msgid "Zoom 75%"
 msgstr "Масштаб 75%"
 #msgstr "Масштаб 75%"
 
-#: cinelerra//canvas.C:1073 cinelerra//recordmonitor.C:858
+#: cinelerra//canvas.C:1073 cinelerra//recordmonitor.C:851
 msgid "Zoom 100%"
 msgstr "Масштаб 100%"
 #msgstr "Масштаб 100%"
@@ -1183,7 +1190,7 @@ msgstr "Масштаб 400%"
 
 #: cinelerra//canvas.C:1100
 msgid "Zoom Auto"
-msgstr "Ð\90вÑ\82о Ð¼Ð°Ñ\81Ñ\88Ñ\82аб"
+msgstr "Ð\9cаÑ\81Ñ\88Ñ\82аб  Ð\90вÑ\82о"
 
 #: cinelerra//canvas.C:1130
 msgid "Reset camera"
@@ -1349,12 +1356,12 @@ msgstr "Вход:"
 
 #: cinelerra//channeledit.C:784 cinelerra//commercials.C:700
 msgid "Scanning"
-msgstr ""
+msgstr "Сканирование"
 
 #: cinelerra//channeledit.C:799
 #, c-format
 msgid "Scanning %s"
-msgstr ""
+msgstr "Сканирование %s"
 
 #: cinelerra//channeledit.C:996
 msgid ": Edit Channel"
@@ -1451,7 +1458,7 @@ msgstr "Выкл. систему по завершении\n"
 
 #: cinelerra//channelinfo.C:1023
 msgid "Find"
-msgstr ""
+msgstr "Поиск"
 
 #: cinelerra//channelinfo.C:1026
 msgid "search event titles/info"
@@ -1572,7 +1579,7 @@ msgstr "Канал"
 
 #: cinelerra//channelpicker.C:560
 msgid "Edit picture"
-msgstr ""
+msgstr "Правка изображения"
 
 #: cinelerra//channelpicker.C:589
 msgid "Edit channels"
@@ -2240,23 +2247,23 @@ msgstr ""
 msgid "config geom %dx%d != %dx%d best_geom\n"
 msgstr ""
 
-#: cinelerra//dvdcreate.C:84
+#: cinelerra//dvdcreate.C:85
 msgid "DVD Render..."
 msgstr "DVD-рендеринг..."
 
-#: cinelerra//dvdcreate.C:84
+#: cinelerra//dvdcreate.C:85
 msgid "Shift-D"
 msgstr "Shift-D"
 
 #: cinelerra//dvdcreate.C:442
 msgid "create dvd"
-msgstr ""
+msgstr "создание DVD"
 
-#: cinelerra//dvdcreate.C:718
+#: cinelerra//dvdcreate.C:727
 msgid "Use FFMPEG"
 msgstr "Использ-ть FFmpeg"
 
-#: cinelerra//dvdcreate.C:731
+#: cinelerra//dvdcreate.C:740
 msgid ": Create DVD"
 msgstr ": Создание DVD"
 
@@ -2427,12 +2434,12 @@ msgstr ": Задать название"
 msgid "User title"
 msgstr "Собственное название"
 
-#: cinelerra//edlsession.C:253 plugins/crossfade/crossfade.C:46
+#: cinelerra//edlsession.C:254 plugins/crossfade/crossfade.C:46
 #, c-format
 msgid "Crossfade"
 msgstr "Перекрестное затухание"
 
-#: cinelerra//edlsession.C:255 plugins/dissolve/dissolve.C:50
+#: cinelerra//edlsession.C:256 plugins/dissolve/dissolve.C:50
 #, c-format
 msgid "Dissolve"
 msgstr "Наплыв"
@@ -2448,7 +2455,7 @@ msgstr "Экспорт EDL..."
 
 #: cinelerra//exportedl.C:356
 msgid "No."
-msgstr "Номер"
+msgstr ""
 
 #: cinelerra//exportedl.C:357
 msgid "Track name"
@@ -2462,19 +2469,19 @@ msgstr ": Экспорт EDL"
 msgid "Select a file to export to:"
 msgstr "Введите имя для экспорта EDL-файла:"
 
-#: cinelerra//exportedl.C:415 cinelerra//formattools.C:192
+#: cinelerra//exportedl.C:410 cinelerra//formattools.C:192
 msgid "Output to file"
 msgstr "Выведение в файл"
 
-#: cinelerra//exportedl.C:416 cinelerra//formattools.C:192
+#: cinelerra//exportedl.C:410 cinelerra//formattools.C:192
 msgid "Select a file to write to:"
 msgstr "Введите имя для результирующего файла:"
 
-#: cinelerra//exportedl.C:421
+#: cinelerra//exportedl.C:414
 msgid "Select track to be exported:"
 msgstr "Выберите экспортируемую дорожку:"
 
-#: cinelerra//exportedl.C:451
+#: cinelerra//exportedl.C:444
 msgid "Currently only CMX 3600 format is supported"
 msgstr "Поддерживается только формат CMX 3600"
 
@@ -2511,127 +2518,127 @@ msgstr "can't clone input file\n"
 msgid "av_buffersrc_add_frame_flags failed\n"
 msgstr "av_buffersrc_add_frame_flags failed\n"
 
-#: cinelerra//ffmpeg.C:1293
+#: cinelerra//ffmpeg.C:1306
 #, c-format
 msgid "options open failed %s\n"
 msgstr "options open failed %s\n"
 
-#: cinelerra//ffmpeg.C:1297
+#: cinelerra//ffmpeg.C:1310
 #, c-format
 msgid "format/codec not found %s\n"
 msgstr "format/codec not found %s\n"
 
-#: cinelerra//ffmpeg.C:1349
+#: cinelerra//ffmpeg.C:1362
 #, c-format
 msgid "err reading %s: line %d\n"
 msgstr "err reading %s: line %d\n"
 
-#: cinelerra//ffmpeg.C:1432
+#: cinelerra//ffmpeg.C:1445
 #, c-format
 msgid "vid%d (%d),  id 0x%06x:\n"
 msgstr "vid%d (%d),  id 0x%06x:\n"
 
-#: cinelerra//ffmpeg.C:1454
+#: cinelerra//ffmpeg.C:1467
 #, c-format
 msgid "aud%d (%d),  id 0x%06x:\n"
 msgstr "aud%d (%d),  id 0x%06x:\n"
 
-#: cinelerra//ffmpeg.C:1542
+#: cinelerra//ffmpeg.C:1555
 #, c-format
 msgid "can't stat file: %s\n"
 msgstr "can't stat file: %s\n"
 
-#: cinelerra//ffmpeg.C:1634
+#: cinelerra//ffmpeg.C:1647
 #, c-format
 msgid "bad file path: %s\n"
 msgstr "bad file path: %s\n"
 
-#: cinelerra//ffmpeg.C:1640
+#: cinelerra//ffmpeg.C:1653
 #, c-format
 msgid "bad file format: %s\n"
 msgstr "bad file format: %s\n"
 
-#: cinelerra//ffmpeg.C:1644
+#: cinelerra//ffmpeg.C:1657
 #, c-format
 msgid "mismatch audio/video file format: %s\n"
 msgstr "mismatch audio/video file format: %s\n"
 
-#: cinelerra//ffmpeg.C:1651
+#: cinelerra//ffmpeg.C:1664
 #, c-format
 msgid "failed: %s\n"
 msgstr "failed: %s\n"
 
-#: cinelerra//ffmpeg.C:1676
+#: cinelerra//ffmpeg.C:1689
 #, c-format
 msgid "get_encoder failed %s:%s\n"
 msgstr "get_encoder failed %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1692
+#: cinelerra//ffmpeg.C:1705
 #, c-format
 msgid "cant find codec %s:%s\n"
 msgstr "cant find codec %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1698
+#: cinelerra//ffmpeg.C:1711
 #, c-format
 msgid "unknown codec %s:%s\n"
 msgstr "unknown codec %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1705
+#: cinelerra//ffmpeg.C:1718
 #, c-format
 msgid "cant create stream %s:%s\n"
 msgstr "cant create stream %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1714
+#: cinelerra//ffmpeg.C:1727
 #, c-format
 msgid "duplicate audio %s:%s\n"
 msgstr "duplicate audio %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1720
+#: cinelerra//ffmpeg.C:1733
 #, c-format
 msgid "bad audio options %s:%s\n"
 msgstr "bad audio options %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1741
+#: cinelerra//ffmpeg.C:1754
 #, c-format
 msgid "check_sample_rate failed %s\n"
 msgstr "check_sample_rate failed %s\n"
 
-#: cinelerra//ffmpeg.C:1757
+#: cinelerra//ffmpeg.C:1770
 #, c-format
 msgid "duplicate video %s:%s\n"
 msgstr "duplicate video %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1763
+#: cinelerra//ffmpeg.C:1776
 #, c-format
 msgid "bad video options %s:%s\n"
 msgstr "bad video options %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1800
+#: cinelerra//ffmpeg.C:1813
 #, c-format
 msgid "check_frame_rate failed %s\n"
 msgstr "check_frame_rate failed %s\n"
 
-#: cinelerra//ffmpeg.C:1809
+#: cinelerra//ffmpeg.C:1822
 #, c-format
 msgid "not audio/video, %s:%s\n"
 msgstr "not audio/video, %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1820
+#: cinelerra//ffmpeg.C:1833
 #, c-format
 msgid "open failed %s:%s\n"
 msgstr "open failed %s:%s\n"
 
-#: cinelerra//ffmpeg.C:2455
+#: cinelerra//ffmpeg.C:2482
 #, c-format
 msgid "av_frame_alloc failed\n"
 msgstr "av_frame_alloc failed\n"
 
-#: cinelerra//ffmpeg.C:2470
+#: cinelerra//ffmpeg.C:2497
 #, c-format
 msgid "codec open failed\n"
 msgstr "codec open failed\n"
 
-#: cinelerra//ffmpeg.C:2483
+#: cinelerra//ffmpeg.C:2510
 msgid "over 100 read_frame errs\n"
 msgstr "over 100 read_frame errs\n"
 
@@ -2670,7 +2677,7 @@ msgstr "Error while writing samples. \n"
 "%m\n"
 
 #: cinelerra//fileac3.C:337 cinelerra//filedv.C:984 cinelerra//fileflac.C:363
-#: cinelerra//filempeg.C:1723 cinelerra//fileogg.C:2036
+#: cinelerra//filempeg.C:1723 cinelerra//fileogg.C:2016
 #: cinelerra//filesndfile.C:374 cinelerra//filevorbis.C:362
 msgid ": Audio Compression"
 msgstr ": Сжатие аудио"
@@ -2687,17 +2694,17 @@ msgstr "Этот формат не поддерживает аудио."
 msgid "This format doesn't support video."
 msgstr "Этот формат не поддерживает видео."
 
-#: cinelerra//file.C:1394 cinelerra//file.C:1400 cinelerra//fileformat.C:166
+#: cinelerra//file.C:1384 cinelerra//file.C:1390 cinelerra//fileformat.C:166
 #: cinelerra//filesndfile.C:457
 msgid "Lo Hi"
 msgstr "Lo Hi"
 
-#: cinelerra//file.C:1401 cinelerra//fileformat.C:180
+#: cinelerra//file.C:1391 cinelerra//fileformat.C:180
 #: cinelerra//filesndfile.C:442
 msgid "Hi Lo"
 msgstr "Hi Lo"
 
-#: cinelerra//file.C:1608
+#: cinelerra//file.C:1598
 msgid "UNKNOWN"
 msgstr "Неизвестно"
 
@@ -2787,7 +2794,7 @@ msgstr "Нет опций аудио для этого формата"
 
 #: cinelerra//filedv.C:1017 cinelerra//fileexr.C:578 cinelerra//filejpeg.C:300
 #: cinelerra//filejpeglist.C:152 cinelerra//filempeg.C:1915
-#: cinelerra//fileogg.C:2163 cinelerra//filepng.C:407 cinelerra//filetga.C:902
+#: cinelerra//fileogg.C:2143 cinelerra//filepng.C:407 cinelerra//filetga.C:902
 #: cinelerra//filetiff.C:588
 msgid ": Video Compression"
 msgstr ": Сжатие видео"
@@ -2834,7 +2841,7 @@ msgid "Preset:"
 msgstr "Предустановки"
 
 #: cinelerra//fileffmpeg.C:407 cinelerra//fileffmpeg.C:556
-#: cinelerra//filempeg.C:2027 cinelerra//fileogg.C:2186
+#: cinelerra//filempeg.C:2027 cinelerra//fileogg.C:2166
 msgid "Bitrate:"
 msgstr "Битрейт:"
 
@@ -2851,7 +2858,7 @@ msgid ": Video Preset"
 msgstr ": Предустановки видео"
 
 #: cinelerra//fileffmpeg.C:560 cinelerra//filejpeg.C:318
-#: cinelerra//filejpeglist.C:170 cinelerra//fileogg.C:2191
+#: cinelerra//filejpeglist.C:170 cinelerra//fileogg.C:2171
 #: cinelerra//formatwindow.C:108
 msgid "Quality:"
 msgstr "Качество:"
@@ -2867,7 +2874,7 @@ msgstr "Создание %s\n"
 
 #: cinelerra//fileffmpeg.C:744
 msgid "option"
-msgstr ""
+msgstr "Опция"
 
 #: cinelerra//fileffmpeg.C:744 plugins/bluebanana/bluebananawindow.C:2005
 msgid "value"
@@ -2879,8 +2886,8 @@ msgstr "кодек"
 
 #: cinelerra//fileffmpeg.C:944 cinelerra//fileffmpeg.C:1343
 #: cinelerra//pluginfclient.C:208 cinelerra//pluginfclient.C:471
-#: cinelerra//pluginfclient.C:497 cinelerra//preferencesthread.C:599
-#: cinelerra//preferencesthread.C:601 cinelerra//setformat.C:891
+#: cinelerra//pluginfclient.C:497 cinelerra//preferencesthread.C:606
+#: cinelerra//preferencesthread.C:608 cinelerra//setformat.C:891
 msgid "Apply"
 msgstr "Применить"
 
@@ -3419,7 +3426,7 @@ msgstr "Удаление шума"
 
 #: cinelerra//filempeg.C:2062
 msgid "Sequence start codes in every GOP"
-msgstr ""
+msgstr "Старт-коды заголовков последовательности перед каждой GOP"
 
 #: cinelerra//filempeg.C:2095 cinelerra//filempeg.C:2098
 msgid "MPEG-1"
@@ -3485,7 +3492,7 @@ msgstr "ATSC 720p"
 msgid "ATSC 1080i"
 msgstr "ATSC 1080i"
 
-#: cinelerra//filempeg.C:2197 cinelerra//fileogg.C:2259
+#: cinelerra//filempeg.C:2197 cinelerra//fileogg.C:2239
 #: cinelerra//filevorbis.C:424
 msgid "Fixed bitrate"
 msgstr "Фикс. битрейт"
@@ -3559,7 +3566,7 @@ msgstr "FileOGG: End of file while searching for codec headers.\n"
 #: cinelerra//fileogg.C:639
 #, c-format
 msgid "Frame content is %dx%d with offset (%d,%d), We do not support this yet. You will get black border.\n"
-msgstr "СодеÑ\80жимое ÐºÐ°Ð´Ñ\80а - %dx%d Ñ\81о Ñ\81двигом (%d,%d).\n"
+msgstr "СодеÑ\80жимое ÐºÐ°Ð´Ñ\80а - %dx%d Ñ\81о Ñ\81меÑ\89ением (%d,%d).\n"
 "Мы пока не поддерживаем это. Вы получите чёрные края.\n"
 
 #: cinelerra//fileogg.C:659
@@ -3581,8 +3588,8 @@ msgstr "FileOGG: Illegal seek beyond end of samples\n"
 msgid "FileOGG: Seeking to sample's page failed\n"
 msgstr "FileOGG: Seeking to sample's page failed\n"
 
-#: cinelerra//fileogg.C:1095 cinelerra//fileogg.C:1299
-#: cinelerra//fileogg.C:1494
+#: cinelerra//fileogg.C:1095 cinelerra//fileogg.C:1274
+#: cinelerra//fileogg.C:1469
 msgid "FileOGG: Cannot find next page while seeking\n"
 msgstr "FileOGG: Cannot find next page while seeking\n"
 
@@ -3604,111 +3611,111 @@ msgid "FileOGG: ogg_sync_and_get_next_page failed\n"
 msgstr "FileOGG: ogg_sync_and_get_next_page failed\n"
 
 #: cinelerra//fileogg.C:1243
-msgid "FileOGG: Seeking to frame failed\n"
-msgstr "FileOGG: Seeking to frame failed\n"
+msgid "FileOGG: seek to frame failed\n"
+msgstr "FileOGG: seek to frame failed\n"
 
-#: cinelerra//fileogg.C:1279
-msgid "FileOGG: Seeking to keyframe failed\n"
-msgstr "FileOGG: Seeking to keyframe failed\n"
+#: cinelerra//fileogg.C:1255
+msgid "FileOGG: seek to iframe failed\n"
+msgstr "FileOGG: seek to iframe failed\n"
 
-#: cinelerra//fileogg.C:1463
+#: cinelerra//fileogg.C:1438
 #, c-format
 msgid "FileOGG:: Error while seeking to frame's keyframe (frame: %jd, keyframe: %jd)\n"
 msgstr "FileOGG:: Error while seeking to frame's keyframe (frame: %jd, keyframe: %jd)\n"
 
-#: cinelerra//fileogg.C:1474
+#: cinelerra//fileogg.C:1448
 #, c-format
 msgid "FileOGG:: Error while seeking to keyframe, wrong keyframe number (frame: %jd, keyframe: %jd)\n"
 msgstr "FileOGG:: Error while seeking to keyframe, wrong keyframe number (frame: %jd, keyframe: %jd)\n"
 
-#: cinelerra//fileogg.C:1502
+#: cinelerra//fileogg.C:1479
 msgid "FileOGG: Expecting keyframe, but didn't get it\n"
 msgstr "FileOGG: Expecting keyframe, but didn't get it\n"
 
-#: cinelerra//fileogg.C:1518
+#: cinelerra//fileogg.C:1495
 #, c-format
 msgid "FileOGG: theora_decode_YUVout failed with code %i\n"
 msgstr "FileOGG: theora_decode_YUVout failed with code %i\n"
 
-#: cinelerra//fileogg.C:1580
+#: cinelerra//fileogg.C:1557
 msgid "FileOGG: Cannot find next page while trying to decode more samples\n"
 msgstr "FileOGG: Cannot find next page while trying to decode more samples\n"
 
-#: cinelerra//fileogg.C:1620
+#: cinelerra//fileogg.C:1600
 #, c-format
 msgid "max samples=%d\n"
 msgstr ""
 
-#: cinelerra//fileogg.C:1681
+#: cinelerra//fileogg.C:1661
 msgid "FileOGG: Error at finding out what to read from file\n"
 msgstr "FileOGG: Error at finding out what to read from file\n"
 
-#: cinelerra//fileogg.C:1703
+#: cinelerra//fileogg.C:1683
 msgid "Error while seeking to sample\n"
 msgstr "Error while seeking to sample\n"
 
-#: cinelerra//fileogg.C:1753
+#: cinelerra//fileogg.C:1733
 #, c-format
 msgid "FileOGG:: History not aligned properly \n"
 msgstr "FileOGG:: History not aligned properly \n"
 
-#: cinelerra//fileogg.C:1754
+#: cinelerra//fileogg.C:1734
 #, c-format
 msgid "\tnext_sample_position: %jd, length: %jd\n"
 msgstr "\tnext_sample_position: %jd, length: %jd\n"
 
-#: cinelerra//fileogg.C:1755
+#: cinelerra//fileogg.C:1735
 #, c-format
 msgid "\thistory_start: %jd, length: %jd\n"
 msgstr "\thistory_start: %jd, length: %jd\n"
 
-#: cinelerra//fileogg.C:1774
+#: cinelerra//fileogg.C:1754
 msgid "error writing audio page\n"
 msgstr "error writing audio page\n"
 
-#: cinelerra//fileogg.C:1788
+#: cinelerra//fileogg.C:1768
 msgid "error writing video page\n"
 msgstr "error writing video page\n"
 
-#: cinelerra//fileogg.C:1962
+#: cinelerra//fileogg.C:1942
 #, c-format
 msgid "FileOGG: theora_encode_YUVin failed with code %i\n"
 msgstr "FileOGG: theora_encode_YUVin failed with code %i\n"
 
-#: cinelerra//fileogg.C:2065 cinelerra//filevorbis.C:393
+#: cinelerra//fileogg.C:2045 cinelerra//filevorbis.C:393
 msgid "Min bitrate:"
 msgstr "Мин. битрейт:"
 
-#: cinelerra//fileogg.C:2069 cinelerra//filevorbis.C:397
+#: cinelerra//fileogg.C:2049 cinelerra//filevorbis.C:397
 msgid "Avg bitrate:"
 msgstr "Усред. битрейт:"
 
-#: cinelerra//fileogg.C:2074 cinelerra//filevorbis.C:402
+#: cinelerra//fileogg.C:2054 cinelerra//filevorbis.C:402
 msgid "Max bitrate:"
 msgstr "Макс. битрейт:"
 
-#: cinelerra//fileogg.C:2091
+#: cinelerra//fileogg.C:2071
 msgid "Average bitrate"
 msgstr "Усред. битрейт"
 
-#: cinelerra//fileogg.C:2103 cinelerra//filevorbis.C:436
+#: cinelerra//fileogg.C:2083 cinelerra//filevorbis.C:436
 msgid "Variable bitrate"
 msgstr "Переменный битрейт"
 
-#: cinelerra//fileogg.C:2208
+#: cinelerra//fileogg.C:2188
 msgid "Keyframe frequency:"
 msgstr "Частота ключ. кадров"
 
-#: cinelerra//fileogg.C:2214
+#: cinelerra//fileogg.C:2194
 msgid "Keyframe force frequency:"
 msgstr "Принудит.част. ключ. кадр."
 
-#: cinelerra//fileogg.C:2220 plugins/denoisemjpeg/denoisemjpeg.C:377
+#: cinelerra//fileogg.C:2200 plugins/denoisemjpeg/denoisemjpeg.C:377
 #: plugins/greycstoration/greycstorationwindow.C:48
 msgid "Sharpness:"
 msgstr "Резкость:"
 
-#: cinelerra//fileogg.C:2273
+#: cinelerra//fileogg.C:2253
 msgid "Fixed quality"
 msgstr "Фикс. качество"
 
@@ -3955,17 +3962,17 @@ msgstr "Создание %s."
 msgid "IndexFile::draw_index: index has 0 zoom\n"
 msgstr "IndexFile::draw_index: index has 0 zoom\n"
 
-#: cinelerra//indexstate.C:211
+#: cinelerra//indexstate.C:216
 #, c-format
 msgid "IndexState::write_index Couldn't write index file %s to disk.\n"
 msgstr "IndexState::write_index Couldn't write index file %s to disk.\n"
 
-#: cinelerra//indexstate.C:263
+#: cinelerra//indexstate.C:268
 #, c-format
 msgid "IndexState::write_markers Couldn't write marker file %s to disk.\n"
 msgstr "IndexState::write_markers Couldn't write marker file %s to disk.\n"
 
-#: cinelerra//indexstate.C:300
+#: cinelerra//indexstate.C:305
 #, c-format
 msgid ""
 "IndexState::read_markers marker file version mismatched\n"
@@ -4001,120 +4008,124 @@ msgstr "Флаги"
 msgid "Frames per foot:"
 msgstr "Кадров на фут"
 
-#: cinelerra//interfaceprefs.C:150
+#: cinelerra//interfaceprefs.C:153
 msgid "Index files"
 msgstr "Индексные файлы"
 
-#: cinelerra//interfaceprefs.C:155
+#: cinelerra//interfaceprefs.C:158
 msgid "Index files go here:"
 msgstr "Расположение индекс. файлов:"
 
-#: cinelerra//interfaceprefs.C:163
+#: cinelerra//interfaceprefs.C:165
 msgid "Index Path"
 msgstr "Путь к индексным файлам"
 
-#: cinelerra//interfaceprefs.C:164
+#: cinelerra//interfaceprefs.C:166
 msgid "Select the directory for index files"
 msgstr "Выберите каталог для индексных файлов"
 
-#: cinelerra//interfaceprefs.C:169
+#: cinelerra//interfaceprefs.C:171
 msgid "Size of index file:"
 msgstr "Размер индексного файла:"
 
-#: cinelerra//interfaceprefs.C:176
+#: cinelerra//interfaceprefs.C:178
 msgid "Number of index files to keep:"
 msgstr "Сохранять индексных файлов:"
 
-#: cinelerra//interfaceprefs.C:189
+#: cinelerra//interfaceprefs.C:191
 msgid "Editing"
 msgstr "Редактирование"
 
-#: cinelerra//interfaceprefs.C:193
+#: cinelerra//interfaceprefs.C:195
 msgid "Keyframe reticle:"
 msgstr "Визирные линии\n"
 "  ключев. кадров:"
 
-#: cinelerra//interfaceprefs.C:209
+#: cinelerra//interfaceprefs.C:211
 msgid "PIN:"
 msgstr "PIN"
 
-#: cinelerra//interfaceprefs.C:232
+#: cinelerra//interfaceprefs.C:234
 msgid "Clicking on edit boundaries does what:"
 msgstr "Поведение кнопок мыши на границах редактиров-я:"
 
-#: cinelerra//interfaceprefs.C:234
+#: cinelerra//interfaceprefs.C:236
 msgid "Button 1:"
 msgstr "Левая:"
 
-#: cinelerra//interfaceprefs.C:243
+#: cinelerra//interfaceprefs.C:245
 msgid "Button 2:"
 msgstr "Средняя:"
 
-#: cinelerra//interfaceprefs.C:251
+#: cinelerra//interfaceprefs.C:253
 msgid "Button 3:"
 msgstr "Правая:"
 
-#: cinelerra//interfaceprefs.C:261
+#: cinelerra//interfaceprefs.C:263
 msgid "Min DB for meter:"
 msgstr "Мин. шкалы дБ:"
 
-#: cinelerra//interfaceprefs.C:267
+#: cinelerra//interfaceprefs.C:269
 msgid "Max DB:"
 msgstr "Макс. дБ:"
 
-#: cinelerra//interfaceprefs.C:275
+#: cinelerra//interfaceprefs.C:277
 msgid "Theme:"
 msgstr "Тема:"
 
-#: cinelerra//interfaceprefs.C:661
+#: cinelerra//interfaceprefs.C:663
 msgid "Use thumbnails in resource window"
 msgstr "Показывать миниатюры в окне 'Ресурсы'"
 
-#: cinelerra//interfaceprefs.C:678
+#: cinelerra//interfaceprefs.C:680
 msgid "Show tip of the day"
 msgstr "Показывать совет дня"
 
-#: cinelerra//interfaceprefs.C:691
+#: cinelerra//interfaceprefs.C:693
 msgid "ffmpeg probe warns rebuild indexes"
-msgstr "Ð\9fÑ\80и Ñ\81мене Ð¿Ñ\80иоÑ\80иÑ\82еÑ\82а FFmpeg - Ð¿Ñ\80едÑ\83пÑ\80еждение"
+msgstr "Ð\9fÑ\80едÑ\83пÑ\80еждение Ð¿Ñ\80и Ñ\81мене Ð¿Ñ\80иоÑ\80иÑ\82еÑ\82а FFmpeg"
 
-#: cinelerra//interfaceprefs.C:704
+#: cinelerra//interfaceprefs.C:706
 msgid "EDL version warns if mismatched"
 msgstr ""
 
-#: cinelerra//interfaceprefs.C:717
+#: cinelerra//interfaceprefs.C:719
+msgid "Create Bluray warns if not root"
+msgstr ""
+
+#: cinelerra//interfaceprefs.C:732
 msgid "Popups activate on button up"
 msgstr "Вход в контекст. меню, отпустив правую к. мыши"
 
-#: cinelerra//interfaceprefs.C:733
+#: cinelerra//interfaceprefs.C:748
 msgid "Scan for commercials during toc build"
 msgstr "Сканировать на рекламу при создании TOC"
 
-#: cinelerra//interfaceprefs.C:747
+#: cinelerra//interfaceprefs.C:762
 msgid "Android Remote Control"
 msgstr "Удалённое управление с Android"
 
-#: cinelerra//interfaceprefs.C:798
+#: cinelerra//interfaceprefs.C:813
 msgid "Shell Commands"
 msgstr "Shell - команды"
 
-#: cinelerra//interfaceprefs.C:802
+#: cinelerra//interfaceprefs.C:817
 msgid "Main Menu Shell Commands"
 msgstr "Главное меню shell - команд"
 
-#: cinelerra//interfaceprefs.C:812
+#: cinelerra//interfaceprefs.C:827
 msgid "Import images with a duration of"
 msgstr "Длительность импортир-нных изображ-й"
 
-#: cinelerra//interfaceprefs.C:867
+#: cinelerra//interfaceprefs.C:882
 msgid "Never"
 msgstr "Не показывать"
 
-#: cinelerra//interfaceprefs.C:868
+#: cinelerra//interfaceprefs.C:883
 msgid "Dragging"
 msgstr "При перетаскивании кл. к."
 
-#: cinelerra//interfaceprefs.C:869
+#: cinelerra//interfaceprefs.C:884
 msgid "Always"
 msgstr "Всегда показывать"
 
@@ -4144,11 +4155,12 @@ msgstr "Без чередования"
 
 #: cinelerra//interlacemodes.h:52
 #: plugins/deinterlace-cv/deinterwindow-cv.C:273
-#: plugins/motion/motionwindow.C:982 plugins/motion2point/motionwindow.C:777
-#: plugins/motion2point/motionwindow.C:798
-#: plugins/motion.new/motionwindow.C:943 plugins/motion.new/motionwindow.C:963
+#: plugins/motion/motionwindow.C:758 plugins/motion2point/motionwindow.C:772
+#: plugins/motion2point/motionwindow.C:793
+#: plugins/motion-cv/motionwindow-cv.C:621
+#: plugins/motion-hv/motionwindow-hv.C:955
 msgid "Do Nothing"
-msgstr "Ð\9dе Ð¸Ñ\81полÑ\8cзовать"
+msgstr "Ð\9dиÑ\87его Ð½Ðµ Ð´ÐµÐ»ать"
 
 #: cinelerra//interlacemodes.h:55
 msgid "Shift Up 1 pixel"
@@ -4342,29 +4354,29 @@ msgstr "Вложенная последовательность"
 
 #: cinelerra//loadmode.C:82 cinelerra//loadmode.C:102
 msgid "Insertion strategy:"
-msgstr "Ð\9cеÑ\82од Ð¾Ñ\82кÑ\80Ñ\8bÑ\82иÑ\8f Ñ\80еÑ\81Ñ\83Ñ\80Ñ\81ов:"
+msgstr "СÑ\82Ñ\80аÑ\82егиÑ\8f Ð¾Ñ\82кÑ\80Ñ\8bÑ\82иÑ\8f:"
 
 #: cinelerra//localsession.C:63
 #, c-format
 msgid "Program"
 msgstr "Программа"
 
-#: cinelerra//main.C:148
+#: cinelerra//main.C:158
 #, c-format
 msgid ": Could not set locale.\n"
 msgstr ": Could not set locale.\n"
 
-#: cinelerra//main.C:191
+#: cinelerra//main.C:201
 #, c-format
 msgid "%s: -c needs a filename.\n"
 msgstr "%s: -c требует имя файла.\n"
 
-#: cinelerra//main.C:217
+#: cinelerra//main.C:227
 #, c-format
 msgid "-b may not be used by the user.\n"
 msgstr "-b не может быть использовано пользователем.\n"
 
-#: cinelerra//main.C:277
+#: cinelerra//main.C:287
 #, c-format
 msgid ""
 "\n"
@@ -4372,47 +4384,50 @@ msgid ""
 msgstr "\n"
 "Использование:\n"
 
-#: cinelerra//main.C:278
+#: cinelerra//main.C:288
 #, c-format
 msgid ""
 "%s [-f] [-c configuration] [-d port] [-n nice] [-r batch file] [filenames]\n"
 "\n"
-msgstr "%s [-f] [-c конфигурация] [-d порт] [-n значение для количества заданий] [-r пакетный файл] [имена открываемых файлов]\n"
+msgstr "%s [-f] [-c конфигурация] [-d порт] [-n значение 'Nice'] [-r пакетный файл] [имена файлов]\n"
 "\n"
 
-#: cinelerra//main.C:279
+#: cinelerra//main.C:289
 #, c-format
 msgid "-d = Run in the background as renderfarm client.  The port (400) is optional.\n"
 msgstr "-d = Запуск в фоновом режиме как клиента распределённого рендеринга.\n"
 "Значение 400 в поле \"Порт\" установлено по умолчанию и может быть изменено.\n"
 
-#: cinelerra//main.C:280
+#: cinelerra//main.C:290
 #, c-format
 msgid "-f = Run in the foreground as renderfarm client.  Substitute for -d.\n"
-msgstr "-f = Запуск в приоритетном режиме как клиента распределённого рендеринга.Альтернатива для -d.\n"
+msgstr "-f = Запуск в приоритетном режиме как клиента распределённого рендеринга.\n"
+"Альтернатива для -d.\n"
 
-#: cinelerra//main.C:281
+#: cinelerra//main.C:291
 #, c-format
 msgid "-n = Nice value if running as renderfarm client. (20)\n"
-msgstr "-n = Значение для количества заданий при запуске как клиента распределённого рендеринга. (по-умолчанию 20).\n"
+msgstr "-n = Значение 'Nice', влияющие на приоритет процесса при запуске как клиента\n"
+"распределённого рендеринга. (по умолчанию = 20).\n"
 
-#: cinelerra//main.C:282
+#: cinelerra//main.C:292
 #, c-format
 msgid "-c = Configuration file to use instead of %s/%s.\n"
 msgstr "-c = Запуск с другим конфигурационным файлом вместо %s/%s.\n"
 
-#: cinelerra//main.C:284
+#: cinelerra//main.C:294
 #, c-format
 msgid "-r = batch render the contents of the batch file (%s/%s) with no GUI.  batch file is optional.\n"
-msgstr "-r = пакетный рендеринг содержимого из пакетного файла (%s/%s) (без GUI). Опция `пакетный файл`- дополнительная.\n"
+msgstr "-r = Пакетный рендеринг содержимого из пакетного файла (%s/%s) (без GUI).\n"
+"Опция `пакетный файл`- дополнительная.\n"
 
-#: cinelerra//main.C:286
+#: cinelerra//main.C:296
 #, c-format
 msgid ""
 "filenames = files to load\n"
 "\n"
 "\n"
-msgstr "имена файлов = открываемых файлов\n"
+msgstr "имена Ñ\84айлов = Ð¸Ð¼ÐµÐ½Ð° Ð¾Ñ\82кÑ\80Ñ\8bваемÑ\8bÑ\85 Ñ\84айлов\n"
 "\n"
 "\n"
 
@@ -4714,8 +4729,8 @@ msgid "paste subttl"
 msgstr "Вставить субтитры"
 
 #: cinelerra//mainmenu.C:1245
-msgid "Set background render"
-msgstr "Фоновый рендеринг"
+msgid "Set background rendering"
+msgstr ""
 
 #: cinelerra//mainmenu.C:1263
 msgid "Edit labels"
@@ -4806,7 +4821,7 @@ msgstr ": Переход к ..."
 msgid "hour  min     sec     msec"
 msgstr "час  мин  сек    мсек"
 
-#: cinelerra//mediadb.C:834
+#: cinelerra//mediadb.C:838
 #, c-format
 msgid " find timeline frame_id(%d) failed\n"
 msgstr " find timeline frame_id(%d) failed\n"
@@ -4932,34 +4947,35 @@ msgstr "Messages::write_message"
 
 #: cinelerra//meterpanel.C:394
 msgid "Show meters"
-msgstr "Показывать уровни звука"
+msgstr "Показывать измерители\n"
+"уровня звука"
 
-#: cinelerra//mwindow.C:589
+#: cinelerra//mwindow.C:577
 #, c-format
 msgid "MWindow::init_plugins: can't create plugin index: %s\n"
 msgstr "MWindow::init_plugins: can't create plugin index: %s\n"
 
-#: cinelerra//mwindow.C:650
+#: cinelerra//mwindow.C:638
 #, c-format
 msgid "MWindow::init_ladspa_index: can't create plugin index: %s\n"
 msgstr "MWindow::init_ladspa_index: can't create plugin index: %s\n"
 
-#: cinelerra//mwindow.C:930
+#: cinelerra//mwindow.C:923
 #, c-format
 msgid "MWindow::init_theme: prefered theme %s not found.\n"
 msgstr "MWindow::init_theme: prefered theme %s not found.\n"
 
-#: cinelerra//mwindow.C:934
+#: cinelerra//mwindow.C:927
 #, c-format
 msgid "MWindow::init_theme: trying default theme %s\n"
 msgstr "MWindow::init_theme: trying default theme %s\n"
 
-#: cinelerra//mwindow.C:944
+#: cinelerra//mwindow.C:937
 #, c-format
 msgid "MWindow::init_theme: theme_plugin not found.\n"
 msgstr "MWindow::init_theme: theme_plugin not found.\n"
 
-#: cinelerra//mwindow.C:950
+#: cinelerra//mwindow.C:943
 #, c-format
 msgid "MWindow::init_theme: unable to load theme %s\n"
 msgstr "MWindow::init_theme: unable to load theme %s\n"
@@ -5076,29 +5092,29 @@ msgstr "Инициализация GUI"
 msgid "Initializing Fonts"
 msgstr "Инициализация шрифтов"
 
-#: cinelerra//mwindow.C:2947
+#: cinelerra//mwindow.C:2958
 #, c-format
 msgid "Couldn't open %s for writing."
 msgstr "Couldn't open %s for writing."
 
-#: cinelerra//mwindow.C:3108
+#: cinelerra//mwindow.C:3119
 msgid "remove assets"
 msgstr "удалить ресурсы"
 
-#: cinelerra//mwindow.C:3340
+#: cinelerra//mwindow.C:3351
 #, c-format
 msgid "Using %s"
 msgstr "Использование %s"
 
-#: cinelerra//mwindow.C:3477 cinelerra//mwindowedit.C:234
-#: cinelerra//mwindowedit.C:300 cinelerra//preferencesthread.C:240
+#: cinelerra//mwindow.C:3488 cinelerra//mwindowedit.C:234
+#: cinelerra//mwindowedit.C:300 cinelerra//preferencesthread.C:247
 msgid ""
 "This project's dimensions are not multiples of 4 so\n"
 "it can't be rendered by OpenGL."
 msgstr "Размер проекта не кратен 4.\n"
 "Невозможно выполнить OpenGL-рендеринг."
 
-#: cinelerra//mwindow.C:3610
+#: cinelerra//mwindow.C:3621
 msgid "select asset"
 msgstr "выберите ресурс"
 
@@ -5255,7 +5271,7 @@ msgstr "применить переход"
 #: cinelerra//mwindowedit.C:2009 cinelerra//mwindowedit.C:2030
 #, c-format
 msgid "No default transition %s found."
-msgstr "Переход по-умолчанию (станд.) %s не найден."
+msgstr "Переход по умолчанию (станд.) %s не найден."
 
 #: cinelerra//mwindowedit.C:2057
 msgid "shuffle edits"
@@ -5335,14 +5351,16 @@ msgid ": Program"
 msgstr ": Программа"
 
 #: cinelerra//mwindowgui.C:2279 cinelerra//mwindowgui.C:2290
-#: cinelerra//preferencesthread.C:226
+#: cinelerra//preferencesthread.C:233
 msgid "Try FFMpeg first"
-msgstr ""
+msgstr "Включён приоритет FFmpeg\n"
+"при сборе инфо. об открываемом файле"
 
 #: cinelerra//mwindowgui.C:2279 cinelerra//mwindowgui.C:2290
-#: cinelerra//preferencesthread.C:226
+#: cinelerra//preferencesthread.C:233
 msgid "Try FFMpeg last"
-msgstr ""
+msgstr "Выключен приоритет FFmpeg\n"
+"при сборе инфо. об открываемом файле"
 
 #: cinelerra//mwindowgui.C:2292
 msgid "Changing the base codecs may require rebuilding indexes."
@@ -5522,7 +5540,7 @@ msgstr "Cinelerra: Новая папка"
 
 #: cinelerra//mwindow.inc:95
 msgid "Cinelerra: New Project"
-msgstr "Cinelerra-CV: Новый проект"
+msgstr "Cinelerra: Новый проект"
 
 #: cinelerra//mwindow.inc:96
 msgid "Cinelerra: Normalize"
@@ -5631,7 +5649,7 @@ msgstr "Cinelerra: Подтвержд-е сканир-я"
 
 #: cinelerra//mwindow.inc:122
 msgid "Cinelerra: Scopes"
-msgstr ""
+msgstr "Cinelerra: Видеоскоп"
 
 #: cinelerra//mwindow.inc:123
 msgid "Cinelerra: Set edit title"
@@ -5709,6 +5727,14 @@ msgstr "Cinelerra: Просмотр"
 msgid "Cinelerra: Warning"
 msgstr "Cinelerra: Предупреждение"
 
+#: cinelerra//new.C:57
+msgid "New Project..."
+msgstr "Новый проект..."
+
+#: cinelerra//new.C:139
+msgid "New Project"
+msgstr "Новый проект"
+
 #: cinelerra//new.C:230
 msgid ": New Project"
 msgstr ": Новый проект"
@@ -5817,122 +5843,126 @@ msgstr "Размер кэша (МБ):"
 msgid "Seconds to preroll renders:"
 msgstr "Секунд предрендеринга:"
 
-#: cinelerra//performanceprefs.C:112 cinelerra//performanceprefs.C:117
+#: cinelerra//performanceprefs.C:104
+msgid "Project SMP cpus:"
+msgstr "Количество CPU (SMP), используемых плагинами:"
+
+#: cinelerra//performanceprefs.C:119 cinelerra//performanceprefs.C:124
 msgid "(must be root)"
-msgstr "(должны быть root)"
+msgstr "(Ð\92Ñ\8b Ð´Ð¾Ð»Ð¶Ð½Ñ\8b Ð±Ñ\8bÑ\82Ñ\8c root)"
 
-#: cinelerra//performanceprefs.C:134
+#: cinelerra//performanceprefs.C:141
 msgid "Background Rendering (Video only)"
 msgstr "Фоновый рендеринг (только видео)"
 
-#: cinelerra//performanceprefs.C:142
+#: cinelerra//performanceprefs.C:149
 msgid "Frames per background rendering job:"
-msgstr "Ð\9aолиÑ\87еÑ\81Ñ\82во ÐºÐ°Ð´Ñ\80ов Ð½Ð° ÐºÐ°Ð¶Ð´Ñ\83Ñ\8e Ñ\84оновÑ\83Ñ\8e Ð·Ð°Ð´Ð°Ñ\87Ñ\83:"
+msgstr "Ð\9aадÑ\80ов Ñ\84он. Ñ\80-га Ð½Ð° ÐºÐ°Ð¶Ð´Ð¾Ðµ Ð·Ð°Ð´Ð°Ð½Ð¸Ðµ Ñ\80аÑ\81пÑ\80ед. Ñ\80-га:"
 
-#: cinelerra//performanceprefs.C:150
+#: cinelerra//performanceprefs.C:157
 msgid "Frames to preroll background:"
 msgstr "Кадров фонового предрендеринга:"
 
-#: cinelerra//performanceprefs.C:161
+#: cinelerra//performanceprefs.C:168
 msgid "Output for background rendering:"
 msgstr "Вывод для фонового рендеринга:"
 
-#: cinelerra//performanceprefs.C:185
+#: cinelerra//performanceprefs.C:192
 msgid "Render Farm"
 msgstr "Распределённый рендеринг"
 
-#: cinelerra//performanceprefs.C:187
+#: cinelerra//performanceprefs.C:194
 msgid "Nodes:"
 msgstr "Узлов:"
 
-#: cinelerra//performanceprefs.C:201
+#: cinelerra//performanceprefs.C:208
 msgid "Hostname:"
 msgstr "Имя хоста:"
 
-#: cinelerra//performanceprefs.C:243
+#: cinelerra//performanceprefs.C:250
 msgid "Total jobs to create:"
 msgstr "Всего количество заданий:"
 
-#: cinelerra//performanceprefs.C:246
+#: cinelerra//performanceprefs.C:253
 msgid "(overridden if new file at each label is checked)"
 msgstr "(не используется, если выбран признак\n"
 "\"создавать отдельный файл на каждую метку\")"
 
-#: cinelerra//performanceprefs.C:300 cinelerra//pluginpopup.C:228
+#: cinelerra//performanceprefs.C:307 cinelerra//pluginpopup.C:228
 #: cinelerra//plugintoggles.C:39 cinelerra//recordbatches.C:22
 #: cinelerra//transitionpopup.C:261
 msgid "On"
 msgstr "Вкл./Выкл."
 
-#: cinelerra//performanceprefs.C:301
+#: cinelerra//performanceprefs.C:308
 msgid "Hostname"
 msgstr "Имя хоста"
 
-#: cinelerra//performanceprefs.C:302
+#: cinelerra//performanceprefs.C:309
 msgid "Port"
 msgstr "Port"
 
-#: cinelerra//performanceprefs.C:303
+#: cinelerra//performanceprefs.C:310
 msgid "Framerate"
 msgstr "Част. кадров"
 
-#: cinelerra//performanceprefs.C:356
+#: cinelerra//performanceprefs.C:363
 msgid "Use background rendering"
 msgstr "Фоновый рендеринг"
 
-#: cinelerra//performanceprefs.C:489
+#: cinelerra//performanceprefs.C:496
 msgid "Use render farm"
 msgstr "Включить распределённый рендеринг"
 
-#: cinelerra//performanceprefs.C:509
+#: cinelerra//performanceprefs.C:516
 msgid "Force single processor use"
 msgstr "Принудительно использовать один процессор"
 
-#: cinelerra//performanceprefs.C:525
+#: cinelerra//performanceprefs.C:532
 msgid "trap sigSEGV"
 msgstr "trap sigSEGV"
 
-#: cinelerra//performanceprefs.C:541
+#: cinelerra//performanceprefs.C:548
 msgid "trap sigINT"
 msgstr "trap sigINT"
 
-#: cinelerra//performanceprefs.C:558
+#: cinelerra//performanceprefs.C:565
 msgid "On file open, ffmpeg probes early"
-msgstr ""
+msgstr "Приоритет FFmpeg при сборе инфо. о файле"
 
-#: cinelerra//performanceprefs.C:576
+#: cinelerra//performanceprefs.C:583
 msgid "build ffmpeg marker indexes"
-msgstr ""
+msgstr "Строить индексы маркеров ключ. кадров (ffmpeg)"
 
-#: cinelerra//performanceprefs.C:599
+#: cinelerra//performanceprefs.C:606
 msgid "Consolidate output files on completion"
 msgstr "Объединить выходные файлы по завершении"
 
-#: cinelerra//performanceprefs.C:729
+#: cinelerra//performanceprefs.C:736
 msgid "Add Node"
 msgstr "Добавить узел"
 
-#: cinelerra//performanceprefs.C:757
+#: cinelerra//performanceprefs.C:764
 msgid "Apply Changes"
 msgstr "Применить"
 
-#: cinelerra//performanceprefs.C:784
+#: cinelerra//performanceprefs.C:791
 msgid "Delete Node"
 msgstr "Удалить узел"
 
-#: cinelerra//performanceprefs.C:812
+#: cinelerra//performanceprefs.C:819
 msgid "Sort nodes"
 msgstr "Сортировка узл."
 
-#: cinelerra//performanceprefs.C:839
+#: cinelerra//performanceprefs.C:846
 msgid "Reset rates"
 msgstr "Сброс частоты"
 
-#: cinelerra//performanceprefs.C:919
+#: cinelerra//performanceprefs.C:945
 msgid "Use virtual filesystem"
 msgstr "Использовать виртуальную ФС"
 
-#: cinelerra//performanceprefs.C:935
+#: cinelerra//performanceprefs.C:961
 msgid "Use yuv420p dvd interlace format"
 msgstr ""
 
@@ -5976,7 +6006,7 @@ msgstr "Номер дорожки DVD - субтитров:"
 
 #: cinelerra//playbackprefs.C:192
 msgid "TOC Program No:"
-msgstr ""
+msgstr "№ программы для TOC"
 
 #: cinelerra//playbackprefs.C:215
 msgid "Timecode offset:"
@@ -6020,7 +6050,7 @@ msgstr "Воспроизв. каждый кадр"
 
 #: cinelerra//playbackprefs.C:428
 msgid "Enable subtitles/captioning"
-msgstr ""
+msgstr "Включить субтитры/скрытые субтитры"
 
 #: cinelerra//playbackprefs.C:461
 msgid "Label cells"
@@ -6044,7 +6074,7 @@ msgstr "Воспроизведение ( 3 )"
 
 #: cinelerra//playtransport.C:496
 msgid "Frame forward ( 1 )"
-msgstr "Кадр вперед ( 1 )"
+msgstr "Кадр вперёд ( 1 )"
 
 #: cinelerra//playtransport.C:511
 msgid "Fast forward ( Enter )"
@@ -6063,7 +6093,7 @@ msgstr "Лицензия: %s"
 #: cinelerra//pluginarray.C:222
 #, c-format
 msgid "%s took %s"
-msgstr "%s Ð¾кончен %s"
+msgstr "%s Ð·Ð°кончен %s"
 
 #: cinelerra//pluginclient.C:826 cinelerra//pluginclient.C:838
 msgid "tweek"
@@ -6162,47 +6192,47 @@ msgstr ""
 msgid "Personal Plugin Path"
 msgstr ""
 
-#: cinelerra//preferencesthread.C:69
+#: cinelerra//preferencesthread.C:70
 msgid "Preferences..."
 msgstr "Параметры программы"
 
-#: cinelerra//preferencesthread.C:69
+#: cinelerra//preferencesthread.C:70
 msgid "Shift-P"
 msgstr "Shift-P"
 
-#: cinelerra//preferencesthread.C:326
+#: cinelerra//preferencesthread.C:333
 msgid "*Playback A"
-msgstr ""
+msgstr "*Воспроизв-ние А"
 
-#: cinelerra//preferencesthread.C:326
+#: cinelerra//preferencesthread.C:333
 msgid "Playback A"
-msgstr ""
+msgstr "Воспроизв-ние А"
 
-#: cinelerra//preferencesthread.C:329
+#: cinelerra//preferencesthread.C:336
 msgid "*Playback B"
-msgstr ""
+msgstr "*Воспр-ние В"
 
-#: cinelerra//preferencesthread.C:329
+#: cinelerra//preferencesthread.C:336
 msgid "Playback B"
-msgstr ""
+msgstr "Воспр-ние В"
 
-#: cinelerra//preferencesthread.C:331
+#: cinelerra//preferencesthread.C:338
 msgid "Recording"
 msgstr "Запись"
 
-#: cinelerra//preferencesthread.C:333
+#: cinelerra//preferencesthread.C:340
 msgid "Performance"
-msgstr "Производительность"
+msgstr "Производит-ность"
 
-#: cinelerra//preferencesthread.C:335
+#: cinelerra//preferencesthread.C:342
 msgid "Interface"
 msgstr "Интерфейс"
 
-#: cinelerra//preferencesthread.C:337
+#: cinelerra//preferencesthread.C:344
 msgid "About"
 msgstr "О программе"
 
-#: cinelerra//preferencesthread.C:368
+#: cinelerra//preferencesthread.C:375
 msgid ": Preferences"
 msgstr ": Параметры"
 
@@ -6222,7 +6252,7 @@ msgstr "Невозможно выйти пока идёт запись."
 msgid "Can't quit while a render is in progress."
 msgstr "Невозможно выйти пока идет рендеринг."
 
-#: cinelerra//quit.C:99
+#: cinelerra//quit.C:95
 msgid "Save edit list before exiting?"
 msgstr "Сохранить список редактирования перед выходом?"
 
@@ -6233,7 +6263,7 @@ msgstr ": Подтверждение"
 #: cinelerra//recconfirmdelete.C:49
 #, c-format
 msgid "Delete this file and %s?"
-msgstr "Удалить этот  файл и %s?"
+msgstr "Удалить этот файл и %s?"
 
 #: cinelerra//recordaudio.C:251 cinelerra//recordvideo.C:251
 msgid "No space left on disk."
@@ -6277,11 +6307,11 @@ msgstr "Запись..."
 msgid "record"
 msgstr "запись"
 
-#: cinelerra//record.C:534
+#: cinelerra//record.C:537
 msgid "Deleting"
 msgstr "Удаление"
 
-#: cinelerra//record.C:1187
+#: cinelerra//record.C:1189
 msgid "Running"
 msgstr ""
 
@@ -6541,7 +6571,7 @@ msgstr "Автоматическая синхронизация с диском"
 
 #: cinelerra//recordscopes.C:157
 msgid "View scope"
-msgstr ""
+msgstr "Видеоскоп"
 
 #: cinelerra//recordthread.C:85
 msgid "Re-enable batches and restart?"
@@ -6593,7 +6623,7 @@ msgstr "Перемотка назад"
 
 #: cinelerra//recordtransport.C:366
 msgid "Fast forward"
-msgstr "Перемотка вперед"
+msgstr "Перемотка вперёд"
 
 #: cinelerra//recordtransport.C:405
 msgid "Seek to end of recording"
@@ -6635,19 +6665,19 @@ msgstr "Расчётное время (ETA)"
 msgid "Already rendering"
 msgstr "Рендеринг уже идёт."
 
-#: cinelerra//render.C:495
+#: cinelerra//render.C:494
 #, c-format
 msgid "Rendering %s..."
 msgstr "Рендеринг %s..."
 
-#: cinelerra//render.C:498
+#: cinelerra//render.C:497
 msgid "Rendering..."
 msgstr "Рендеринг..."
 
-#: cinelerra//render.C:516
+#: cinelerra//render.C:515
 #, c-format
 msgid "Rendering took %s"
-msgstr "РендеÑ\80инг Ð¾кончен %s"
+msgstr "РендеÑ\80инг Ð·Ð°кончен %s"
 
 #: cinelerra//render.C:785
 msgid "Starting render farm"
@@ -6688,7 +6718,7 @@ msgstr "Нач./Кон. точки"
 
 #: cinelerra//renderfarm.C:160
 msgid "RenderFarmServerThread::start_loop: socket\n"
-msgstr "RenderFarmServerThread::start_loop: сокет\n"
+msgstr "RenderFarmServerThread::start_loop: socket\n"
 
 #: cinelerra//renderfarm.C:184 cinelerra//renderfarm.C:225
 #, c-format
@@ -6697,7 +6727,7 @@ msgstr "RenderFarmServerThread::open_client: %s: %s\n"
 
 #: cinelerra//renderfarm.C:202
 msgid "RenderFarmServerThread::start_loop: socket"
-msgstr "RenderFarmServerThread::start_loop: сокет"
+msgstr "RenderFarmServerThread::start_loop: socket"
 
 #: cinelerra//renderfarm.C:215
 #, c-format
@@ -6709,29 +6739,29 @@ msgstr "RenderFarmServerThread::open_client: неизвестный хост %s.
 msgid "RenderFarmServerThread::run: unknown request %02x\n"
 msgstr "RenderFarmServerThread::run: неизвестный запрос %02x\n"
 
-#: cinelerra//renderfarmclient.C:115 cinelerra//renderfarmclient.C:140
+#: cinelerra//renderfarmclient.C:120 cinelerra//renderfarmclient.C:145
 msgid "RenderFarmClient::main_loop: socket"
 msgstr "RenderFarmClient::main_loop: socket"
 
-#: cinelerra//renderfarmclient.C:124
+#: cinelerra//renderfarmclient.C:129
 #, c-format
 msgid "RenderFarmClient::main_loop: bind port %d: %s"
 msgstr "RenderFarmClient::main_loop: связанный порт %d: %s"
 
-#: cinelerra//renderfarmclient.C:149
+#: cinelerra//renderfarmclient.C:154
 #, c-format
 msgid "RenderFarmClient::main_loop: bind path %s: %s\n"
 msgstr "RenderFarmClient::main_loop: связанный путь %s: %s\n"
 
-#: cinelerra//renderfarmclient.C:162
+#: cinelerra//renderfarmclient.C:166
 msgid "RenderFarmClient::main_loop: listen"
 msgstr "RenderFarmClient::main_loop: слушает"
 
-#: cinelerra//renderfarmclient.C:178 cinelerra//renderfarmclient.C:197
+#: cinelerra//renderfarmclient.C:178 cinelerra//renderfarmclient.C:192
 msgid "RenderFarmClient::main_loop: accept"
 msgstr "RenderFarmClient::main_loop: принимает"
 
-#: cinelerra//renderfarmclient.C:717
+#: cinelerra//renderfarmclient.C:680
 #, c-format
 msgid "RenderFarmClientThread::run: Session finished.\n"
 msgstr "RenderFarmClientThread::run: Сессия завершена.\n"
@@ -6874,7 +6904,7 @@ msgstr ""
 
 #: cinelerra//scopewindow.C:426
 msgid ": Scopes"
-msgstr ""
+msgstr ": Видеоскоп"
 
 #: cinelerra//scopewindow.C:1326
 msgid "Histogram Parade"
@@ -7195,23 +7225,23 @@ msgid ""
 msgstr "`Установки -> Бестиповые ключевые кадры` позволяет копировать ключевые кадры\n"
 "между аудио и видеодорожками.\n"
 
-#: cinelerra//tipwindow.C:144
+#: cinelerra//tipwindow.C:141
 msgid ": Tip of the day"
 msgstr ": Совет дня"
 
-#: cinelerra//tipwindow.C:209
+#: cinelerra//tipwindow.C:206
 msgid "Show tip of the day."
 msgstr "Показывать совет дня."
 
-#: cinelerra//tipwindow.C:230
+#: cinelerra//tipwindow.C:227
 msgid "Next tip"
 msgstr "След. совет."
 
-#: cinelerra//tipwindow.C:253
+#: cinelerra//tipwindow.C:250
 msgid "Previous tip"
 msgstr "Предыд. совет."
 
-#: cinelerra//trackcanvas.C:4196
+#: cinelerra//trackcanvas.C:4205
 msgid "keyframe"
 msgstr "ключевой кадр"
 
@@ -7242,7 +7272,7 @@ msgstr "Длина"
 
 #: cinelerra//vdeviceprefs.C:221 cinelerra//vdeviceprefs.C:355
 msgid "Follow video config"
-msgstr ""
+msgstr "Автообновление конфигурации видео"
 
 #: cinelerra//vdeviceprefs.C:337
 msgid "Fields:"
@@ -7893,9 +7923,7 @@ msgid "Select the range to transfer:"
 msgstr "Выберите диапазон для извлечения:"
 
 #: plugins/cdripper/cdripwindow.C:43 plugins/cdripper/cdripwindow.C:47
-#: plugins/motion2point/motionwindow.C:773
-#: plugins/motion2point/motionwindow.C:786
-msgid "Track"
+msgid "Track:"
 msgstr "Трек"
 
 #: plugins/cdripper/cdripwindow.C:44 plugins/cdripper/cdripwindow.C:48
@@ -7982,11 +8010,11 @@ msgstr "Настройка маски:"
 
 #: plugins/chromakeyhsv/chromakey.C:218
 msgid "In Slope:"
-msgstr "Коэф.атаки:"
+msgstr "Коэфф. спада:"
 
 #: plugins/chromakeyhsv/chromakey.C:221
 msgid "Out Slope:"
-msgstr "Коэф.спада:"
+msgstr "Коэфф. атаки:"
 
 #: plugins/chromakeyhsv/chromakey.C:224
 msgid "Alpha Offset:"
@@ -8456,7 +8484,7 @@ msgstr "Горизонтальное смещение"
 msgid "Vertical offset"
 msgstr "Вертикальное смещение"
 
-#: plugins/downsample/downsample.C:376 plugins/reframert/reframert.C:294
+#: plugins/downsample/downsample.C:376 plugins/reframert/reframert.C:348
 msgid "Downsample"
 msgstr "Понижение дискретизации"
 
@@ -8581,17 +8609,19 @@ msgid ""
 "(W/H Percent of image)"
 msgstr ""
 
-#: plugins/findobject/findobjectwindow.C:89 plugins/motion/motionwindow.C:135
-#: plugins/motion2point/motionwindow.C:130
-#: plugins/motion.new/motionwindow.C:140
+#: plugins/findobject/findobjectwindow.C:89 plugins/motion/motionwindow.C:116
+#: plugins/motion2point/motionwindow.C:125
+#: plugins/motion-cv/motionwindow-cv.C:110
+#: plugins/motion-hv/motionwindow-hv.C:135
 msgid "Block X:"
-msgstr ""
+msgstr "Центр блока по оси X:"
 
-#: plugins/findobject/findobjectwindow.C:104 plugins/motion/motionwindow.C:169
-#: plugins/motion2point/motionwindow.C:143
-#: plugins/motion.new/motionwindow.C:174
+#: plugins/findobject/findobjectwindow.C:104 plugins/motion/motionwindow.C:141
+#: plugins/motion2point/motionwindow.C:138
+#: plugins/motion-cv/motionwindow-cv.C:117
+#: plugins/motion-hv/motionwindow-hv.C:169
 msgid "Block Y:"
-msgstr ""
+msgstr "Центр блока по оси Y:"
 
 #: plugins/findobject/findobjectwindow.C:145
 msgid "Object layer:"
@@ -8638,11 +8668,11 @@ msgid "Draw object border"
 msgstr ""
 
 #: plugins/findobject/findobjectwindow.C:496
-#: plugins/findobject/findobjectwindow.C:510
-#: plugins/motion/motionwindow.C:1047 plugins/motion2point/motionwindow.C:848
-#: plugins/motion2point/motionwindow.C:860
-#: plugins/motion.new/motionwindow.C:1010
-#: plugins/motion.new/motionwindow.C:1021
+#: plugins/findobject/findobjectwindow.C:510 plugins/motion/motionwindow.C:816
+#: plugins/motion2point/motionwindow.C:843
+#: plugins/motion2point/motionwindow.C:855
+#: plugins/motion-cv/motionwindow-cv.C:671
+#: plugins/motion-hv/motionwindow-hv.C:1020
 msgid "Don't Calculate"
 msgstr "Не рассчитывать"
 
@@ -8880,11 +8910,11 @@ msgstr "Смещение по Y:"
 
 #: plugins/interpolateall/interpolateall.C:97
 #: plugins/interpolateaudio/interpolateaudio.C:96
-#: plugins/reframert/reframert.C:312
+#: plugins/reframert/reframert.C:366
 msgid "Interpolate"
 msgstr "Интерполяция"
 
-#: plugins/interpolatevideo/interpolatevideo.C:847
+#: plugins/interpolatevideo/interpolatevideo.C:848
 msgid "Interpolate Video"
 msgstr ""
 
@@ -8975,7 +9005,7 @@ msgid "Rectilinear Shrink"
 msgstr "Бочка\"  на плоскости"
 
 #: plugins/lens/lens.C:329 plugins/perspective/perspective.C:185
-#: plugins/reframert/reframert.C:275
+#: plugins/reframert/reframert.C:329
 msgid "Stretch"
 msgstr "Растягивание"
 
@@ -9068,238 +9098,325 @@ msgstr "Кадров в цикле:"
 msgid "Loop video"
 msgstr "Цикл видео"
 
-#: plugins/motion/motion.C:279 plugins/motion.new/motion.C:260
+#: plugins/motion/motion.C:215
 msgid "Motion"
 msgstr "Движение"
 
-#: plugins/motion/motionwindow.C:69 plugins/motion2point/motionwindow.C:79
-#: plugins/motion.new/motionwindow.C:74
+#: plugins/motion/motionwindow.C:55 plugins/motion2point/motionwindow.C:74
+#: plugins/motion-cv/motionwindow-cv.C:54
+#: plugins/motion-hv/motionwindow-hv.C:69
 msgid ""
 "Translation search radius:\n"
 "(W/H Percent of image)"
-msgstr ""
+msgstr "Размер области поиска:\n"
+"(Ш./В. как % от изображения)"
 
-#: plugins/motion/motionwindow.C:81 plugins/motion.new/motionwindow.C:86
+#: plugins/motion/motionwindow.C:64 plugins/motion-cv/motionwindow-cv.C:63
+#: plugins/motion-hv/motionwindow-hv.C:81
 msgid ""
 "Rotation search radius:\n"
 "(Degrees)"
-msgstr ""
+msgstr "Размер области поиска:\n"
+"(Градусы)"
 
-#: plugins/motion/motionwindow.C:89 plugins/motion2point/motionwindow.C:114
-#: plugins/motion.new/motionwindow.C:94
+#: plugins/motion/motionwindow.C:70 plugins/motion2point/motionwindow.C:109
+#: plugins/motion-cv/motionwindow-cv.C:69
+#: plugins/motion-hv/motionwindow-hv.C:89
 msgid ""
 "Translation block size:\n"
 "(W/H Percent of image)"
-msgstr ""
+msgstr "Размер блока для отслеживания:\n"
+"(Ш./В. как % от изображения)"
 
-#: plugins/motion/motionwindow.C:112 plugins/motion.new/motionwindow.C:117
+#: plugins/motion/motionwindow.C:92 plugins/motion-cv/motionwindow-cv.C:87
 msgid "Translation search steps:"
-msgstr ""
+msgstr "Число шагов поиска:"
 
-#: plugins/motion/motionwindow.C:119 plugins/motion.new/motionwindow.C:124
+#: plugins/motion/motionwindow.C:97 plugins/motion-cv/motionwindow-cv.C:92
 msgid "Rotation search steps:"
-msgstr ""
+msgstr "Число шагов поиска:"
 
-#: plugins/motion/motionwindow.C:127 plugins/motion.new/motionwindow.C:132
+#: plugins/motion/motionwindow.C:103 plugins/motion-cv/motionwindow-cv.C:98
+#: plugins/motion-hv/motionwindow-hv.C:127
 msgid "Translation direction:"
-msgstr ""
+msgstr "Направление перемещения:"
 
-#: plugins/motion/motionwindow.C:145 plugins/motion.new/motionwindow.C:150
+#: plugins/motion/motionwindow.C:111 plugins/motion-cv/motionwindow-cv.C:104
+msgid "Tracking file:"
+msgstr "Файл координат:"
+
+#: plugins/motion/motionwindow.C:124 plugins/motion-hv/motionwindow-hv.C:145
 msgid "Rotation center:"
-msgstr ""
+msgstr "Центр вращения:"
 
-#: plugins/motion/motionwindow.C:154 plugins/motion.new/motionwindow.C:159
+#: plugins/motion/motionwindow.C:129 plugins/motion-hv/motionwindow-hv.C:154
 msgid "Maximum angle offset:"
-msgstr ""
+msgstr "Макс. угловое смещение:"
 
-#: plugins/motion/motionwindow.C:160 plugins/motion.new/motionwindow.C:165
+#: plugins/motion/motionwindow.C:134 plugins/motion-hv/motionwindow-hv.C:160
 msgid "Rotation settling speed:"
 msgstr ""
 
-#: plugins/motion/motionwindow.C:180 plugins/motion2point/motionwindow.C:184
-#: plugins/motion.new/motionwindow.C:185
+#: plugins/motion/motionwindow.C:149 plugins/motion2point/motionwindow.C:179
+#: plugins/motion-cv/motionwindow-cv.C:123
+#: plugins/motion-hv/motionwindow-hv.C:180
 msgid "Maximum absolute offset:"
-msgstr ""
+msgstr "Макс. абсолютное смещение:"
 
-#: plugins/motion/motionwindow.C:186
+#: plugins/motion/motionwindow.C:155
 msgid "Motion settling speed:"
 msgstr ""
 
-#: plugins/motion/motionwindow.C:207 plugins/motion2point/motionwindow.C:203
-#: plugins/motion.new/motionwindow.C:212
+#: plugins/motion/motionwindow.C:172 plugins/motion2point/motionwindow.C:198
+#: plugins/motion-cv/motionwindow-cv.C:150
+#: plugins/motion-hv/motionwindow-hv.C:207
 msgid "Frame number:"
-msgstr ""
+msgstr "№ кадра:"
 
-#: plugins/motion/motionwindow.C:232 plugins/motion2point/motionwindow.C:223
-#: plugins/motion.new/motionwindow.C:232
+#: plugins/motion/motionwindow.C:179 plugins/motion-cv/motionwindow-cv.C:157
+msgid ""
+"For best results\n"
+" Set: Play every frame\n"
+" Preferences-> Playback-> Video Out"
+msgstr ""
+"Для достижения наилучших результатов\n"
+"включите опцию 'Воспр-ть каждый кадр'\n"
+"в Параметры->Воспр-ние->Настр. видео (выход)"
+
+#: plugins/motion/motionwindow.C:182 plugins/motion-cv/motionwindow-cv.C:160
+msgid "Currently using: Play every frame"
+msgstr "Опция 'Воспроизводить каждый кадр'\n"
+"включена"
+
+#: plugins/motion/motionwindow.C:185 plugins/motion2point/motionwindow.C:218
+#: plugins/motion-cv/motionwindow-cv.C:145
+#: plugins/motion-hv/motionwindow-hv.C:227
 msgid "Master layer:"
-msgstr ""
+msgstr "Мастер - трек:"
 
-#: plugins/motion/motionwindow.C:241 plugins/motion2point/motionwindow.C:232
-#: plugins/motion.new/motionwindow.C:241
+#: plugins/motion/motionwindow.C:191 plugins/motion2point/motionwindow.C:227
+#: plugins/motion-cv/motionwindow-cv.C:164
+#: plugins/motion-hv/motionwindow-hv.C:236
 msgid "Action:"
-msgstr "Действие"
+msgstr "Действие:"
 
-#: plugins/motion/motionwindow.C:252 plugins/motion2point/motionwindow.C:243
-#: plugins/motion.new/motionwindow.C:252
+#: plugins/motion/motionwindow.C:197 plugins/motion2point/motionwindow.C:238
+#: plugins/motion-cv/motionwindow-cv.C:170
+#: plugins/motion-hv/motionwindow-hv.C:247
 msgid "Calculation:"
 msgstr "Расчёт:"
 
-#: plugins/motion/motionwindow.C:531
+#: plugins/motion/motionwindow.C:405 plugins/motion-cv/motionwindow-cv.C:321
 msgid "Add (loaded) offset from tracked frame"
 msgstr ""
 
-#: plugins/motion/motionwindow.C:596 plugins/motion.new/motionwindow.C:575
+#: plugins/motion/motionwindow.C:452 plugins/motion-cv/motionwindow-cv.C:351
 msgid "Track translation"
 msgstr "Перемещение"
 
-#: plugins/motion/motionwindow.C:616 plugins/motion.new/motionwindow.C:595
+#: plugins/motion/motionwindow.C:467 plugins/motion-cv/motionwindow-cv.C:366
+#: plugins/motion-hv/motionwindow-hv.C:589
 msgid "Track rotation"
 msgstr "Вращение"
 
-#: plugins/motion/motionwindow.C:751 plugins/motion2point/motionwindow.C:563
-#: plugins/motion.new/motionwindow.C:730
+#: plugins/motion/motionwindow.C:563 plugins/motion2point/motionwindow.C:558
+#: plugins/motion-cv/motionwindow-cv.C:447
+#: plugins/motion-hv/motionwindow-hv.C:724
 msgid "Draw vectors"
 msgstr "Показывать векторы движения"
 
-#: plugins/motion/motionwindow.C:778 plugins/motion2point/motionwindow.C:591
-#: plugins/motion.new/motionwindow.C:757
+#: plugins/motion/motionwindow.C:584 plugins/motion2point/motionwindow.C:586
+#: plugins/motion-cv/motionwindow-cv.C:465
+#: plugins/motion-hv/motionwindow-hv.C:751
 msgid "Track single frame"
-msgstr ""
+msgstr "Отслеживать одиночн. кадр"
 
-#: plugins/motion/motionwindow.C:832 plugins/motion2point/motionwindow.C:645
-#: plugins/motion.new/motionwindow.C:811
+#: plugins/motion/motionwindow.C:626 plugins/motion2point/motionwindow.C:640
+#: plugins/motion-cv/motionwindow-cv.C:503
+#: plugins/motion-hv/motionwindow-hv.C:805
 msgid "Track previous frame"
-msgstr ""
+msgstr "Отслеживать предыдущ. кадр"
 
-#: plugins/motion/motionwindow.C:861 plugins/motion2point/motionwindow.C:674
-#: plugins/motion.new/motionwindow.C:840
+#: plugins/motion/motionwindow.C:649 plugins/motion2point/motionwindow.C:669
+#: plugins/motion-cv/motionwindow-cv.C:524
+#: plugins/motion-hv/motionwindow-hv.C:834
 msgid "Previous frame same block"
-msgstr ""
-
-#: plugins/motion/motionwindow.C:908 plugins/motion/motionwindow.C:914
-#: plugins/motion2point/motionwindow.C:721
-#: plugins/motion2point/motionwindow.C:727
-#: plugins/motion.new/motionwindow.C:887 plugins/motion.new/motionwindow.C:893
-#: plugins/overlay/overlay.C:170 plugins/overlayaudio/overlayaudio.C:163
-#: plugins/reroute/reroute.C:164 plugins/titler/titlewindow.C:1039
+msgstr "Отслеживать предыдущ. кадр (позиция блока не изменяется)"
+
+#: plugins/motion/motionwindow.C:690 plugins/motion/motionwindow.C:696
+#: plugins/motion2point/motionwindow.C:716
+#: plugins/motion2point/motionwindow.C:722
+#: plugins/motion-cv/motionwindow-cv.C:564
+#: plugins/motion-cv/motionwindow-cv.C:570
+#: plugins/motion-hv/motionwindow-hv.C:881
+#: plugins/motion-hv/motionwindow-hv.C:887 plugins/overlay/overlay.C:170
+#: plugins/overlayaudio/overlayaudio.C:163 plugins/reroute/reroute.C:164
+#: plugins/titler/titlewindow.C:1039
 msgid "Top"
 msgstr "Верх"
 
-#: plugins/motion/motionwindow.C:914 plugins/motion2point/motionwindow.C:727
-#: plugins/motion.new/motionwindow.C:893 plugins/overlay/overlay.C:171
+#: plugins/motion/motionwindow.C:696 plugins/motion2point/motionwindow.C:722
+#: plugins/motion-cv/motionwindow-cv.C:570
+#: plugins/motion-hv/motionwindow-hv.C:887 plugins/overlay/overlay.C:171
 #: plugins/overlayaudio/overlayaudio.C:164 plugins/reroute/reroute.C:165
 #: plugins/titler/titlewindow.C:1067
 msgid "Bottom"
 msgstr "Низ"
 
-#: plugins/motion/motionwindow.C:960 plugins/motion/motionwindow.C:973
-#: plugins/motion.new/motionwindow.C:939 plugins/motion.new/motionwindow.C:951
+#: plugins/motion/motionwindow.C:736 plugins/motion/motionwindow.C:749
+#: plugins/motion-cv/motionwindow-cv.C:606
+#: plugins/motion-cv/motionwindow-cv.C:617
+#: plugins/motion-hv/motionwindow-hv.C:933
+#: plugins/motion-hv/motionwindow-hv.C:946
 msgid "Track Subpixel"
-msgstr ""
-
-#: plugins/motion/motionwindow.C:961 plugins/motion/motionwindow.C:975
-#: plugins/motion2point/motionwindow.C:774
-#: plugins/motion2point/motionwindow.C:789
-#: plugins/motion.new/motionwindow.C:940 plugins/motion.new/motionwindow.C:954
+msgstr "Субпиксельное отслеживание"
+
+#: plugins/motion/motionwindow.C:737 plugins/motion/motionwindow.C:751
+#: plugins/motion2point/motionwindow.C:769
+#: plugins/motion2point/motionwindow.C:784
+#: plugins/motion-cv/motionwindow-cv.C:607
+#: plugins/motion-cv/motionwindow-cv.C:618
+#: plugins/motion-hv/motionwindow-hv.C:934
+#: plugins/motion-hv/motionwindow-hv.C:948
 msgid "Track Pixel"
-msgstr ""
+msgstr "Пиксельное отслеживание"
 
-#: plugins/motion/motionwindow.C:962 plugins/motion/motionwindow.C:977
-#: plugins/motion.new/motionwindow.C:941 plugins/motion.new/motionwindow.C:957
+#: plugins/motion/motionwindow.C:738 plugins/motion/motionwindow.C:753
+#: plugins/motion-cv/motionwindow-cv.C:608
+#: plugins/motion-cv/motionwindow-cv.C:619
+#: plugins/motion-hv/motionwindow-hv.C:935
+#: plugins/motion-hv/motionwindow-hv.C:950
 msgid "Stabilize Subpixel"
-msgstr "Стабилизация субпиксельная"
-
-#: plugins/motion/motionwindow.C:963 plugins/motion/motionwindow.C:979
-#: plugins/motion2point/motionwindow.C:776
-#: plugins/motion2point/motionwindow.C:795
-#: plugins/motion.new/motionwindow.C:942 plugins/motion.new/motionwindow.C:960
+msgstr "Субпиксельное стабилиз-ние"
+
+#: plugins/motion/motionwindow.C:739 plugins/motion/motionwindow.C:755
+#: plugins/motion2point/motionwindow.C:771
+#: plugins/motion2point/motionwindow.C:790
+#: plugins/motion-cv/motionwindow-cv.C:609
+#: plugins/motion-cv/motionwindow-cv.C:620
+#: plugins/motion-hv/motionwindow-hv.C:936
+#: plugins/motion-hv/motionwindow-hv.C:952
 msgid "Stabilize Pixel"
-msgstr "Стабилизация пиксельная"
-
-#: plugins/motion/motionwindow.C:1028 plugins/motion/motionwindow.C:1040
-#: plugins/motion2point/motionwindow.C:850
-#: plugins/motion2point/motionwindow.C:866
-#: plugins/motion.new/motionwindow.C:1012
-#: plugins/motion.new/motionwindow.C:1027
-msgid "Save coords to /tmp"
-msgstr "Сохранить координаты в /tmp"
-
-#: plugins/motion/motionwindow.C:1029 plugins/motion/motionwindow.C:1042
-#: plugins/motion2point/motionwindow.C:851
-#: plugins/motion2point/motionwindow.C:869
-#: plugins/motion.new/motionwindow.C:1013
-#: plugins/motion.new/motionwindow.C:1030
-msgid "Load coords from /tmp"
-msgstr "Загрузить координаты из /tmp"
-
-#: plugins/motion/motionwindow.C:1030 plugins/motion/motionwindow.C:1044
-#: plugins/motion2point/motionwindow.C:849
-#: plugins/motion2point/motionwindow.C:863
-#: plugins/motion.new/motionwindow.C:1011
-#: plugins/motion.new/motionwindow.C:1024
+msgstr "Пиксельное стабилиз-ние"
+
+#: plugins/motion/motionwindow.C:801 plugins/motion/motionwindow.C:812
+#: plugins/motion-cv/motionwindow-cv.C:662
+#: plugins/motion-cv/motionwindow-cv.C:673
+msgid "Save coords to tracking file"
+msgstr "Сохранить коорд-ты в файл коорд-т"
+
+#: plugins/motion/motionwindow.C:802 plugins/motion/motionwindow.C:813
+#: plugins/motion-cv/motionwindow-cv.C:663
+#: plugins/motion-cv/motionwindow-cv.C:674
+msgid "Load coords from tracking file"
+msgstr "Загрузить коорд-ты из файла коорд-т"
+
+#: plugins/motion/motionwindow.C:803 plugins/motion/motionwindow.C:814
+#: plugins/motion2point/motionwindow.C:844
+#: plugins/motion2point/motionwindow.C:858
+#: plugins/motion-cv/motionwindow-cv.C:661
+#: plugins/motion-cv/motionwindow-cv.C:672
+#: plugins/motion-hv/motionwindow-hv.C:1003
+#: plugins/motion-hv/motionwindow-hv.C:1017
 msgid "Recalculate"
 msgstr "Пересчитывать"
 
-#: plugins/motion/motionwindow.C:1104 plugins/motion2point/motionwindow.C:930
-#: plugins/motion.new/motionwindow.C:1088 plugins/sharpen/sharpenwindow.C:114
+#: plugins/motion/motionwindow.C:865 plugins/motion2point/motionwindow.C:925
+#: plugins/motion-cv/motionwindow-cv.C:723
+#: plugins/motion-hv/motionwindow-hv.C:1077
+#: plugins/sharpen/sharpenwindow.C:114
 msgid "Horizontal only"
 msgstr "Только по горизонтали"
 
-#: plugins/motion/motionwindow.C:1105 plugins/motion2point/motionwindow.C:931
-#: plugins/motion.new/motionwindow.C:1089
+#: plugins/motion/motionwindow.C:866 plugins/motion2point/motionwindow.C:926
+#: plugins/motion-cv/motionwindow-cv.C:724
+#: plugins/motion-hv/motionwindow-hv.C:1078
 msgid "Vertical only"
 msgstr "Только по вертикали"
 
-#: plugins/motion/motionwindow.C:1106 plugins/motion2point/motionwindow.C:932
-#: plugins/motion.new/motionwindow.C:1090
+#: plugins/motion/motionwindow.C:867 plugins/motion2point/motionwindow.C:927
+#: plugins/motion-cv/motionwindow-cv.C:725
+#: plugins/motion-hv/motionwindow-hv.C:1079
 msgid "Both"
 msgstr "Оба направления"
 
 #: plugins/motion2point/motion.C:245
 msgid "Motion 2 Point"
-msgstr ""
+msgstr "Движение (2-х точеч.)"
 
-#: plugins/motion2point/motionwindow.C:66
+#: plugins/motion2point/motionwindow.C:61
 msgid "Track Point 1"
-msgstr ""
+msgstr "Точка 1"
 
-#: plugins/motion2point/motionwindow.C:67
+#: plugins/motion2point/motionwindow.C:62
 msgid "Track Point 2"
-msgstr ""
+msgstr "Точка 2"
 
-#: plugins/motion2point/motionwindow.C:97
+#: plugins/motion2point/motionwindow.C:92
 msgid ""
 "Translation search offset:\n"
 "(X/Y Percent of image)"
-msgstr ""
+msgstr "Смещение области поиска:\n"
+"(X/Y как % от изображения)"
 
-#: plugins/motion2point/motionwindow.C:168
+#: plugins/motion2point/motionwindow.C:163
 msgid "Search steps:"
-msgstr ""
+msgstr "Число шагов поиска:"
 
-#: plugins/motion2point/motionwindow.C:176
+#: plugins/motion2point/motionwindow.C:171
 msgid "Search directions:"
-msgstr ""
+msgstr "Направление поиска:"
 
-#: plugins/motion2point/motionwindow.C:190
-#: plugins/motion.new/motionwindow.C:191
+#: plugins/motion2point/motionwindow.C:185
+#: plugins/motion-cv/motionwindow-cv.C:128
 msgid "Settling speed:"
 msgstr ""
 
-#: plugins/motion2point/motionwindow.C:775
-#: plugins/motion2point/motionwindow.C:792
+#: plugins/motion2point/motionwindow.C:768
+#: plugins/motion2point/motionwindow.C:781
+msgid "Track"
+msgstr "Отслеживание"
+
+#: plugins/motion2point/motionwindow.C:770
+#: plugins/motion2point/motionwindow.C:787
 msgid "Stabilize"
-msgstr ""
+msgstr "Стабилизирование"
+
+#: plugins/motion2point/motionwindow.C:845
+#: plugins/motion2point/motionwindow.C:861
+#: plugins/motion-hv/motionwindow-hv.C:1001
+#: plugins/motion-hv/motionwindow-hv.C:1013
+msgid "Save coords to /tmp"
+msgstr "Сохранить координаты в /tmp"
+
+#: plugins/motion2point/motionwindow.C:846
+#: plugins/motion2point/motionwindow.C:864
+#: plugins/motion-hv/motionwindow-hv.C:1002
+#: plugins/motion-hv/motionwindow-hv.C:1015
+msgid "Load coords from /tmp"
+msgstr "Загрузить координаты из /tmp"
 
 #: plugins/motionblur/motionblur.C:315
 msgid "Motion Blur"
 msgstr "Размытие - Камера X/Y"
 
-#: plugins/motion.new/motionwindow.C:106
+#: plugins/motion-cv/motion-cv.C:209
+msgid "MotionCV"
+msgstr "Движение (CV)"
+
+#: plugins/motion-cv/motionwindow-cv.C:78
 msgid ""
 "Rotation block size:\n"
 "(W/H Percent of image)"
+msgstr "Размер блока для отслеживания:\n"
+"(Ш./В. как % от изображения)"
+
+#: plugins/motion-hv/motion-hv.C:260
+msgid "MotionHV"
+msgstr "Движение (HV)"
+
+#: plugins/motion-hv/motionwindow-hv.C:186
+msgid "MotionHV settling speed:"
 msgstr ""
 
 #: plugins/normalize/normalizewindow.C:27
@@ -9581,11 +9698,15 @@ msgstr "Скорость"
 msgid "Scale factor:"
 msgstr "Множитель:"
 
-#: plugins/reframert/reframert.C:214 plugins/resamplert/resamplert.C:95
-msgid "Scale by amount:"
-msgstr "Множитель:"
+#: plugins/reframert/reframert.C:237
+msgid "Input frames:"
+msgstr ""
 
-#: plugins/reframert/reframert.C:336
+#: plugins/reframert/reframert.C:247
+msgid "Output frames:"
+msgstr ""
+
+#: plugins/reframert/reframert.C:390
 msgid "ReframeRT"
 msgstr "Скорость (RT)"
 
@@ -9633,7 +9754,15 @@ msgstr ": Передискретизация"
 msgid "Resample"
 msgstr "Передискретизация"
 
-#: plugins/resamplert/resamplert.C:186
+#: plugins/resamplert/resamplert.C:101
+msgid "Input samples:"
+msgstr ""
+
+#: plugins/resamplert/resamplert.C:107
+msgid "Output samples:"
+msgstr ""
+
+#: plugins/resamplert/resamplert.C:223
 msgid "ResampleRT"
 msgstr "Передискретизация (RT)"
 
@@ -9688,7 +9817,7 @@ msgstr "Сохранить..."
 
 #: plugins/reverb/reverbwindow.C:369
 msgid "Set default"
-msgstr "Задать настройки по-умолчанию"
+msgstr "Задать настройки по умолчанию"
 
 #: plugins/reverb/reverbwindow.C:432
 msgid "Save reverb"
diff --git a/cinelerra-5.1/thirdparty/src/x264.patch1 b/cinelerra-5.1/thirdparty/src/x264.patch1
new file mode 100644 (file)
index 0000000..9cd14f2
--- /dev/null
@@ -0,0 +1,19 @@
+diff -ur a/encoder/encoder.c b/encoder/encoder.c
+--- a/encoder/encoder.c        2016-02-20 14:45:07.000000000 -0700
++++ b/encoder/encoder.c        2016-12-29 07:08:32.247434972 -0700
+@@ -614,6 +614,7 @@
+         return -1;
+     }
++#if 0
+     /* Detect default ffmpeg settings and terminate with an error. */
+     if( b_open )
+     {
+@@ -637,6 +638,7 @@
+             return -1;
+         }
+     }
++#endif
+     if( h->param.rc.i_rc_method < 0 || h->param.rc.i_rc_method > 2 )
+     {