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

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. From 36b1c82b3e35347880b9b5a091be8f29859a75d5 Mon Sep 17 00:00:00 2001
  2. From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
  3. Date: Fri, 19 Dec 2014 22:14:55 +0100
  4. Subject: [PATCH 06/14] 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 20266ae..fda7ba9 100644
  11. --- a/lib/media.c
  12. +++ b/lib/media.c
  13. @@ -719,6 +719,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.7.0