0010-libvlc-media-re-parse-if-flags-changed.patch 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. From 50a5d0ad39c707e2b4fcb5319fd85f30b37e9223 Mon Sep 17 00:00:00 2001
  2. From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
  3. Date: Fri, 19 Jun 2015 15:26:06 +0200
  4. Subject: [PATCH 10/10] libvlc/media: re-parse if flags changed
  5. ---
  6. lib/media.c | 6 ++++++
  7. lib/media_internal.h | 1 +
  8. 2 files changed, 7 insertions(+)
  9. diff --git a/lib/media.c b/lib/media.c
  10. index f5886ad..87a02d8 100644
  11. --- a/lib/media.c
  12. +++ b/lib/media.c
  13. @@ -724,6 +724,12 @@ static int media_parse(libvlc_media_t *media, bool b_async,
  14. vlc_mutex_lock(&media->parsed_lock);
  15. needed = !media->has_asked_preparse;
  16. media->has_asked_preparse = true;
  17. + if (!needed)
  18. + {
  19. + if (media->parse_flag != parse_flag)
  20. + needed = true;
  21. + }
  22. + media->parse_flag = parse_flag;
  23. vlc_mutex_unlock(&media->parsed_lock);
  24. if (needed)
  25. diff --git a/lib/media_internal.h b/lib/media_internal.h
  26. index 35f06a4..d28297e 100644
  27. --- a/lib/media_internal.h
  28. +++ b/lib/media_internal.h
  29. @@ -47,6 +47,7 @@ struct libvlc_media_t
  30. bool is_parsed;
  31. bool has_asked_preparse;
  32. + libvlc_media_parse_flag_t parse_flag;
  33. };
  34. /* Media Descriptor */
  35. --
  36. 2.4.4