Skip to content
Snippets Groups Projects
  1. Dec 31, 2021
  2. Dec 28, 2021
  3. Dec 27, 2021
  4. Dec 25, 2021
  5. Dec 24, 2021
    • Fatih Uzunoğlu's avatar
      qml: use FlickableScrollHandler in various Flickables · 4f7e6a49
      Fatih Uzunoğlu authored and Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf committed
      4f7e6a49
    • Fatih Uzunoğlu's avatar
      Revert "qml: disable overshoot in toolbar editor grid view" · b172b099
      Fatih Uzunoğlu authored and Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf committed
      This reverts commit 4e8133f4.
      b172b099
    • Fatih Uzunoğlu's avatar
      Revert "qml: stop at bounds when scrolling in ExpandGridView" · 6287a435
      Fatih Uzunoğlu authored and Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf committed
      This reverts commit 7a0719ce.
      6287a435
    • Fatih Uzunoğlu's avatar
      Revert "qml: stop at bound when scrolling in KeyNavigableListView" · b43612bf
      Fatih Uzunoğlu authored and Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf committed
      This reverts commit 22268499.
      b43612bf
    • Fatih Uzunoğlu's avatar
      Revert "qml: toolbar view to stop at bounds" · c920b335
      Fatih Uzunoğlu authored and Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf committed
      This reverts commit ddb5082e.
      c920b335
    • Fatih Uzunoğlu's avatar
      qml: add FlickableScrollHandler · 6a5cbc9d
      Fatih Uzunoğlu authored and Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf committed
      6a5cbc9d
    • Fatih Uzunoğlu's avatar
      qml: add MultipleBinding · 290351b5
      Fatih Uzunoğlu authored and Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf committed
      290351b5
    • Fatih Uzunoğlu's avatar
      qt: add option 'qt-smooth-scrolling' · 1a562615
      Fatih Uzunoğlu authored and Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf committed
      1a562615
    • Fatih Uzunoğlu's avatar
      qt: register type FlickableScrollHandler · 8813b048
      Fatih Uzunoğlu authored and Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf committed
      8813b048
    • Fatih Uzunoğlu's avatar
      qt: add FlickableScrollHandler · 4d9a386f
      Fatih Uzunoğlu authored and Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf committed
      4d9a386f
    • Lyndon Brown's avatar
      macos: rework prefs tree construction logic · c9965e65
      Lyndon Brown authored and Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen committed
       - fixes the possibility of cat and subcat nodes sometimes being created
         when not needed.
       - more efficiently skips things when cat is hidden or unknown.
      c9965e65
    • Lyndon Brown's avatar
    • Lyndon Brown's avatar
      macos: add method for prefs tree leaf object creation · 54f91e7f
      Lyndon Brown authored and Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen committed
      as done with cat/subcat/plugin objects.
      54f91e7f
    • Lyndon Brown's avatar
      macos: fix multi-free unsoundness and duplicate plugin nodes in prefs tree · 786fb23f
      Lyndon Brown authored and Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen committed
      whilst most plugin descriptors make only a single `set_subcategory()` call
      (indicating relevant location in the preferences tree for their options),
      some make multiple calls, generating multiple 'subcat' entries within their
      option sets.
      
      it should be noted that the qt prefs tree construction code (currently)
      handles this by essentially ignoring all but the first one; whether or not
      this is the best design, vs. breaking up such option sets across the tree,
      is a subject that is tackled in a piece of work to be submitted for review
      later.
      
      in any case, the macos prefs tree construction code here looked highly
      suspect to me with regards to how it handles such situations. (i'm basing
      this on reading code only, i have no Apple device available).
      
      the loop processing each plugin:
      
       1. creates a `PluginBranch` item. this holds the copy of the config set
          returned by the `module_config_get()` call, which its destructor will
          `free()`.
       2. as the plugin's config set is iterated over, cat and subcat nodes are
          created as necessary (if nodes for them have not already been created)
          in direct response to any subcat entries (to ensure the existence of
          the parent nodes that the plugin node will be attached to in the tree).
       3. for other item types in the set (i.e. actual options along with
          'section' items), they are 'attached' to the `PluginBranch` item (added
          to it's `options` array). additionally the `PluginBranch` item itself
          is 'attached' to the relevant cat/subcat node (added to that node's
          `children` array) if it is not already present there.
      
      so when it comes to plugin option sets that contain multiple subcat items,
      this logic means that the `PluginBranch` object will get 'attached' once to
      each and every unique subcat in the set (well, those that are directly
      followed by at least one non-subcat item).
      
      this fact alone is a problem, since we surely don't want copies of a
      plugin's entire option set appearing in multiple places in the tree. it
      could be a source of confusion, and creates a potential problem (which i've
      not properly examined) when it comes to saving changes.
      
      however it is worse than just an organisational problem - this duplication
      of `PluginBranch` instances within the tree actually creates multi-free
      issues when it comes to the matter of object destruction. when 'attaching'
      `PluginBranch` objects to a cat/subcat we are adding its pointer to an
      `NSMutableArray`, which apparently automatically calls `release` (the obj-C
      equivalent of C++'s `delete`) on the items it contains when it itself is
      destroyed. effectively, by placing the pointer of an allocated object into
      such an array, we hand over ownership. the problem is that we are assigning
      ownership of the same object to multiple arrays in these multi-subcat
      cases. this means that these objects get released multiple times, and
      furthermore via their destructors free their config sets multiple times.
      ouch!
      
      this commit fixes the problem very simply by keeping track of whether or
      not we have already attached the plugin node somewhere, and only attaches
      it to a cat/subcat if not. this prevents the issues described here, and
      brings the handling of such multi-subcat option sets more into line with
      the current qt handling.
      
      an issue remains of potentially unnecessary cat/subcat node creation, which
      will be tackled in a later commit.
      786fb23f
    • Lyndon Brown's avatar
      macos: fix placement of plugin node's targeting general subcats · 84e55fc9
      Lyndon Brown authored and Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen committed
      as explained in the previous commit, plugins that reference 'general'
      subcategories in their option sets are mishandled when it comes to creating
      nodes in the plugin tree. the previous commit laid the groundwork for a
      solution to this, and now here we actually fix the problem.
      
      to summarise, if the target subcat is a general one, the plugin node is
      supposed to be attached to the cat node, i.e. placed on the 2nd tier
      alongside subcategory nodes for that category. instead it was mistakenly
      attached to the previous `subCategoryItem`.
      
      in fact if the first or only subcat specified in the plugin's option set is
      a general one, `subCategoryItem` would be null, and thus the plugin node
      object would just never be attached at all.
      84e55fc9
    • Lyndon Brown's avatar
      macos: merge prefs tree node types · 232de8f7
      Lyndon Brown authored and Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen committed
      nodes for plugins are created in the preferences tree depending upon use of
      'subcategory' entries within plugin option sets. while most plugins specify
      'non-general' subcategories, and thus will appear on the 3rd tier of the
      tree (cat -> subcat -> plugin), some specify 'general' subcategories (which
      represent option sets shown when category nodes are selected), and in this
      case the plugin node must appear on the 2nd tier alongside subcategory
      nodes.
      
      the existing code here did not support this however, with such nodes
      instead mistakenly being attached to the previous non-general subcat node,
      if available, which is completely wrong.
      
      unfortunately implementation of a simple fix for this is blocked because
      different object types are used to represent each of the three different
      node types (category; subcategory; plugin) and everything is naively
      designed upon the false expectation that the three tiers of the tree can
      map purely to each of these respective object types, incompatible with
      allowing for a mix of subcat and plugin nodes on the 2nd tier.
      
      a significant overhaul of the node design is thus first required before we
      can fix the actual misplacement issue. here i have taken the obvious
      approach of unifying the three branch types into one, with an enum based
      property identifying subtypes. yes, this requires a little extra memory,
      but it's simple and gives us the needed flexibility.
      
      the misplacement issue itself will be fixed in the next commit.
      
      note, a few additional lines where changed in taking the opportunity to
      rename `subCategoryItem` to `subcategoryItem`.
      232de8f7
    • Lyndon Brown's avatar
      macos: fix potential prefs tree option misplacement · 06297c6e
      Lyndon Brown authored and Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen committed
      when processing the core option set, if the subcat is a 'general' one and
      we have a category node to attach the current option to, we attached it.
      the alternate path was intended for otherwise attaching options of
      non-general subcats to the relevant subcat node (when we have a node for
      that subcat).
      
      the problem with the implementation of this is what happens if the subcat
      is considered a 'general' one, but should we not have a cat node. in this
      case it would go down the incorrect path of trying to attach the option to
      the last created subcat node, rather than performing the correct action of
      ignoring it.
      06297c6e
    • Lyndon Brown's avatar
      macos: cache subcat-is-general check result · c62b1b5b
      Lyndon Brown authored and Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen committed
      c62b1b5b
    • Thomas Guillem's avatar
      test: test the ancillary API · d0547192
      Thomas Guillem authored
      d0547192
    • Thomas Guillem's avatar
      picture: use the ancillary API · e0b6a09a
      Thomas Guillem authored
      Fixes #18762
      e0b6a09a
    • Thomas Guillem's avatar
      frame: add the ancillary API · d453e8f4
      Thomas Guillem authored
      Refs #18762
      d453e8f4
    • Thomas Guillem's avatar
      core: add the vlc_ancillary API · 9287173a
      Thomas Guillem authored
      Ancillaries can be attached to any vlc_frame_t or picture_t (in next
      commits).
      
      Ancillaries can be created from:
       - packetized demuxer modules
       - packetizer modules
       - decoder modules
      
      It can't be created from a non packetized demuxer module since the
      attachement to the vlc_frame will be lost by the packetizer module that
      will be automatically inserted.
      
      Ancillaries are automatically forwarded from a vlc_frame_t to an other
      vlc_frame_t and from a picture_t to an other picture_t. This allow to keep
      ancillaries untouched when audio filters or video filters are used (these
      filters don't have to know about the ancillary).
      
      Ancillary readers can be either:
       - A decoder module
       - An audio output
       - A video output
       - Any filters
      
      Refs #18762
      9287173a
    • Thomas Guillem's avatar
      frame: move vlc_frame_CopyProperties to frame.c · 20b6faa8
      Thomas Guillem authored
      Will be needed by the next commit.
      No functional changes.
      
      Refs #18762
      20b6faa8
    • Thomas Guillem's avatar
Loading