Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-2-2
Commits
083c2a24
Commit
083c2a24
authored
Jul 21, 2013
by
David Fuhrmann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
macosx: fix a bunch of string memleaks in video effects panel code
parent
a3c4d7c7
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
70 additions
and
27 deletions
+70
-27
modules/gui/macosx/StringUtility.h
modules/gui/macosx/StringUtility.h
+8
-0
modules/gui/macosx/StringUtility.m
modules/gui/macosx/StringUtility.m
+28
-0
modules/gui/macosx/VideoEffects.h
modules/gui/macosx/VideoEffects.h
+1
-1
modules/gui/macosx/VideoEffects.m
modules/gui/macosx/VideoEffects.m
+33
-26
No files found.
modules/gui/macosx/StringUtility.h
View file @
083c2a24
...
...
@@ -32,6 +32,10 @@
* the translated string. the translation should be '1:translatedstring' though */
#define _ANS(s) [[[VLCStringUtility sharedInstance] localizedString: _(s)] substringFromIndex:2]
#define B64DecNSStr(s) [[VLCStringUtility sharedInstance] b64Decode: s]
#define B64EncAndFree(s) [[VLCStringUtility sharedInstance] b64EncodeAndFree: s]
unsigned
int
CocoaKeyToVLC
(
unichar
i_key
);
@interface
VLCStringUtility
:
NSObject
...
...
@@ -46,4 +50,8 @@ unsigned int CocoaKeyToVLC(unichar i_key);
-
(
NSString
*
)
VLCKeyToString
:(
NSString
*
)
theString
;
-
(
unsigned
int
)
VLCModifiersToCocoa
:(
NSString
*
)
theString
;
-
(
NSString
*
)
b64Decode
:(
NSString
*
)
string
;
-
(
NSString
*
)
b64EncodeAndFree
:(
char
*
)
psz_string
;
@end
modules/gui/macosx/StringUtility.m
View file @
083c2a24
...
...
@@ -26,6 +26,8 @@
#import <vlc_input.h>
#import <vlc_keys.h>
#import <vlc_strings.h>
#import "StringUtility.h"
#import "intf.h"
...
...
@@ -322,4 +324,30 @@ unsigned int CocoaKeyToVLC(unichar i_key)
return
theString
;
}
-
(
NSString
*
)
b64Decode
:(
NSString
*
)
string
{
char
*
psz_decoded_string
=
vlc_b64_decode
([
string
UTF8String
]);
if
(
!
psz_decoded_string
)
return
@""
;
NSString
*
returnStr
=
[
NSString
stringWithFormat
:
@"%s"
,
psz_decoded_string
];
free
(
psz_decoded_string
);
return
returnStr
;
}
-
(
NSString
*
)
b64EncodeAndFree
:(
char
*
)
psz_string
{
char
*
psz_encoded_string
=
vlc_b64_encode
(
psz_string
);
free
(
psz_string
);
if
(
!
psz_encoded_string
)
return
@""
;
NSString
*
returnStr
=
[
NSString
stringWithFormat
:
@"%s"
,
psz_encoded_string
];
free
(
psz_encoded_string
);
return
returnStr
;
}
@end
modules/gui/macosx/VideoEffects.h
View file @
083c2a24
...
...
@@ -154,7 +154,7 @@
-
(
void
)
setVideoFilter
:
(
char
*
)
psz_name
on
:(
BOOL
)
b_on
;
-
(
void
)
setVideoFilterProperty
:
(
char
*
)
psz_name
forFilter
:
(
char
*
)
psz_filter
integer
:
(
int
)
i_value
;
-
(
void
)
setVideoFilterProperty
:
(
char
*
)
psz_name
forFilter
:
(
char
*
)
psz_filter
float
:
(
float
)
f_value
;
-
(
void
)
setVideoFilterProperty
:
(
char
*
)
psz_name
forFilter
:
(
char
*
)
psz_filter
string
:
(
char
*
)
psz_value
;
-
(
void
)
setVideoFilterProperty
:
(
char
*
)
psz_name
forFilter
:
(
char
*
)
psz_filter
string
:
(
c
onst
c
har
*
)
psz_value
;
-
(
void
)
setVideoFilterProperty
:
(
char
*
)
psz_name
forFilter
:
(
char
*
)
psz_filter
boolean
:
(
BOOL
)
b_value
;
-
(
void
)
saveCurrentProfile
;
...
...
modules/gui/macosx/VideoEffects.m
View file @
083c2a24
...
...
@@ -26,7 +26,6 @@
#import <vlc_common.h>
#import <vlc_modules.h>
#import <vlc_charset.h>
#import <vlc_strings.h>
#import "VideoEffects.h"
#import "SharedDialogs.h"
...
...
@@ -521,10 +520,13 @@ static VLCVideoEffects *_o_sharedInstance = nil;
psz_string
=
config_GetPsz
(
p_intf
,
psz_filter_type
);
if
(
b_on
)
{
if
(
!
psz_string
)
psz_string
=
psz_name
;
else
if
(
strstr
(
psz_string
,
psz_name
)
==
NULL
)
psz_string
=
(
char
*
)[[
NSString
stringWithFormat
:
@"%s:%s"
,
psz_string
,
psz_name
]
UTF8String
];
if
(
!
psz_string
)
{
free
(
psz_string
);
psz_string
=
strdup
(
psz_name
);
}
else
if
(
strstr
(
psz_string
,
psz_name
)
==
NULL
)
{
free
(
psz_string
);
psz_string
=
strdup
([[
NSString
stringWithFormat
:
@"%s:%s"
,
psz_string
,
psz_name
]
UTF8String
]);
}
}
else
{
if
(
!
psz_string
)
return
;
...
...
@@ -559,6 +561,8 @@ static VLCVideoEffects *_o_sharedInstance = nil;
vlc_object_release
(
p_vout
);
}
}
free
(
psz_string
);
}
-
(
void
)
restartFilterIfNeeded
:
(
char
*
)
psz_filter
option
:
(
char
*
)
psz_name
...
...
@@ -658,12 +662,13 @@ static VLCVideoEffects *_o_sharedInstance = nil;
}
}
-
(
void
)
setVideoFilterProperty
:
(
char
*
)
psz_name
forFilter
:
(
char
*
)
psz_filter
string
:
(
char
*
)
psz_value
-
(
void
)
setVideoFilterProperty
:
(
char
*
)
psz_name
forFilter
:
(
char
*
)
psz_filter
string
:
(
c
onst
c
har
*
)
psz_value
{
char
*
psz_new_value
=
strdup
(
psz_value
);
vout_thread_t
*
p_vout
=
getVout
();
vlc_object_t
*
p_filter
;
config_PutPsz
(
p_intf
,
psz_name
,
EnsureUTF8
(
psz_value
));
config_PutPsz
(
p_intf
,
psz_name
,
EnsureUTF8
(
psz_
new_
value
));
if
(
p_vout
)
{
p_filter
=
vlc_object_find_name
(
pl_Get
(
p_intf
),
psz_filter
);
...
...
@@ -673,12 +678,14 @@ static VLCVideoEffects *_o_sharedInstance = nil;
vlc_object_release
(
p_vout
);
return
;
}
var_SetString
(
p_filter
,
psz_name
,
EnsureUTF8
(
psz_value
));
var_SetString
(
p_filter
,
psz_name
,
EnsureUTF8
(
psz_
new_
value
));
vlc_object_release
(
p_vout
);
vlc_object_release
(
p_filter
);
[
self
restartFilterIfNeeded
:
psz_filter
option
:
psz_name
];
}
free
(
psz_new_value
);
}
-
(
void
)
setVideoFilterProperty
:
(
char
*
)
psz_name
forFilter
:
(
char
*
)
psz_filter
boolean
:
(
BOOL
)
b_value
...
...
@@ -704,10 +711,10 @@ static VLCVideoEffects *_o_sharedInstance = nil;
-
(
NSString
*
)
generateProfileString
{
return
[
NSString
stringWithFormat
:
@"%
s;%s;%s;%lli;%f;%f;%f;%f;%f;%lli;%f;%s;%lli;%lli;%lli;%lli;%lli;%lli;%s;%lli;%lli;%lli;%lli;%lli;%s;%lli;%s
;%lli;%lli;%lli;%lli;%lli"
,
vlc_b64_encod
e
(
config_GetPsz
(
p_intf
,
"video-filter"
)),
vlc_b64_encod
e
(
config_GetPsz
(
p_intf
,
"sub-source"
)),
vlc_b64_encod
e
(
config_GetPsz
(
p_intf
,
"video-splitter"
)),
return
[
NSString
stringWithFormat
:
@"%
@;%@;%@;%lli;%f;%f;%f;%f;%f;%lli;%f;%@;%lli;%lli;%lli;%lli;%lli;%lli;%@;%lli;%lli;%lli;%lli;%lli;%@;%lli;%@
;%lli;%lli;%lli;%lli;%lli"
,
B64EncAndFre
e
(
config_GetPsz
(
p_intf
,
"video-filter"
)),
B64EncAndFre
e
(
config_GetPsz
(
p_intf
,
"sub-source"
)),
B64EncAndFre
e
(
config_GetPsz
(
p_intf
,
"video-splitter"
)),
config_GetInt
(
p_intf
,
"hue"
),
config_GetFloat
(
p_intf
,
"contrast"
),
config_GetFloat
(
p_intf
,
"brightness"
),
...
...
@@ -716,22 +723,22 @@ static VLCVideoEffects *_o_sharedInstance = nil;
config_GetFloat
(
p_intf
,
"sharpen-sigma"
),
config_GetInt
(
p_intf
,
"gradfun-radius"
),
config_GetFloat
(
p_intf
,
"grain-variance"
),
vlc_b64_encod
e
(
config_GetPsz
(
p_intf
,
"transform-type"
)),
B64EncAndFre
e
(
config_GetPsz
(
p_intf
,
"transform-type"
)),
config_GetInt
(
p_intf
,
"puzzle-rows"
),
config_GetInt
(
p_intf
,
"puzzle-cols"
),
config_GetInt
(
p_intf
,
"colorthres-color"
),
config_GetInt
(
p_intf
,
"colorthres-saturationthres"
),
config_GetInt
(
p_intf
,
"colorthres-similaritythres"
),
config_GetInt
(
p_intf
,
"sepia-intensity"
),
vlc_b64_encod
e
(
config_GetPsz
(
p_intf
,
"gradient-mode"
)),
B64EncAndFre
e
(
config_GetPsz
(
p_intf
,
"gradient-mode"
)),
config_GetInt
(
p_intf
,
"gradient-cartoon"
),
config_GetInt
(
p_intf
,
"gradient-type"
),
config_GetInt
(
p_intf
,
"extract-component"
),
config_GetInt
(
p_intf
,
"posterize-level"
),
config_GetInt
(
p_intf
,
"blur-factor"
),
vlc_b64_encod
e
(
config_GetPsz
(
p_intf
,
"marq-marquee"
)),
B64EncAndFre
e
(
config_GetPsz
(
p_intf
,
"marq-marquee"
)),
config_GetInt
(
p_intf
,
"marq-position"
),
vlc_b64_encod
e
(
config_GetPsz
(
p_intf
,
"logo-file"
)),
B64EncAndFre
e
(
config_GetPsz
(
p_intf
,
"logo-file"
)),
config_GetInt
(
p_intf
,
"logo-position"
),
config_GetInt
(
p_intf
,
"logo-opacity"
),
config_GetInt
(
p_intf
,
"clone-count"
),
...
...
@@ -793,7 +800,7 @@ static VLCVideoEffects *_o_sharedInstance = nil;
NSArray
*
items
=
[[[
defaults
objectForKey
:
@"VideoEffectProfiles"
]
objectAtIndex
:
selectedProfile
]
componentsSeparatedByString
:
@";"
];
/* filter handling */
NSString
*
tempString
=
[
NSString
stringWithFormat
:
@"%s"
,
vlc_b64_decode
([[
items
objectAtIndex
:
0
]
UTF8String
])]
;
NSString
*
tempString
=
B64DecNSStr
([
items
objectAtIndex
:
0
])
;
NSArray
*
tempArray
;
NSUInteger
count
;
...
...
@@ -806,7 +813,7 @@ static VLCVideoEffects *_o_sharedInstance = nil;
[
self
setVideoFilter
:(
char
*
)[[
tempArray
objectAtIndex
:
x
]
UTF8String
]
on
:
YES
];
}
tempString
=
[
NSString
stringWithFormat
:
@"%s"
,
vlc_b64_decode
([[
items
objectAtIndex
:
1
]
UTF8String
])]
;
tempString
=
B64DecNSStr
([
items
objectAtIndex
:
1
])
;
/* enable another round of new filters */
config_PutPsz
(
p_intf
,
"sub-source"
,
""
);
if
([
tempString
length
]
>
0
)
{
...
...
@@ -816,7 +823,7 @@ static VLCVideoEffects *_o_sharedInstance = nil;
[
self
setVideoFilter
:(
char
*
)[[
tempArray
objectAtIndex
:
x
]
UTF8String
]
on
:
YES
];
}
tempString
=
[
NSString
stringWithFormat
:
@"%s"
,
vlc_b64_decode
([[
items
objectAtIndex
:
2
]
UTF8String
])]
;
tempString
=
B64DecNSStr
([
items
objectAtIndex
:
2
])
;
/* enable another round of new filters */
config_PutPsz
(
p_intf
,
"video-splitter"
,
""
);
if
([
tempString
length
]
>
0
)
{
...
...
@@ -835,22 +842,22 @@ static VLCVideoEffects *_o_sharedInstance = nil;
[
self
setVideoFilterProperty
:
"sharpen-sigma"
forFilter
:
"sharpen"
float
:
[[
items
objectAtIndex
:
8
]
floatValue
]];
[
self
setVideoFilterProperty
:
"gradfun-radius"
forFilter
:
"gradfun"
integer
:
[[
items
objectAtIndex
:
9
]
intValue
]];
[
self
setVideoFilterProperty
:
"grain-variance"
forFilter
:
"grain"
float
:
[[
items
objectAtIndex
:
10
]
floatValue
]];
[
self
setVideoFilterProperty
:
"transform-type"
forFilter
:
"transform"
string
:
vlc_b64_decode
([[
items
objectAtIndex
:
11
]
UTF8String
])
];
[
self
setVideoFilterProperty
:
"transform-type"
forFilter
:
"transform"
string
:
[
B64DecNSStr
([
items
objectAtIndex
:
11
])
UTF8String
]
];
[
self
setVideoFilterProperty
:
"puzzle-rows"
forFilter
:
"puzzle"
integer
:
[[
items
objectAtIndex
:
12
]
intValue
]];
[
self
setVideoFilterProperty
:
"puzzle-cols"
forFilter
:
"puzzle"
integer
:
[[
items
objectAtIndex
:
13
]
intValue
]];
[
self
setVideoFilterProperty
:
"colorthres-color"
forFilter
:
"colorthres"
integer
:
[[
items
objectAtIndex
:
14
]
intValue
]];
[
self
setVideoFilterProperty
:
"colorthres-saturationthres"
forFilter
:
"colorthres"
integer
:
[[
items
objectAtIndex
:
15
]
intValue
]];
[
self
setVideoFilterProperty
:
"colorthres-similaritythres"
forFilter
:
"colorthres"
integer
:
[[
items
objectAtIndex
:
16
]
intValue
]];
[
self
setVideoFilterProperty
:
"sepia-intensity"
forFilter
:
"sepia"
integer
:
[[
items
objectAtIndex
:
17
]
intValue
]];
[
self
setVideoFilterProperty
:
"gradient-mode"
forFilter
:
"gradient"
string
:
vlc_b64_decode
([[
items
objectAtIndex
:
18
]
UTF8String
])
];
[
self
setVideoFilterProperty
:
"gradient-mode"
forFilter
:
"gradient"
string
:
[
B64DecNSStr
([
items
objectAtIndex
:
18
])
UTF8String
]
];
[
self
setVideoFilterProperty
:
"gradient-cartoon"
forFilter
:
"gradient"
integer
:
[[
items
objectAtIndex
:
19
]
intValue
]];
[
self
setVideoFilterProperty
:
"gradient-type"
forFilter
:
"gradient"
integer
:
[[
items
objectAtIndex
:
20
]
intValue
]];
[
self
setVideoFilterProperty
:
"extract-component"
forFilter
:
"extract"
integer
:
[[
items
objectAtIndex
:
21
]
intValue
]];
[
self
setVideoFilterProperty
:
"posterize-level"
forFilter
:
"posterize"
integer
:
[[
items
objectAtIndex
:
22
]
intValue
]];
[
self
setVideoFilterProperty
:
"blur-factor"
forFilter
:
"motionblur"
integer
:
[[
items
objectAtIndex
:
23
]
intValue
]];
[
self
setVideoFilterProperty
:
"marq-marquee"
forFilter
:
"marq"
string
:
vlc_b64_decode
([[
items
objectAtIndex
:
24
]
UTF8String
])
];
[
self
setVideoFilterProperty
:
"marq-marquee"
forFilter
:
"marq"
string
:
[
B64DecNSStr
([
items
objectAtIndex
:
24
])
UTF8String
]
];
[
self
setVideoFilterProperty
:
"marq-position"
forFilter
:
"marq"
integer
:
[[
items
objectAtIndex
:
25
]
intValue
]];
[
self
setVideoFilterProperty
:
"logo-file"
forFilter
:
"logo"
string
:
vlc_b64_decode
([[
items
objectAtIndex
:
26
]
UTF8String
])
];
[
self
setVideoFilterProperty
:
"logo-file"
forFilter
:
"logo"
string
:
[
B64DecNSStr
([
items
objectAtIndex
:
26
])
UTF8String
]
];
[
self
setVideoFilterProperty
:
"logo-position"
forFilter
:
"logo"
integer
:
[[
items
objectAtIndex
:
27
]
intValue
]];
[
self
setVideoFilterProperty
:
"logo-opacity"
forFilter
:
"logo"
integer
:
[[
items
objectAtIndex
:
28
]
intValue
]];
[
self
setVideoFilterProperty
:
"clone-count"
forFilter
:
"clone"
integer
:
[[
items
objectAtIndex
:
29
]
intValue
]];
...
...
@@ -1119,11 +1126,11 @@ static VLCVideoEffects *_o_sharedInstance = nil;
-
(
IBAction
)
transformModifierChanged
:(
id
)
sender
{
NSInteger
tag
=
[[
o_transform_pop
selectedItem
]
tag
];
c
har
*
psz_string
=
(
char
*
)
[[
NSString
stringWithFormat
:
@"%li"
,
tag
]
UTF8String
];
c
onst
char
*
psz_string
=
[[
NSString
stringWithFormat
:
@"%li"
,
tag
]
UTF8String
];
if
(
tag
==
1
)
psz_string
=
(
char
*
)
"hflip"
;
psz_string
=
"hflip"
;
else
if
(
tag
==
2
)
psz_string
=
(
char
*
)
"vflip"
;
psz_string
=
"vflip"
;
[
self
setVideoFilterProperty
:
"transform-type"
forFilter
:
"transform"
string
:
psz_string
];
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment