Skip to content

Commit abe6013

Browse files
pmhahnPhilipp Matthias Hahn
authored andcommitted
videoservice: Fix handling streams w/o codec_type
Some streams do not have a 'codec_type', which throws the following traceback: > File "/usr/bin/vidcutter", line 11, in <module> > load_entry_point('vidcutter==6.0.0', 'gui_scripts', 'vidcutter')() > File "/usr/lib/python3/dist-packages/vidcutter/__main__.py", line 380, in main > win = MainWindow() > File "/usr/lib/python3/dist-packages/vidcutter/__main__.py", line 86, in __init__ > self.file_opener(self.video) > File "/usr/lib/python3/dist-packages/vidcutter/__main__.py", line 102, in file_opener > self.cutter.loadMedia(filename) > File "/usr/lib/python3/dist-packages/vidcutter/videocutter.py", line 988, in loadMedia > self.videoService.setMedia(self.currentMedia) > File "/usr/lib/python3/dist-packages/vidcutter/libs/videoservice.py", line 93, in setMedia > [stream for stream in self.media.streams if stream.codec_type == codec_type.lower()]) > File "/usr/lib/python3/dist-packages/vidcutter/libs/videoservice.py", line 93, in <listcomp> > [stream for stream in self.media.streams if stream.codec_type == codec_type.lower()]) > File "/usr/lib/python3/dist-packages/vidcutter/libs/munch.py", line 104, in __getattr__ > raise AttributeError(k) The output of ffprobe -hide_banner -v error -show_streams -show_format -of json $FILE.mpg looks like this: > { > "streams": [ > ... > { > "index": 8, > "codec_tag_string": "[5][0][0][0]", > "codec_tag": "0x0005", > "id": "0x181a", > "r_frame_rate": "0/0", > "avg_frame_rate": "0/0", > "time_base": "1/90000", > "start_pts": 873142304, > "start_time": "9701.581156", > "duration_ts": 685844313, > "duration": "7620.492367", > "disposition": { > "default": 0, > "dub": 0, > "original": 0, > "comment": 0, > "lyrics": 0, > "karaoke": 0, > "forced": 0, > "hearing_impaired": 0, > "visual_impaired": 0, > "clean_effects": 0, > "attached_pic": 0, > "timed_thumbnails": 0 > } > } > ... > ]} This is a DVB-C recording, which consists of 1 video stream, multiple audio- and subtext-streams, and that strange "data" stream. Similar to <ozmartian#203> Fixes: <ozmartian#211>
1 parent aac5d34 commit abe6013

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

vidcutter/libs/videoservice.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def setMedia(self, source: str) -> None:
9090
self.logger.info(self.media)
9191
for codec_type in Streams.__members__:
9292
setattr(self.streams, codec_type.lower(),
93-
[stream for stream in self.media.streams if stream.codec_type == codec_type.lower()])
93+
[stream for stream in self.media.streams if stream.get('codec_type') == codec_type.lower()])
9494
if len(self.streams.video):
9595
self.streams.video = self.streams.video[0] # we always assume one video stream per media file
9696
else:

0 commit comments

Comments
 (0)