rinigus | nephros: is there any reason for https://build.sailfishos.org/package/show/sailfishos:chum:testing/uptimed to be enabled for only one specific arch/version combination? | 07:45 |
---|---|---|
*** Mikaela is now known as Guest152 | 15:12 | |
Mister_Magister | mal: had any chance to look at this issue past couple of years? or anyone at jolla for that matter? https://forum.sailfishos.org/t/avc1-has-to-be-finally-fixed/16003 | 22:37 |
mal | Mister_Magister: did you have some sample video and/or instructions how to reproduce that? | 22:39 |
Mister_Magister | yep | 22:39 |
Mister_Magister | i did have them | 22:39 |
Mister_Magister | mal: i can repeat them again, altho i can't find them. grab youtube-dl or yt-dlp, prefferably the latter, type yt-dlp <url> -f 299 -g, grab that url, open picoplayer (or just make sample app with box standard qtmultimedia video player) and feed it that url, then try to seek | 22:43 |
Mister_Magister | if it was problem with my app, other codecs wouldn't work as it's gstreamer stuff | 22:44 |
Mister_Magister | it does work in the browser | 22:44 |
Mister_Magister | but we all know browser uses droidmedia differenetly, so possibly gstdroid is the culprit (which i wouldn't be surprised) | 22:45 |
mal | yeah if browser can use same codec without issues then it does sound like gstdroid, assuming browser really used hw codec for that | 22:45 |
Mister_Magister | i can even make you special version of microtube that will always pick avc1 format making it fail every time | 22:45 |
Mister_Magister | and ye gstdroid even more since its the gstreamer managing the seeking and failing | 22:46 |
mal | it's only when streaming? | 22:46 |
mal | not local files? | 22:46 |
Mister_Magister | yep | 22:47 |
Mister_Magister | only when streaming, and possibly only when streaming video only file | 22:48 |
mal | streaming is always is a bit sketchy | 22:48 |
Mister_Magister | i'm not sure about that as i forgot details couple years ago | 22:48 |
Mister_Magister | i think there's problem in qtmux | 22:48 |
Mister_Magister | don't ask me why is it used but it is | 22:49 |
Mister_Magister | i'm planning to throw in some software decoding to workaround it and allow older devices more codecs (+ when i'll port it eventually to desktop) | 22:51 |
Mister_Magister | https://paste.opensuse.org/pastes/8a0c8c9faa1d | 22:55 |
Mister_Magister | oh no wait i found it qtdemux.c:1648:gst_qtdemux_handle_src_event:<qtdemux0:video_0> Rejecting seek request in bytes format | 22:56 |
mal | ah | 22:56 |
Mister_Magister | thats why i mentioned qtdemux, i knew it had to be for a reason | 22:57 |
Mister_Magister | if you wanna see more logs https://paste.opensuse.org/pastes/85db4dd9de3a | 22:58 |
mal | what determines the seek format? | 22:58 |
mal | probably time based seek could work? | 22:59 |
Mister_Magister | don't ask me I have no clue | 22:59 |
Mister_Magister | i'm not specifying format when sending seek event, i think h264parse does that | 23:00 |
Mister_Magister | https://paste.opensuse.org/pastes/08c5cad72903 see | 23:00 |
Mister_Magister | oh wait i'm taking it back i'm specifying format, and its GST_FORMAT_TIME | 23:00 |
Mister_Magister | not bytes | 23:00 |
mal | hmm | 23:01 |
Mister_Magister | kek souphttp also sends seek fail "gstbasesrc.c:1499:gst_base_src_default_prepare_seek_segment:<souphttpsrc0> undefined format given, seek aborted." | 23:03 |
Mister_Magister | i'm aware that at this point its easy to say "oh you're simply doing something wrong" but believe me, i'm not | 23:05 |
mal | Mister_Magister: do you have your code somewhere? | 23:13 |
Mister_Magister | all on github | 23:13 |
Mister_Magister | but simplest will be https://github.com/Michal-Szczepaniak/gstdroid-player | 23:13 |
Mister_Magister | this is base on which microtube and picoplayer player is based | 23:13 |
* Mister_Magister you can use that to reproduce it as well | 23:14 | |
mal | have you tried GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT as suggested by gst docs? | 23:14 |
Mister_Magister | the flags i'm using work fine for me though | 23:14 |
Mister_Magister | i'm usign GST_SEEK_FLAG_FLUSH|GST_SEEK_FLAG_TRICKMODE|GST_SEEK_FLAG_ACCURATE | 23:15 |
Mister_Magister | i can try it but i'm telling you it's not a problem in client code | 23:16 |
Mister_Magister | vp9 is seeking fine just fine | 23:16 |
mal | just meaning that there is a possibility that the accurate flag could in theory cause the event to end up being changed to bytes based? | 23:17 |
mal | trying to check gst code if it does that | 23:17 |
mal | afaik seeking to key frame would be better anyway since it would probably cause less artifacts | 23:18 |
Mister_Magister | there are no artifacts though | 23:19 |
mal | could you still test that out of curiosity | 23:19 |
Mister_Magister | yes i'm trying as we speak | 23:20 |
Mister_Magister | though there's some issue with playing avc1 | 23:20 |
mal | one issue at a time | 23:20 |
Mister_Magister | yepp | 23:20 |
mal | just for reference about those flags https://gstreamer.freedesktop.org/documentation/gstreamer/gstelement.html?gi-language=c#gst_element_seek_simple | 23:23 |
Mister_Magister | checked in picoplayer, nope | 23:23 |
mal | "playback applications will usually want to use GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT here" | 23:23 |
Mister_Magister | i'm really using gst_element_seek | 23:23 |
Mister_Magister | which is i guess not as simple as _simple variant but its basically same thing | 23:24 |
Mister_Magister | also like i mentioned, the jolla-provided qtmultimedia also fails at that | 23:29 |
Mister_Magister | so i guess you can blame qt at this point | 23:29 |
Mister_Magister | i'm happy to provide any assistance so currently i'm trying to convince you this is dead end, it's not client side issue | 23:30 |
mal | which flags did you use in that test? | 23:30 |
Mister_Magister | latest? GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT | 23:30 |
mal | which codec is in use in that test? | 23:35 |
Mister_Magister | avc1 | 23:35 |
Mister_Magister | only avc1 has this issue | 23:35 |
mal | so h.264 | 23:36 |
Mister_Magister | yes | 23:36 |
* Mister_Magister don't ask what qtmux is doing | 23:38 | |
mal | well in theory there could be some issue in the gstdroidcodec.c in the process_h26xdec_data for example | 23:39 |
Mister_Magister | i think there's insanely high possibility that it's in practice | 23:40 |
Mister_Magister | cause rest of the stack is unmodified | 23:40 |
mal | if timestamps or something are not good it could end up in bytes mode | 23:40 |
Mister_Magister | that leaves the only potential culprit | 23:40 |
Mister_Magister | wish i could gdb gstdroid | 23:41 |
mal | nothing about gstdroid in that log you gave | 23:41 |
mal | can't you? | 23:41 |
Mister_Magister | idk how | 23:41 |
mal | there was some magic to gst debugging | 23:41 |
Mister_Magister | tbh i'm not that hype about debugging gstreamer stuff | 23:42 |
mal | I remember doing this during some debugging: gdb --args gst-inspect-1.0 --gst-disable-segtrap --gst-disable-registry-fork droidcamsrc | 23:44 |
Mister_Magister | good luck :P | 23:45 |
mal | so the same code works for other video formats? | 23:46 |
Mister_Magister | yep | 23:46 |
Mister_Magister | vp9 for that matter | 23:46 |
Mister_Magister | works with video with audio too on h264 | 23:47 |
Mister_Magister | so i'm more inclined to say its something in pipeline | 23:47 |
Mister_Magister | like if you get the url for format 22 which includes audio it will just work | 23:47 |
Mister_Magister | iirc | 23:48 |
* Mister_Magister you're allowed to say what the fuck at this point | 23:48 | |
mal | that audio thing is quite odd indeed | 23:49 |
Mister_Magister | thats a nice way of saying "what the fuck" | 23:49 |
mal | but then again audio has timestamps also and could be used to help seeking | 23:49 |
Mister_Magister | hence i mentioned yt-dlp cause u can get stream url from yt instead hosting ur own thing god knows what | 23:50 |
Mister_Magister | mal: but vp9 works, also everything works outside of sfos | 23:50 |
mal | in that log you gave to which time were you seeking? | 23:52 |
mal | 30 seconds? | 23:52 |
Mister_Magister | no clue i was randomly tapping | 23:52 |
Mister_Magister | alsoalso changing playback speed doesn't work either (it's using seek for playback speed) | 23:53 |
mal | one more thing to test out of curiosity GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT | GST_SEEK_FLAG_SNAP_NEAREST | 23:54 |
Mister_Magister | i think we were doing same thing last time | 23:55 |
Mister_Magister | aka u telling me to change flags and me argumenting in million different ways that its not client side code | 23:56 |
Mister_Magister | also you won't be surprised to hear it didn't work either | 23:56 |
mal | well otherwise I would be testing those anyway | 23:57 |
mal | to rule out everything | 23:57 |
Mister_Magister | understandable | 23:57 |
Mister_Magister | im here to help | 23:57 |
Mister_Magister | i want h264 cause older phones don't have vp9 | 23:58 |
mal | doesn't sw vp9 work on older phones? | 23:58 |
Mister_Magister | ye but then you can't use gstdroid output | 23:59 |
Mister_Magister | and have to make different renderer | 23:59 |
Mister_Magister | which i'm yet to do | 23:59 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!