Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Kdenlive Kdenlive
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 375
    • Issues 375
    • List
    • Boards
    • Service Desk
    • Milestones
  • Bugzilla
    • Bugzilla
  • Merge requests 10
    • Merge requests 10
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Multimedia
  • KdenliveKdenlive
  • Issues
  • #713

Closed
Open
Created Jun 06, 2020 by Simon Eugster@eugsterDeveloper9 of 10 tasks completed9/10 tasks

Use the C locale for project files

This issue should fix #78 (closed) and many related issues.

Tasks

First priority is to make sure that Kdenlive only writes project files with the C locale. From this point on, decimal separator issues should be gone with new projects.

Then, make sure that existing projects can still be loaded in cases where an earlier Kdenlive version could load them as well.

Lower priority is to also load project files which caused a crash in earlier versions. Those project files are atm. “lost” anyway (i.e. users are not working with them anymore because, well, they cannot) and recovering them would be nice to have.

Other parts should obviously not be affected (e.g. the UI should still use the correct language, input fields as well).

The change should work on Linux, Windows, and OS X.

Check that the following decimal separator bug occurrences do not happen anymore (# number is the issue number):

<!-- #78 (19.03.90) -->
  <property name="meta.media.0.stream.frame_rate">29,9692</property> <!-- OK -->
  <property name="meta.media.0.codec.frame_rate">29,97</property> <!-- OK -->
  <property name="kdenlive:docproperties.decimalPoint">,</property> <!-- OK -->
<!-- #78 (18.12.1) -->
  <property name="meta.media.0.stream.frame_rate">59,9401</property> <!-- OK -->
  <property name="warp_speed">0,5</property> <!-- OK -->
    # <filter> frei0r.defish0r 
    <property name="Interpolator">0,166</property> <!-- OK -->
<!-- #606 (20.07.70) -->
    # <filter> frei0r.levels
    <property name="Histogram position">0,3</property> <!-- OK -->
    <property name="Gamma">00:00:02,800=0,25;00:00:03,040=0,6675</property> <!-- OK -->

  <filter id="filter12">
   <property name="channel">-1</property>
   <property name="mlt_service">panner</property>
   <property name="internal_added">237</property>
   <property name="start">0,5</property> <!-- OK -->
   <property name="disable">1</property>
  </filter>


   <filter id="filter15">
    <property name="version">0,4</property> <!-- OK -->
    <property name="mlt_service">frei0r.levels</property>
    <property name="kdenlive_id">frei0r.levels</property>
   </filter>

   <filter id="filter21">
    <property name="version">0,2</property> <!-- OK -->
    <property name="mlt_service">frei0r.IIRblur</property>
    <property name="kdenlive_id">frei0r.IIRblur</property>
    <property name="Amount">00:00:00,000=0.002</property>
    <property name="Type">0.999</property>
    <property name="Edge">1</property>
    <property name="kdenlive:collapsed">0</property>
   </filter>

  <filter id="filter23">
   <property name="channel">-1</property>
   <property name="mlt_service">panner</property>
   <property name="internal_added">237</property>
   <property name="start">0,5</property> <!-- OK -->
   <property name="disable">1</property>
  </filter>

<!-- #406488 (19.04.0) -->

Code todos

  • kdenlive_renderer: Check if old projects can still be loaded (with , as decimal separator)
  • Remove the property kdenlive:docproperties.decimalPoint and code related to it
  • Check all LC_NUMERIC occurrences
  • Check all QLocale occurrences (These do not affect the MLT part, but properties which we add to the .kdenlive file)
  • Fix const QByteArray KdenliveDoc::getProjectXml() (getter which has side effects)
  • Rework/remove locale related parts in bool DocumentValidator::validate(const double currentVersion)
  • Convert widgets in a way that they only show localised numbers, but store/forward with C locale
  • Make sure DOCUMENTVERSION is newer than master when merging
  • Check timecode.cpp if getTimecode() needs a localised function for the UI
  • Check all LC_NUMERIC occurrences again

Further References

  • https://github.com/mltframework/mlt/issues/580#issuecomment-639881338
  • https://invent.kde.org/eugster/decimal-separator
Edited Jun 27, 2020 by Simon Eugster
Assignee
Assign to
Time tracking