Positioning inside files using lseek is made uniformly.
This commit is contained in:
15
removeads.py
15
removeads.py
@@ -7,7 +7,7 @@ from datetime import datetime,timedelta,time
|
||||
import coloredlogs, logging
|
||||
from functools import cmp_to_key
|
||||
from subprocess import Popen, PIPE
|
||||
from os import read, write, lseek, pipe, set_inheritable, memfd_create, SEEK_SET, close, unlink
|
||||
from os import read, write, lseek, pipe, set_inheritable, memfd_create, SEEK_SET, close, unlink, fstat, ftruncate
|
||||
import os.path
|
||||
from io import BytesIO, TextIOWrapper
|
||||
import json
|
||||
@@ -190,7 +190,7 @@ def getFormat(ffprobe, inputFile):
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
infd = inputFile.fileno()
|
||||
inputFile.seek(0,0)
|
||||
lseek(infd, 0, SEEK_SET)
|
||||
set_inheritable(infd, True)
|
||||
with Popen([ffprobe, '-loglevel', 'quiet', '-show_format', '-of', 'json', '-i', '/proc/self/fd/%d' % infd], stdout=PIPE, close_fds=False) as ffprobe:
|
||||
out, _ = ffprobe.communicate()
|
||||
@@ -206,7 +206,7 @@ def getStreams(ffprobe, inputFile):
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
infd = inputFile.fileno()
|
||||
inputFile.seek(0,0)
|
||||
lseek(infd, 0, SEEK_SET)
|
||||
set_inheritable(infd, True)
|
||||
with Popen([ffprobe, '-loglevel', 'quiet', '-show_streams', '-of', 'json', '-i', '/proc/self/fd/%d' % infd], stdout=PIPE, close_fds=False) as ffprobe:
|
||||
out, _ = ffprobe.communicate()
|
||||
@@ -483,10 +483,10 @@ def extractMKVPart(mkvmerge, inputFile, outputFile, begin, end):
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
logger.info('Extract video between I-frames at %s and %s' % (begin,end))
|
||||
inputFile.seek(0,0)
|
||||
outputFile.seek(0,0)
|
||||
infd = inputFile.fileno()
|
||||
outfd = outputFile.fileno()
|
||||
lseek(infd, 0, SEEK_SET)
|
||||
lseek(outfd, 0, SEEK_SET)
|
||||
set_inheritable(infd, True)
|
||||
set_inheritable(outfd, True)
|
||||
warnings = []
|
||||
@@ -518,8 +518,9 @@ def extractMKVPart(mkvmerge, inputFile, outputFile, begin, end):
|
||||
def extractPictures(ffmpeg, inputFile, begin, nbFrames, width=640, height=480):
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
inputFile.seek(0,0)
|
||||
|
||||
infd = inputFile.fileno()
|
||||
lseek(infd, 0, SEEK_SET)
|
||||
outfd = memfd_create('pictures', flags=0)
|
||||
set_inheritable(outfd, True)
|
||||
# PPM header
|
||||
@@ -549,9 +550,9 @@ def extractPictures(ffmpeg, inputFile, begin, nbFrames, width=640, height=480):
|
||||
def extractSound(ffmpeg, inputFile, begin, outputFileName, packetDuration, subChannel=0, nbPackets=0, sampleRate=48000, nbChannels=2):
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
inputFile.seek(0,0)
|
||||
outfd = memfd_create(outputFileName, flags=0)
|
||||
infd = inputFile.fileno()
|
||||
lseek(infd, 0, SEEK_SET)
|
||||
set_inheritable(infd, True)
|
||||
set_inheritable(outfd, True)
|
||||
sound = bytes()
|
||||
|
||||
Reference in New Issue
Block a user