On date Saturday 2016-09-10 13:51:34 +0200, Nicolas George encoded: > Le tridi 23 fructidor, an CCXXIV, Stefano Sabatini a écrit : [...] > This issue of reading packets to extract information but not clutter the > output with them is the reason I suggested in my example > "packets+frames=silent=1". > > Still, the inconsistent syntax does not bother me either way: I think users > can understand that a feature (doing the probe but suppressing the output) > only works for a particular section, but they can also understand that the > same feature works for all sections but is only useful for one. Therefore, > we do whichever is simpler to implement and just make sure to explain it in > the doc. > > There is another, more confusing case, where "print sections in order" can > not work: packets and frames must be probed and printed together. > > I think it would help to thinks of the steps not as sections to print but as > tasks to perform. Most tasks are just printing a section, but the task about > packets has three optional subtasks: printing the packets, decoding the > frames, printing the frames (of course, printing the frames without decoding > makes no sense). > > If we design things to allow tasks to have aliases ("f" for "formats") and > allow aliases to have different defaults for options, things can work in a > way that is both convenient and logical. Consider a single task, > "packets_and_frames", with three options, "print_packets=[01]", > "decode_frames=[01]", "print_frames=[01]", and aliases: "packets" causing > the options to default to 1/0/0, "frames" to 0/1/1; any other combination > can be achieved by setting the options explicitly. > > The enabling or disabling of individual fields can also be an option to > tasks. That allow to support the same features as -show_entries in a more > logical way.
So I thought more about this idea of a sort -dotasks option. The problem with sorting the output of my proposed approach fights with -read_packets. Indeed if we enable output ordering, still we don't know when the program is supposed to read the packets (unless we extend the syntax with something as !packets,format). An hypotetical -dotasks option may solve the problem as this: -dotasks format,packets=silent,streams What if you want only to print some specific entries? We can use it in combination with -show_entries, for example: -dotasks packets=silent,streams,format -show_entries format=format_name The problem with this approach is that it will conflict with -show_entries, for example in: -dotasks packets=silent,format -show_entries streams,packets Unless you're suggesting to entirely dig the -show_entries option. Otherwise we would need to figure out how to make the two options coexist. -- FFmpeg = Funny and Free Mortal Purposeless Easy Guru _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel