Some small fixes and changes:
[blender.git] / source / blender / blenkernel / intern / sequencer.c
index a3237da..3dcbe03 100644 (file)
@@ -1,6 +1,4 @@
 /*
-* $Id$
- *
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
 #include "BKE_sequencer.h"
 #include "BKE_fcurve.h"
 #include "BKE_scene.h"
-#include "RNA_access.h"
 #include "BKE_utildefines.h"
 
+#include "RNA_access.h"
+
 #include "RE_pipeline.h"
 
 #include <pthread.h>
@@ -866,8 +865,8 @@ void seqbase_unique_name_recursive(ListBase *seqbasep, struct Sequence *seq)
        SeqUniqueInfo sui;
        char *dot;
        sui.seq= seq;
-       strcpy(sui.name_src, seq->name+2);
-       strcpy(sui.name_dest, seq->name+2);
+       BLI_strncpy(sui.name_src, seq->name+2, sizeof(sui.name_src));
+       BLI_strncpy(sui.name_dest, seq->name+2, sizeof(sui.name_dest));
 
        sui.count= 1;
        sui.match= 1; /* assume the worst to start the loop */
@@ -887,7 +886,7 @@ void seqbase_unique_name_recursive(ListBase *seqbasep, struct Sequence *seq)
                seqbase_recursive_apply(seqbasep, seqbase_unique_name_recursive_cb, &sui);
        }
 
-       strcpy(seq->name+2, sui.name_dest);
+       BLI_strncpy(seq->name+2, sui.name_dest, sizeof(seq->name)-2);
 }
 
 static const char *give_seqname_by_type(int type)
@@ -1204,7 +1203,7 @@ static int seq_proxy_get_fname(SeqRenderData context, Sequence * seq, int cfra,
           sorry folks, please rebuild your proxies... */
 
        if (seq->flag & (SEQ_USE_PROXY_CUSTOM_DIR|SEQ_USE_PROXY_CUSTOM_FILE)) {
-               strcpy(dir, seq->strip->proxy->dir);
+               BLI_strncpy(dir, seq->strip->proxy->dir, sizeof(dir));
        } else if (seq->type == SEQ_IMAGE) {
                BLI_snprintf(dir, PROXY_MAXFILE, "%s/BL_proxy", seq->strip->dir);
        } else {
@@ -1325,6 +1324,10 @@ static void seq_proxy_build_frame(SeqRenderData context,
        quality = seq->strip->proxy->quality;
        ibuf->ftype= JPG | quality;
 
+       /* unsupported feature only confuses other s/w */
+       if(ibuf->depth==32)
+               ibuf->depth= 24;
+
        BLI_make_existing_file(name);
        
        ok = IMB_saveiff(ibuf, name, IB_rect | IB_zbuf | IB_zbuffloat);
@@ -2852,7 +2855,8 @@ void update_changed_seq_and_deps(Scene *scene, Sequence *changed_seq, int len_ch
  left and right are the bounds at which the sequence is rendered,
 start and end are from the start and fixed length of the sequence.
 */
-int seq_tx_get_start(Sequence *seq) {
+int seq_tx_get_start(Sequence *seq)
+{
        return seq->start;
 }
 int seq_tx_get_end(Sequence *seq)
@@ -3359,9 +3363,9 @@ int seq_swap(Sequence *seq_a, Sequence *seq_b, const char **error_str)
        SWAP(Sequence, *seq_a, *seq_b);
 
        /* swap back names so animation fcurves dont get swapped */
-       strcpy(name, seq_a->name+2);
-       strcpy(seq_a->name+2, seq_b->name+2);
-       strcpy(seq_b->name+2, name);
+       BLI_strncpy(name, seq_a->name+2, sizeof(name));
+       BLI_strncpy(seq_a->name+2, seq_b->name+2, sizeof(seq_b->name)-2);
+       BLI_strncpy(seq_b->name+2, name, sizeof(seq_b->name)-2);
 
        /* swap back opacity, and overlay mode */
        SWAP(int, seq_a->blend_mode, seq_b->blend_mode);
@@ -3646,14 +3650,14 @@ Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo
        /* we only need 1 element to store the filename */
        strip->stripdata= se= MEM_callocN(sizeof(StripElem), "stripelem");
 
-       BLI_split_dirfile(seq_load->path, strip->dir, se->name);
+       BLI_split_dirfile(seq_load->path, strip->dir, se->name, sizeof(strip->dir), sizeof(se->name));
 
        seq->scene_sound = sound_add_scene_sound(scene, seq, seq_load->start_frame, seq_load->start_frame + strip->len, 0);
 
        calc_sequence_disp(scene, seq);
 
        /* last active name */
-       strncpy(ed->act_sounddir, strip->dir, FILE_MAXDIR-1);
+       BLI_strncpy(ed->act_sounddir, strip->dir, FILE_MAXDIR);
 
        seq_load_apply(scene, seq, seq_load);
 
@@ -3705,7 +3709,7 @@ Sequence *sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo
        /* we only need 1 element for MOVIE strips */
        strip->stripdata= se= MEM_callocN(sizeof(StripElem), "stripelem");
 
-       BLI_split_dirfile(seq_load->path, strip->dir, se->name);
+       BLI_split_dirfile(seq_load->path, strip->dir, se->name, sizeof(strip->dir), sizeof(se->name));
 
        calc_sequence_disp(scene, seq);